Обновить

mbSCADA: переписал Modbus Poll на Rust, потому что надоело

гитхаб репо
гитхаб репо

Коротко: это десктоп-приложение для опроса Modbus-устройств. TCP, RTU, ASCII, RTU-over-TCP. Умеет импортировать .mbp/.mbw от настоящего Modbus Poll — причём байт-в-байт: открыл файл, поменял алиас, сохранил, остальное не тронуто. Это, пожалуй, самая нудная и самая полезная часть. Формат .mbp нигде не описан, так что раскладку пришлось восстанавливать по байтам самих файлов: сгенерировал их в Modbus Poll 10.5, сравнил, понял, где заголовок, где записи строк, где хвост. Код Modbus Poll при этом не открывался ни разу — только его выходные файлы, то есть данные, а не реализация. Clean-room в том смысле, что спецификация восстановлена по наблюдаемому поведению, а не по исходникам. Про сам протокол и говорить нечего — Modbus публичный.

Дальше уже вкусовое. На каждую строку можно навесить дерево правил на 32 ветки (у оригинала две), с динамическим текстом вроде 0 → Закрыт, 1 → Открыт. Есть спарклайны прямо в таблице, алармы с панелью и подтверждением, мимик-схемы, окно «смотрибельных» параметров, вычисляемые теги ({T2} - {T1} и pow/min), CSV-архив. Внутри ещё симулятор слейва — можно поднять TCP/RTU-устройство и опрашивать его же, или повесить на реальный USB-RS485. Удобно, когда железо под рукой только в пятницу.

Стек: Rust + Tauri 2, UI на ванильном JS. Один бинарник ~6 МБ, без телеметрии, всё локально. 68 тестов на движок/протокол/формат, движок тестируется без GUI.

Что честно стоит знать:

ASCII-транспорты есть и покрыты юнит-тестами, но на живых приборах я их гонял меньше, чем TCP/RTU.

.mbp writer (сохранить как Modbus Poll) пока не в UI — round-trip слой в движке готов, кнопки нет.

Полного покрытия «все приборы всех производителей» не обещаю, это не то приложение.

Лицензия MIT, релизы под Win/Linux/macOS собираются в CI с тега. Если у вас лежит папка со старыми .mbp и хочется их открыть без установки Modbus Poll — это, наверное, самый простой сценарий попробовать.

Репозиторий: https://github.com/kostyk348/mbscada-rs

Буду рад баг-репортам, особенно по ASCII и по странным .mbp — корпус у меня небольшой, чем больше реальных файлов, тем крепче парсер.

Теги:
+1
Комментарии1

Дело о длинном тире

Невероятные приключения здравого смысла среди борцов с ИИ

Сатирическая история о творчестве, бдительности и людях, которые точно знают, как сделать лучше.

Осторожно: может пострадать ваш здравый смысл.

Дело о длинном тире

Публикации