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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ворон226 писал(а):Но вот запоминать начальную установку ползунка так и не желает...

Кстати у adjustment есть вот такие штуки:
def get_page_increment()
def set_page_increment(page_increment)
def get_page_size()
def set_page_size(page_size)
def get_step_increment()
def set_step_increment(step_increment)
Т.е. можно похоже настраивать шаги для кнопок и колесика или PageUp...

О, на что еще наткнулся на просторах интернета:
Today I discovered a strange behavior while working with glade and gtk-adjustments, in particular I noticed that the default value of an adjustment was not properly loaded inside my spinbutton widget. So I wrote on the mailing-list and they pointed me out this.
The solution? Edit the xml file hand, and modify the adjustment object in order to make the value attribute being placed after the upper and the lower one.
попробуй в .ui поставить value в самый низ adjusment.
Ворон226 писал(а):Вопрос: Как организовать процедуру СТОП корректно? Т.е. остановить программу и установить пины в нужное значение, как одно действие (одно нажатие кнопки на MyGUI).
Только через доп компонент. Либо через and2 для каждого digital, и mux для analog, либо написать свой компонент enable, в котором будем "прокидывать" пины наружу только если работает enable. В принципе простой должен получиться компонент... надо бы накатать на досуге...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Nick писал(а):Только через доп компонент. Либо через and2 для каждого digital, и mux для analog, либо написать свой компонент enable, в котором будем "прокидывать" пины наружу только если работает enable. В принципе простой должен получиться компонент... надо бы накатать на досуге...
Т.е. сигналом STOP прописывать motion.digital-out-02, например, А при снятии его - разрешать управление через G-код? Нужно будет покумекать на выходных...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Сделать компонент с N штуками пинов BIT, S32, U32, FLOAT типов IN и OUT, и пином enable и внутри сделать один if - if not enable - все выходы в 0, иначе все выходы равны входам.
Можно тоже самое сделать и с n компонентов and2,or2, xor2 или mux2.
Если у тебя всего несколько таких пинов сделай через and2 и mux2.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

А есть опыт использования компонентов and2,or2, xor2 или mux2? Какое их количество следует считать нормальным? Один, два, десять, сто? ;) А то я уже много логики выстроил на этих компонентах (индикаторные фонари, переменная скорость при нажатии кнопочек перемещения, режимы работы насоса и т.п.)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Nick писал(а):Сделать компонент с N штуками пинов BIT, S32, U32, FLOAT типов IN и OUT, и пином enable и внутри сделать один if - if not enable - все выходы в 0, иначе все выходы равны входам.
А в качестве enable использовать, например,
halui.program.is-idle (bit, out) - пин отображающий, что никакая управляющая программа не запущена.
Т.е. если выполняется программа, то входные пины передаются на выход компонента. А, если никакой программы не выполняется, то выходные пины обнулены.
Так?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Написал компонент, но по причине малого опыта в Python-е - конечно, с ошибкой.
Читаю второй час о синтаксисе в Python - ничего про переменные и их значения не нашел...
Что же тут нужно подправить?

Код: Выделить всё

#!/usr/bin/python
import hal
h=hal.component("enrun")
h.newpin("in1", hal.HAL_BIT, hal.HAL_IN)
h.newpin("in2", hal.HAL_BIT, hal.HAL_IN)
h.newpin("in3", hal.HAL_FLOAT, hal.HAL_IN)
h.newpin("out1", hal.HAL_BIT, hal.HAL_OUT)
h.newpin("out2", hal.HAL_BIT, hal.HAL_OUT)
h.newpin("out3", hal.HAL_FLOAT, hal.HAL_OUT)
h.newpin("enable", hal.HAL_BIT, hal.HAL_IN)
h.ready()
try:
    while 1:
        if h['enable'] in True:
            h['out1']=0
            h['out2']=0
            h['out3']=0
        else:
            h['out1']=h['in1']
            h['out2']=h['in2']
            h['out3']=h['in3']
except KeyboardInterrupt:
     raise SystemExit
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

if h['enable'] ==1 :
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Угу - спасибо!
Хочешь быть счастливым? Будь им!
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

Подскажите пж
Делаю замену инструмента в два этапа которые запускаю с панели PyVCP через МДИ команды с помошу соотвецтвующих кнопок

Код: Выделить всё

 
Первый этап: (Замер длинны инструмента)
G53 G0 Z0 (Едем в нужную точку)
G53 G0 X0 Y0
 G91 G38.3 Z-100 F500 (Делаем пробу)
G91 G38.5 Z10 F15
 #1000=#5063 (Запоминаем положение, относительно него потом будем задавать компенсацию для других инструментов)
