Как реализовать связь пинов HAL с переменными подпрограммы?
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Не поможете до кучи разобраться с режимами М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...
А другие режимы?
параметр 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...
А другие режимы?
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Ждёт перепада уровня с низкого на высокий.Ворон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. В симуляторе ж элементарно пробуется...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А можно поподробнее про симулятор? Что за зверь такой?UAVpilot писал(а):В симуляторе ж элементарно пробуется...
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Открыл раздел "М-коды" в ВИКИ...
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Сегодня долго искал пин, на который нужно подать значение координаты для немедленного перемещения оси в эту координату. Т.е. не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
Самое близкое (по-моему) - (FLOAT) stepgen.<chan>.position-cmd – Желаемое положение мотора, в единицах измерения положения (только для режима положения).
На какой пин нужно подать 1000, чтобы ось Х станка переместилась в координату 1000? Как организовать команду G01 X1000 F2400?
Самое близкое (по-моему) - (FLOAT) stepgen.<chan>.position-cmd – Желаемое положение мотора, в единицах измерения положения (только для режима положения).
На какой пин нужно подать 1000, чтобы ось Х станка переместилась в координату 1000? Как организовать команду G01 X1000 F2400?
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Если ось подключена к компоненту axis, то никак. :Ворон226 писал(а):Сегодня долго искал пин, на который нужно подать значение координаты для немедленного перемещения оси в эту координату. Т.е. не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Параметры можно читать из кода, в формате #<_hal[hal.pin.name]>
Т.е. по идее G01 X#<_hal[hal.pin.name]> поедет куда надо
Т.е. по идее G01 X#<_hal[hal.pin.name]> поедет куда надо
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Только это будет не немедленно, а когда можно будет G01 позвать...
P.S. Проблема актуальна и когда у станка более 9 независимых осей...
P.S. Проблема актуальна и когда у станка более 9 независимых осей...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Тогда не связывать приводы с motion и ехать куда угодно )
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Тогда хоминг придётся в рукопашную мутить, а это жесть! - я уже попробовал...
Вобщем если надо ось, которой можно управлять не из "планировщика", а только из HAL, то "ждите анонсов" - я потихоньку двигаюсь в эту сторону...
Вобщем если надо ось, которой можно управлять не из "планировщика", а только из HAL, то "ждите анонсов" - я потихоньку двигаюсь в эту сторону...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Хм... Тогда конкретнее:
Есть автомат, допустим, для сверления отверстий в плите.
Хомы не нужны. Достаточно только датчики крайних положений, по которым автомат просто выходит из этих крайних положений в любой ситуации. Это я уже сделал - все работает на ура.
В начале работы я подгоняю головку к одному углу пластины и нажимаю кнопочку "ЭТО НОЛЬ". Подгоняю к противоположному углу пластины (по диагонали) и нажимаю кнопочку "ЭТО МАКСИМАЛЬНЫЙ РАЗМЕР ЗАГОТОВКИ".
Имея эти координаты и шаг сверловки, я легко могу разбить поле сверловки и начать сверление.
Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку (просто двинуть ось могу, могу сделать движение до концевого датчика - все из HAL), т.е. не нашел способа сделать компонентами HAL команду G01 или G00.
Зачем мне это? Не хочу на мониторе стандартных AXIS с загрузкой G-кодов или формированием программы G-кодов в ngcgui. Но хочу вкусностей LCNC.
Есть автомат, допустим, для сверления отверстий в плите.
Хомы не нужны. Достаточно только датчики крайних положений, по которым автомат просто выходит из этих крайних положений в любой ситуации. Это я уже сделал - все работает на ура.
В начале работы я подгоняю головку к одному углу пластины и нажимаю кнопочку "ЭТО НОЛЬ". Подгоняю к противоположному углу пластины (по диагонали) и нажимаю кнопочку "ЭТО МАКСИМАЛЬНЫЙ РАЗМЕР ЗАГОТОВКИ".
Имея эти координаты и шаг сверловки, я легко могу разбить поле сверловки и начать сверление.
Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку (просто двинуть ось могу, могу сделать движение до концевого датчика - все из HAL), т.е. не нашел способа сделать компонентами HAL команду G01 или G00.
Зачем мне это? Не хочу на мониторе стандартных AXIS с загрузкой G-кодов или формированием программы G-кодов в ngcgui. Но хочу вкусностей LCNC.
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
как вариант - использовать jog :Ворон226 писал(а):Тогда конкретнее:
Код: Выделить всё
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
==========
но тут неудобство в скоростях...
============
не до конца понятны твои требования :
убрать Axis?
не использовать интерпретатор?
...?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
К такой оси просто не подключаешь компонент axis, а вместо него рулишь осью сам. На вход pid.N.command или stepgen.N.position-cmd подаёшь значение нужной позиции и оно едет.Ворон226 писал(а):Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку
Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
Это работает только в ручном режиме и в относительных значениях.nkp писал(а):как вариант - использовать jog :
LinuxCNC без морды AXIS - это довольно таки удобный и мощный PLC...nkp писал(а):не использовать интерпретатор?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
таки да...UAVpilot писал(а):LinuxCNC без морды AXIS - это довольно таки удобный и мощный PLC...
---------------------
но вопрос возник после этого:
и тут чуть ниже:Ворон226 писал(а):не нашел как можно аппаратным способом (через конфигурацию HAL и подпрограммы) заставить переместиться ось в нужное положение?
Ворон226 писал(а):Не хочу на мониторе стандартных AXIS с загрузкой G-кодов
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Ну оно "довольно таки удобный и мощный PLC" и без G-кодов, а только в виде HAL-логики и Classicladdr'а.
Я вообще мечтаю засунуть эту часть в микроконтроллеры...
Я вообще мечтаю засунуть эту часть в микроконтроллеры...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А чем тебе MDI_COMMAND не подходит?Ворон226 писал(а):Проблема в том, что я не нашел способа переместить ось в НУЖНУЮ точку (просто двинуть ось могу, могу сделать движение до концевого датчика - все из HAL), т.е. не нашел способа сделать компонентами HAL команду G01 или G00.
По пину можно выставлять режим в MDI, и потом выполнять MDI_COMMAND.
А какая общая задача? ИМХО это все лучше написать на Gкоде. Не хочешь axis - не надо, пишешь свой интерфейс на gladevcp и axis не грузишь вообще. Gкод загружаешь по умолчанию, и его никто не увидит.
Просто на Gкоде очень просто писать функции сверловки по шаблону.
У stepgen свои ограничения по максимальной скорости и ускорению, можно напрямую давать желаемое положение.UAVpilot писал(а):Только подавай через limit3, а то оно ломанётся в указанную позицию не взирая на ограничения скорости и ускорения.
А в чем именно проблема?UAVpilot писал(а):P.S. Проблема актуальна и когда у станка более 9 независимых осей...
Подключай ось через mux2 или просто unlinkp после хоуминга...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
А как повторно хомится?Nick писал(а):Подключай ось через mux2 или просто unlinkp после хоуминга...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
обратно переключаешь mux и все .
или обратно unlinkp ...
кстати с unlinkp через M100 что-то делали... толи двигатель в режим шпинделя переключали, толи что-то такое...
или обратно unlinkp ...
кстати с unlinkp через M100 что-то делали... толи двигатель в режим шпинделя переключали, толи что-то такое...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как реализовать связь пинов HAL с переменными подпрограм
Ага, и ось не взирая на ограничения несётся в HOME позицию, попутно вырубая всё по "Folowing error"...Nick писал(а):обратно переключаешь mux и все .
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...