Исходный код вики Поочерёдное управление несколькими двигателями, подключенными к оси
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
2 | ((( | ||
3 | " data-xwiki-parameter-name="title" class="xwiki-metadata-container">**Внимание!** | ||
4 | ))) | ||
5 | |||
6 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
7 | ((( | ||
8 | " class="xwiki-metadata-container">Перед началом работы убедитесь в наличии активной опции "Поочередное управление несколькими двигателями, подключенными к оси". | ||
9 | ))) | ||
10 | |||
11 | {{success title="**Внимание!**"}} | ||
12 | Перед началом работы убедитесь в наличии активной опции "Поочередное управление несколькими двигателями, подключенными к оси". | ||
13 | {{/success}} | ||
14 | |||
15 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
16 | ((( | ||
17 | " data-xwiki-parameter-name="title" class="xwiki-metadata-container">**Внимание!** | ||
18 | ))) | ||
19 | |||
20 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
21 | ((( | ||
22 | " class="xwiki-metadata-container">Для работы необходима опция "Создание и редактирование макросов" или "Автоматическая смена инструмента". | ||
23 | ))) | ||
24 | |||
25 | {{error title="**Внимание!**"}} | ||
26 | Для работы необходима опция "Создание и редактирование макросов" или "Автоматическая смена инструмента". | ||
27 | {{/error}} | ||
28 | |||
29 | Данная функция позволяет отключать и подключать каждый из двигателей, назначенных на определённую ось (или несколько осей). Рассмотрим ситуацию, когда необходимо управлять станком с двумя суппортами, каждый из которых приводится в движение своим двигателем по оси Z. В этом случае можно модифицировать макрос (% style="color:#8d69b2" %)**M6**(%%) таким образом, чтобы при смене инструмента сначала старый отводился на безопасную высоту и затем производилось переключение активных двигателей. | ||
30 | |||
31 | В функции SwitchMotors(0, 1) первый параметр - индекс двигателя (начиная с нуля), который необходимо отключить. Второй параметр - индекс двигателя, который необходимо включить. Таким образом при выполнении данной команды будет произведено переключение активного двигателя с первого на второй по списку в меню "Настройки" → "Двигатели". | ||
32 | |||
33 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
34 | ((( | ||
35 | " data-xwiki-parameter-name="title" class="xwiki-metadata-container">**Пример макроса M6** | ||
36 | ))) | ||
37 | |||
38 | {{code language="lua" title="**Пример макроса M6**"}} | ||
39 | function m6() | ||
40 | if (Is_THC_Mode() or Is_Oxy_Mode()) then | ||
41 | return | ||
42 | end | ||
43 | |||
44 | local toolSlot = GetSelectedToolSlot() | ||
45 | local previousToolSlot = GetToolSlot() | ||
46 | |||
47 | ExecuteMDI("G53 G0 Z0") | ||
48 | |||
49 | if (toolSlot == 2) then | ||
50 | SwitchMotors(0,1) | ||
51 | else | ||
52 | SwitchMotors(1,0) | ||
53 | end | ||
54 | |||
55 | local delta = 200 -- расстояние между двумя "головами" | ||
56 | |||
57 | if (toolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
58 | local CurrX = AxisGetPos(Axis.X) | ||
59 | local CurrY = AxisGetPos(Axis.Y) | ||
60 | local NewY = CurrY - delta | ||
61 | ExecuteMDI("G55") | ||
62 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
63 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
64 | elseif (previousToolSlot == 2 and toolSlot ~= previousToolSlot) then | ||
65 | local CurrX = AxisGetPos(Axis.X) | ||
66 | local CurrY = AxisGetPos(Axis.Y) | ||
67 | local NewY = CurrY + delta | ||
68 | ExecuteMDI("G54") | ||
69 | ExecuteMDI("G10L20P0 X"..str(CurrX).." Y"..str(NewY)) | ||
70 | ExecuteMDI("G90 G0 Y"..str(CurrY)) | ||
71 | end | ||
72 | |||
73 | SetToolSlot(toolSlot) | ||
74 | end | ||
75 | {{/code}} | ||
76 | |||
77 | [[Скачать пример макроса M6>>attach:M6.zip]] | ||
78 | |||
79 | После того, как работа вторым инструментом завершена, переключиться на использование первого суппорта можно командой (% style="color:#8d69b2" %)**M6**(%%)** T1**, в которой будет вызвана функция SwitchMotors(1,0). При этом будет автоматически восстановлена машинная координата по оси Z на значение, которое она имела, когда был активен первый двигатель. | ||
80 | |||
81 | При необходимости управления отключением/подключением каждого двигателя по отдельности можно использовать функции MotorDisable и MotorEnable, принимающие один параметр - индекс двигателя. | ||
82 | |||
83 | Для полноценного использования возможностей опции необходимо: | ||
84 | |||
85 | 1. Приобрести и активировать опцию, применить лицензию в PUMOTIX ([[как применить лицензию?>>doc:Руководство пользователя.Ответы на типовые вопросы.Как применить лицензию?.WebHome]]). | ||
86 | 1. Настроить несколько двигателей на одну ось ([[подробнее о настройке двигателей>>doc:Руководство пользователя.Настройка ПО.Настройка двигателей.WebHome]]). Функция может быть применена для любого количества осей.[[image:2020-12-03-Настройки.png||data-xwiki-image-style-alignment="center"]]((( | ||
87 | |||
88 | ))) | ||
89 | 1. Модифицировать или написать новый макрос. | ||
90 | 1. Использовать макрос для переключения между двигателями. Для этого воспользуйтесь строкой для ввода G-кода, кнопкой на панели макросов или специализированной кнопкой интерфейса. | ||
91 | 1. Мониторить состояние системы на вкладке "Диагностика", где вы можете увидеть все настроенные Вами двигатели.[[image:2020-12-03 16_20_21-PUMOTIX.png||data-xwiki-image-style-alignment="center" height="300" width="315"]](% title="Нажмите и растяните" %) | ||
92 | |||
93 | Также при активной опции на вкладке диагностика станет доступна кнопка для включения всех настроенных двигателей.[[image:2020-12-03 16_20_36-PUMOTIX.png||data-xwiki-image-style-alignment="center" height="201" width="300"]] |