Страница 1 из 2

Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 12:13
VAV77
Принцип работы машины:
- подходит по программе на ускоренной к заданной точке;
- запускает по программе шпиндель;
- останавливается по программе "программируемый останов";
- запуск шпинделя запускает регулятор сварки;
- после отработки сварки регулятор подает команду программе через LPT-порт на продолжение выполнения.
Когда отрабатывал без LPT и нажимал на клавиатуре кнопку "ПРОДОЛЖИТЬ" (на клавиатуре кнопка "S"), все работало хорошо, но мне нужно автоматически.
Прописал через halui кнопку на пин LPT-порта - не работает, а при нажатии кнопки на клавиатуре выдает ошибку "Не могу делать это (EMC_TASK_PLAN_RUN) в авто режиме с ждущим интерпретатором". Может не ту кнопку прописывал (прописывал run и is-running)? Возможно ли решить каким то другим способом?

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 12:45
Nick
Тут все просто:
Вот это:
- останавливается по программе "программируемый останов";
- запуск шпинделя запускает регулятор сварки;
- после отработки сварки регулятор подает команду программе через LPT-порт на продолжение выполнения.
заменяем на Gкод:

Код: Выделить всё

M03 # запускаем сварку
M66 P0 L1 # ждем сигнала
M05 # останавливаем сварку
Этот код ждет растущего сигнала до 1 на пине
motion.digital-in-NN IN BIT
These pins are used by M66 Pnn wait-for-input mode.
В hal дописываем строчку

Код: Выделить всё

net wait <= parport.0.pin-17-in 
net wait => motion.digital-in-00
(только parport правильно напиши, я его вечно путаю)

Все остальное, насколько я понимаю у тебя уже написано?
Кстати, можно добавить максимальное время ожидания.
http://linuxcnc.org/docs/html/gcode/m-c ... ut-Control

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 12:54
VAV77
Спасибо! Просто кода М66 я не знал.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 12:56
Nick
А как у тебя обычно проходит сварка и как Gкод готовишь? Может мы тебе сейчас еще что-нибудь интересное придумаем :)

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 13:39
VAV77
Сварка полностью отрабатывается регулятором сварки, поэтому там и придумать что-то сложно, а G-код пишу вручную - он очень простой и состоит из повторяющихся отрезков (выход в точку, запуск сварки, остановка сварки), поэтому загонять его в какую то программу бессмысленно. Вот когда начну делать плазму - тогда вопросов побольше будет. Еще раз спасибо за подсказку с кодом - завтра попробую и отпишусь, а то сегодня свет рубанули и ответ дописываю на бесперебойнике.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 13:58
Nick
VAV77 писал(а):Сварка полностью отрабатывается регулятором сварки, поэтому там и придумать что-то сложно, а G-код пишу вручную - он очень простой и состоит из повторяющихся отрезков (выход в точку, запуск сварки, остановка сварки), поэтому загонять его в какую то программу бессмысленно.
Ну это тоже можно упростить, например написать процедуру

Код: Выделить всё

O<melt> SUB
  G0 X#1 Y#1
  M3
  M66 P1 L1 
  M5
O<melt> ENDSUB
и потом просто писать
O<melt> CALL [10] [20]

или можно цикл добавить... а еще можно попробовать Features использовать, но он правда пока еще не готов :freak:
LinuxCNC Features - набор мастеров для LinuxCNC #1

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:01
VAV77
Вылезла ошибка:
"Нулевое ожидание с типом ожидания не равным немедленному возврату".

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:08
VAV77
А на счет процедуры, то их нужно писать две, одну для М03, вторую для М04. Я не говорил, но у меня есть два режима сварки - один для 1,5+2,5, второй для 2,5+2,5, а релюшки замыкают различные входа регулятора для выбора нужного режима сварки. Поэтому не хочется сильно мудро писать код - простому человеку легче объяснить простой код - это повторил и поменял только координаты и выбрал программу!

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:31
Nick
VAV77 писал(а):А на счет процедуры, то их нужно писать две, одну для М03, вторую для М04. Я не говорил, но у меня есть два режима сварки - один для 1,5+2,5,
Для этого есть IF, и можно либо еще параметр добавить в вызов функции, либо просто сверху объявлять, либо вообще просто кнопку сделать на pyvcp...

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:34
VAV77
А что можно с ошибкой сделать?
Уже поменял "M66 P0 L1" на "M66 P1 L1", как написано в описании процедуры, все равно пишет ошибку

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:38
Nick
Надо в M66 добавить параметр Q и максимальное количество секунд, которое ждать. (хмм, раньше думал, что это не обязательно...)

А P поставь в 0 (если используешь первый digital input)

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 14:43
nkp
Nick писал(а):Для этого есть IF,
это что??

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:18
Nick
Ну O100 IF [] ...

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:25
VAV77
Nick писал(а):Надо в M66 добавить параметр Q и максимальное количество секунд, которое ждать. (хмм, раньше думал, что это не обязательно...)
Поставил 10 сек, так сварка уже прошла, а он ждет 10 сек. и только потом продолжает работу, т.е. наличие сигнала он проверяет после заданного времени - даже если он пришел раньше.
А ставлю 1, так он начинает работу раньше, чем подается сигнал на порт с регулятора сварки! Может я что то не так прописал в hal, поэтому и выдавало ошибку без указания времени.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:25
nkp
Nick писал(а):Ну O100 IF [] ...
:hehehe:
блин , ни за что б не догадался...
я думал что ты свою прогу переименовал - "I" добавил (интегрированные фичи) :)

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:29
VAV77
Может после "L" другое число должно быть?

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:31
Nick
VAV77 писал(а):Поставил 10 сек, так сварка уже прошла, а он ждет 10 сек. и только потом продолжает работу, т.е. наличие сигнала он проверяет после заданного времени - даже если он пришел раньше.
Как выглядит сигнал, и как выглядит строка gкода? В hal добавил строчки?
Кстати, можно сделать аварийную остановку, если время прошло, а с датчика нет сигнала, или как минимум сообщение оператору.
Надо?

L1 - ждет растущего фронта, т.е. ждет перехода с 0 к 1.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:39
VAV77
Nick писал(а):Как выглядит сигнал
Просто подается сигнал на вход платы через концевик (концевик срабатывает когда цилиндр поднят).
Nick писал(а): как выглядит строка gкода
S1G03
M66 P0 L1 Q01 (ставил и Q10)
G05
Nick писал(а):В hal добавил строчки?
Добавил
Nick писал(а):net wait <= parport.0.pin-17-in
net wait => motion.digital-in-00
Когда Q поставил значение 01, а на регуляторе сварки время на цикл сварки запрограммировал около 3-х секунд, так программа пошла отрабатываться еще до завершения цикла сварки.
А когда поставил 10сек, так сварка прошла за 1сек, датчик сработал, а машина ждет еще 9сек и только потом продолжается отработка G-кода.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:42
VAV77
Кстати, отключил датчик от платы вообще, так машина просто выдерживает заданное время и продолжает работу, не обращая внимания на сигнал с датчика.

Re: Помогите настроить hal для запуска программы.

Добавлено: 09 июл 2013, 15:57
Nick
Посмотри через halmeter что на самом деле творится на пине motion.digital-in-00, или сигнале wait.
Может у тебя пин инвертирован, тогда надо спадающий фронт смотреть. (L2)

То что ждет 10с значит, что он не получает сигнал.

Добавь вот такие строки под M66:

Код: Выделить всё

O100 IF [#5399 EQ 0] 
  (DEBUG, Внимание! Недождались окончания сварки!)
O100 ENDIF