Страница 42 из 53

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

Добавлено: 06 ноя 2015, 20:25
alexandr1988
В доках про 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'а, или же я что-то делаю не так?

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

Добавлено: 07 ноя 2015, 00:11
Serg
alexandr1988 писал(а):hal_only=True
указывает, что надо сохранять только те виджеты, у которые есть пины в HAL.

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

Добавлено: 07 ноя 2015, 14:46
alexandr1988
UAVpilot писал(а):
alexandr1988 писал(а):hal_only=True
указывает, что надо сохранять только те виджеты, у которые есть пины в HAL.
Устанавливаю в false и тоже ничего не сохраняет.

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

Добавлено: 07 ноя 2015, 15:05
Serg
У меня комбинация
hal_only=False, output_only = True
точно работает.

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

Добавлено: 09 ноя 2015, 12:27
Nick
А как у тебя этот label обновляется, может на него просто сразу записывается новое значение из пина?

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

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

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

Добавлено: 10 ноя 2015, 13:06
Serg
alexandr1988 писал(а):но сохранять то значение все равно нужно.
Почему не в переменной?..

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

Добавлено: 10 ноя 2015, 13:18
alexandr1988
UAVpilot писал(а):
alexandr1988 писал(а):но сохранять то значение все равно нужно.
Почему не в переменной?..
Не в переменной, только потому, что еще не начал изучать как, для чего и зачем они используются. Возможно, это решение. С чего начать изучать?

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

Добавлено: 10 ноя 2015, 13:49
Nick
Есть пользовательские переменные, они сами сохраняются в файле .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.

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

Добавлено: 10 ноя 2015, 14:31
Serg
Вообще-то я имел в виду переменные Python...

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

Добавлено: 10 ноя 2015, 14:53
Nick
а.... ну можно и с ними :)

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

Добавлено: 20 ноя 2015, 08:18
doska
Nick писал(а):Покажи фото хотябы!
https://youtu.be/blwNeQGg2YM

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

Добавлено: 20 ноя 2015, 11:09
Nick
Ухты, а что оно делает?
Тампопечать?

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

Добавлено: 20 ноя 2015, 11:39
doska
Да.
На нем уже работают, я просто для настройки снял тампон.
Как все отладим, сделаю еще видео.

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

Добавлено: 03 фев 2016, 10:06
Ворон226
alexandr1988 писал(а):А пока никак не обновляется. Пытаюсь начать с того, чтобы сохранять значение label'a в ini.
Но хочу сделать так: текущее значение получать с существующего счетчика и суммировать с общим, по таймеру.
Можно сделать и пины в hal для этого, но сохранять то значение все равно нужно.
Откроешь отдельную тему по организации счетчика? Сам с этим только столкнулся - изучаю материалы форума второй день. Было бы интересно сделать и в ВИКИ закинуть материал...

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

Добавлено: 03 фев 2016, 12:35
Nick
Для этого надо использовать persistent variables
http://www.linuxcnc.org/docs/2.5/html/g ... n_gladevcp

Либо использовать параметр в Gкоде.

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

Добавлено: 03 фев 2016, 13:18
Ворон226
Начнём разбираться.

Задача: организовать счетчик метража по первой оси (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?

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

Добавлено: 03 фев 2016, 15:09
Nick
Наверное да, проще всего будет компонент.
Берешь стандартную заготовку:
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?
По моему - никаким.

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

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

В Glade ставлю виджет hal_hscale1
Привязываю к нему adjustment1
В нём прописываю минимальные и максимальные значения, и начальное значение. Сразу в Glade на визуальной панели значение "ползунка" становится равным начальному значению. Запоминаем. Загружаем панель с конфигурацией в LCNC и начальное значение "ползунка" - НОЛЬ! Т.е. минимальное значение... Похоже где-то что-то я не дописал... Что? На что обратить внимание?

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

Добавлено: 12 фев 2016, 11:40
Ворон226
Нашёл!
Перечитал разные ветки и нашел совет нашего Гуру - http://www.cnc-club.ru/forum/viewtopic. ... 460#p62553
Действительно - нужно в файле визуальной панели в разделе описания adjustment параметр value поставить не первым, а последним. И всё заработало!