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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

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

Сообщение daiman444 » 16 июн 2020, 14:53

Приветствую коллеги. На моем плазморезе стоит 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 Кб) Скачиваний: 79
daiman444
Кандидат
 
Сообщения: 84
Зарегистрирован: 18 май 2019, 15:24
Репутация: 2
Настоящее имя: Дмитрий

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

Сообщение daiman444 » 26 июн 2020, 22:40

изучение языка и мануала дается очень не легко, но что поделать если даже на объявление в разделе услуг никто не откликается? приходится пробовать сделать самому.
по вышеизложенной задаче, исходя из изученного материала по 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


Понятное дело, что код крайне сырой и для людей знающих язык оченб даже смешно, но может быть найдутся единомышленники
daiman444
Кандидат
 
Сообщения: 84
Зарегистрирован: 18 май 2019, 15:24
Репутация: 2
Настоящее имя: Дмитрий


Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: ART_ME, Bing [Bot], calabr, diman78, Ewan3687, goldmen8, Google [Bot], GXXNadin, Majestic-12 [Bot], MGG, Mikhgen, MuForum, MukhinG, Okser, PavelTch, Serb01, Serg61, SVP, Vitalii, Yandex [bot]

Reputation System ©'