...
- 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 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).Pozn: Ak je nakonfigurovaná linka TCP/IP-TCP, vytvára sa jedno TCP spojenie, ktoré môže smerovať na viacero zadaných IP adries. Ak je nakonfigurovaná linka TCP/IP-TCP Redundant, vytvárajú sa dve TCP spojenia, z ktorých každé môže smerovať na viacero zadaných IP adries. - Port: číslo portu je štandardne 1883 alebo 8883 pre kryptovanú SSL/TLS variantu.
- Číslo linky: nepoužité, nastavte hodnotu 0.
...
openssl x509 -text -in file.crt | grep "After"Poznámky k redundancii MQTT brokerov
Ak je nakonfigurovaná linka TCP/IP-TCP, vytvára sa jedno TCP spojenie, ktoré môže smerovať na jednu z nakonifigurovaných IP adries.
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).
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í.
...
| Parameter | Popis | Jednotka / rozmer | Náhradná hodnota | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Zapnutie podrobných výpisov o posielaní a prijímaní hodnôt. | YES/NO | NO | ||||||
| Verzia MQTT protokolu, ktorá sa použije na pripojenie sa k MQTT serveru. Je možné použiť starší štandard MQTT 3.1.1 (október 2014) alebo novší štandard MQTT 5.0 (marec 2019). MQTT brokery zvyčajne podporujú oba štandardy, starší štandard je jednoduchší a úspornejší. Na druhej strane, MQTT 5.0 umožňuje zmenšenie veľkosti správ použitím Topic Aliasov. | MQTT 3.1.1 MQTT 5.0 | MQTT 3.1.1 | ||||||
| Užívateľské meno použité v správe CONNECT na pripojenie sa k MQTT serveru. | - | |||||||
| Heslo použité v správe CONNECT na pripojenie sa k MQTT serveru. | - | |||||||
| Meno jednej témy alebo filter pre viacero tém posielaný v rámci SUBSCRIBE správy. Filtrom špecifikuje MQTT klient témy, v rámci ktorých chce prijímať správy.
Pozn: pre Payload Type = Sparkplug Edge Node sa automaticky posiela SUBSCRIBE správa aj na topic spBv1.0/STATE/<primaryHostApplication>, pokiaľ je zadaný parameter Sparkplug Host ID (<primaryHostApplication> je hodnota tohto parametra), aby bol D2000 KOM proces informovaný o pripojení sa/odpojení Primary Host Application. Pokiaľ príde STATE správa o odpojení sa Primary Host Application (STATE správa s online=false) a v konfigurácii linky je uvedených viacero IP adries, D2000 KOM proces sa odpojí od MQTT servera a skúša ďalšie MQTT servery, kým nenájde taký, ku ktorému je pripojená Primary Host Application (STATE správa s online=true). | - | # | ||||||
| Požadovaná maximálna úroveň potvrdzovania (QoS) posielaná v rámci SUBSCRIBE správy. MQTT server môže následne posielať PUBLISH správy s takouto alebo nižšou úrovňou potvrdzovania (ale nie vyššou). PUBLISH správy posielané MQTT serverom budú potvrdzované procesom D2000 KOM podľa úrovne potvrdzovania v nich špecifikovanej. Čím vyššia je úroveň potvrdzovania, tým viac správ je medzi klientom a serverom vymenených (1 pri QoS_0, 2 pri QoS_1 a 4 pri QoS_2). Pozn: Pre Payload Type = Sparkplug Edge Node sa vždy použije QoS_1. | QoS_0 QoS_1 QoS_2 | QoS_1 | ||||||
| Unikátny identifikátor klienta (Client Identifier) posielaný v rámci CONNECT správy. Pozn: je možné zadať aj prázdny reťazec - v tom prípade server môže klientovi prideliť unikátne meno (pokiaľ takúto funkcionalitu podporuje) alebo vráti chybu. Pokiaľ nie je zadaný Client ID, bude ale ignorované nastavenia parametra Clean Session Flag (keďže server pridelí zakaždým unikátne meno). Testovaný MQTT server (thethings.network) vrátil chybu, pokiaľ bolo Client ID prázdne a Clean Session Flag=NO. Pozn: niektoré MQTT brokery (PIXII.COM, Eclipse Mosquitto) identifikovali klientov iba podľa Client ID. V praxi to spôsobovalo, že dva rôzne D2000 systémy, ktoré sa pripájali k jednému brokerovi, boli považované za jedného klienta a broker pri vytvorení spojenia zrušil existujúce spojenie, ktoré považoval za staré, prípadne nedovolil vytvoriť nové spojenie a vrátil chybu Connection Refused, identifier rejected (2). Po nastavení Client ID na unikátnu hodnotu začali komunikácie fungovať bez rozpadov spojení. | - | D2000kom | ||||||
| Parameter Clean Session Flag správy CONNECT. Hodnota NO znamená, že server použije aktuálny stav session (spojenia) - napr. po rozpade a znovuobnovení TCP spojenia. Znamená to, že sú zaslané všetky nepotvrdené PUBLISH správy s QoS_1 a QoS_2 (a voliteľne aj QoS_0 v závislosti na implementácii). Hodnota YES znamená, že sa session vytvorí nanovo a žiadne nepotvrdené PUBLISH správy nie sú opakované. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný a Clean Session Flag sa nastaví na YES (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Clean Session Flag sa nastaví na YES (viď popis parametra Sparkplug Host ID). | YES/NO | NO | ||||||
| Úroveň potvrdzovania (QoS) použitá pri posielaní PUBLISH správ procesom D2000 KOM. Poslanie PUBLISH správy je dôsledok zápisu do výstupného meraného bodu s adresou OUT_VALUE. Čím vyššia je úroveň potvrdzovania, tým viac správ medzi klientom a serverom poslaných (1 pri QoS_0, 2 pri QoS_1 a 4 pri QoS_2). Pozn: Ak Payload Type = Sparkplug Host alebo Sparkplug Edge Node, tento parameter je ignorovaný a použije sa QoS_0. | QoS_0 QoS_1 QoS_2 | QoS_0 | ||||||
| Nastavenie príznaku Retain použité pri posielaní PUBLISH správ procesom D2000 KOM. Aktivácia príznaku Retain spôsobí, že posledná správa poslaná procesom D2000 KOM bude na MQTT serveri dostupná iným klientom okamžite po ich pripojení, ako aj po odpojení D2000 KOM procesu. Pozn: Ak Payload Type = Sparkplug Host alebo Sparkplug Edge Node, tento parameter je ignorovaný a použije sa Retain=False. | YES/NO | NO | ||||||
| Parameter Keep Alive posielaný v rámci CONNECT správy. Odporúčaná hodnota Keep Alive je niekoľko minút. D2000 KOM proces posiela PING výzvy podľa nastavení parametrov Keep Alive a Ping Interval (podľa toho, ktorý interval uplynie skôr). | 0-65535 sec | 0 | ||||||
| Pokiaľ MQTT server neposlal za špecifikovaný časový interval žiadnu správu, D2000 KOM proces pošle výzvu PING request a očakáva odpoveď PING response (do času Reply Timeout). Hodnota 0 posielanie PING request správ vypína. Parameter umožňuje detekovať rozpadnutie TCP spojenia. | 0-3600 sec | 60 | ||||||
| Nastavenie parsovania správy:
| Text only JSON Sparkplug Host Sparkplug Edge Node | Text only | ||||||
| Ak Payload Type=JSON, tak názov poľa s časovou značkou. Ak názov nie je zadaný alebo pole nie je nájdené, hodnotám je priradený aktuálny čas. | - | - | ||||||
| Ak Payload Type=JSON, tak maska pre parsovanie hodnoty v JSON poli s časovou značkou. Špeciálne masky sú:
Pozn: od nastavení časových parametrov stanice závisí, či je čas interpretovaný ako lokálny alebo UTC s nakonfigurovaným offsetom. Toto pravidlo neplatí pri použití špeciálnych masiek uvedených vyššie, keď sa používa vždy UTC čas s nulovým offsetom. | - | yyyy-mm-dd hh:mi:ss.mss | ||||||
| Ak Payload Type=JSON, ignorovanie chýbajúcej časovej značky - pokiaľ sa v JSON payloade nevyskytuje, nevypíše sa varovanie. | YES/NO | NO | ||||||
| Parameter Will Flag správy CONNECT. Hodnota Yes znamená, že server pošle záujemcom správu Last Will v prípade straty spojenia s D2000 KOM procesom. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný a Last Will sa posiela (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Last Will sa posiela (viď popis parametra Sparkplug Host ID). | YES/NO | NO | ||||||
| Úroveň potvrdzovania (QoS) použitá pri posielaní správy Last Will v prípade straty spojenia s D2000 KOM procesom. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný a nastaví sa QoS_1 (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a nastaví sa QoS_1 (viď popis parametra Sparkplug Host ID). | QoS_0 QoS_1 QoS_2 | QoS_0 | ||||||
| Nastavenie príznaku Retain použité pri posielaní správy Last Will v prípade straty spojenia s D2000 KOM procesom. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný a Retain sa nastaví na YES (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Retain sa nastaví na NO (viď popis parametra Sparkplug Host ID). | YES/NO | NO | ||||||
| Topic použitý pri posielaní správy Last Will v prípade straty spojenia s D2000 KOM procesom. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Topic sa nastaví podľa Sparkplug štandardu (viď popis parametra Sparkplug Host ID). | - | |||||||
| Obsah správy Last Will v prípade straty spojenia s D2000 KOM procesom. Pozn: Ak Payload Type = Sparkplug Host a parameter Sparkplug Host ID nie je prázdny, tento parameter je ignorovaný (viď popis parametra Sparkplug Host ID). Pozn: Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný a Last Will sa nastaví podľa Sparkplug štandardu (viď popis parametra Sparkplug Host ID). | - | |||||||
| Pokiaľ do požadovaného času MQTT server neodpovie na správy SUBSCRIBE, UNSUBSCRIBE a PING request, prípadne sa nepodarí načítať ľubovoľnú správu (a je načítaná iba jej časť), D2000 KOM proces vyhlási chybu, zavrie spojenie a znovu ho otvorí. Hodnota 0 vypína časový limit. Parameter umožňuje reagovať na problematické chovanie MQTT servera. | sec | 20 | ||||||
| Timeout čakanie pri jednom čítaní z TCP spojenia. D2000 KOM opakuje čítanie spontánnych dát Max. Wait Retry krát a pokiaľ nenačíta žiadne dáta, je vyhlásený timeout a čítanie je ukončené (a môže nasledovať ďalšie čítanie alebo prípadne zápis). Zmenšením parametrov Wait Timeout a Max. Wait Retry je možné dosiahnuť rýchlejšiu odozvu D2000 KOM procesu na zápis na úkor vyššej záťaže CPU, pokiaľ MQTT server nemá žiadne dáta. Pozn: ak od MQTT servera prichádza veľa správ a D2000 KOM potrebuje aj zapisovať hodnoty, odporúčame nižšu hodnotu parametra (napr. 0.005 sec), aby zápis nebol blokovaný čítaním (v každom prípade ale po 10 prijatých správach nasleduje prerušenie, počas ktorého sa môžu vykonať nahromadené zápisy). | sec | 0.100 | ||||||
| Počet opakovaní čítania z TCP spojenia. Pozri popis parametra Wait Timeout. | - | 3 | ||||||
| Kódovanie poľa Payload. MQTT protokol nešpecifikuje obsah poľa Payload; štandardné kódovanie ISO-8859-1 je vhodné na textový aj binárny obsah, UTF-8 je vhodné, ak sú prenášané UTF-8 kódované texty. Aktuálne podporované kódovania sú:
| - | ISO-8859-1 | ||||||
MQTT 5.0 Parameters | |||||||||
| Počet Topic Aliasov, ktoré môže poslať MQTT broker (parameter sa posiela v správe CONNECT). Hodnota 0 (default) znamená, že Topic Aliasy nie sú použité. Parameter je použitý iba pre MQTT Version = MQTT 5.0. Topic Aliasy sú číselné identifikátory z intervalu <1 ... Topic Alias Maximum>, ktoré posiela D2000 KOM ako aj MQTT Broker namiesto textových identifikátorov. Pozn: V správe CONNACK (odpoveď na CONNECT) posiela voliteľne MQTT broker svoju hodnotu "Topic Alias Maximum", ktorá má význam počtu Topic Aliasov, ktoré môže poslať D2000 KOM proces (napr. test.mosquitto.org posiela hodnotu 10). D2000 KOM používa Topic Aliasy iba ak hodnota jeho konfiguračného parametra Topic Alias Maximum je nenulová. | 0 | 0 - 65535 | ||||||
Sparkplug parametre | |||||||||
| Pre Payload Type = Sparkplug Host: Timeout (v sekundách) na príchod chýbajúcej správy typu NDATA/DDATA. Správy NDATA/DDATA obsahujú sekvenčné číslo (0..255), pričom správa NBIRTH obsahuje sekvenčné číslo 0 (resetuje postupnosť). Ak D2000 KOM zistí medzeru v sekvencii a chýbajúca správa/správy neprídu do času Reorder Timeout, pošle na príslušnú stanicu príkaz NCMD s metrikou 'Node Control/Rebirth', ktorý spôsobí, že príslušný Edge Node pošle NBIRTH správu (a DBIRTH správy pre všetky svoje Devices). Tento parameter je implementovaný na odporúčanie Sparkplug špecifikácie. Pozn: Nastavenie Reorder Timeout=0.000 vypína detekciu chýbajúcich správ. | 05.000 | 0-59.999 | ||||||
| Parameter aktivuje výpisy neznámych metrík a tém (Topicov), ktoré nemajú vlastné stanice, ale skončia na stanici s adresou ".*" (ak taká existuje). Výpisy budú v logu linky ako chybové hlášky aj keď je debug na linke vypnutý (na uľahčenie pridávania meraných bodov). | YES/NO | NO | ||||||
| Pre Payload Type = Sparkplug Host: Aktivácia parsovania neštandardných SparkPlug topicov. | YES/NO | NO | ||||||
| Pre Payload Type = Sparkplug Host: v rámci metriky je možné definovať vlastnosť (Property) s názvom Quality typu Int32. Podľa Sparkplug štandardu musí nadobúdať hodnoty 0=BAD, 192=GOOD, 500=STALE. Akúkoľvek inú hodnotu D2000 Kom proces reportuje ako chybu. Parametrom Ignore Unknown Quality je možné potlačiť tento chybový výpis. | YES/NO | NO | ||||||
| Pre Payload Type = Sparkplug Host: Parameter udáva, ktoré adresy metriky typu Dataset sa zobrazia pri browsovaní:
| - | Columns only | ||||||
| Pre Payload Type = Sparkplug Host: Oddeľovač jednotlivých úrovní v šablónach (Templates) použitý pri zadávaní adresy meraného bodu v Sparkplug režime. | -> | |||||||
| Pre Payload Type = Sparkplug Host: Identifikátor Host Aplikácie (D2000 je Host Aplikácia). Pre Payload Type = Sparkplug Edge Node: Identifikátor Primary Host Aplikácie (Host Aplikácie, ktorá je pre tento Edge Node definovaná ako primárna - najdôležitejšia). | - | - | ||||||
| Pre Payload Type = Sparkplug Edge Node, parameter zapína Store & Forward funkcionalitu pre všetky stanice na linke: pokiaľ je komunikácia s MQTT brokerom nefunkčná, hodnoty sa ukladajú do pamäte a po obnovení komunikácie sa pošlú s príznakom príznakom is_historical. | YES/NO | NO | ||||||
| Pridanie textovej reprezentácie typu hodnoty (napr. Int32) a časovej značky do textového meraného bodu s adresou IN_SP2JS slúžiaceho na konverziu Sparkplug payloadu na JSON a prípadné parsovanie v ESL skripte. | YES/NO | NO | ||||||
...