Her tesis ağında bir MQTT broker'ı vardır. Belki rafta Linux sunucusunda Mosquitto, belki özel donanımda HiveMQ Enterprise, belki AWS IoT Core veya HiveMQ Cloud gibi yönetilen bir broker. Broker, kattaki her IIoT, SCADA ve MES entegrasyonunun omurgasıdır. OPC-UA ağ geçidi oraya yayımlar. Motor sürücüleri oraya yayımlar. Andon HMI'ler abone olur. MES, plant/line-3/cmd/*'a geri yazar.
Broker omurga ise, etiket yazıcısının üzerinde olması gerekir. LabelInn Edge Server broker'ınıza baskı işi olaylarını ve yazıcı telemetrisini yayımlar ve herhangi bir MES, SCADA veya ERP'nin REST veya gRPC yüzeylerimize dokunmadan bir etiket tetiklemesine izin veren küçük bir komut konuları setine abone olur. Saf pub-sub. Standart QoS. TLS. Zaten çalıştırdığınız aynı broker.
Konu kataloğu
Yapılandırılabilir bir önek altında (varsayılan labelinn/) edge düğümü bu konuları kullanır:
Giden — abone olduğunuz olaylar
labelinn/print/job_submitted— bir iş kabul edildi; yük iş kimliği, yazıcı kimliği, şablon kimliği, kopya sayısı, operatör kimliği içerirlabelinn/print/job_completed— iş basılmayı bitirdi; yük süre, gerçekten basılan etiket sayısı, uygunsa doğrulama kararı eklerlabelinn/print/job_failed— iş başarısız oldu; yük başarısızlık nedenini ve başarısızlık anında yazıcı durumunu eklerlabelinn/printer/online— bir yazıcı çevrimiçi oldu (önyükleme, yeniden bağlantı)labelinn/printer/offline— bir yazıcı çevrimdışı oldulabelinn/printer/error— bir yazıcı hata bildiriyor (kafa açık, etiket bitti, şerit bitti, mekanik arıza); yük yazıcının yerel protokolünden hata kodunu içerirlabelinn/printer/supply— bir yazıcının kaynak seviyesi değişti (şerit %, etiketler %); konu spam'ından kaçınmak için hız sınırlılabelinn/verify/passed— bir scan-to-verify işlemi başarılı oldu; yük iş kimliği ve taranan barkodu içerirlabelinn/verify/failed— bir scan-to-verify işlemi başarısız oldu; yük beklenen vs. gözlemlenen barkodu içerir
Gelen — edge düğümünün dinlediği komutlar
labelinn/cmd/print— tipli bir yük yayımlayarak bir baskı işi gönder; sonuçtaki iş kimliğini ilişkilendirilmiş bir yanıt konusunda allabelinn/cmd/cancel— kuyruktaki veya işlemdeki bir işi iptal etlabelinn/cmd/status— bir işin mevcut durumunu iste
QoS seçimi — gerçekten önemli olan üç değişim
MQTT QoS düzeyleri (0, 1, 2) teslimat garantilerini broker yüküyle değiş tokuş eder. Konu sınıfı başına önerdiğimiz varsayılanlar:
| Konu sınıfı | Önerilen QoS | Neden |
|---|---|---|
| Yazıcı kaynak / telemetri | 0 (en fazla bir kez) | Sonraki okuma onun yerini alır. Bir güncellemeyi kaybetmek tamam. |
| İş gönderildi / tamamlandı / başarısız | 1 (en az bir kez) | Tüketicide idempotent (iş kimliğine göre tekilleştir). Bir kopya ucuz; bir olayı kaçırmak pahalı. |
Uyumluluk-kritik: verify/passed, verify/failed | 2 (tam olarak bir kez) | Kalite sistemi bunu bir ve yalnızca bir kez kaydetmelidir. Broker gidiş-dönüşlerine değer. |
Gelen komutlar cmd/print | 1 (en az bir kez) | Edge düğümü yükteki idempotency anahtarına göre tekilleştirir. |
İki çalışan örnek
SCADA paneli printer/error'a abone olur
Tesis altı paketleme hattına sahip, her birinde bir termal yazıcı. SCADA HMI (bu örnekte Ignition Perspective) hat başına canlı bir döşeme görüntüler: yazıcı çevrimiçi ve sağlıklıyken yeşil, yumuşak bir uyarıda kehribar (düşük şerit, düşük etiketler), sert bir hatada kırmızı (kafa açık, medya yok). Her döşeme, Ignition MQTT Engine modülü aracılığıyla labelinn/printer/error/line-N'ye ve labelinn/printer/supply/line-N'ye abone olur. Döşeme rengi en son yükteki önem düzeyi alanının bir etiket bağıdır. Hat 3'teki operatör, şerit %15'in altına düştüğünde göstergenin kehribar olduğunu görür ve bir sonraki palet değişimi sırasında değiştirir, bir sonraki sıkışmada değil.
MES cmd/print'e yayımlar
MES, "hat 5'in birincil yazıcısında 240 birim düzeyinde UDI etiketi yazdır" diyen bir iş emri adımı yürütür. MES, tasarım kimliğini, veri kaynağını (serileştirme havuzundan 240 seri numarası listesi), hedef yazıcı kimliğini ve iş-emri-adım-kimliğinden türetilen bir idempotency anahtarını içeren tek bir yükü labelinn/cmd/print'e yayımlar. Edge düğümü alır, doğrular, kuyruğa alır, basar ve geri 240 job_completed olayı yayımlar. MES abone olur ve iş emrine karşı karşılaştırır. İş-emri adımı, MES kendi idempotency anahtarıyla etiketli 240 tamamlamayı saydığında kapanır. Gelen komutun yeniden yayımlanmasına neden olan bir ağ aksaklığı 480 etiket üretmez: idempotency anahtarı edge düğümünde tekilleştirilir.
TLS, kimlik doğrulama, broker taşınabilirliği
TLS çalıştıran broker'lar için edge düğümü müşterinin CA zincirine güvenir ve LabelInn konu önekine kapsamlı bir istemci sertifikası veya kullanıcı adı/şifre çifti ile kimlik doğrulaması yapar. Bağlantı parametreleri (broker ana bilgisayarı, port, istemci kimliği, last-will konusu, keepalive) kiracı başına yapılandırılır. Aynı edge düğümü, bir yeniden yükleme olmadan bir yapılandırma push'undan sonra farklı bir broker'a bağlanabilir — şirket içi Mosquitto'dan yönetilen bir HiveMQ örneğine geçiş sırasında kullanışlıdır.
Konu öneki yapılandırılabilirdir, böylece aynı broker üzerindeki birden fazla LabelInn dağıtımı (çok-kiracılı broker'lar, paylaşılan müşteri ortamları) çakışmaz. Her kiracının olayları kendi öneki altında yaşar; broker'ın ACL listesi izolasyonu uygular.
Bu size ne tasarruf eder
Tesisinizin zaten bir MQTT broker'ı varsa, etiket baskısını entegre etmek broker tarafında bir yapılandırma egzersizi ve tüketici tarafında bir konu aboneliğidir. Güvenlik incelemenize tanıtılacak yeni bir taşıma yok. IdP'nize eklenecek yeni bir kimlik doğrulama şeması yok. Yeni bir port için yeni bir güvenlik duvarı kuralı yok — edge düğümü, tesisteki diğer her yayıncının yaptığı şekilde broker'a giden bir TCP bağlantısı kurar.
Entegrasyon, "bir REST entegrasyonu belirt, bir polling döngüsü yaz, kimlik doğrulamayı hata ayıkla, güvenlikten onay al"dan "mevcut MQTT istemcinizde labelinn/print/job_completed'a abone ol ve bitirdiniz"e gider.
Etiket Baskısını Zaten Çalıştırdığınız Veriyoluna Yerleştirin
Tam konu kataloğunu ve tesisinizin segmentasyonuna ayarlanmış örnek broker yapılandırmasını (Mosquitto, HiveMQ, AWS IoT Core) isteyin.
Konu kataloğunu isteyin →