Страница 2 из 5
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 08 окт 2014, 21:38
Ворон226
Не поможете до кучи разобраться с режимами М66? (автопеводчик Гугля совсем абракадабру выдает)
параметр L:
Mode 0: IMMEDIATE - no waiting, returns immediately. The current value of the input is stored in parameter #5399
Mode 1: RISE - waits for the selected input to perform a rise event.
Mode 2: FALL - waits for the selected input to perform a fall event.
Mode 3: HIGH - waits for the selected input to go to the HIGH state.
Mode 4: LOW - waits for the selected input to go to the LOW state.
Если L0, то ясно, что команда ничего не ждет и сразу содержимое соответствующего команде пина прописывает в регистр #5399...
А другие режимы?
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 02:36
Serg
Ворон226 писал(а):Mode 1: RISE - waits for the selected input to perform a rise event.
Ждёт перепада уровня с низкого на высокий.
Ворон226 писал(а):Mode 2: FALL - waits for the selected input to perform a fall event.
Ждёт перепада уровня с высокого на низкий.
Ворон226 писал(а):Mode 3: HIGH - waits for the selected input to go to the HIGH state.
Ждёт появления высокого уровня, если он уже высокий, то сразу завершается.
Ворон226 писал(а):Mode 4: LOW - waits for the selected input to go to the LOW state.
Ждёт появления низкого уровня, если он уже низкий, то сразу завершается.
P.S. В симуляторе ж элементарно пробуется...

Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 18:33
Ворон226
UAVpilot писал(а):В симуляторе ж элементарно пробуется...

А можно поподробнее про симулятор? Что за зверь такой?
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 18:43
Serg
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 19:33
Ворон226
Открыл раздел "М-коды" в ВИКИ...
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 21:09
Ворон226
Сегодня долго искал пин, на который нужно подать значение координаты для немедленного перемещения оси в эту координату. Т.е. не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
Самое близкое (по-моему) - (FLOAT) stepgen.<chan>.position-cmd – Желаемое положение мотора, в единицах измерения положения (только для режима положения).
На какой пин нужно подать 1000, чтобы ось Х станка переместилась в координату 1000? Как организовать команду G01 X1000 F2400?
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 23:49
Serg
Ворон226 писал(а):Сегодня долго искал пин, на который нужно подать значение координаты для немедленного перемещения оси в эту координату. Т.е. не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
Если ось подключена к компоненту axis, то никак. :

Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 23:53
PKM
Параметры можно читать из кода, в формате #<_hal[hal.pin.name]>
Т.е. по идее G01 X#<_hal[hal.pin.name]> поедет куда надо
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 09 окт 2014, 23:58
Serg
Только это будет не немедленно, а когда можно будет G01 позвать...
P.S. Проблема актуальна и когда у станка более 9 независимых осей...
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 00:00
PKM
Тогда не связывать приводы с motion и ехать куда угодно )
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 01:01
Serg
Тогда хоминг придётся в рукопашную мутить, а это жесть! - я уже попробовал...
Вобщем если надо ось, которой можно управлять не из "планировщика", а только из HAL, то "ждите анонсов" - я потихоньку двигаюсь в эту сторону...

Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 06:12
Ворон226
Хм... Тогда конкретнее:
Есть автомат, допустим, для сверления отверстий в плите.
Хомы не нужны. Достаточно только датчики крайних положений, по которым автомат просто выходит из этих крайних положений в любой ситуации. Это я уже сделал - все работает на ура.
В начале работы я подгоняю головку к одному углу пластины и нажимаю кнопочку "ЭТО НОЛЬ". Подгоняю к противоположному углу пластины (по диагонали) и нажимаю кнопочку "ЭТО МАКСИМАЛЬНЫЙ РАЗМЕР ЗАГОТОВКИ".
Имея эти координаты и шаг сверловки, я легко могу разбить поле сверловки и начать сверление.
Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку (просто двинуть ось могу, могу сделать движение до концевого датчика - все из HAL), т.е. не нашел способа сделать компонентами HAL команду G01 или G00.
Зачем мне это? Не хочу на мониторе стандартных AXIS с загрузкой G-кодов или формированием программы G-кодов в ngcgui. Но хочу вкусностей LCNC.

Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 07:31
nkp
Ворон226 писал(а):Тогда конкретнее:
как вариант - использовать jog :
Код: Выделить всё
setp axis.0.jog-vel-mode 0
setp axis.0.jog-scale 1
net enable_x axis.0.jog-enable
net count_x PIN_OUT axis.0.jog-counts
PIN_OUT - пин ,с которого приходит координата
==========
но тут неудобство в скоростях...
============
не до конца понятны твои требования :
убрать Axis?
не использовать интерпретатор?
...?
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 07:53
Serg
Ворон226 писал(а):Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку
К такой оси просто не подключаешь компонент axis, а вместо него рулишь осью сам. На вход pid.N.command или stepgen.N.position-cmd подаёшь значение нужной позиции и оно едет.
Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
nkp писал(а):как вариант - использовать jog :
Это работает только в ручном режиме и в относительных значениях.
nkp писал(а):не использовать интерпретатор?
LinuxCNC без морды AXIS - это довольно таки удобный и мощный PLC...

Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 08:06
nkp
UAVpilot писал(а):LinuxCNC без морды AXIS - это довольно таки удобный и мощный PLC...
таки да...
---------------------
но вопрос возник после этого:
Ворон226 писал(а):не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
и тут чуть ниже:
Ворон226 писал(а):Не хочу на мониторе стандартных AXIS с загрузкой G-кодов
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 08:21
Serg
Ну оно "довольно таки удобный и мощный PLC" и без G-кодов, а только в виде HAL-логики и Classicladdr'а.

Я вообще мечтаю засунуть эту часть в микроконтроллеры...
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 08:57
Nick
Ворон226 писал(а):Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку (просто двинуть ось могу, могу сделать движение до концевого датчика - все из HAL), т.е. не нашел способа сделать компонентами HAL команду G01 или G00.
А чем тебе MDI_COMMAND не подходит?
По пину можно выставлять режим в MDI, и потом выполнять MDI_COMMAND.
А какая общая задача? ИМХО это все лучше написать на Gкоде. Не хочешь axis - не надо, пишешь свой интерфейс на gladevcp и axis не грузишь вообще. Gкод загружаешь по умолчанию, и его никто не увидит.
Просто на Gкоде очень просто писать функции сверловки по шаблону.
UAVpilot писал(а):Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
У stepgen свои ограничения по максимальной скорости и ускорению, можно напрямую давать желаемое положение.
UAVpilot писал(а):P.S. Проблема актуальна и когда у станка более 9 независимых осей...
А в чем именно проблема?
Подключай ось через mux2 или просто unlinkp после хоуминга...
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 11:04
Serg
Nick писал(а):Подключай ось через mux2 или просто unlinkp после хоуминга...
А как повторно хомится?
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 11:06
Nick
обратно переключаешь mux и все

.
или обратно unlinkp ...
кстати с unlinkp через M100 что-то делали... толи двигатель в режим шпинделя переключали, толи что-то такое...
Re: Как реализовать связь пинов HAL с переменными подпрограм
Добавлено: 10 окт 2014, 12:27
Serg
Nick писал(а):обратно переключаешь mux и все

.
Ага, и ось не взирая на ограничения несётся в HOME позицию, попутно вырубая всё по "Folowing error"...
