GladeVCP и PyVCP для начинающих

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 » 06 ноя 2015, 20:25

В доках про persistance написано:
Код: Выделить всёРазвернуть
  
            IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"},
            # to save/restore all widget's state which might remotely make sense, add this:
            IniFile.widgets : widget_defaults(builder.get_objects())
            # a sensible alternative might be to retain only all HAL output widgets' state:
            # IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)),

Так вот, вариант с IniFile.widgets : widget_defaults(builder.get_objects()) не работает, не сохраняет значения, и ini файл не создается.
А если использовать вариант с IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)), то сохраняются только значения spinbox'ов и кнопок.
Если поменять output_only = True на false, то опять же ничего не работает.
Непонятно тогда, как сохранять значение label'а, или же я что-то делаю не так?
alexandr1988
Кандидат
 
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5

Re: GladeVCP и PyVCP для начинающих

Сообщение UAVpilot » 07 ноя 2015, 00:11

alexandr1988 писал(а):hal_only=True

указывает, что надо сохранять только те виджеты, у которые есть пины в HAL.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16177
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3951
Медальки:
Настоящее имя: Сергей

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 » 07 ноя 2015, 14:46

UAVpilot писал(а):
alexandr1988 писал(а):hal_only=True

указывает, что надо сохранять только те виджеты, у которые есть пины в HAL.

Устанавливаю в false и тоже ничего не сохраняет.
alexandr1988
Кандидат
 
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5

Re: GladeVCP и PyVCP для начинающих

Сообщение UAVpilot » 07 ноя 2015, 15:05

У меня комбинация
hal_only=False, output_only = True
точно работает.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16177
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3951
Медальки:
Настоящее имя: Сергей

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 09 ноя 2015, 12:27

А как у тебя этот label обновляется, может на него просто сразу записывается новое значение из пина?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 » 10 ноя 2015, 13:03

А пока никак не обновляется. Пытаюсь начать с того, чтобы сохранять значение label'a в ini.
Но хочу сделать так: текущее значение получать с существующего счетчика и суммировать с общим, по таймеру.
Можно сделать и пины в hal для этого, но сохранять то значение все равно нужно.
alexandr1988
Кандидат
 
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5

Re: GladeVCP и PyVCP для начинающих

Сообщение UAVpilot » 10 ноя 2015, 13:06

alexandr1988 писал(а):но сохранять то значение все равно нужно.

Почему не в переменной?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16177
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3951
Медальки:
Настоящее имя: Сергей

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 » 10 ноя 2015, 13:18

UAVpilot писал(а):
alexandr1988 писал(а):но сохранять то значение все равно нужно.

Почему не в переменной?..

Не в переменной, только потому, что еще не начал изучать как, для чего и зачем они используются. Возможно, это решение. С чего начать изучать?
alexandr1988
Кандидат
 
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 10 ноя 2015, 13:49

Есть пользовательские переменные, они сами сохраняются в файле .var, в них можно из Gкода писать.
#3000 = [#3000 + 100]
31-5000 - G code user parameters. These parameters are global in the G code file, and available for general use. Volatile.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение UAVpilot » 10 ноя 2015, 14:31

Вообще-то я имел в виду переменные Python...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16177
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3951
Медальки:
Настоящее имя: Сергей

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 10 ноя 2015, 14:53

а.... ну можно и с ними :)
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение doska » 20 ноя 2015, 08:18

Nick писал(а):Покажи фото хотябы!

https://youtu.be/blwNeQGg2YM
Путь в тысячу миль начинается с первого шага.
doska
Кандидат
 
Сообщения: 57
Зарегистрирован: 08 дек 2014, 08:40
Откуда: Одесса
Репутация: 23
Настоящее имя: Женя

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 20 ноя 2015, 11:09

Ухты, а что оно делает?
Тампопечать?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение doska » 20 ноя 2015, 11:39

Да.
На нем уже работают, я просто для настройки снял тампон.
Как все отладим, сделаю еще видео.
Путь в тысячу миль начинается с первого шага.
doska
Кандидат
 
Сообщения: 57
Зарегистрирован: 08 дек 2014, 08:40
Откуда: Одесса
Репутация: 23
Настоящее имя: Женя

Re: GladeVCP и PyVCP для начинающих

Сообщение Ворон226 » 03 фев 2016, 10:06

alexandr1988 писал(а):А пока никак не обновляется. Пытаюсь начать с того, чтобы сохранять значение label'a в ini.
Но хочу сделать так: текущее значение получать с существующего счетчика и суммировать с общим, по таймеру.
Можно сделать и пины в hal для этого, но сохранять то значение все равно нужно.

