Как реализовать связь пинов HAL с переменными подпрограммы?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А зачем тебе following error, ты всеравно вручную рулишь осью - просто делаешь тупую обратную связь pos-cmd=>pos-fb/
И кстати, какие ограничения ты имеешь в виду?
И кстати, какие ограничения ты имеешь в виду?
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Прошу прощения за некорректную речь. Мне хочется сделать свою панель без лишних элементов AXIS-а.nkp писал(а):не до конца понятны твои требования :
убрать Axis?
не использовать интерпретатор?
...?
Точно! Ведь я уже так делал при управлении насосом на витражнике. Только управлял скоростью. Буду читать описание...UAVpilot писал(а):К такой оси просто не подключаешь компонент axis, а вместо него рулишь осью сам. На вход pid.N.command или stepgen.N.position-cmd подаёшь значение нужной позиции и оно едет.
Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
А вот этого я не умею. Ведь создание программы через ngcgui устраивает, но не для автомата (ну не нужен в автомате навороченный интерфейс). А хорошо было бы сделать шаблон в G-кодах с автозагрузкой и опросом значений в визуальной панели и передачей этих значений переменным в G-коды. Можно простой пример автозагрузки программы в G-кодах при запуске AXIS?Nick писал(а):ИМХО это все лучше написать на Gкоде. Не хочешь axis - не надо, пишешь свой интерфейс на gladevcp и axis не грузишь вообще. Gкод загружаешь по умолчанию, и его никто не увидит.
Просто на Gкоде очень просто писать функции сверловки по шаблону.
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
1. Включаем станок.
2. Хомим оси.
3. От нужной оси отсоединяем axis
4. Рулим осью в рукопашную.
5. Хеппиэнд!
6. Вдруг решили снова захомить ось.
7. Подсоединяем axis обратно.
axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
Что делает уважающий себя axis, когда у него разница между pos-cmd и pos-fb составляет такие тыщи? Правильно - сваливается по following error забирая с собой всю систему...
Ну а вновь подключенный к axis pid успевает конкретно мотануть осью - ему-то на вход пришла новая позиция 0.0...
Конечно тут можно понавесить всяких защит в виде limit3 и т.п., но получаются слишком уж сложные навороты и тогда придётся долго ждать, когда axis "доползёт" до позиции оси, что можно было из снова соединить.
2. Хомим оси.
3. От нужной оси отсоединяем axis
4. Рулим осью в рукопашную.
5. Хеппиэнд!
6. Вдруг решили снова захомить ось.
7. Подсоединяем axis обратно.
axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
Что делает уважающий себя axis, когда у него разница между pos-cmd и pos-fb составляет такие тыщи? Правильно - сваливается по following error забирая с собой всю систему...
Ну а вновь подключенный к axis pid успевает конкретно мотануть осью - ему-то на вход пришла новая позиция 0.0...
Конечно тут можно понавесить всяких защит в виде limit3 и т.п., но получаются слишком уж сложные навороты и тогда придётся долго ждать, когда axis "доползёт" до позиции оси, что можно было из снова соединить.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
OPEN_FILE = /full/path/to/file.ngcВорон226 писал(а):автозагрузки программы в G-кодах при запуске AXIS?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Хорошо, тогда еще проще - на вход stepgen.pos-cmd подаем sum2 от axis.pos-cmd + твой управляющий сигнал.UAVpilot писал(а):axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
Что делает уважающий себя axis, когда у него разница между pos-cmd и pos-fb составляет такие тыщи? Правильно - сваливается по following error забирая с собой всю систему...
Ну а вновь подключенный к axis pid успевает конкретно мотануть осью - ему-то на вход пришла новая позиция 0.0...
На фидбек оси возвращаем только axis.pos-cmd.
Тогда можно и хоумить и все, что хочешь делать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А почему бы не попробовать загрузить ngcgui без axis?Ворон226 писал(а):А вот этого я не умею. Ведь создание программы через ngcgui устраивает, но не для автомата (ну не нужен в автомате навороченный интерфейс). А хорошо было бы сделать шаблон в G-кодах с автозагрузкой и опросом значений в визуальной панели и передачей этих значений переменным в G-коды. Можно простой пример автозагрузки программы в G-кодах при запуске AXIS?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
для попробовать пишешь в терминале:Nick писал(а):А почему бы не попробовать загрузить ngcgui без axis?
ngcgui получаешь вот такое окошко...
жмем Subfile и выбираем свой файл подпрограммы
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Осталось только кнопочку запустить прикрутить .
Хотя их можно железными сделать...
Хотя их можно железными сделать...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Это пока лучший вариант, но тут есть неконтроллируемый фактор - эту ось могут G-кодом сдвинуть...Nick писал(а):Тогда можно и хоумить и все, что хочешь делать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Фильтр на входные файлы
Останется mdi и ручные перемещения запретить . С mdi - блокируем обратную связь и если ось шелохнулась - ferror, с ручным сложнее - придется бить по рукам
Останется mdi и ручные перемещения запретить . С mdi - блокируем обратную связь и если ось шелохнулась - ferror, с ручным сложнее - придется бить по рукам
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
С подобной проблемой столкнулся на двушпиндельном станке в режиме синхронной работы. Выставил два шпинделя в начала работы, включил режим синхронной работы (вторая ось Z и вторая Y просто подсоединяются в HAL-е к первым осям), обработал две одинаковые заготовки, отключил режим синхронной работы... а второй шпиндель может переместиться в любую точку (зависит от программы обработки). И LCNC не знает ничего об этом перемещении!UAVpilot писал(а):1. Включаем станок.
2. Хомим оси.
3. От нужной оси отсоединяем axis
4. Рулим осью в рукопашную.
5. Хеппиэнд!
6. Вдруг решили снова захомить ось.
7. Подсоединяем axis обратно.
axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
Вариантов решить эту проблему может быть несколько. Один из них:
процедура переключения осей должна выглядеть так - обнулить координаты и переключить оси;
процедура возврата - переместиться в ноль - переключить оси.
Причем саму процедуру переключения исполнить либо как подпрограмма, либо как mdi-команда (наверное, я несу чушь, но уверен, что смысл вы поняли).
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Пытаюсь на практике опробовать способы организации связи между HAL, визуальной панелью и подпрограммами.
Столкнулся с задачей организовать следующую процедуру:
Есть кнопка mygui.hal_button1
Есть пины halui.axis.0.pos-relative и halui.axis.1.pos-relative , которые показывают текущие относительные координаты по осям X и Y.
Как по нажатию кнопки записать значения X и Y в переменные #XMAX и #YMAX , чтобы потом использовать их в программе, написанной в G-кодах, и загруженной при запуске LCNC через OPEN_FILE в INI ?
К слову, нулевое положение осей я прописываю MDI-командой G92 X0 Y0 ...
Столкнулся с задачей организовать следующую процедуру:
Есть кнопка mygui.hal_button1
Есть пины halui.axis.0.pos-relative и halui.axis.1.pos-relative , которые показывают текущие относительные координаты по осям X и Y.
Как по нажатию кнопки записать значения X и Y в переменные #XMAX и #YMAX , чтобы потом использовать их в программе, написанной в G-кодах, и загруженной при запуске LCNC через OPEN_FILE в INI ?
К слову, нулевое положение осей я прописываю MDI-командой G92 X0 Y0 ...
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Через MDI_COMMAND?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Конечно.UAVpilot писал(а):Через MDI_COMMAND?
В INI:
[HALUI]
MDI_COMMAND = G92 X0 Y0
В mode.hal:
net mdi1 mygui.hal_button1 halui.mdi-command-00
Нажал кнопочку - координаты обнулились.
Вот и задался я вопросом: как при нажатии кнопочки прописать значения координат в переменные?
(написал подробно не для тебя, а для тех, кто пока действительно этого не умеет )
Хочешь быть счастливым? Будь им!
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
#XMAX = #<_hal[halui.axis.0.pos-relative]>
#YMAX = #<_hal[halui.axis.1.pos-relative]>
как-то так
#YMAX = #<_hal[halui.axis.1.pos-relative]>
как-то так
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Но это верно только для версии LCNC 2.6PKM писал(а):#XMAX = #<_hal[halui.axis.0.pos-relative]>
#YMAX = #<_hal[halui.axis.1.pos-relative]>
как-то так
И как это привязать к нажатию кнопки?
В принципе можно в HAL прописать так:
net x-pol halui.axis.0.pos-relative motion.analog-in-00
net y-pol halui.axis.1.pos-relative motion.analog-in-01
В нужный момент нажимаем кнопку и выполняем mdi-команду:
M66 E0 L0
#X_MAX = #5399
M66 E1 L0
#Y_MAX = #5399
Но я не уверен - можно ли создать mdi-команду из нескольких строк?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
может:Ворон226 писал(а):Но я не уверен - можно ли создать mdi-команду из нескольких строк?
o<name>call
а в name.ngc уже размещать все строки (если их много)
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А ничего, что у меня уже загружена программа через OPEN_FILE ?nkp писал(а):может:Ворон226 писал(а):Но я не уверен - можно ли создать mdi-команду из нескольких строк?
o<name>call
а в name.ngc уже размещать все строки (если их много)
И еще вопрос: а переменные эти можно будет использовать в загруженной программе? Например, так:
G0 X#X_MAX
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
должно все работать - попробуйВорон226 писал(а):А ничего, что у меня уже загружена программа через OPEN_FILE ?
если необходимо - сделать глобальнымиВорон226 писал(а):И еще вопрос: а переменные эти можно будет использовать в загруженной программе? Например, так:G0 X#X_MAX
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Т.е. прописать при назначении:nkp писал(а):если необходимо - сделать глобальными
M66 E0 L0
#<_X_MAX> = #5399
M66 E1 L0
#<_Y_MAX> = #5399
Так?
Хочешь быть счастливым? Будь им!