Для работы драйвера последовательного порта в проект программы контроллера необходимо добавить устройства Mega12NW_Serial_Ports, Mega12NW_Serial_Port 1, Mega12NW_Serial_Port 2, Mega12NW_Serial_Port 3, Mega12NW_Serial_Port 4, которые устанавливаются в репозиторий устройств с помощью файлов Mega12NW_Serial_Ports.devdesc.xml, Mega12NW_Serial_Port_#1.devdesc.xml, Mega12NW_Serial_Port_#2.devdesc.xml, Mega12NW_Serial_Port_#3.devdesc.xml, Mega12NW_Serial_Port_#4.devdesc.xml соответственно.
Для инициализации последовательного порта необходимо добавить соответствующее устройство в слот драйвера Mega12NW_Serial_Ports в дереве устройств.
Рисунок 3.7.7.1 – Добавление драйвера последовательного порта
Во вкладке «Конфигурация» устройства Mega12NW_Serial_Port_X можно задать настройки порта.
Рисунок 3.7.7.2 – Настройка последовательного порта
Добавление драйвера Modbus RTU Slave в проект программы
Версия драйвера 3.5.12.41
Для работы с 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.7.4). Далее необходимо объявить экземпляр функционального блока 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.7.3 представлен пример объявления Modbus RTU сервера с 1000 регистров каждого типа, с Modbus адресом 15.
Рисунок 3.7.7.3 – Добавление Modbus RTU сервера
Рисунок 3.7.7.4 – Привязка сервера к каналу драйвера
Для того чтобы обратиться к значению регистра необходимо использовать атрибут value объявленного ФБ (Рисунок 3.7.7.5).
Рисунок 3.7.7.5 – пример записи в Holding и Input регистры