...
Protokol je implementáciou štandardu MQTT 3.1.1 (október 2014) a štandardu MQTT 5.0 (marec 2019). MQTT protokol je klient/server protokol typu subscribe/publish. Je jednoduchý, má malú réžiu a je ľahko implementovateľný. Používa sa na komunikáciu M2M (Machine to Machine) a v kontexte IoT (Internet of Things). MQTT server sa nazýva aj MQTT broker.
D2000 KOM implementuje klientskú časť protokolu. Protokol je implementovaný na TCP/IP linke-TCP a TCP/IP-TCP Redundant linkách. Podporený je aj MQTTS (Secure MQTT, MQTT over TLS) - buď priamo v D2000 KOM procese (pomocou TLS nastavení na TCP/IP-TCP a TCP/IP-TCP linkeRedundant linkách) alebo cez utilitu stunnel.
Pre prenos LoRaWAN dát v rámci MQTT protokolu pozri popis protokolu LoRaWan.
...
Protokol MQTT Sparkplug definuje 3 skupiny aplikácií:
- Edge Node - má Má podporu MQTT protokolu a pripája sa k MQTT serveru. Posiela mu údaje získané z Device alebo vlastné, prípadne agregované.
- Device/Sensor - reprezentuje Reprezentuje fyzické alebo logické zariadenie pripojené k k Edge Node a poskytujúce údaje, procesné dáta alebo metriky.
- Host Application - reprezentuje Reprezentuje spotrebiteľa dát (SCADA/MES systém, Historian, analytický nástroj), ktorý sa pripája k MQTT serveru a prijíma MQTT dáta od Edge Node/Device a prípadne poveluje.
...
- Pokiaľ MQTT server podporuje Topic aliasy, použite MQTT Version = MQTT 5.0, a nastavte Topic Alias Maximum na hodnotu väčšiu ako je počet staníc na linke (pre Payload Type = Sparkplug Edge Node) resp. väčšiu ako počet topicov, ktoré sú očakávané od MQTT brokera (pre Payload Type = Text only / JSON). Na strane MQTT brokera zabezpečte, že jeho hodnota Topic Alias Maximum bude väčšia, ako počet topicov, ktoré budú posielané D2000 KOM procesu - takže namiesto textových topicov budú môcť byť použité numerické aliasy.
Pozn: hodnota Topic Alias Maximum, ktorú MQTT broker posiela pri pripájaní ako parameter CONNACK správy, je viditeľná v logoch komunikácie:
09:31:12.086 13-05-2025|D|MQTT> CONNACK Property # 1 Topic Alias Maximum ( 34)
09:31:12.087 13-05-2025|T|MQTT> Recv:<00><0A>
09:31:12.088 13-05-2025|D|MQTT> CONNACK Property value= 10 - Nastavte Subscribe QoS = QoS_0, aby sa nevyžadovali potvrdzovania PUBLISH správ (pokiaľ nie sú z nejakých dôvodov potrebné). Pokiaľ je navyše aktívne aj TLS, tak toto spôsobí, že malý paket (napr. PUBACK pre QoS_1) je zašifrovaný a výsledkom je väčší šifrovaný paket.
- Použite aliasy pre metriky (pre pre Payload Type = Sparkplug Edge Node): automatické pomocou parametra Sparkplug Alias Mode=Automatic (HOBJ) alebo manuálne pomocou položky SAL=alias v adrese meraného bodu. Pokiaľ použijete manuálne aliasy, používajte nízke čísla (aliasy 10-127 sa zakódujú ako 1 bajt).
- Pre Payload Type = Sparkplug Edge Node: pri väčšom počte zmien výstupných meraných bodov odporúčame nastaviť parameter Batch Size na väčšiu hodnotu ako je defaultná (10) a prípadne zvýšiť parameter Delay v časových parametroch stanice. To spôsobí, že sa bude generovať menej správ (a každá bude obsahovať viacero metrík), čo znižuje réžiu potrebnú na prenesenie jednej metriky. Ak sa konkrétne merané body menia často, v správe môže byť aj niekoľko hodnôt toho istého meraného bodu (s časovými značkami). Nevýhodou je oneskorenie hodnôt.
...
- Kategória komunikačnej linky: TCP/IP-TCP alebo TCP/IP-TCP Redundant.
- Host: IP adresa MQTT servera (prípadne redundantné adresy oddelené čiarkou alebo bodkočiarkou).
Pozn: v V režime Payload Type = Sparkplug Edge Node je podporená metrika Node Control/Next Server, pomocou ktorej je možné prikázať D2000 KOM procesu, aby sa pripojl na ďalší MQTT server (ak ich je zadaných viacero). - Port: číslo portu je štandardne 1883 alebo 8883 pre kryptovanú SSL/TLS variantu.
- Číslo linky: nepoužité, nastavte hodnotu 0.
...
Ak je nakonfigurovaná linka TCP/IP-TCP Redundant, vytvárajú sa dve TCP spojenia (na 2 MQTT brokery), z ktorých každé môže smerovať na jednu z viacero zadaných IP adries. D2000 KOM proces prijíma hodnoty od obidvoch MQTT brokerov a všetky hodnoty výstupných meraných bodov posiela obidvom MQTT brokerom. Zápis je považovaný za úspešný, ak je hodnota úspešne poslaná aspoň jednému MQTT brokerovi (v prípade potvrdzovania, ak "Subscribe QoS" > QoS_0, ak je potvrdený aspoň jedným z MQTT brokerov).
Takáto konfigurácia umožňuje nakonfigurovať redundantný systém, v ktorom D2000 KOM sa pripája k dvom redundantným MQTT brokerom a druhá strana aspoň k jednému MQTT brokeru, pričom MQTT brokery nemusia tvoriť "cluster", tj. synchronizovať si medzi sebou správy (takže sa dá použiť aj jednoduchý a bezplatný Eclipse Mosquitto - viď príklad konfigurácie).
Vynútené prerušenie spojenia: Keď sa všetky stanice na linke dostanú do simulácie alebo majú zastavenú komunikáciu, linka sa odpojí (dôjde ku zavretiu komunikačného socketu). Keď aspoň jedna stanica bude mať vypnutú simuláciu a nebude mať zastavenú komunikáciu (záložka Parametre objektu Stanica), linka sa znovu pripojí.
V režime Payload Type = Sparkplug Edge Node, pokiaľ je zastavená komunikácia na Edge Node stanici, linka sa odpojí (aj keď podstanice typu Device majú komunikáciu zastavenú). Ak je zastavená komunikácia na Device stanici a Edge Node stanica komunikuje, D2000 KOM pošle správu DDEATH a po zapnutí Device stanice pošle správu DBIRTH.
| Kotva | ||||
|---|---|---|---|---|
|
...
| Info | ||
|---|---|---|
| ||
O protokole MQTT si môžete prečítať blog |
| Kotva | ||||
|---|---|---|---|---|
|
...