Доработка макроса включения плазмы

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Доработка макроса включения плазмы

Сообщение daiman444 »

Приветствую коллеги. На моем плазморезе стоит THC без выхода ark-ok. это очень сильно усложняет работу, т.к. выполнение прожига начинается то раньше чем надо(дуга еще не зажглась), то позже чем надо(дуга зажглась и брызги попадают на сопло). Я регулировал этот момент параметром в панели Glade, но все равно с достаточной точностью не угадаешь время задержки на включение плазмы.
Сейчас у меня появился THC с пином ark-ok. Это значит теперь можно настроить макрос чтобы все дальнейшие действия макрсоа прожига выполнялись только после того как появится сигнал ark-ok.

Станок работает на LinuxCNC 2.715. управление сигналами UP/DOWN подключено через компонент THCUD. В этом компоненте есть входящий сигнал на ark-ok(ctqxfc он у меня постоянно включен, т.к. при выключенном сигнале THCUD не работает).
Прожиг металла осуществляется через макрос. Значения параметров в макросе задаются напрямую посредством панели Glade. Содержание макроса следующее:

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

O<plasma_start> SUB

G38.3 Z-50 F[#<_hal[gladevcp.pr_speed-f]>]
G92 Z0
G0 Z[#<_hal[gladevcp.pierce_height-f]>]
M03 S100
G04 P[#<_hal[gladevcp.rele_delay-f]>]
G0 Z[#<_hal[gladevcp.jump_height-f]>]
G0 Z-[#<_hal[gladevcp.jump_height-f]>]
G90
G0 Z[#<_hal[gladevcp.cut_height-f]>]
G04 P[#<_hal[gladevcp.pierce_delay-f]>]
G91
O<plasma_start> ENDSUB

M2
В чем собственно вопрос?
Хотелось бы настроить макрос так чтобы после команды "M03 S100" станок ждал входящего сигнала ark-ok продолжал выполнять код макроса. если сигнал не появился в течении 2-3 секунд то повторял код с первой строки, таких попыток 3 думаю будет достаточно( хотя я бы предпочел по аналогии сделать возможность задание параметров с панели Glade).

Возможно ли осуществить задуманное через такой макрос?
Phyton изучаю, но понимаю что с такими знаниями наврятли что то получится. Не откажусь от помощи в задуманом, а если кто то готов взяться дописать макрос, то я готов отблагодарить.
Прикладываю конфиг станка, для возможности посмотреть что и как настроено
с уважением ко всем участникам.
Вложения
Plasma_1(REV_9).zip
Конфиг с которого работает станок
(68.42 КБ) 299 скачиваний
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: Доработка макроса включения плазмы

Сообщение daiman444 »

изучение языка и мануала дается очень не легко, но что поделать если даже на объявление в разделе услуг никто не откликается? приходится пробовать сделать самому.
по вышеизложенной задаче, исходя из изученного материала по python и справке по LCNC, в уме складывается что-то вроде нижеизложенного. пока что образец в статике, тоесть подъехал, включился, подождал 3 секунды, если аркок не появился то повторяем включение с уменьшенным зазором от резака до металла? но лучше было бы если получалось с плавным опусканием резака до срабатыванияе аркок.

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

O<plasma_start> SUB
G38.3 Z-50 F[#<_hal[gladevcp.pr_speed-f]>]
G92 Z0
G0 Z[#<_hal[gladevcp.pierce_height-f]>]

(создадим переменную в которой будет задано количество попыток на прожиг. значение берется с панели glade, куда можно вручную задавать его )
att = [#<_hal[gladevcp.att-f]>]
	(нужно создать цикл выполнения включения плазмы пока не появится сигнал ark-ok)
	while att>1:
		M03 S100
		(ждем сигнала от THC о том что дуга на металл перешла)
		M66 P0 L3 Q3
			(условие при котором будет произведен повтор операции включения плазмы)
			if [#<_hal[thcud.ark-ok]>] !=1:
				G0 Z[#<_hal[gladevcp.pierce_height-f]>]-1
				att == att-1
			else:
				break

G0 Z[#<_hal[gladevcp.jump_height-f]>]
G0 Z-[#<_hal[gladevcp.jump_height-f]>]
G90
G0 Z[#<_hal[gladevcp.cut_height-f]>]
G04 P[#<_hal[gladevcp.pierce_delay-f]>]
G91
O<plasma_start> ENDSUB

M2
Понятное дело, что код крайне сырой и для людей знающих язык оченб даже смешно, но может быть найдутся единомышленники
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Ответить

Вернуться в «LinuxCNC»