Сегодня зарелизил очередную версию одного из самых своих "долгоиграющих" проектов - mbusd, представляющего собой шлюз между двумя вариантами (TCP/RTU) протокола АСУ ТП Modbus.
Отличительные черты реализации:
- Кроссплатформенность: шлюз способен работать на большинстве POSIX-совместимых систем;
- Компактность: реализация изначально создавалась для работы во встраиваемых системах, ограниченных по частоте процессора и доступного ОЗУ;
- Работа в мультимастер-режиме: до 32 TCP-мастеров могут осуществлять мультиплексированный обмен с RTU-слейвами;
- Отказоустойчивость: возможность автоматического выполнения перезапросов в случае несовпадения контрольной суммы в ответе RTU-слейва;
- Поддержка RS-232/485-конвертеров как с автоматическим управлением направлением передачи, так и по сигналу RTS.
Поддерживаемые коды функций Modbus:
- 01: Read coil status
- 02: Read input status
- 03: Read holding registers
- 04: Read input registers
- 05: Force single coil
- 06: Preset single register
- 07: Read exception status
- 15: Force multiple coils
- 16: Preset multiple registers
Лицензия проекта - BSD. Все желающие что-то изменить или улучшить могут сделать свой форк проекта на GitHub. Pull request'ы приветствуются. :)
Комментарии