Изменения документа Управление шпинделем по Modbus на примере Toshiba VF-S11 и платы расширения PLCM-B1-G2
Редактировал(а) Edgar Allan Poe 2024/02/29 12:05
Сводка
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
-
Вложения (2 изменено, 3 добавлено, 1 удалено)
Подробности
- Свойства страницы
-
- Теги
-
... ... @@ -1,0 +1,1 @@ 1 +интерфейс|функционал|опции|макросы|interface|functions|features|macros - Содержимое
-
... ... @@ -6,48 +6,11 @@ 6 6 7 7 Пример для Toshiba VF-S11. 8 8 9 -(% class="wrapped" %) 10 -|=((( 11 -Код функции 12 -)))|=((( 13 -Значение 14 -)))|=((( 15 -Описание 16 -))) 17 -|((( 18 -F800 19 -)))|((( 20 -3 21 -)))|((( 22 -Скорость передачи данных: 9600 бит/с 23 -))) 24 -|((( 25 -F801 26 -)))|((( 27 -1 28 -)))|((( 29 -Проверка на чётность включена 30 -))) 31 -|(% colspan="1" %)(% colspan="1" %) 32 -((( 33 -F802 34 -)))|(% colspan="1" %)(% colspan="1" %) 35 -((( 36 -1 37 -)))|(% colspan="1" %)(% colspan="1" %) 38 -((( 39 -Номер устройства на шине 40 -))) 41 -|(% colspan="1" %)(% colspan="1" %) 42 -((( 43 -F829 44 -)))|(% colspan="1" %)(% colspan="1" %) 45 -((( 46 -1 47 -)))|(% colspan="1" %)(% colspan="1" %) 48 -((( 49 -Протокол связи: Modbus RTU 50 -))) 9 +|=(% style="text-align: center; width: 150px;" %)Код функции|=(% style="text-align: center; width: 100px;" %)Значение|=(% style="text-align:center" %)Описание 10 +|(% style="width:150px" %)F800|(% style="width:100px" %)3|Скорость передачи данных: 9600 бит/с 11 +|(% style="width:150px" %)F801|(% style="width:100px" %)1|Проверка на чётность включена 12 +|(% style="width:150px" %)F802|(% style="width:100px" %)1|Номер устройства на шине 13 +|(% style="width:150px" %)F829|(% style="width:100px" %)1|Протокол связи: Modbus RTU 51 51 52 52 (% style="margin-left: 30.0px;" %) 53 53 2. Подключить ЧП к плате расширения PLCM-B1-G2 по интерфейсу RS-485. ... ... @@ -60,70 +60,25 @@ 60 60 61 61 Создайте нового Modbus-мастера. Номер COM-порта - PLCM. Остальные настройки должны быть в точности такими же, как в ЧП (на скриншоте пример стандартной настройки COM-порта Toshiba VF-S11). 62 62 63 -[[image: attach:master_plcm.png]]26 +[[image:master_plcm.png||data-xwiki-image-style-alignment="center" height="300" width="366"]] 64 64 65 65 Для управления ЧП и считывания статусов с ЧП необходимо добавить регистры. Например, для Toshiba VF-S11 необходимо настроить регистры с именами **SpindleMode**, **SpindleRPM** и **SpindleStatus**. 66 66 67 67 Рекомендуем использовать именно эти названия, так как в дальнейшем к регистрам будет обращение из фоновых операций по их именам. 68 68 69 -(% class="wrapped" %) 70 -|=((( 71 -Название 72 -)))|=((( 73 -Мастер 74 -)))|=((( 75 -Адрес на шине 76 -)))|=((( 77 -Номер регистра 78 -)))|=((( 79 -Тип регистра 80 -))) 81 -|((( 82 -SpindleMode 83 -)))|((( 84 -PLCM 85 -)))|((( 86 -1 87 -)))|((( 88 -64000 89 -)))|((( 90 -Output 91 -))) 92 -|((( 93 -SpindleRPM 94 -)))|((( 95 -PLCM 96 -)))|((( 97 -1 98 -)))|((( 99 -64001 100 -)))|((( 101 -Output 102 -))) 103 -|((( 104 -SpindleStatus 105 -)))|((( 106 -PLCM 107 -)))|((( 108 -1 109 -)))|((( 110 -64769 111 -)))|((( 112 -Input 113 -))) 32 +(% class="non-break" %) 33 +|=(% style="text-align:center" %)Название|=(% style="text-align:center" %)Мастер|=(% style="text-align:center" %)Адрес на шине|=(% style="text-align:center" %)Номер регистра|=(% style="text-align:center" %)Тип регистра 34 +|SpindleMode|PLCM|1|64000|Output 35 +|SpindleRPM|PLCM|1|64001|Output 36 +|SpindleStatus|PLCM|1|64769|Input 114 114 115 -\\ 116 - 117 -{{tip}} 38 +{{success}} 118 118 Номера регистров необходимо задавать в виде десятеричных значений. 119 -{{/ tip}}40 +{{/success}} 120 120 121 -(% class="auto-cursor-target" %) 122 -\\ 123 - 124 -{{note}} 42 +{{warning}} 125 125 В инструкции на частотный преобразователь данные значения могут быть указаны в HEX (шестнадцатеричном виде), например, 0x1001, 0x1002. 126 -{{/n ote}}44 +{{/warning}} 127 127 128 128 (% style="margin-left: 30.0px;" %) 129 129 5. Создать новую фоновую операцию (макрос) через [[окно управления макросами>>doc:Руководство пользователя.Описание M-кодов.Управление макросами и фоновыми операциями.WebHome]]. ... ... @@ -130,17 +130,19 @@ 130 130 131 131 Основная задача фонового макроса - отслеживать текущее состояние и обороты шпинделя и отправлять значения в частотный преобразователь по Modbus. 132 132 133 -Пример фонового макроса **modbus_spindle.bm** для управления шпинделем по ModBus для ЧП Toshiba VF-S11 размещен во вложении. Данный файл нужно добавить в список фоновых операций. 51 +Пример [[фонового макроса>>doc:Руководство пользователя.Описание фоновых операций.Создание фоновой операции.WebHome]] **modbus_spindle.bm** для управления шпинделем по ModBus для ЧП Toshiba VF-S11 размещен во вложении. Данный файл нужно добавить в список фоновых операций. 134 134 135 -[[attach:modbus_spindle.bm]] 53 +(% style="text-align: center;" %) 54 +**[[Скачать фоновую операцию>>attach:modbus_spindle.zip]]** 136 136 137 -{{n ote}}56 +{{warning}} 138 138 Обращение к регистрам Modbus из макросов осуществляется по имени Modbus-регистра с учетом регистра! Например, **SpindleRPM** и **SpindleRpm** - это разные регистры. 139 -{{/n ote}}58 +{{/warning}} 140 140 141 141 (% style="margin-left: 30.0px;" %) 142 142 6. Включить фоновую операцию. Убедиться, что операция стартовала и работает нормально. Об этом будет свидетельствовать зеленый индикатор справа от названия операции. 143 143 144 -[[image:attach:2021-11-29 14_18_03-Управление макросами.png]] 63 +(% style="margin-left: 30.0px;" %) 64 +[[image:2021-11-29 14_18_03-Управление макросами.png||data-xwiki-image-style-alignment="center" height="500" width="680"]] 145 145 146 146 Если все настроено правильно, то шпиндель теперь должен включаться и выключаться. При изменении оборотов шпинделя в PUMOTIX они, соответственно, должны изменяться и на ЧП.
- 2021-11-29 14_18_03-Управление макросами.png
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. XWikiGuest1 +XWiki.Knetyaga - Размер
-
... ... @@ -1,1 +1,1 @@ 1 -28. 5KB1 +28.0 KB - Содержимое
- master_plcm.png
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. XWikiGuest1 +XWiki.Knetyaga - Размер
-
... ... @@ -1,1 +1,1 @@ 1 -9. 4KB1 +9.9 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
- Macros_Manager_wndw.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Knetyaga - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +26.0 KB - Содержимое
- modbus_master_en.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Knetyaga - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +9.1 KB - Содержимое
- modbus_spindle.zip
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Knetyaga - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +672 bytes - Содержимое