Изменения документа Управление шпинделем по Modbus на примере Toshiba VF-S11 и платы расширения PLCM-B1-G2
Редактировал(а) Edgar Allan Poe 2024/02/29 12:05
Сводка
-
Свойства страницы (3 изменено, 0 добавлено, 0 удалено)
-
Вложения (0 изменено, 0 добавлено, 5 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,0 @@ 1 -Руководство пользователя.Modbus.WebHome - Автор документа
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Knetyaga1 +XWiki.abolgov - Содержимое
-
... ... @@ -1,8 +1,8 @@ 1 -Для управления шпинделем по Modbus через плату расширения 1 +Для управления шпинделем по Modbus через плату расширения PLCM-B1-G2 Вам понадобится частотный преобразователь (далее ЧП) с поддержкой управления по Modbus RTU, например Toshiba VF-S11. 2 2 3 3 Порядок настройки управления шпинделем по Modbus следующий: 4 4 5 -1. Настроить ЧП на режим управления по протоколу Modbus 5 +1. Настроить ЧП на режим управления по протоколу Modbus RTU (RS-485) и запомнить настройки COM-порта в ЧП (количество бит в секунду, биты данных, четность и стоповые биты). 6 6 7 7 Пример для Toshiba VF-S11. 8 8 ... ... @@ -50,24 +50,22 @@ 50 50 ))) 51 51 52 52 (% style="margin-left: 30.0px;" %) 53 -2. Подключить ЧП к 53 +2. Подключить ЧП к плате расширения PLCM-B1-G2 по интерфейсу RS-485. 54 54 55 55 (% style="margin-left: 30.0px;" %) 56 -3. Приобрести опцию "[[Работа по протоколу MODBUS>>url:http://pumotix.ru/#soft||shape="rect"]]" или активировать пробный период для данной опции в меню "Конфигурация "→"Менеджер лицензий"→"Общие опции".56 +3. Приобрести опцию "[[Работа по протоколу MODBUS>>url:http://pumotix.ru/#soft||shape="rect"]]" или активировать пробный период для данной опции в меню "Конфигурация → Менеджер лицензий → Общие опции". 57 57 58 58 (% style="margin-left: 30.0px;" %) 59 -4. Включить и настроить Modbus в меню "Конфигурация "→"Настройка Modbus".59 +4. Включить и настроить Modbus в меню "Конфигурация → Настройка Modbus". 60 60 61 61 Создайте нового Modbus-мастера. Номер COM-порта - PLCM. Остальные настройки должны быть в точности такими же, как в ЧП (на скриншоте пример стандартной настройки COM-порта Toshiba VF-S11). 62 62 63 -(% style="text-align:center" %) 64 -[[image:attach:master_plcm.png||height="300" width="366"]] 63 +[[image:attach:master_plcm.png]] 65 65 66 -Для управления ЧП и считывания статусов с ЧП необходимо добавить регистры. Например, для 65 +Для управления ЧП и считывания статусов с ЧП необходимо добавить регистры. Например, для Toshiba VF-S11 необходимо настроить регистры с именами **SpindleMode**, **SpindleRPM** и **SpindleStatus**. 67 67 68 68 Рекомендуем использовать именно эти названия, так как в дальнейшем к регистрам будет обращение из фоновых операций по их именам. 69 69 70 -(% class="wrapped" %) 71 71 |=((( 72 72 Название 73 73 )))|=((( ... ... @@ -113,20 +113,33 @@ 113 113 Input 114 114 ))) 115 115 116 -{{success}} 114 +\\ 115 + 116 +{{tip}} 117 117 Номера регистров необходимо задавать в виде десятеричных значений. 118 -{{/ success}}118 +{{/tip}} 119 119 120 +(% class="auto-cursor-target" %) 121 +\\ 122 + 120 120 {{note}} 121 121 В инструкции на частотный преобразователь данные значения могут быть указаны в HEX (шестнадцатеричном виде), например, 0x1001, 0x1002. 122 122 {{/note}} 123 123 124 124 (% style="margin-left: 30.0px;" %) 125 -5. Создать новую фоновую операцию (макрос) через [[окно управлениямакросами>>doc:Руководствопользователя.Описание M-кодов.Управлениемакросамиифоновыми операциями.WebHome]].128 +5. Создать новую фоновую операцию (макрос) в папке %userprofile%\local settings\application data\purelogic\pumotix\server\macros\background 126 126 130 +Данный путь можно скопировать в буфер обмена и вставить в адресную строку проводника Windows. 131 + 132 +Еще один способ попасть в рабочий каталог PUMOTIX: "меню Пуск → Программы → PUMOTIX → Working directory → server → macros → background" 133 + 134 +{{tip}} 135 +Если папки background не существует, то нужно создать ее в папке macros. 136 +{{/tip}} 137 + 127 127 Основная задача фонового макроса - отслеживать текущее состояние и обороты шпинделя и отправлять значения в частотный преобразователь по Modbus. 128 128 129 -Пример фонового макроса добавить всписокфоновыхопераций.140 +Пример фонового макроса **modbus_spindle.bm** для управления шпинделем по ModBus для ЧП Toshiba VF-S11 размещен во вложении. Данный файл нужно сохранить в каталог background. 130 130 131 131 [[attach:modbus_spindle.bm]] 132 132 ... ... @@ -135,9 +135,13 @@ 135 135 {{/note}} 136 136 137 137 (% style="margin-left: 30.0px;" %) 138 -6. Включить фоновую операцию. Убедиться, что операция стартовала и работает нормально. Об этом будет свидетельствовать зеленый индикатор справа от названия операции. 149 +6. Включить фоновую операцию в меню "Конфигурация → Фоновые операции". Убедиться, что операция стартовала и работает нормально. Об этом будет свидетельствовать зеленый индикатор справа от названия операции. 139 139 140 -(% style="text-align:center" %) 141 -[[image:attach:2021-11-29 14_18_03-Управление макросами.png||height="500" width="680"]] 151 +[[image:attach:image2019-11-5_17-8-45.png]] 142 142 143 143 Если все настроено правильно, то шпиндель теперь должен включаться и выключаться. При изменении оборотов шпинделя в PUMOTIX они, соответственно, должны изменяться и на ЧП. 154 + 155 +(% class="auto-cursor-target" %) 156 +\\ 157 + 158 +\\
- 2021-11-29 14_18_03-Управление макросами.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.XWikiGuest - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -28.5 KB - Содержимое
- Macros_Manager_wndw.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Knetyaga - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -26.0 KB - Содержимое
- master_plcm.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.XWikiGuest - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -9.4 KB - Содержимое
- modbus_master_en.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Knetyaga - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -9.1 KB - Содержимое
- modbus_spindle.bm
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.XWikiGuest - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -1.3 KB - Содержимое
-
... ... @@ -1,52 +1,0 @@ 1 -function handle() 2 - local desired_rpm = GetCurSpindleRPM() 3 - if (not IsRealDeviceConnected()) then 4 - desired_rpm = 0 5 - end 6 - 7 - local value, is_online = ReadModbusRegisterUpdated("SpindleStatus") 8 - Sleep(30) 9 - local mode_updated = is_online and check_mode(value, desired_rpm) 10 - 11 - if (prev_rpm == nil or prev_rpm ~= desired_rpm or not mode_updated) then 12 - if (send_spindle_control_command(desired_rpm)) then 13 - prev_rpm = desired_rpm 14 - end 15 - end 16 -end 17 - 18 -function send_spindle_control_command(rpm) 19 - local mode = get_mode(rpm) 20 - 21 - local Hz = math.floor(math.abs(rpm) / 60 * 100 + 0.5) 22 - 23 - local success_1 = WriteModbusRegister("SpindleMode", mode) 24 - Sleep(30) 25 - local success_2 = WriteModbusRegister("SpindleRPM", Hz) 26 - return success_1 and success_2 27 -end 28 - 29 -function get_mode(rpm) 30 - local mode = 49152 -- Stop 31 - if (rpm > 0) then 32 - mode = 50176 -- Forward 33 - elseif (rpm < 0) then 34 - mode = 50688 -- Reverse 35 - end 36 - 37 - return mode 38 -end 39 - 40 -function check_mode(status, rpm) 41 - if (rpm > 0) then 42 - return is_bit_assigned(status, 10) and not is_bit_assigned(status, 9) -- Forward 43 - elseif (rpm < 0) then 44 - return is_bit_assigned(status, 10) and is_bit_assigned(status, 9) -- Reverse 45 - else 46 - return not is_bit_assigned(status, 10) -- Stop 47 - end 48 -end 49 - 50 -function is_bit_assigned(value, index) 51 - return value & (1 << index) ~= 0 52 -end