MQTT 대시보드 값이 뒤로 튀는 이유: timestamp와 sequence number 설계
MQTT 도착 순서는 공정 순서가 아니다. DUP flag의 한계, Sparkplug seq의 8-bit wrap, MQTT 5.0 retained 만료 처리.
글
HMI/SCADA, 산업 통신, 알람, 태그, 히스토리언을 현장 업무 흐름에 맞춰 정리한 노트입니다.
MQTT 도착 순서는 공정 순서가 아니다. DUP flag의 한계, Sparkplug seq의 8-bit wrap, MQTT 5.0 retained 만료 처리.
Shared Subscription은 스트림을 Worker로 나눈다. Historian에 걸면 피드가 반토막 나고 Trend 순서가 섞인다. 쓸 곳과 피할 곳.
site/# 구독 부하를 승인 전에 계산하는 법. Retain Handling, Shared Subscription, Receive Maximum, SUBACK으로 막기.
MQTT client ID는 23바이트만 보장된다. 중복 ID, 넓은 wildcard, retained command, 소리 없이 거부되는 publish까지.
MQTT 페이로드를 바꿀 때 HMI, 히스토리언, MES connector가 조용히 깨지지 않게 schema version을 관리하는 법.
SCADA edge에서 broker, client, CA 인증서를 단계적으로 교체해 publish, store-and-forward, Sparkplug birth를 지키는 절차.
WAN 장애 때 MQTT edge가 데이터를 잃는 이유. source timestamp, sequence number, replay 정책으로 historian 공백을 막는다.
SCADA와 산업용 텔레메트리에서 MQTT QoS, retained message, 세션, 중복 메시지, 명령 토픽을 어떻게 나눠 볼지 정리한 현장 노트.
MQTT Last Will, Birth, retain 메시지로 SCADA 화면에서 오프라인·데이터 정지·정상을 서로 다른 상태로 표시하는 방법입니다.
이름 변경 하나로 구독과 히스토리언 포인트가 깨지지 않게 group_id·edge_node_id·device_id를 잡는 법. birth, alias, STATE까지.
OPC UA와 MQTT를 어느 쪽이 더 좋은가가 아니라, 현장 통합 목적에 따라 어떻게 나눠 쓸지 설명합니다.