Sözlük · Protokol
Sparkplug B nedir?
Sparkplug B, MQTT üzerinde endüstriyel veri taşımak için topic yapısını, protobuf tabanlı mesaj formatını ve cihazların çevrimiçi/çevrimdışı durumunun nasıl bildirileceğini tanımlayan açık bir spesifikasyondur.
VOLSOFT mühendislik ekibi ·
Sparkplug B, MQTT protokolü üzerinde endüstriyel veri alışverişini standartlaştıran açık bir spesifikasyondur. MQTT yalnızca mesajların nasıl taşınacağını tanımlar; topic isimlerini ve mesaj içeriğini kullanıcıya bırakır. Sparkplug B bu boşluğu doldurur: sabit bir topic yapısı, protobuf tabanlı bir yük formatı ve cihaz durumunun nasıl izleneceğini belirler.
Sparkplug B ne işe yarar?
Düz MQTT kullanan iki farklı üreticinin cihazları aynı broker’a bağlansa bile verileri farklı topic yapıları ve farklı JSON formatlarıyla gönderebilir. Bu durumda her entegrasyon ayrı bir eşleştirme gerektirir. Sparkplug B ile SCADA, historian ve diğer uygulamalar, spesifikasyona uyan her cihazın verisini ek tanım yapmadan anlayabilir. Ayrıca bir cihazın bağlantısı koptuğunda bunu güvenilir şekilde fark etmeyi sağlar.
Nasıl çalışır?
Topic yapısı şu şekildedir:
spBv1.0/grup_id/mesaj_tipi/edge_node_id/device_id
Mesaj tipleri şunlardır:
| Mesaj tipi | Anlamı |
|---|---|
| NBIRTH / NDEATH | Edge node’un çevrimiçi olması / bağlantısının kopması |
| DBIRTH / DDEATH | Edge node’a bağlı cihazın çevrimiçi / çevrimdışı olması |
| NDATA / DDATA | Node veya cihazdan gelen değer değişimleri |
| NCMD / DCMD | Uygulamadan node veya cihaza gönderilen komutlar |
| STATE | Ana uygulamanın (host application) çevrimiçi durumu |
Birth sertifikası: Edge node bağlandığında, yayınlayacağı tüm metrikleri adları, veri tipleri ve ilk değerleriyle birlikte NBIRTH ve DBIRTH mesajlarında bildirir. Sonraki DDATA mesajlarında yalnızca değişen değerler gönderilir. Metrikler birth mesajında bir alias numarasıyla eşleştirilebilir; böylece sonraki mesajlarda uzun isimler tekrar taşınmaz.
Death sertifikası: NDEATH mesajı, edge node bağlanırken MQTT’nin Last Will and Testament özelliğiyle broker’a bırakılır. Bağlantı beklenmedik şekilde koparsa broker bu mesajı yayınlar ve aboneler ilgili verinin artık güncel olmadığını anlar.
STATE: Ana uygulama kendi çevrimiçi durumunu yayınlar. Edge node’lar ana uygulama çevrimdışıyken veriyi tamponlayabilir.
Sıra numarası: Mesajlarda 0–255 arasında dönen bir sıra numarası bulunur; atlanan mesajlar bu sayede fark edilir.
QoS ve retained kullanımı: Spesifikasyon, NDATA ve DDATA mesajlarının QoS 0 ile ve retained olmadan gönderilmesini öngörür. Güncel durumun bilinmesi retained mesajlarla değil, birth mesajları ve sonraki değişimlerle sağlanır. Bu, retained mesajlara dayanan düz MQTT tasarımlarından önemli bir farktır.
Sparkplug B ve düz MQTT farkı
| Düz MQTT | Sparkplug B | |
|---|---|---|
| Topic yapısı | Serbest | spBv1.0/... ile sabit |
| Yük formatı | Serbest (çoğunlukla JSON) | Protobuf |
| Cihaz durumu | Uygulamaya bırakılır | Birth/death mesajlarıyla tanımlı |
| Veri modeli keşfi | Yok | Birth mesajında tüm metrikler bildirilir |
| Okunabilirlik | JSON ise insan tarafından okunabilir | İkili, çözücü gerekir |
Pratikte nelere dikkat edilmeli?
- Sparkplug B’nin topic yapısı ISA-95 hiyerarşisini doğrudan taşımaz; grup ve edge node isimleri iyi planlanmalıdır. Bazı UNS projelerinde Sparkplug B ile düz MQTT birlikte kullanılır.
- Broker’ın Last Will ve retained mesajları doğru desteklediği doğrulanmalıdır.
- Hata ayıklama için Sparkplug B yükünü çözebilen bir MQTT istemcisi hazır bulundurulmalıdır.
VOLSOFT, Sparkplug B dahil MQTT entegrasyonlarını Proxus platformu üzerinde kurar.
