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

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

Добавлено: 16 июн 2020, 14:53
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 изучаю, но понимаю что с такими знаниями наврятли что то получится. Не откажусь от помощи в задуманом, а если кто то готов взяться дописать макрос, то я готов отблагодарить.
Прикладываю конфиг станка, для возможности посмотреть что и как настроено
с уважением ко всем участникам.

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

Добавлено: 26 июн 2020, 22:40
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
Понятное дело, что код крайне сырой и для людей знающих язык оченб даже смешно, но может быть найдутся единомышленники