Исходный код вики Поочерёдное управление несколькими двигателями, подключенными к оси
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | (% class="auto-cursor-target" %) | ||
2 | \\ | ||
3 | |||
4 | {{tip title="Внимание!"}} | ||
5 | Перед началом работы убедитесь в наличии активной опции "Поочередное управление несколькими двигателями, подключенными к оси". | ||
6 | {{/tip}} | ||
7 | |||
8 | (% class="auto-cursor-target" %) | ||
9 | \\ | ||
10 | |||
11 | {{warning title="Внимание!"}} | ||
12 | Для работы необходима опция "Создание и редактирование макросов" или "Автоматическая смена инструмента". | ||
13 | {{/warning}} | ||
14 | |||
15 | Данная функция позволяет отключать и подключать каждый из двигателей, назначенных на определённую ось (или несколько осей). Рассмотрим ситуацию, когда необходимо управлять станком с двумя суппортами, каждый из которых приводится в движение своим двигателем по оси Z. В этом случае можно модифицировать макрос M6 таким образом, чтобы при смене инструмента сначала старый отводился на безопасную высоту и затем производилось переключение активных двигателей. | ||
16 | |||
17 | В функции SwitchMotors(0, 1) первый параметр - индекс двигателя (начиная с нуля), который необходимо отключить. Второй параметр - индекс двигателя, который необходимо включить. Таким образом при выполнении данной команды будет произведено переключение активного двигателя с первого на второй по списку в меню Настройки → Двигатели. | ||
18 | |||
19 | {{code title="Пример макроса M6"}} | ||
20 | function m6() | ||
21 | if (Is_THC_Mode() or Is_Oxy_Mode()) then | ||
22 | return | ||
23 | end | ||
24 | |||
25 | local toolSlot = GetSelectedToolSlot() | ||
26 | local previousToolSlot = GetToolSlot() | ||
27 | |||
28 | ExecuteMDI("G53 G0 Z0") | ||
29 | |||
30 | if (toolSlot == 2) then | ||
31 | SwitchMotors(0,1) | ||
32 | else | ||
33 | SwitchMotors(1,0) | ||
34 | end | ||
35 | |||
36 | local delta = 200 -- расстояние между двумя "головами" | ||
37 | |||
38 | if (toolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
39 | local CurrX = AxisGetPos(Axis.X) | ||
40 | local CurrY = AxisGetPos(Axis.Y) | ||
41 | local NewY = CurrY - delta | ||
42 | ExecuteMDI("G55") | ||
43 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
44 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
45 | elseif (previousToolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
46 | local CurrX = AxisGetPos(Axis.X) | ||
47 | local CurrY = AxisGetPos(Axis.Y) | ||
48 | local NewY = CurrY + delta | ||
49 | ExecuteMDI("G54") | ||
50 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
51 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
52 | end | ||
53 | |||
54 | SetToolSlot(toolSlot) | ||
55 | end | ||
56 | {{/code}} | ||
57 | |||
58 | (% class="auto-cursor-target" %) | ||
59 | [[Скачать пример макроса M6>>attach:PUMPUBLIC.Динамическое отключение/подключение двигателей, привязанных к оси@M6.pm]] | ||
60 | |||
61 | (% class="auto-cursor-target" %) | ||
62 | После того, как работа вторым инструментом завершена, переключиться на использование первого суппорта можно командой M6T1, в которой будет вызвана функция SwitchMotors(1,0). При этом будет автоматически восстановлена машинная координата по оси Z на значение, которое она имела, когда был активен первый двигатель. | ||
63 | |||
64 | (% class="auto-cursor-target" %) | ||
65 | При необходимости управления отключением/подключением каждого двигателя по отдельности можно использовать функции MotorDisable и MotorEnable, принимающие один параметр - индекс двигателя. | ||
66 | |||
67 | (% class="auto-cursor-target" %) | ||
68 | Для полноценного использования возможностей опции необходимо: | ||
69 | |||
70 | 1. Приобрести и активировать опцию, применить лицензию в PUMOTIX ([[как применить лицензию?>>doc:PUMPUBLIC.Руководство пользователя.Ответы на типовые вопросы.Как применить лицензию?.WebHome]]). | ||
71 | 1. Настроить несколько двигателей на одну ось ([[подробнее о настройке двигателей>>doc:Руководство пользователя.Настройка ПО.Настройка двигателей.WebHome]]). Функция может быть применена для любого количества осей. | ||
72 | [[image:attach:2020-12-03-Настройки.png]] | ||
73 | 1. Модифицировать или написать новый макрос. | ||
74 | 1. Использовать макрос для переключения между двигателями. Для этого воспользуйтесь строкой для ввода G-кода, кнопкой на панели макросов или специализированной кнопкой интерфейса. | ||
75 | 1. Мониторить состояние системы на вкладке "Диагностика", где вы можете увидеть все настроенные Вами двигатели. | ||
76 | [[image:attach:2020-12-03 16_20_21-PUMOTIX.png]] | ||
77 | |||
78 | Также при активной опции на вкладке диагностика станет доступна кнопка для включения всех настроенных двигателей. | ||
79 | [[image:attach:2020-12-03 16_20_36-PUMOTIX.png]] |