Поочерёдное управление несколькими двигателями, подключенными к оси

Редактировал(а) Edgar Allan Poe 2024/02/22 11:35

Внимание!

Перед началом работы убедитесь в наличии активной опции "Поочередное управление несколькими двигателями, подключенными к оси".

Внимание!

Для работы необходима опция "Создание и редактирование макросов" или "Автоматическая смена инструмента".

Данная функция позволяет отключать и подключать каждый из двигателей, назначенных на определённую ось (или несколько осей). Рассмотрим ситуацию, когда необходимо управлять станком с двумя суппортами, каждый из которых приводится в движение своим двигателем по оси Z. В этом случае можно модифицировать макрос M6 таким образом, чтобы при смене инструмента сначала старый отводился на безопасную высоту и затем производилось переключение активных двигателей.

В функции SwitchMotors(0, 1) первый параметр — индекс двигателя (начиная с нуля), который необходимо отключить. Второй параметр — индекс двигателя, который необходимо включить. Таким образом при выполнении данной команды будет произведено переключение активного двигателя с первого на второй по списку в меню "Настройки" → "Двигатели".

Пример макроса M6
function m6()
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

После того как работа вторым инструментом завершена, переключиться на использование первого суппорта можно командой M6 T1, в которой будет вызвана функция SwitchMotors(1,0). При этом будет автоматически восстановлена машинная координата по оси Z на значение, которое она имела, когда был активен первый двигатель.

При необходимости управления отключением/подключением каждого двигателя по отдельности можно использовать функции MotorDisable и MotorEnable, принимающие один параметр — индекс двигателя.

Для полноценного использования возможностей опции необходимо:

  1. Приобрести и активировать опцию, применить лицензию в PUMOTIX (как применить лицензию?).
  2. Настроить несколько двигателей на одну ось (подробнее о настройке двигателей). Функция может быть применена для любого количества осей.2020-12-03-Настройки.png
  3. Модифицировать или написать новый макрос.
  4. Использовать макрос для переключения между двигателями. Для этого воспользуйтесь строкой для ввода G-кода, кнопкой на панели макросов или специализированной кнопкой интерфейса.
  5. Мониторить состояние системы на вкладке "Диагностика", где вы можете увидеть все настроенные Вами двигатели.2020-12-03 16_20_21-PUMOTIX.png

Также при активной опции на вкладке диагностика станет доступна кнопка для включения всех настроенных двигателей.

2020-12-03 16_20_36-PUMOTIX.png

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