Исходный код вики Поочерёдное управление несколькими двигателями, подключенными к оси
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{success title="**Внимание!**"}} | ||
| 2 | Перед началом работы убедитесь в наличии активной опции "Поочередное управление несколькими двигателями, подключенными к оси". | ||
| 3 | {{/success}} | ||
| 4 | |||
| 5 | {{error title="**Внимание!**"}} | ||
| 6 | Для работы необходима опция "Создание и редактирование макросов" или "Автоматическая смена инструмента". | ||
| 7 | {{/error}} | ||
| 8 | |||
| 9 | Данная функция позволяет отключать и подключать каждый из двигателей, назначенных на определённую ось (или несколько осей). Рассмотрим ситуацию, когда необходимо управлять станком с двумя суппортами, каждый из которых приводится в движение своим двигателем по оси Z. В этом случае можно модифицировать макрос (% style="color:#8d69b2" %)**M6**(%%) таким образом, чтобы при смене инструмента сначала старый отводился на безопасную высоту и затем производилось переключение активных двигателей. | ||
| 10 | |||
| 11 | В функции SwitchMotors(0, 1) первый параметр - индекс двигателя (начиная с нуля), который необходимо отключить. Второй параметр - индекс двигателя, который необходимо включить. Таким образом при выполнении данной команды будет произведено переключение активного двигателя с первого на второй по списку в меню "Настройки" → "Двигатели". | ||
| 12 | |||
| 13 | {{code language="lua" title="**Пример макроса M6**"}} | ||
| 14 | function m6() | ||
| 15 | if (Is_THC_Mode() or Is_Oxy_Mode()) then | ||
| 16 | return | ||
| 17 | end | ||
| 18 | |||
| 19 | local toolSlot = GetSelectedToolSlot() | ||
| 20 | local previousToolSlot = GetToolSlot() | ||
| 21 | |||
| 22 | ExecuteMDI("G53 G0 Z0") | ||
| 23 | |||
| 24 | if (toolSlot == 2) then | ||
| 25 | SwitchMotors(0,1) | ||
| 26 | else | ||
| 27 | SwitchMotors(1,0) | ||
| 28 | end | ||
| 29 | |||
| 30 | local delta = 200 -- расстояние между двумя "головами" | ||
| 31 | |||
| 32 | if (toolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
| 33 | local CurrX = AxisGetPos(Axis.X) | ||
| 34 | local CurrY = AxisGetPos(Axis.Y) | ||
| 35 | local NewY = CurrY - delta | ||
| 36 | ExecuteMDI("G55") | ||
| 37 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
| 38 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
| 39 | elseif (previousToolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
| 40 | local CurrX = AxisGetPos(Axis.X) | ||
| 41 | local CurrY = AxisGetPos(Axis.Y) | ||
| 42 | local NewY = CurrY + delta | ||
| 43 | ExecuteMDI("G54") | ||
| 44 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
| 45 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
| 46 | end | ||
| 47 | |||
| 48 | SetToolSlot(toolSlot) | ||
| 49 | end | ||
| 50 | {{/code}} | ||
| 51 | |||
| 52 | (% class="auto-cursor-target" %) | ||
| 53 | [[Скачать пример макроса M6>>attach:M6.zip]] | ||
| 54 | |||
| 55 | (% class="auto-cursor-target" %) | ||
| 56 | После того, как работа вторым инструментом завершена, переключиться на использование первого суппорта можно командой (% style="color:#8d69b2" %)**M6**(%%)** T1**, в которой будет вызвана функция SwitchMotors(1,0). При этом будет автоматически восстановлена машинная координата по оси Z на значение, которое она имела, когда был активен первый двигатель. | ||
| 57 | |||
| 58 | (% class="auto-cursor-target" %) | ||
| 59 | При необходимости управления отключением/подключением каждого двигателя по отдельности можно использовать функции MotorDisable и MotorEnable, принимающие один параметр - индекс двигателя. | ||
| 60 | |||
| 61 | (% class="auto-cursor-target" %) | ||
| 62 | Для полноценного использования возможностей опции необходимо: | ||
| 63 | |||
| 64 | 1. Приобрести и активировать опцию, применить лицензию в PUMOTIX ([[как применить лицензию?>>doc:Руководство пользователя.Ответы на типовые вопросы.Как применить лицензию?.WebHome]]). | ||
| 65 | 1. Настроить несколько двигателей на одну ось ([[подробнее о настройке двигателей>>doc:Руководство пользователя.Настройка ПО.Настройка двигателей.WebHome]]). Функция может быть применена для любого количества осей.((( | ||
| 66 | (% style="text-align:center;" %) | ||
| 67 | [[image:/xwiki/bin/download/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B9/%D0%9F%D0%BE%D0%BE%D1%87%D0%B5%D1%80%D1%91%D0%B4%D0%BD%D0%BE%D0%B5%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8%2C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D0%BA%20%D0%BE%D1%81%D0%B8/WebHome/2020-12-03-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8.png?width=925&height=500&rev=2.2||alt="2020-12-03-Настройки.png" data-xwiki-image-style-alignment="center" height="500" width="925"]] | ||
| 68 | ))) | ||
| 69 | 1. Модифицировать или написать новый макрос. | ||
| 70 | 1. Использовать макрос для переключения между двигателями. Для этого воспользуйтесь строкой для ввода G-кода, кнопкой на панели макросов или специализированной кнопкой интерфейса. | ||
| 71 | 1. Мониторить состояние системы на вкладке "Диагностика", где вы можете увидеть все настроенные Вами двигатели.((( | ||
| 72 | (% style="text-align:center;" %) | ||
| 73 | [[image:/xwiki/bin/download/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B9/%D0%9F%D0%BE%D0%BE%D1%87%D0%B5%D1%80%D1%91%D0%B4%D0%BD%D0%BE%D0%B5%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8%2C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D0%BA%20%D0%BE%D1%81%D0%B8/WebHome/2020-12-03%2016_20_21-PUMOTIX.png?width=420&height=400&rev=1.2||alt="2020-12-03 16_20_21-PUMOTIX.png" data-xwiki-image-style-alignment="center" height="400" width="420"]] | ||
| 74 | ))) | ||
| 75 | |||
| 76 | Также при активной опции на вкладке диагностика станет доступна кнопка для включения всех настроенных двигателей. | ||
| 77 | |||
| 78 | (% style="text-align:center;" %) | ||
| 79 | [[image:/xwiki/bin/download/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B9/%D0%9F%D0%BE%D0%BE%D1%87%D0%B5%D1%80%D1%91%D0%B4%D0%BD%D0%BE%D0%B5%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC%D0%B8%20%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8%2C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D0%BA%20%D0%BE%D1%81%D0%B8/WebHome/2020-12-03%2016_20_36-PUMOTIX.png?width=298&height=200&rev=2.2||alt="2020-12-03 16_20_36-PUMOTIX.png" data-xwiki-image-style-alignment="center" height="200" width="298"]] |