MQTT и Sparkplug B: телеметрия и SCADA в энергетике

Publish-subscribe, QoS, birth/death, состояние и границы интеграции MQTT/Sparkplug.
MQTT и Sparkplug B: телеметрия и SCADA в энергетике

Иллюстрация создана ИИ — пример обстановки.

MQTT

MQTT создан в 1999 году Andy Stanford-Clark и Arlen Nipper. Версия 3.1.1 — ISO/IEC 20922, MQTT 5 — стандарт OASIS. Publisher публикует брокеру, тот передаёт подписчикам. Один клиент может иметь обе роли. Темы разделены /; + соответствует одному уровню, # — оставшимся по правилам подписки. Организация тем и права — решения приложения.

Доставка и состояние

QoS 0 — at most once, 1 — at least once, 2 — exactly once для соответствующего MQTT-обмена. Это не гарантия однократного бизнес-действия от источника до потребителя. QoS выбирают по приложению и профилю.

Retained — последняя retained-публикация темы, не автоматически последняя обычная; она может устареть. Last Will задаётся при соединении и публикуется по условиям отключения. Обнаружение зависит от транспорта, Keep Alive, Will Delay и правил сессии.

MQTT 5 и защита

Версия 5 добавляет properties, shared subscriptions, topic aliases, expiry и reason codes. Enhanced Authentication расширяем; SASL-подобный обмен возможен при поддержке обеих сторон.

TLS защищает соответствующие соединения, а удостоверение и topic ACL ограничивают операции. Пароль/токен сам не шифрует канал. Планируют ёмкость, persistence, сертификаты и удалённый доступ.

Sparkplug B

Sparkplug задаёт namespace, типизированные Protobuf-метрики и управление состоянием. Темы spBv1.0/group/message-type/edge-node могут включать device. NBIRTH/DBIRTH объявляют модель, NDATA/DDATA — изменения, NDEATH/DDEATH — потерю, NCMD/DCMD — команды. Состояние Primary Host участвует в восстановлении.

Alias допустим после известной BIRTH-модели. Timestamps и properties имеют значение. is_null/is_transient — конкретные поля, не универсальное качество IEC. QoS/retained задаются типом Sparkplug-сообщения, а не общим правилом QoS 1.

Интеграция

Gateway может читать Modbus/телемеханику и публиковать метрики. Не любой облачный IoT-сервис является полным брокером для Sparkplug; проверяют темы, подписки, LWT и retained, иногда нужен адаптер.

IEC 104 k — окно неподтверждённых I-кадров, а не число подписчиков. Ёмкость обеих архитектур зависит от реализации. У Sparkplug есть TCK для проверки соответствия, но не универсальной пригодности для защитных функций.

Практика

Проверяют BIRTH, reconnect, DEATH, aliases и восстановление состояния, устаревшие retained и потери. Измеряют частоты, объёмы и подписчиков до решения о кластере. MQTT дополняет IEC 104/61850 в интеграции; пригодность управления зависит от времени, отказов и задачи.

Источники и дополнительное чтение

Оцените статью

Средняя оценка 5,0 · 1 оценок