Поочерёдное управление несколькими двигателями, подключенными к оси
Данная функция позволяет отключать и подключать каждый из двигателей, назначенных на определённую ось (или несколько осей). Рассмотрим ситуацию, когда необходимо управлять станком с двумя суппортами, каждый из которых приводится в движение своим двигателем по оси Z. В этом случае можно модифицировать макрос M6 таким образом, чтобы при смене инструмента сначала старый отводился на безопасную высоту и затем производилось переключение активных двигателей.
В функции SwitchMotors(0, 1) первый параметр — индекс двигателя (начиная с нуля), который необходимо отключить. Второй параметр — индекс двигателя, который необходимо включить. Таким образом при выполнении данной команды будет произведено переключение активного двигателя с первого на второй по списку в меню "Настройки" → "Двигатели".
if (Is_THC_Mode() or Is_Oxy_Mode()) then
return
end
local toolSlot = GetSelectedToolSlot()
local previousToolSlot = GetToolSlot()
ExecuteMDI("G53 G0 Z0")
if (toolSlot == 2) then
SwitchMotors(0,1)
else
SwitchMotors(1,0)
end
local delta = 200 -- расстояние между двумя "головами"
if (toolSlot == 2 and toolSlot ~= previousToolSlot) then
local CurrX = AxisGetPos(Axis.X)
local CurrY = AxisGetPos(Axis.Y)
local NewY = CurrY - delta
ExecuteMDI("G55")
ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY))
ExecuteMDI("G90 G0 Y"..str(CurrY))
elseif (previousToolSlot == 2 and toolSlot ~= previousToolSlot) then
local CurrX = AxisGetPos(Axis.X)
local CurrY = AxisGetPos(Axis.Y)
local NewY = CurrY + delta
ExecuteMDI("G54")
ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY))
ExecuteMDI("G90 G0 Y"..str(CurrY))
end
SetToolSlot(toolSlot)
end
После того как работа вторым инструментом завершена, переключиться на использование первого суппорта можно командой M6 T1, в которой будет вызвана функция SwitchMotors(1,0). При этом будет автоматически восстановлена машинная координата по оси Z на значение, которое она имела, когда был активен первый двигатель.
При необходимости управления отключением/подключением каждого двигателя по отдельности можно использовать функции MotorDisable и MotorEnable, принимающие один параметр — индекс двигателя.
Для полноценного использования возможностей опции необходимо:
- Приобрести и активировать опцию, применить лицензию в PUMOTIX (как применить лицензию?).
- Настроить несколько двигателей на одну ось (подробнее о настройке двигателей). Функция может быть применена для любого количества осей.
- Модифицировать или написать новый макрос.
- Использовать макрос для переключения между двигателями. Для этого воспользуйтесь строкой для ввода G-кода, кнопкой на панели макросов или специализированной кнопкой интерфейса.
- Мониторить состояние системы на вкладке "Диагностика", где вы можете увидеть все настроенные Вами двигатели.
Также при активной опции на вкладке диагностика станет доступна кнопка для включения всех настроенных двигателей.

Кнопка "Сделать все двигатели активными"