Помогите настроить hal для запуска программы.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Помогите настроить hal для запуска программы.
Принцип работы машины:
- подходит по программе на ускоренной к заданной точке;
- запускает по программе шпиндель;
- останавливается по программе "программируемый останов";
- запуск шпинделя запускает регулятор сварки;
- после отработки сварки регулятор подает команду программе через LPT-порт на продолжение выполнения.
Когда отрабатывал без LPT и нажимал на клавиатуре кнопку "ПРОДОЛЖИТЬ" (на клавиатуре кнопка "S"), все работало хорошо, но мне нужно автоматически.
Прописал через halui кнопку на пин LPT-порта - не работает, а при нажатии кнопки на клавиатуре выдает ошибку "Не могу делать это (EMC_TASK_PLAN_RUN) в авто режиме с ждущим интерпретатором". Может не ту кнопку прописывал (прописывал run и is-running)? Возможно ли решить каким то другим способом?
- подходит по программе на ускоренной к заданной точке;
- запускает по программе шпиндель;
- останавливается по программе "программируемый останов";
- запуск шпинделя запускает регулятор сварки;
- после отработки сварки регулятор подает команду программе через LPT-порт на продолжение выполнения.
Когда отрабатывал без LPT и нажимал на клавиатуре кнопку "ПРОДОЛЖИТЬ" (на клавиатуре кнопка "S"), все работало хорошо, но мне нужно автоматически.
Прописал через halui кнопку на пин LPT-порта - не работает, а при нажатии кнопки на клавиатуре выдает ошибку "Не могу делать это (EMC_TASK_PLAN_RUN) в авто режиме с ждущим интерпретатором". Может не ту кнопку прописывал (прописывал run и is-running)? Возможно ли решить каким то другим способом?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Тут все просто:
Вот это:
Этот код ждет растущего сигнала до 1 на пине
(только parport правильно напиши, я его вечно путаю)
Все остальное, насколько я понимаю у тебя уже написано?
Кстати, можно добавить максимальное время ожидания.
http://linuxcnc.org/docs/html/gcode/m-c ... ut-Control
Вот это:
заменяем на Gкод:- останавливается по программе "программируемый останов";
- запуск шпинделя запускает регулятор сварки;
- после отработки сварки регулятор подает команду программе через LPT-порт на продолжение выполнения.
Код: Выделить всё
M03 # запускаем сварку
M66 P0 L1 # ждем сигнала
M05 # останавливаем сварку
В hal дописываем строчкуmotion.digital-in-NN IN BIT
These pins are used by M66 Pnn wait-for-input mode.
Код: Выделить всё
net wait <= parport.0.pin-17-in
net wait => motion.digital-in-00Все остальное, насколько я понимаю у тебя уже написано?
Кстати, можно добавить максимальное время ожидания.
http://linuxcnc.org/docs/html/gcode/m-c ... ut-Control
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Спасибо! Просто кода М66 я не знал.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
А как у тебя обычно проходит сварка и как Gкод готовишь? Может мы тебе сейчас еще что-нибудь интересное придумаем 
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Сварка полностью отрабатывается регулятором сварки, поэтому там и придумать что-то сложно, а G-код пишу вручную - он очень простой и состоит из повторяющихся отрезков (выход в точку, запуск сварки, остановка сварки), поэтому загонять его в какую то программу бессмысленно. Вот когда начну делать плазму - тогда вопросов побольше будет. Еще раз спасибо за подсказку с кодом - завтра попробую и отпишусь, а то сегодня свет рубанули и ответ дописываю на бесперебойнике.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Ну это тоже можно упростить, например написать процедуруVAV77 писал(а):Сварка полностью отрабатывается регулятором сварки, поэтому там и придумать что-то сложно, а G-код пишу вручную - он очень простой и состоит из повторяющихся отрезков (выход в точку, запуск сварки, остановка сварки), поэтому загонять его в какую то программу бессмысленно.
Код: Выделить всё
O<melt> SUB
G0 X#1 Y#1
M3
M66 P1 L1
M5
O<melt> ENDSUB
O<melt> CALL [10] [20]
или можно цикл добавить... а еще можно попробовать Features использовать, но он правда пока еще не готов
LinuxCNC Features - набор мастеров для LinuxCNC #1
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Вылезла ошибка:
"Нулевое ожидание с типом ожидания не равным немедленному возврату".
"Нулевое ожидание с типом ожидания не равным немедленному возврату".
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
А на счет процедуры, то их нужно писать две, одну для М03, вторую для М04. Я не говорил, но у меня есть два режима сварки - один для 1,5+2,5, второй для 2,5+2,5, а релюшки замыкают различные входа регулятора для выбора нужного режима сварки. Поэтому не хочется сильно мудро писать код - простому человеку легче объяснить простой код - это повторил и поменял только координаты и выбрал программу!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Для этого есть IF, и можно либо еще параметр добавить в вызов функции, либо просто сверху объявлять, либо вообще просто кнопку сделать на pyvcp...VAV77 писал(а):А на счет процедуры, то их нужно писать две, одну для М03, вторую для М04. Я не говорил, но у меня есть два режима сварки - один для 1,5+2,5,
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
А что можно с ошибкой сделать?
Уже поменял "M66 P0 L1" на "M66 P1 L1", как написано в описании процедуры, все равно пишет ошибку
Уже поменял "M66 P0 L1" на "M66 P1 L1", как написано в описании процедуры, все равно пишет ошибку
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Надо в M66 добавить параметр Q и максимальное количество секунд, которое ждать. (хмм, раньше думал, что это не обязательно...)
А P поставь в 0 (если используешь первый digital input)
А P поставь в 0 (если используешь первый digital input)
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
это что??Nick писал(а):Для этого есть IF,
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Ну O100 IF [] ...
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Поставил 10 сек, так сварка уже прошла, а он ждет 10 сек. и только потом продолжает работу, т.е. наличие сигнала он проверяет после заданного времени - даже если он пришел раньше.Nick писал(а):Надо в M66 добавить параметр Q и максимальное количество секунд, которое ждать. (хмм, раньше думал, что это не обязательно...)
А ставлю 1, так он начинает работу раньше, чем подается сигнал на порт с регулятора сварки! Может я что то не так прописал в hal, поэтому и выдавало ошибку без указания времени.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Nick писал(а):Ну O100 IF [] ...
блин , ни за что б не догадался...
я думал что ты свою прогу переименовал - "I" добавил (интегрированные фичи)
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Может после "L" другое число должно быть?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Как выглядит сигнал, и как выглядит строка gкода? В hal добавил строчки?VAV77 писал(а):Поставил 10 сек, так сварка уже прошла, а он ждет 10 сек. и только потом продолжает работу, т.е. наличие сигнала он проверяет после заданного времени - даже если он пришел раньше.
Кстати, можно сделать аварийную остановку, если время прошло, а с датчика нет сигнала, или как минимум сообщение оператору.
Надо?
L1 - ждет растущего фронта, т.е. ждет перехода с 0 к 1.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Просто подается сигнал на вход платы через концевик (концевик срабатывает когда цилиндр поднят).Nick писал(а):Как выглядит сигнал
S1G03Nick писал(а): как выглядит строка gкода
M66 P0 L1 Q01 (ставил и Q10)
G05
ДобавилNick писал(а):В hal добавил строчки?
Когда Q поставил значение 01, а на регуляторе сварки время на цикл сварки запрограммировал около 3-х секунд, так программа пошла отрабатываться еще до завершения цикла сварки.Nick писал(а):net wait <= parport.0.pin-17-in
net wait => motion.digital-in-00
А когда поставил 10сек, так сварка прошла за 1сек, датчик сработал, а машина ждет еще 9сек и только потом продолжается отработка G-кода.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Кстати, отключил датчик от платы вообще, так машина просто выдерживает заданное время и продолжает работу, не обращая внимания на сигнал с датчика.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Помогите настроить hal для запуска программы.
Посмотри через halmeter что на самом деле творится на пине motion.digital-in-00, или сигнале wait.
Может у тебя пин инвертирован, тогда надо спадающий фронт смотреть. (L2)
То что ждет 10с значит, что он не получает сигнал.
Добавь вот такие строки под M66:
Может у тебя пин инвертирован, тогда надо спадающий фронт смотреть. (L2)
То что ждет 10с значит, что он не получает сигнал.
Добавь вот такие строки под M66:
Код: Выделить всё
O100 IF [#5399 EQ 0]
(DEBUG, Внимание! Недождались окончания сварки!)
O100 ENDIF
