Страница 3 из 5

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 13:32
Nick
А зачем тебе following error, ты всеравно вручную рулишь осью - просто делаешь тупую обратную связь pos-cmd=>pos-fb/

И кстати, какие ограничения ты имеешь в виду?

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 14:23
Ворон226
nkp писал(а):не до конца понятны твои требования :
убрать Axis?
не использовать интерпретатор?
...?
Прошу прощения за некорректную речь. Мне хочется сделать свою панель без лишних элементов AXIS-а.
UAVpilot писал(а):К такой оси просто не подключаешь компонент axis, а вместо него рулишь осью сам. На вход pid.N.command или stepgen.N.position-cmd подаёшь значение нужной позиции и оно едет.
Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
Точно! Ведь я уже так делал при управлении насосом на витражнике. Только управлял скоростью. Буду читать описание...
Nick писал(а):ИМХО это все лучше написать на Gкоде. Не хочешь axis - не надо, пишешь свой интерфейс на gladevcp и axis не грузишь вообще. Gкод загружаешь по умолчанию, и его никто не увидит.
Просто на Gкоде очень просто писать функции сверловки по шаблону.
А вот этого я не умею. Ведь создание программы через ngcgui устраивает, но не для автомата (ну не нужен в автомате навороченный интерфейс). А хорошо было бы сделать шаблон в G-кодах с автозагрузкой и опросом значений в визуальной панели и передачей этих значений переменным в G-коды. Можно простой пример автозагрузки программы в G-кодах при запуске AXIS?

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 14:28
Serg
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 "доползёт" до позиции оси, что можно было из снова соединить.

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 14:29
nkp
Ворон226 писал(а):автозагрузки программы в G-кодах при запуске AXIS?
OPEN_FILE = /full/path/to/file.ngc

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 16:44
Nick
UAVpilot писал(а):axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
Что делает уважающий себя axis, когда у него разница между pos-cmd и pos-fb составляет такие тыщи? Правильно - сваливается по following error забирая с собой всю систему...
Ну а вновь подключенный к axis pid успевает конкретно мотануть осью - ему-то на вход пришла новая позиция 0.0...
Хорошо, тогда еще проще - на вход stepgen.pos-cmd подаем sum2 от axis.pos-cmd + твой управляющий сигнал.
На фидбек оси возвращаем только axis.pos-cmd.
Тогда можно и хоумить и все, что хочешь делать.

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 16:46
Nick
Ворон226 писал(а):А вот этого я не умею. Ведь создание программы через ngcgui устраивает, но не для автомата (ну не нужен в автомате навороченный интерфейс). А хорошо было бы сделать шаблон в G-кодах с автозагрузкой и опросом значений в визуальной панели и передачей этих значений переменным в G-коды. Можно простой пример автозагрузки программы в G-кодах при запуске AXIS?
А почему бы не попробовать загрузить ngcgui без axis?

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 16:52
nkp
Nick писал(а):А почему бы не попробовать загрузить ngcgui без axis?
для попробовать пишешь в терминале:
ngcgui
Выделение_017.png (2001 просмотр) <a class='original' href='./download/file.php?id=34748&mode=view' target=_blank>Загрузить оригинал (85.93 КБ)</a>
получаешь вот такое окошко...
жмем Subfile и выбираем свой файл подпрограммы

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 17:00
Nick
Осталось только кнопочку запустить прикрутить :).
Хотя их можно железными сделать...

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 17:01
Serg
Nick писал(а):Тогда можно и хоумить и все, что хочешь делать.
Это пока лучший вариант, но тут есть неконтроллируемый фактор - эту ось могут G-кодом сдвинуть...

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 17:08
Nick
Фильтр на входные файлы :)
Останется mdi и ручные перемещения запретить :). С mdi - блокируем обратную связь и если ось шелохнулась - ferror, с ручным сложнее - придется бить по рукам :)

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 10 окт 2014, 18:30
Ворон226
UAVpilot писал(а):1. Включаем станок.
2. Хомим оси.
3. От нужной оси отсоединяем axis
4. Рулим осью в рукопашную.
5. Хеппиэнд!

6. Вдруг решили снова захомить ось.
7. Подсоединяем axis обратно.
axis думает, что ось находится в 0.0, а тут вдруг у него на pos-fb появляется значение 1234.5678 (ну наша ось там находится).
С подобной проблемой столкнулся на двушпиндельном станке в режиме синхронной работы. Выставил два шпинделя в начала работы, включил режим синхронной работы (вторая ось Z и вторая Y просто подсоединяются в HAL-е к первым осям), обработал две одинаковые заготовки, отключил режим синхронной работы... а второй шпиндель может переместиться в любую точку (зависит от программы обработки). И LCNC не знает ничего об этом перемещении!
Вариантов решить эту проблему может быть несколько. Один из них:
процедура переключения осей должна выглядеть так - обнулить координаты и переключить оси;
процедура возврата - переместиться в ноль - переключить оси.
Причем саму процедуру переключения исполнить либо как подпрограмма, либо как mdi-команда (наверное, я несу чушь, но уверен, что смысл вы поняли).

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 18:14
Ворон226
Пытаюсь на практике опробовать способы организации связи между 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 ...

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 18:51
Serg
Через MDI_COMMAND?

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 19:01
Ворон226
UAVpilot писал(а):Через MDI_COMMAND?
Конечно.
В INI:
[HALUI]
MDI_COMMAND = G92 X0 Y0

В mode.hal:
net mdi1 mygui.hal_button1 halui.mdi-command-00

Нажал кнопочку - координаты обнулились.
Вот и задался я вопросом: как при нажатии кнопочки прописать значения координат в переменные?
(написал подробно не для тебя, а для тех, кто пока действительно этого не умеет ;) )

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 19:42
PKM
#XMAX = #<_hal[halui.axis.0.pos-relative]>
#YMAX = #<_hal[halui.axis.1.pos-relative]>
как-то так

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 20:03
Ворон226
PKM писал(а):#XMAX = #<_hal[halui.axis.0.pos-relative]>
#YMAX = #<_hal[halui.axis.1.pos-relative]>
как-то так
Но это верно только для версии LCNC 2.6
И как это привязать к нажатию кнопки?

В принципе можно в 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-команду из нескольких строк?

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 20:08
nkp
Ворон226 писал(а):Но я не уверен - можно ли создать mdi-команду из нескольких строк?
может:
o<name>call
а в name.ngc уже размещать все строки (если их много)

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 20:28
Ворон226
nkp писал(а):
Ворон226 писал(а):Но я не уверен - можно ли создать mdi-команду из нескольких строк?
может:
o<name>call
а в name.ngc уже размещать все строки (если их много)
А ничего, что у меня уже загружена программа через OPEN_FILE ?
И еще вопрос: а переменные эти можно будет использовать в загруженной программе? Например, так:
G0 X#X_MAX

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 20:45
nkp
Ворон226 писал(а):А ничего, что у меня уже загружена программа через OPEN_FILE ?
должно все работать - попробуй
Ворон226 писал(а):И еще вопрос: а переменные эти можно будет использовать в загруженной программе? Например, так:G0 X#X_MAX
если необходимо - сделать глобальными

Re: Как реализовать связь пинов HAL с переменными подпрограм

Добавлено: 12 окт 2014, 21:05
Ворон226
nkp писал(а):если необходимо - сделать глобальными
Т.е. прописать при назначении:

M66 E0 L0
#<_X_MAX> = #5399
M66 E1 L0
#<_Y_MAX> = #5399

Так?