Откроешь отдельную тему по организации счетчика? Сам с этим только столкнулся - изучаю материалы форума второй день. Было бы интересно сделать и в ВИКИ закинуть материал...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
 
Сообщения: 1805
Зарегистрирован: 01 окт 2012, 18:14
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Репутация: 174
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 03 фев 2016, 12:35

Для этого надо использовать persistent variables
http://www.linuxcnc.org/docs/2.5/html/g ... n_gladevcp

Либо использовать параметр в Gкоде.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение Ворон226 » 03 фев 2016, 13:18

Начнём разбираться.

Задача: организовать счетчик метража по первой оси (AXIS.1).
У меня метраж мотается только в одну сторону. Потому можно брать значение сразу с stepgen.1.position-fb

Значение отображаю на визуальной панели через hal_label (у меня hal_label5)

В mode.hal прописал:

net st01 mygui.hal_label5 stepgen.1.position-fb

После загрузки MyGUI и запуске станка (двигателя через AXIS.1) на панели начинает "крутиться" счетчик, накручивая значение.

Я так понимаю, что мне нужно прописать некий компонент в питоне, который:
1. Определит переменную.
2. Будет опрашивать файл *.ini , в котором сохраняются переменные, и присваивать сохраненные значения этой переменной.
3. При определенных моментах (либо по времени, либо при стопе, либо при выключении станка, либо во всех случая) в *.ini прописывается текущее значение, которое приходит на hal_label5 (конечно в этом случае на hal_label мы будем подавать не сразу значение из stepgen.1.position-fb , а с сумматора переменной и stepgen.1.position-fb

Так ли я представляю общую логику работы счетчика с сохранением значения?
Можно ли и каким пином обнуляется значение stepgen.1.position-fb?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
 
Сообщения: 1805
Зарегистрирован: 01 окт 2012, 18:14
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Репутация: 174
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick » 03 фев 2016, 15:09

Наверное да, проще всего будет компонент.
Берешь стандартную заготовку:
http://www.cnc-club.ru/wiki/index.php/P ... L_LinuxCNC
Обавляешь два пина float
В загрузку пишешь:
Код: Выделить всёРазвернуть
init = float(open("///файлик","r").read())
t = time.time() 
В основной цикл пишешь:
Код: Выделить всёРазвернуть
h["out"] = h["in"] + init
if (t<time.time()):
open("/файлик...","w").write(h["out"])
t = time.time() + 100 #(100 - задержка в секундах)

В принципе - все.
Только "/файлик..." сделай с начальным значением.
Ворон226 писал(а):Можно ли и каким пином обнуляется значение stepgen.1.position-fb?

По моему - никаким.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22344
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1384
Заслуга: Developer
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение Ворон226 » 12 фев 2016, 11:15

Кстати, а получилось победить параметр начальной установки значения виджета hal_vscale или hal_hscale?
Вот тут писали - http://www.cnc-club.ru/forum/viewtopic. ... =20#p98309

В Glade ставлю виджет hal_hscale1
Привязываю к нему adjustment1
В нём прописываю минимальные и максимальные значения, и начальное значение. Сразу в Glade на визуальной панели значение "ползунка" становится равным начальному значению. Запоминаем. Загружаем панель с конфигурацией в LCNC и начальное значение "ползунка" - НОЛЬ! Т.е. минимальное значение... Похоже где-то что-то я не дописал... Что? На что обратить внимание?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
 
Сообщения: 1805
Зарегистрирован: 01 окт 2012, 18:14
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Репутация: 174
Медальки:

Re: GladeVCP и PyVCP для начинающих

Сообщение Ворон226 » 12 фев 2016, 11:40

Нашёл!
Перечитал разные ветки и нашел совет нашего Гуру - http://www.cnc-club.ru/forum/viewtopic. ... 460#p62553
Действительно - нужно в файле визуальной панели в разделе описания adjustment параметр value поставить не первым, а последним. И всё заработало!
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
 
Сообщения: 1805
Зарегистрирован: 01 окт 2012, 18:14
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Репутация: 174
Медальки:

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: aftaev, Alex lamaka, Argon-11, Bing [Bot], Евжений, Gestap, going, Google [Bot], Jack Vo, kadet_13, nkp, nva-tuning, RASKROY, verser, vovafed, X-Shadow, xvovanx, Yandex [bot], Константин23

Поделиться

Reputation System ©'