Главная / mbus-gw-t2r
mbus-gw-t2r
Шлюз MODBUS TCP - RTU для линий RS-485 и RS-232: несколько приборов на линии, несколько TCP-портов на линию, прозрачный режим RAW.
| Версия | V.01-01 (тег V01.01.0, пакеты 1.1.0) |
|---|---|
| Статус | Выпущен, развивается |
| Платформы | Linux: amd64, arm64, mipsel, mips64el (.deb); OpenWrt 24.10 и 25.12 (.ipk, .apk); платы NaPi (RK3568J, RK3308) |
| Лицензия | Apache License 2.0 |
| Для кого | Инженерам АСУ ТП, наладчикам приборов MODBUS и тем, кто учится промышленному программированию: код можно прочитать целиком за вечер. |
Что это
Шлюз принимает запросы MODBUS TCP и передаёт их приборам на последовательной линии (MODBUS RTU). Конец кадра определяется честной паузой t3.5 по спецификации, ответ проверяется по CRC16, длине и соответствию запросу. Мусор на линии отбрасывается: клиент получает исключение MODBUS, линия очищается, следующий запрос обслуживается как обычно.
Один процесс, всё ожидание - через poll(), без фоновых таймеров: простаивающий шлюз почти не тратит процессор. Несколько TCP-портов на одну линию, несколько линий на процесс, управление направлением RS-485 средствами ядра, псевдоприбор Time Stamp, режим RAW для прозрачной передачи байтов линии по TCP. Образ около 100 КБ и ничего, кроме libc. Каждая ошибка - сообщение с кодом (%T2R-E-CRC16ERR, %T2R-E-NOANSWER) и причиной.
С V.01-01 в комплекте утилита mbus-ctl: SHOW CONNECTIONS (клиенты и счётчики запросов, ответов, ошибок и байтов, /CONTINUOUS - обновление на экране), SHOW LINES, SHOW GATEWAY, RESET CONNECTIONS (разорвать сессию клиента), RESTART GATEWAY (проверить файл настроек и перезапустить шлюз с тем же PID). Работает через локальный Unix-сокет по двоичному протоколу TLV (StarLet AVProto), в сеть ничего не открывает; команды можно сокращать, как в DCL: sho conn /cont, restart gw.
Зачем
Альтернатива mbusd там, где важны эффективность на маленьком устройстве и понятная диагностика. Проект предлагается и как учебный: дисциплина последовательной линии, циклы на poll(), кольцевые буферы, проверка конфигурации и сообщения в стиле DEC - всё в настоящем рабочем инструменте. Разрабатывается и проверяется командой NaPi Lab на промышленных одноплатных компьютерах NaPi.
Quick start Установка готового пакета
sudo apt install ./mbusgw-t2r_1.1.0-1_arm64.deb # Debian, Ubuntu
sudo nano /opt/mbusgw-t2r/etc/modbus-t2r_settings.conf # линии и TCP-порты
sudo systemctl enable --now mbusgw-t2r
sudo mbus-ctl sho conn /cont # кто подключён, счётчики
opkg install ./mbusgw-t2r_1.1.0-r1_mipsel_24kc.ipk # OpenWrt 24.10
apk add --allow-untrusted ./mbusgw-t2r_1.1.0-r1_mipsel_24kc.apk # OpenWrt 25.12
Источник: mbus-gw-t2r/README.md; руководство пользователя - docs/UserGuide_RU.md и PDF в Releases
Скачать
Пакеты .deb (amd64, arm64, mipsel, mips64el), OpenWrt .ipk и .apk (mips, mipsel, ARM, x86_64), исходники и руководства в PDF - в Releases на GitHub.