Подмодуль ModbusRTUMaster. Добавление и конфигурирование ModbusRequest.

В данном уроке рассмотрим подключение ModbusRTUMaster. Как говорилось ранее, ПЛК BRIC имеет возможность обращаться к slave-устройствам в качестве мастера. Для реализации нам потребуется программа Modbus Slave. Добавим подмодуль ModbusRTUMaster. Рассмотрим подробнее элементы подмодуля.

Элементы ModbusRTUMaster

Элемент

Описание

Serial_Port

Выбор последовательного порта:
  • RS_232_UART

  • RS_485_1_UART

  • RS_485_2_UART

  • RS_485_IMMO_UART

Baud_Rate

Выбор скорости передачи:
  • 1200

  • 2400

  • 4800

  • 9600

  • 14400

  • 19200

  • 28800

  • 38400

  • 56000

  • 57600

  • 76800

  • 115200

  • DEFAULT_BAUD_RATE

Data_bits

Выбор количества байт данных:
  • 7

  • 8

  • 9

Parity

Выбор паритета:
  • even (четный)

  • odd (нечетный)

  • none (без проверки)

Stop_Bits

Выбор количества стоп-битов:
  • 1

  • 2

Invocation_Rate_in_ms

Скорость вызова, мс

См.также

Подробнее можно узнать по ссылке

В нашем уроке мы выберем настройки, представленные на риcунке ниже.

../_images/72.png

То есть, порт мы выбираем RS_485_1, скорость передачи данных - 115200, количество битов данных - 8, без проверки на четность/нечетность, с количеством стоповых битов - 1.

Далее мы добавим субмодуль ModbusRequest.

../_images/82.png

Рассмотрим подробнее элементы ModbusRequest.

Элементы ModbusRequest

Элемент

Описание

Function

Выбор функции:
  • ReadCoils — Функция используется для получения состояний определенного количества реле, начиная с указанного в запросе. Состояние одного реле при этом передается одним битом. Если бит установлен в 1 – реле включено, если 0 – реле отключено.

  • ReadInputDiscretes — Функция используется для получения состояний определенного количества дискретных входов, начиная с указанного в запросе. Состояние одного входа при этом передается одним битом. Если бит установлен в 1 – вход замкнут, если 0 – вход разомкнут.

  • ReadHoldingRegisters — Функция используется для чтения указанного количества 2–Байтных регистров.

  • ReadInputRegisters — Функция используется для получения состояний определенного количества 2–Байтных регистров, хранящих состояние дискретных входов, начиная с указанного в запросе. Значение одного регистра передается двумя байтами.

  • WriteSingleСoil — Функция используется для включения/отключения одного реле. Требуемое состояние реле передается двумя байтами.

  • WriteSingleRegister — Функция выполняет запись нового значения в указанный регистр.

  • WriteMultipleCoils — Функция используется для групповой установки состояний определенного количества реле, начиная с указанного. Состояние одного реле при этом передается одним битом. Если бит установлен в 0 – реле отключено, если 1 – реле включено.

  • WriteMultipleRegisters — Функция выполняет запись новых значений в указанные регистры

Slave_Modbus_address

Выбор адреса slave-устройства (0-255)

Regs_number

Выбор количества регистров (1-1600)

Start_Address

Выбор начального адреса (0 - 65535)

Timeout_in_ms

Выбор времени, необходимое для ответа slave–устройству, мс

Для нашего урока мы определим настройки, представленные ниже.

../_images/gif4.gif

Будет произведено чтение 2-байтных регистров начиная с адреса 5000 slave–устройства по Modbus-адресу 10. Напишем программу на языке FBD. Определим глобальную переменную mdb_read формата WORD и локальную переменную local_word. Данная программа будет фиктивной, так как основную функцию на себя возьмет ModbusRTUMaster.

../_images/92.png

Заходим в глобальные настройки проекта. Можно заметить, что после добавления подмодуля ModbusRTUMaster автоматически добавились его регистры. В разделе «Documentation» можно увидеть параметры регистров.

../_images/102.png

Примечание

Если в разделе «Documentation» прописать «noweb» - данный регистр не будет отображаться в WEB-странице контроллера

Данные регистры - это ничто иное как параметры ModbusRequest. Если оставить поля пустыми в разделе «Documentation», то есть возможность менять параметры ModbusRequest через WEB-страницу контроллера. Мы с вами так и поступим.

Регистр

Описание

modbus_request_MF_function

Выбор функции

modbus_request_MF_slave_address

Выбор адреса slave-устройства

modbus_request_MF_regs_number

Выбор количества регистров

modbus_request_MF_start_address

Выбор начального адреса

modbus_request_MF_enable

Проверка состояния ModbusRequest

modbus_request_MF_error_counter

Счетчик количества ошибок прием-передачи данных

modbus_request_MF_success_counter

Счетчик количества удачных прием-передачи данных

Далее мы назначим Modbus-адрес для переменной mdb_read. Для этого нажимаем по полю «Location» и вводим значение %IW1.0.0.0.

Совет

Для того, чтобы не ошибиться с адресом есть возможность выбора путем нажатия на три точки в «Location».

../_images/gif5.gif

Наша программа готова, выполняем компилляцию и загружаем в ПЛК BRIC. Выполняем подключение преобразователя интерфейсов USB-HART/RS-485. Также запустим приложение Modbus Slave с настройками, представленными ниже.

../_images/113.png
../_images/122.png
../_images/gif81.gif

Далее запускаем автоматическое инкрементирование регистра по адресу 5000.

../_images/gif6.gif

Заходим в WEB-страницу контроллера, открываем вкладку «User» и видим изменение «MDB_READ» в соответствии с инкрементируемой величиной. Также показаны детали ModbusRequest.

../_images/gif71.gif