Версия драйвера 3.5.12.40
Для работы сервера Modbus RTU в проект программы контроллера необходимо добавить устройство Mega12NW_mbRTU_server, которое устанавливается в репозиторий устройств с помощью файла Mega12NW_mbRTU_server.devdesc.xml. В настройках соотнесения выбрать Вкл.2 (всегда в задаче цикла шины), для постоянного выполнения программы драйвера.
В драйвере поддерживается работа по следующим типам данных:
Под каждый тип выделено по 1024 адреса. Для передачи данных из драйвера в программу CoDeSys используются Write_Coils и Write_Holding_Registers. Соответсвенно для передачи данных из CoDeSys в драйвер используются остальные четрые типа.
Для настройки COM-портов необходимо использовать следующие переменные:
Настройки портов по умолчанию:
Baudrate – 115200 бит/c, Parity – 0 (None), Data bits – 8, Stop bits – 1, Slave ID – 3.
Версия драйвера 3.5.12.41
Начиная с версии 3.5.12.41 работа с Modbus RTU сервером осуществляется через драйвер последовательного порта (см. Работа с драйвером последовательного порта в CoDeSys 3.5).
Для работы с Modbus RTU Slave необходимо в проект программы контроллера добавить устройство Mega12NW_Modbus_RTU_Slave, которое устанавливается в репозиторий устройств с помощью файла Mega12NW_Modbus_RTU_Slave.devdesc.xml. В настройках соотнесения выбрать Вкл.2 (всегда в задаче цикла шины) для постоянного выполнения программы драйвера.
Для добавления сервера в проект необходимо в программе объявить переменную типа DWORD как экземпляр элемента массива MODBUS_RTU_SERVER_V3_5_12_41 из библиотеки Mega12NW_ModbusRTU_Server, и привязать её к каналу ModBusRTUSlave во вкладке «Соотнесение входов/выходов» драйвера (Рисунок 3.7.9.2).
Далее необходимо объявить экземпляр функционального блока SET_MODBUS_ADDRESS_OFFSETS с соответствующими входными данными:
Для добавления N регистров в сервер необходимо объявить массив размера N функциональных блоков соответствующего типа (mbRTU_ADD_COIL_STATUS_REG, mbRTU_ADD_INPUT_STATUS_REG, mbRTU_ADD_HOLDING_REG или mbRTU_ADD_INPUT_REG). Во входных данных в slave_index указать индекс сервера.
На рисунке 3.7.9.1 представлен пример объявления Modbus RTU сервера с 1000 регистров каждого типа, с Modbus адресом 15.
Рисунок 3.7.9.1 – Добавление Modbus RTU сервера
Рисунок 3.7.9.2 – Привязка сервера к каналу драйвера
Для того чтобы обратиться к значению регистра, необходимо использовать атрибут value объявленного ФБ (Рисунок 3.7.9.3).
Рисунок 3.7.9.3 – Пример записи в Holding и Input регистры
Версия драйвера 3.5.12.42
Работа с Modbus RTU Slave осуществляется через драйвер последовательного порта (см. п.п. 3.7.8).
Для корректной работы драйвера в проект должна быть добавлена библиотека Mega12NW_drivers v2.0.
Для добавления сервера в проект необходимо во вкладке «Соотнесение входов/выходов» драйвера к каналу ModBusRTUSlave привязать элемент массива MODBUS_RTU_SLAVE из библиотеки Mega12NW_drivers (Рисунок 3.7.9.4, 3.7.9.5).
Рисунок 3.7.9.4 – Привязка переменной через Ассистент ввода
Рисунок 3.7.9.5 – Привязка переменной к каналу драйвера
При конфигурации RTU сервера, на входе slave_index необходимо указать соответствующий индекс массива MODBUS_RTU_SLAVE, который привязан к каналу драйвера (Рисунок 3.7.9.6). В данном примере конфигурация Modbus RTU Slave на 1000 регистров каждого типа со смещением 0.
Рисунок 3.7.9.6 – Конфигурация Modbus RTU Slave