Утилита modbus-slave. Эмулятор Modbus RTU датчиков
· 4 min read
Когда разрабатываешь систему мониторинга или SCADA, часто нужно протестировать опрос датчиков — но реального оборудования под рукой нет. Или нужно показать демо заказчику без физических устройств. Или хочется отладить логику мастера не в ыезжая на объект.
Именно для этого мы написали modbus_slave — эмулятор Modbus RTU slave устройств на C, который работает на Linux и Windows, не требует зависимостей и умеет отдавать реальные данные из файлов.
Что умеет
- Эмулирует до 30 независимых Modbus RTU устройств на одном последовательном порту
- Каждое устройство отвечает на FC03 (Read Holding Registers), 20 регистров
- Значения регистров — случайные (для тестирования) или из файла (реальные данные)
- Работает на Linux x86_64, aarch64 (NAPI2, RK3568, Raspberry Pi) и Windows x64
- Поддерживает RS-485 — RTS direction control через DTS/GPIO
- Режим демона с логами в syslog и systemd service для автозапуска
- Защита от устаревших данных — если скрипт-источник упал, регистры возвращают нули
- Один статический бинарь без зависимостей — скопировал и запустил