Modbus RTU. Управление пч Danfoss через plc Siemens S7-1200
Для того, чтобы осуществлять управление преобразователем частоты Danfoss VLT Micro Drive FC-051 по протоколу Modbus, в программируемый логический контроллер Siemens Simatic S7-1200 6ES7215-1HG40-0XB0 вставляем плату связи RS-485 6ES7241-1CH30-1XB0, либо подключаем Модуль связи RS-485 6ES7241-1CH32-0XB0.

Приступаем к программированию преобразователя частоты, и выставляем следующие параметры связи:
| 8-30 [2] | Протокол | Modbus RTU |
|---|---|---|
| 8-31 [1...247] | Адрес | Диапазон шины Modbus: 1-247 |
| 8-32 [3] | Cкорость передачи данных порта ПЧ | 19200 бод, Если выбрана шина Modbus в пар. 8-30 |
| 8-33 [2] | Четность порта ПЧ | Контроль четности отсутствует (1 стоповый бит) |
Далее создаем функциональный блок и добавляем MB_COMM_LOAD: Configure port on the PtP module for Modbus RTU.

Выставляем следующие настройки связи:
-
Порт: 269 (такой же как у нашей ModBus платы)
-
Baud: 19200 (скорость передачи данных)
-
Parity: 0 (контроль четности отсутствует, первый стоповый бит)
Данный блок при включении контроллера, инициализирует настройки связи, и записывает данные в %DB2 "MB_MASTER_DB".

MB_ADDR – адрес шины преобразователя частоты
MODE: 0 – режим чтения
DATA_ADDR – формат записи считываемого регистра преобразователя частоты VLT Micro Drive, параметр 16-02 % Задание в процентах (Руководство по программированию преобразователя частоты Danfoss VLT Micro Drive).

Для того, чтобы определить адрес требуемого регистра, необходимо воспользоваться формулой:
Номер регистра = Номер параметра х 10
Параметр 16-02 будет иметь адрес 1602x10 =16020

Для чтения данного параметра используется Modbus функция 03 (чтение регистров), согласно справки данного блока в Tia Portal, запись адреса должна быть такая: 416020.

Цифра «4» ставится впереди, так как мы читаем слова Read Holding Registers.

Порядок следования байтов в частотном преобразователе и контроллере не совпадает, мы получаем перевернутое значение, поэтому и используем блок SHR, чтобы поменять слова местами.

Далее следует отмасштабировать полученное значение, перевести из целочисленного типа данных в вещественный.

В данном случаем, получившийся результат нужно разделить на 10, что и будет соответствовать численному значению параметра 16-02 в частотном преобразователе.

Видеоролик с реализацией проекта: