본문으로 건너뛰기

Sparkplug B — IIoT 표준 (MQTT 기반)

Sparkplug B 는 Eclipse Tahu / Cirrus Link 가 정의한 IIoT (산업용 IoT) 메시징 표준 입니다. MQTT broker 위에 표준 topic 구조 + Google Protobuf payload 를 얹어 다양한 벤더 장비가 상호 운용되도록 합니다. PlantPulse Edge 는 broker 의 Sparkplug topic 들을 구독해서 metric 을 자동 캐시한 뒤 태그 read() 로 즉시 노출합니다.


등록 폼 입력값

입력 칸무엇을 적나요예시
IP 주소MQTT broker192.168.10.50
포트MQTT broker port1883 (평문) / 8883 (TLS, 추후 지원)
Group ID (group-id)Sparkplug Group — 공장/사업장 단위FactoryA, Plant01
Edge Node ID (edge-node-id)단일 노드 또는 + (모든 노드)+ (기본), edge-01
Keep Alive (keep-alive)MQTT keep-alive 초60 (기본)
Connect Timeout (connect-timeout)MQTT 연결 타임아웃 ms5000 (기본)
Group / Edge Node ID 는 broker 측 발행자(NBIRTH) 와 일치해야 합니다

송신 측 (Eclipse Tahu / Ignition / Cirrus Link MQTT Engine 등) 이 어떤 group / edge ID 로 NBIRTH 를 보내는지 확인 후 동일한 값을 입력하세요. edge-node-id=+ 로 두면 그룹 내 모든 노드를 한 번에 구독합니다.


태그의 PLC 주소 표기

Sparkplug 의 metric 식별자는 group 이후의 부분만 사용합니다 (group 은 driver 옵션 분리).

표기의미
edge1/TemperatureEdge node edge1 의 node-level metric Temperature
edge1/motor1/RPMEdge node edge1 산하 device motor1 의 metric RPM
edge1/dev2/Status예: 디바이스 상태 boolean
이름 vs alias

Sparkplug 송신 측은 NBIRTH/DBIRTH 시 metric 이름과 alias(숫자) 를 함께 발행합니다. 이후 NDATA/DDATA 는 alias 만 보내서 페이로드 크기를 줄입니다. PlantPulse 드라이버가 자동으로 alias↔이름 맵을 유지하므로, 사용자는 항상 이름 으로만 입력하면 됩니다.


데이터 타입 자동 감지

Sparkplug B Payload 는 metric 별로 datatype 을 명시합니다 (Int8/16/32/64, UInt8/16/32/64, Float, Double, Boolean, String, DateTime, Bytes 등). 드라이버가 wire 의 datatype 에 따라 적절한 타입으로 변환해 String 으로 캐시하므로 태그의 data_type 은 다음과 같이 매칭하세요.

Sparkplug datatype권장 data_type
Int8 / Int16 / Int32 / UInt8 / UInt16 / UInt32Integer
Int64 / UInt64 / DateTimeLong
FloatFloat
DoubleDouble
BooleanBoolean
String / Text / UUIDString

쓰기 (NCMD / DCMD)

PlantPulse 의 write 는 자동으로 NCMD/DCMD 로 분기됩니다.

  • edge1/SetPoint (segment 2) → NCMD publish (node 레벨 명령)
  • edge1/dev1/SetPoint (segment 3+) → DCMD publish (device 레벨 명령)

현재 phase 는 모든 명령 값을 String datatype 으로 publish 합니다. 송신 측 (Tahu / Ignition) 이 metric 의 datatype 을 알고 있으므로 보통 자동 변환됩니다.


참고 링크

  • Eclipse Tahu — <https://eclipse.dev/tahu/>
  • Sparkplug Spec v3.0 — <https://sparkplug.eclipse.org/specification/>
  • Cirrus Link MQTT Engine — <https://www.cirrus-link.com/mqtt-engine/>