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.

enter image description here

Приступаем к программированию преобразователя частоты, и выставляем следующие параметры связи:

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.

enter image description here

Выставляем следующие настройки связи:

  • Порт: 269 (такой же как у нашей ModBus платы)

  • Baud: 19200 (скорость передачи данных)

  • Parity: 0 (контроль четности отсутствует, первый стоповый бит)

Данный блок при включении контроллера, инициализирует настройки связи, и записывает данные в %DB2 "MB_MASTER_DB".

enter image description here

MB_ADDR – адрес шины преобразователя частоты

MODE: 0 – режим чтения

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

enter image description here

Для того, чтобы определить адрес требуемого регистра, необходимо воспользоваться формулой:

Номер регистра = Номер параметра х 10

Параметр 16-02 будет иметь адрес 1602x10 =16020

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

Результаты поиска: 0