...
| Kľúčové slovo | Plný názov | Popis | Jednotka | Náhradná hodnota | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Subscribe Station Address | Ak má tento parameter hodnotu YES, do SUBSCRIBE správy je pridaný aj Topic súvisiaci s adresou stanice:
| YES/NO | NO | ||||||
| Station Will Topic | Will topic zariadenia. Ak je tento parameter nastavený a je prijatá správa so zhodným topicom, stanica prejde do komunikačnej chyby (StHardErr) a hodnoty meraných bodov sa zneplatnia. Takto je možné emulovať štandardné správanie, ktoré nastane pri chybe komunikácie so zariadením (aj keď komunikácia medzi procesom D2000 Kom a MQTT brokerom je funkčná). Ak Payload Type = Sparkplug Host, nie je nutné zadávať tento parameter - ak príde NDEATH/DDEATH správa s topicom, ktorý zodpovedá adrese stanice, stanica prejde do komunikačnej chyby. | ||||||||
| Station Will Payload | Obsah Will správy. Ak je tento parameter nastavený a je prijatá správa so zhodným topicom ako definuje parameter Station Will Topic, musí byť navyše zhodný aj Payload. Ak tento parameter je prázdny reťazec, stačí zhoda topiccu s parametrom Station Will Topic. Pozn: tento parameter bol implementovaný kvôli MQTT brokerom, ktorí posielajú správy s rovnakým Topic pri pripojení/odpojení zariadenia, pričom rozdiel je iba v Payloade. Ak Payload Type = Sparkplug Edge Node, tento parameter je ignorovaný. | ||||||||
| Payload Type | Nastavenie parsovania správy (preťaženie linkového parametra Payload Type):
| Default Text only JSON Sparkplug | Default | ||||||
| Time Field Name | Ak Payload Type = JSON, tak názov poľa s časovou značkou - preťaženie linkového parametra Time Field Name. | - | - | ||||||
| Time Mask | Maska pre parsovanie hodnoty v poli s časovou značkou - preťaženie linkového parametra Time Mask). Pozn: od nastavení časových parametrov stanice závisí, či je čas interpretovaný ako lokálny alebo UTC s nakonfigurovaným offsetom. | - | - | ||||||
Sparkplug parametre | ||||||||||
| Send Node Control/Rebirth | Ak Payload Type = Sparkplug Host, pri pripojení sa k MQTT serveru sa pošle na SparkPlug stanicu príkaz (NCMD alebo DCMD) s metrikou 'Node Control/Rebirth'. Odpoveďou by mala byť správa (NBIRTH/DBIRTH) so všetkými aktuálnymi metrikami. | YES/NO | YES | ||||||
| Batch Size | Ak Payload Type = Sparkplug Edge Node: Parameter udáva maximálny počet hodnôt (metrík), ktoré sú poslané v jednej správe (NDATA/DDATA). Parameter umožňuje optimalizáciu počtu MQTT správ (viac menších alebo menej väčších s oneskorením). Čítanie hodnôt zo stanice (funkcia ReadAllPoints) spôsobí poslanie nabuffrovaných hodnôt, aj keď ešte nebolo dosiahnuté nakonfigurované maximum (tj. väčšie časové oneskorenie v parametroch stanice spôsobí, že sa môže nabuffrovať viacej hodnôt). | 1-1000 | 10 | ||||||
| Store & Forward | Ak Payload Type = Sparkplug Edge Node: Parameter umožnuje zmeniť Store & Forward funkcionalitu, ktorú pre všetky stanice na linke definuje linkový parameter Store & Forward. Hodnota Default znamená použitie nastavenia nakonfigurovaného na linke. | Default False True | Default | ||||||
| Store & Forward Batch Size | Pokiaľ je aktívna Store & Forward funkcionalita (viď parameter Store & Forward), parameter udáva maximálny počet historických hodnôt, ktoré sú poslané v jednej správe (NDATA/DDATA) po obnovení komunikácie. | 1-1000 | 10 | ||||||
| Sparkplug Alias Mode | Ak Payload Type = Sparkplug Edge Node, parameter určuje režim používania aliasov. Aliasy sú numerické (celočíselné - Int64) identifikátory, používané voliteľne v správach s dátami a príkazmi (NDATA/DDATA/NCMD/DCMD) namiesto textových identifikátorov, z dôvodu zmenšenia veľkosti správ. Ak sa používajú, v správe NBIRTH/DBIRTH sú uvedené spolu s textovými identifikátormi. Aliasy musia byť unikátne v rámci všetkých meraných bodov patriacich pod jednu stanicu.
| Default (SAL=alias) Automatic (HOBJ) Off | Default (SAL=alias) | ||||||
| Sparkplug-to-JSON Mode | Parameter definuje formát JSON dát pre meraný bod s adresou IN_SP2JS (konverzia Sparkplug payloadu na JSON). JSON dáta sú buď generované v kompaktnom stave vhodnom pre ďalšie strojové spracovanie (polia oddelené medzerami), alebo v tvare vhodnom na zobrazenie pre ľudí (multiline formát). | Compact Multiline | Compact | ||||||
| Sparkplug Compression | Voliteľná kompresia používaná pre NDATA/DDATA správy ak Payload Type = Sparkplug Edge Node/NCMD/DCMD/NBIRTH/DBIRTH správy. Ak je výsledná správa po použití kompresie väčšia ako pôvodná (napr. v dôsledku pridaných informácií), pošlú sa dáta neskomprimované. | None | None | ||||||
...
| Typ bodu | Adresa | Popis | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Body pre čítanie dát poslaných MQTT serverom správou PUBLISH (zvyčajne používané v textovom režime alebo režime JSON, zriedkavo v režime Sparkplug). Pozn: hodnoty bodov sú nastavené D2000 KOM procesom v poradí IN_TOPIC, IN_DATA a IN_ID. Nie je nutné, aby konfigurácia obsahovala všetky tri body. | ||||||||||||||||||||||
| TxtI |
| Téma (Topic) prijatej správy PUBLISH. | ||||||||||||||||||||
| TxtI |
| Dáta (Payload) prijatej správy PUBLISH. | ||||||||||||||||||||
| Ci |
| Identifikátor paketu (Packet Identifier) správy PUBLISH, ktorý závisí od úrovne potvrdzovania (QoS). Pre správy posielané s QoS_0 je identifikátor nulový, pre QoS_1 a QoS_2 je to kladné 16-bitové číslo. Na linke TCP/IP-TCP je identifikátor monotónne rastúci, na linke TCP/IP-TCP Redundant sa môžu striedať hodnoty z dvoch monotónne rastúcich postupností (takže sa môžu aj opakovať), takže platí odporúčanie uvedené v nasledujúcej poznámke: Pozn: Ak MQTT server posiela aj správy s úrovňou potvrdzovania QoS_0 a je nakonfigurovaný bod ACK_ID, odporúčame na záložke Filter aktivovať voľbu Nová hodnota pri zmene času, aby opakovaný zápis hodnoty 0 spôsobil generovanie novej hodnoty líšiacej sa iba časovou značkou. | ||||||||||||||||||||
| Bod pre potvrdenie prijatia dát MQTT serveru. | ||||||||||||||||||||||
| Co |
| Ak je definovaný výstupný meraný bod s adresou ACK_ID, D2000 KOM očakáva potvrdenie spracovania každej správy zápisom kópie hodnoty bodu IN_ID. Až následne nastaví do bodov IN_TOPIC, IN_DATA a IN_ID (v tomto poradí) hodnoty z ďalšej prijatej PUBLISH správy (ak bola medzitým prijatá). V prípade úrovne potvrdzovania QoS_0 je teda nutné opakovane zapisovať do bodu hodnotu 0. Pokiaľ meraný bod ACK_ID neexistuje, hodnoty do bodov IN_TOPIC, IN_DATA a IN_ID sú nastavované ihneď po spracovaní PUBLISH správy. Pozn: Pre správy prijaté s úrovňou potvrdzovania QoS_0 sa neposiela žiadne potvrdenie MQTT serveru, iba sa zverejnia hodnoty ďalšej prijatej PUBLISH správy. | ||||||||||||||||||||
| Body pre posielanie hodnôt MQTT serveru správou PUBLISH. Pozn: ak má D2000 KOM proces posielať MQTT serveru správy PUBLISH, musia byť definované obidva body v rámci jednej stanice. | ||||||||||||||||||||||
| TxtO |
| Téma (Topic) v rámci posielanej správy PUBLISH. Pozn: Ak meraný bod s adresou OUT_TOPIC neexistuje, ako Topic sa použije priamo adresa stanice (ak je prázdna, zápis sa nevykoná). | ||||||||||||||||||||
| TxtO |
| Dáta (Payload) v rámci posielanej správy PUBLISH. Pozn: Poslanie správy sa uskutoční ako reakcia na zápis do bodu OUT_VALUE (t.j. pokiaľ sa Topic nemení, tak stačí bod OUT_TOPIC nastaviť jednorazovo - napr. pomocou štartovacej hodnoty). | ||||||||||||||||||||
| Body pre parsovanie JSON správ | ||||||||||||||||||||||
TxtI, TxtO, Qi, |
| Pokiaľ Payload Type=JSON, správa je parsovaná ako JSON dáta. Hodnota json_address udáva názov JSON poľa, ktorého hodnota sa má priradiť do meraného bodu. Príklady viď popis meraných bodov typu Envelope protokolu LoRaWAN. Pozn: Pokiaľ je potrebné načítať celé pole, je možné nakonfigurovať Cieľový stĺpec štruktúry a zadať adresu s indexom 0, napr. JA=myarray[0] alebo JA=struct.myarray[0].itemA
Pri zápise sa generuje JSON obsahujúci samotnú hodnotu ako aj voliteľne časovú značku, ak je nastavený protokolový parameter stanice Time Field Name resp. linkový parameter Time Field Name. | ||||||||||||||||||||
Body pre parsovanie Sparkplug správ | ||||||||||||||||||||||
TxtI, TxtO, Qi, |
SA=sparkplug_address SAL=alias;SA=sparkplug_address ST=type;SA=sparkplug_address ST=type;SAL=alias;SA=sparkplug_address | Pokiaľ Payload Type = Sparkplug Host/Edge Node, správa je parsovaná ako Sparkplug dáta (binárny formát postavený na Google Protocol Buffers). Sparkplug dáta obsahujú metriky, ktoré majú textové identifikátory (sparkplug_address) alebo prípadne numerické aliasy (alias). Čítanie položiek šablón (Templates) je možné zadaním sparkplug_address vo formáte <TemplateName1><Separator><TemplateName2><Separator> ... <Separator><ItemName> kde:
Príklady adries položiek šablón: Čítanie položiek datasetov (ekvivalent štruktúrovaných premenných v D2000) je možné zadaním sparkplug_address vo formáte <DatasetName>[<Row>]^<ColumnName> kde:
Príklady adries položiek datasetov: Pri výstupných bodoch je možné explicitne uviesť aj typ hodnoty (ST=type). Podporované sú jednoduché typy (nie položky šablón alebo datasetov):
Pokiaľ typ hodnoty nie je uvedený, prednastavená hodnota závisí od typu meraného bodu:
Pozn: medzi typmi String a Text nie je žiaden rozdiel. Pre Payload Type = Sparkplug Edge Node je pri vstupných aj výstupných bodoch možné uviesť aj numerický alias (SAL=alias) ako prirodzené číslo (0, 1, 2, ...). Alias meraného bodu v rámci stanice musí byť unikátny. Alias umožňuje zmenšiť veľkosť prenášaných dát: v správe NBIRTH/DBIRTH sa uvedie pre každý bod textový identifikátor (sparkplug_address) aj alias, v správach NDATA/DDATA sa posielajú iba aliasy, ktoré sú kratšie ako textové adresy. Alias je použitý iba ak Sparkplug Alias Mode = "Default (SAL=alias)". PUBLISH správa vytvorená pri zápise obsahuje Topic odvodený od adresy stanice. Typ správy závisí od adresy stanice:
Payload správy obsahuje časovú značku, typ hodnoty (type),zapisovanú hodnotu (zakódovanú podľa špecifikovaného typu hodnoty) a názov metriky (sparkplug_address) respektíve alias. | ||||||||||||||||||||
TxtI |
| Meraný bod slúži na konverziu Sparkplug payloadu na JSON reprezentáciu, ktorá môže byť následne spracovaná napr. v ESL skripte. V závislosti od parametra Convert Datatype/Timestamp to Text sa pridáva aj textová reprezentácia typu hodnoty a časovej značky. {"metrics":[{"datatype":3,"int_value":7338992,"name":"Corrected Vol Acc Stn","timestamp":1729664005479}],"seq":32,"timestamp":1729664005479} {Príklad komplexnejšej hodnoty obsahujúcej properties a dataset a zobrazujúcej aj textovú reprezentáciu dátového typu (datatype_txt) a časovej značky (timestamp_txt) v dôsledku nastaveného parametra Convert Datatype/Timestamp to Text. { | ||||||||||||||||||||
...
| Info | ||
|---|---|---|
| ||
O protokole MQTT si môžete prečítať blog blogy: |
...