WLMill. M62/63(64/65) включение/выключение выхода “на лету”.

Стала доступна функция включения и выключения выхода по ходу выполнения программы. Без остановки движения и выполнения скрипта например. Эта функция выполняется сугубо контроллером для чего ему помещается соотв. элемент в буфер.

Для её использования необходимо создать таблицу соответствия выходам указанным в программе (g коде) и выходам контроллера. Делается это с помощью окна редактирования:

То есть мы указываем что выходу (gcode)1 будет соотв. выход (device) 4( цифровому выход (dout) контроллера.

Тогда в программе мы можем включит (установить в 1) этот выход командой M62 P1. И это произойдёт когда X будет в положении 100:

G0 X0    
G1 X100 F500
M62 P1
G1 X200

Аналогично и M63 выключение.

Для M62/63 есть 3 модификатора, которые позволяют сместить точку выполнения команды.

I – (время мс) Временное смещение. Позволяет задавать время смещения выполнения M62/63 в мс.

J -(позиция.) Положение смещения. Позволяет задавать положение смещения выполнения M62/63. (Только XYZ)

K- (коэф.) Коэффициент смещения. Позволяет задавать положение смещения выполнения M62/63 через коэффициент.

Причём смещение можно задавать как от начала последующего элемента (в этом случае смещения положительные), так и от его конца (в этом случае смещения отрицательные).

Можно переписать предыдущий пример так

G0 X0    
M62 P1 K0.5  //устанавливаем задание что включить 1 выход(g кода) когда выполним половину. Или останется половина (К=-0.5)
G1 X200 F500

Также можно включать несколько заданий в один элемент. Например

G0 X0    
M62 P1 K0.5    //устанавливаем задание что включить 1 выход(g кода) когда выполним половину.
M63 P1 K-0.25  //устанавливаем задание что выключить 1 выход(g кода) когда до конца останется 25%
G1 X200 F500

Также имеется поддержка M64/65, которые включают и выключают выходы мгновенно.

Видео с пояснениями:

https://youtu.be/YbT3y57G2Ck