Настройка симуляции Modbus RTU over TCP/IP

Для отладки ППО на ПЛК потребовалось настроить симуляцию устройства, которое опрашивается по протоколу Modbus RTU. Все ниже перечисленные программы и действия произведены в ОС Windows.

Для симуляции я использовал связку следующих программ :

  • Modbus Poll в качестве Modbus-клиента

  • ModRSsim2 для симуляции Modbus-сервера

  • VESPE (Virtual Serial Ports Emulator (64 bit)) ,

У меня была какая то древняя версия VESPE — 1.0.5.443

Первое что нужно сделать , это настроить виртуальный COM-порт. Запускаем VESPE и создаем коннектор:

Виртуальный COM.

Виртуальный COM.

На том ПК, где я себе ставил симулятор, уже был какой то COM-порт, поэтому на примере будет COM2:

Виртуальный COM-порт

Виртуальный COM-порт

После этого, чтобы подключиться к нему по TCP, необходимо создать TCP-сервер, который откроет порт для обмена поверх TCP:

Тип вирутального устройства - TCP сервер

Тип вирутального устройства — TCP сервер

578fa22dc9aac3951c3a88c2d1070783.png

Выбираем ранее созданный COM-порт и назначаем TCP-порт, через который будем обращаться MOdbus клиентом дял чтения регистров:

3955cf35f857f4df012b98c545eedd0b.pngCOM-порт и TCP-сервер настроены на ПК

COM-порт и TCP-сервер настроены на ПК

Далее запускаем MODRSSIM (у меня он был установлен из пакета ModbusOPCServer demo trial от MPSSoft (это та, что MasterScada выпускает) и настраиваем на MOdbus RS-232, а также подключаем к COM2:

233dc600c2a9cb69ca1e73e47bb8805c.png

Заполним холдинг регистры:

a882d9a4285c2aa9f17a8370ea91b28d.png

Подключаемся ModbusPoll:

545782137823ab4c26e5713a3d26f499.png

Подключение есть, запросы идут, ответы приходят:

27c5de8ab871018fb5baabdc40fe2dbf.png

Эту статью решил написать для себя как шпаргалку. Верю в то, что таких примеров на просторе сети много. Буду признателен, если в комментариях поделитесь опытом симуляции Modbus RTU, Modbus TCP устройств на базе Linux.

© Habrahabr.ru