G90 G53 G0 Z0 (Едем назад)
М2

Второй этап: (Привязка инструмента)
G53 G0 Z0 (Едем в нужную точку)
G53 G0 X0 Y0
 G91 G38.3 Z-100 F500 (Делаем пробу)
G91 G38.5 Z10 F15
 G43.1 Z[#5063-#1000] (Устанавливаем значение отступа)
G90 G53 G0 Z0 (Едем назад)
М2
Можно ли сделать так что бы после того как мы сделали первый этап то кнопка или лед на панели PyVCP изменила цвет ну или как то отображать что в ячейке #1000 уже находится какоето значение отступа . Необходимоа индикациая , что первый этап ( замер длинны инструмента выполнен)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

solo писал(а):Можно ли сделать так что бы после того как мы сделали первый этап то кнопка или лед на панели PyVCP изменила цвет
можно в нужном месте вставлять М-код(например M138):

Код: Выделить всё

#!/bin/bash
halcmd setp   pinname.00  True
exit 0
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

Чегото я недокумекал какой пин создает у меня М138
Сделал файл с именем М138 (без расширения) с содержимым с поста выше #470
положил его в папку с конфигурациее
Добавил ему в свойства выполнение как программа
В коде Ж в нужное место добавил М138
на панели PyVCP добавил лед для индикации
в польззовательском хел должен создать связя лед с М138 а как пин (М138) називается ни бум-бум :thinking:
пробовал по разному но не как :monkey:
пробовал в М138 писать и

halcmd setp pyvcp.my-led True

так ЕМС грузится но ЛЕД не переключается
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

А разве пин не называется pinname.00 ?
Ведь, если в M138 написано:
halcmd setp pinname.00 True
что говорит о том, что пин pinname.00 перевести в состояние True
то в hal нужно прописать:
net led138 pinname.00 pyvcp.my-led

Но, как мне кажется, проще сделать так:
В конце этапа выполнения программы прописать G-код:
M64 Pnn
, где nn - номер пина digital-out-nn
Например:
M64 P00
А в hal-е:
net led digital-out-00 pyvcp.my-led
Хочешь быть счастливым? Будь им!
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

Не чегото у меня ЕМС ругается на эти строки
net led138 pinname.00 pyvcp.my-led
и на эту тоже
net led digital-out-00 pyvcp.my-led
пишет что он не находит таких пинов (pinname.00 или digital-out-00 )
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

solo писал(а):Не чегото у меня ЕМС ругается на эти строки
net led138 pinname.00 pyvcp.my-led
и на эту тоже
net led digital-out-00 pyvcp.my-led
пишет что он не находит таких пинов (pinname.00 или digital-out-00 )
Исправь:
net led motion.digital-out-00 pyvcp.my-led

(motion.digital-out-00 (bit, out) Эти пины (00, 01, 02, 03 и более, если настроены) контролируются M62-65.)
Хочешь быть счастливым? Будь им!
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

О теперь работает как надо ПАСИБО :beer_blow:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ворон226 писал(а):А есть опыт использования компонентов and2,or2, xor2 или mux2? Какое их количество следует считать нормальным? Один, два, десять, сто? А то я уже много логики выстроил на этих компонентах (индикаторные фонари, переменная скорость при нажатии кнопочек перемещения, режимы работы насоса и т.п.)
Как то этот вопрос поднимал nkp. Ответа так и не нашли. В принципе повлиять они могут только на base-thread. Если они будут в основном подключены к servo - то навряд ли повлияют. Да и при современных мощностях поцессоров - тоже вряд ли окажут хоть какое-то ощутимое влияние... надо бы конечно все это оттестировать...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

На очередном компе стал запускать Glade с панелькой, написанной на другом компе. А Glade не может открыть его... Пишет, что "необходимые каталоги gladevcp недоступны".
Открыл в Приложениях Центр приложений и проверил - чего же там не хватает? Использовал в поисковике "Glade" - получил список установленных приложений и сравнил с теми, что есть на другом компе (на котором панельку рисовал):
Не хватает "Поддержка Glade" и "библиотека для загрузки файлов .glade..."
Но в Центре поддержки на втором компе из Центра приложений не получается найти этих приложений :(

Фактически в Glade не хватает библиотеки EMC Action.

И, наверное, потому при запуске визуальной панели LinuxCNC ругается на отсутствие кнопок HAL_Python, которые в панели прописаны.

Как пополнить Glade?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение Ворон226 »

Ставил linuxcnc из исходников.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

При этом поставились "кнопки HAL_Python" и ещё кое чего.
Попробуй на другом компе поставить linuxcnc-dev
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»