Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

  • Komunikačný protokol "MQTT Client Protocol".
  • Adresa stanice: adresa stanice zodpovedá poľu Topic v správe PUBLISH prijatej od MQTT servera. Adresou môže byť konkrétna téma (Topic), regulárny výraz,  znak # reprezentujúci všetky témy, alebo topic .* reprezentujúci všetky témy, ktoré nie sú vhodné pre iné stanice. Priorita spracovania je takáto
    Kotva
    prio_processing
    prio_processing
    :
    • Pokiaľ je na linke stanica s adresou #, všetky správy sú smerované na jej merané body a ďalej sa nehľadá.
    • Ďalej sú prehľadávané všetky ostatné stanice na linke (s výnimkou adresy .*). Ak s Topic zhoduje s adresou stanice, správa je určená pre ňu a ďalej sa nehľadá.
    • Ďalej sú prehľadávané všetky ostatné stanice na linke (s výnimkou adresy .*), pričom ich adresa je vyhodnocovaná ako regulárny výraz. Ak s Topic zhoduje s adresou stanice, správa je určená pre ňu a ďalej sa nehľadá. Stanice sú prehľadávané v zostupnom poradí (podľa adresy stanice), takže špecifickejšie výrazy idú ako prvé (napr. status/battery pred status/batt.*)
    • Nakoniec ak existuje stanica s adresou .*, správa je určená pre ňu.
  • Parametre pollingu na záložke Časové parametre - odporúčaná je hodnota Delay=0.

...

Kotva
komunikacna_stanica_pozn
komunikacna_stanica_pozn
Pozn: Ak je adresa stanice v skrátenom tvare, nespracúvajú sa pre ňu príkazy (DCMD, NCMD). Ak je v tvare regulárneho výrazu ('namespace/group_id/.*/edge_node_id/[device_id]'), stanica spracúva aj príkazy (včítane príkazu posielaného D2000 KOM procesom, ak Send Node Control/Rebirth=YES). Preto odporúčame adresu stanice v skrátenom tvare. Pokiaľ je potrebné spracovávať aj príkazy (od inýchHost Applications), tak vytvoriť inú stanicu s adresou v tvare regulárneho výrazu (napr. spBv1.0/Sparkplug Devices/DCMD/MyDevice).


Tlačidlo Browse otvorí browsovací dialóg pre adresu stanice. Pokiaľ je komunikácia funkčná, zobrazí sa dialóg s doteraz prijatými Topicmi. Tlačidlom Refresh je možné zoznam prijatých Topicov vyčistiť. Dvojité kliknutie na konkrétny riadok spôsobí, že sa hodnota zo stĺpca Address vloží do konfigurácie stanice, z ktorej bol browsovací dialóg otvorený.
Poznámka: v stĺpci Station sa zobrazuje stanica, ktorej bol Topic priradený (na základe vyššie uvedených priorít spracovania). Pre Sparkplug adresy sa zobrazuje skrátený tvar adresy.

Image Added

Parametre protokolu stanice

...

Typ boduAdresaPopis
Body pre čítanie dát poslaných MQTT serverom správou PUBLISH.
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
Kotva
in_topic
in_topic
IN_TOPIC
Téma (Topic) prijatej správy PUBLISH.
TxtI
Kotva
in_data
in_data
IN_DATA
Dáta (Payload) prijatej správy PUBLISH.
Ci
Kotva
in_id
in_id
IN_ID
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.
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
Kotva
ack_id
ack_id
ACK_ID
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

Kotva
out_topic
out_topic
OUT_TOPIC

Téma (Topic) v rámci posielanej správy PUBLISH.
TxtO

Kotva
out_value
out_value
OUT_VALUE

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,
Ci, Co,
Ai, Ao,
Di, Do,
TiR, ToR, TiA, ToA

Kotva
ja
ja
JA=json_address

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. 
Pre JSON správy, ktoré môžu byť štruktúrované, je podporená syntax level1.level2.level3 ..., napr. rx.current a pokiaľ obsahujú polia (indexované od 1) tak aj level1[index1].level2[index2].level3 ..., napr. rx.gwrx[1].time.
Keďže samotná JSON správa môže byť pole, adresa môže začínať aj indexom, napr. JA=[1].batt_cell_v_avg

Príklady viď popis meraných bodov typu Envelope protokolu LoRaWAN.

Body pre parsovanie Sparkplug správ

TxtI, TxtO, Qi,
Ci, Co,
Ai, Ao,
Di, Do,
TiR, ToR, TiA, ToA

Kotva
sa
sa
Vstupné body:
SA=sparkplug_address

Výstupné body:
ST=type;SA=sparkplug_address

Pokiaľ Payload Type=Sparkplug, 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).

Pri výstupných bodoch je nutné uviesť aj typ hodnoty. Podporované sú jednoduché typy:

  • Int8
  • Int16
  • Int32
  • Int64
  • UInt8
  • UInt16
  • UInt32
  • UInt64
  • Float
  • Double
  • Boolean
  • String
  • DateTime
  • Text

PUBLISH správa vytvorená pri zápise obsahuje Topic odvodený od adresy stanice. Typ správy závisí od adresy stanice - či sa jedná o Edge Node (NCMD) alebo Device/Sensor (DCMD). Payload obsahuje časovú značku, typ hodnoty (type) zapisovanú hodnotu (zakódovanú podľa špecifikovaného typu hodnoty) a názov metriky (sparkplug_address).


Browse

Pre merané body v Sparkplug režime je možné zistiť zoznam objektov, pokiaľ KOM proces beží a komunikácia so stanicou je nadviazaná.
Po kliknutí na tlačidlo Browse sa otvorí okno MQTT Item Browser a zobrazí sa zoznam doteraz načítaných metrík. Zoznam objektov sa vytvára dynamicky v dôsledku prijatých správ .

Zoznam objektov je dynamický, t.j. pri príchode novej hodnoty do KOM procesu je aktualizovaný. Podporované je aj filtrovanie v jednotlivých stĺpcoch (s výnimkou časového stĺpca Time), v maske je možné používať hviezdičky (napr. *Short*).

Dvojité kliknutie na konkrétny riadok spôsobí, že sa hodnota zo stĺpca Address vloží do konfigurácie meraného bodu, z ktorého bolo okno MQTT Item Browser otvorené.

Tlačidlo Refresh spôsobí vymazanie zoznamu hodnôt v CNF aj v KOM procese a prípadne poslanie Rebirth príkazu (ak Send Node Control/Rebirth=YES).

V stĺpci Value sa nachádza prijatá hodnota.

Image Modified

Kotva
literatura
literatura
Literatúra

...

  • Ver. 1.0 - 8. august 2017 - vytvorenie dokumentu.
  • Ver. 1.1 - 15. október 2021 - podpora parametrov pre LastWill a Retain
  • Ver. 1.2 - 27. október 2021 - podpora parsovania JSON správ
  • Ver. 1.3 – 1. február 2022 – podpora časových značiek v správach JSON
  • Ver. 1.4 – 4. októbra 2024 – podpora pre MQTT Sparkplug, podpora pre browsovanie


Info
titleSúvisiace stránky:

Komunikačné protokoly

...