MqttSubscribe – Odběr zpráv z MQTT topic
Symbol blokuPotřebná licence: MQTT
Popis funkce
Tento funkční blok je závislý na MQTT ovladači. Je doporučeno si před použitím přečíst manuál MQTTDrv ovladače [6].
Účelem bloku MqttSubscribe je přihlášení se k odebírání zpráv ze zařízení typu MQTT Broker a a jejich vyčítání prostřednictvím spojení, které zajišťuje ovladač MQTTDrv.
Parametr topic určuje tématický celek, k jehož odběru se blok přihlašuje. Protokol MQTT doručuje aplikační zprávy dle zvolené úrovně kvality služby (Quality of Service – QoS). Požadovaná úroveň lze nastavit parametrem QoS. Více informací naleznete ve specifikaci MQTT protokolu [7] (pouze anglicky).
Nastavením parametru type lze určit, jaký je očekávaný typ čtených zpráv. Blok se snaží konvertovat příchozí zprávy do zvoleného datového typu a výsledek nastavuje na výstupní signál value v případě úspěchu a nebo nastavuje výstup errId na příslušný chybový kód.
Parametr mode má dvě možné hodnoty: Last value a Buffered values. Pokud je parametr nastaven na hodnotu Last value, blok na výstup vždy vystaví pouze poslední zprávu i v případě, že bylo v poslední periodě přijato více zpráv. Pokud je ale parametr nastaven na hodnotu Buffered values, blok si zprávy ukládá do vnitřního bufferu a na výstup předává jednu zprávu za druhou v následujících ticích tasku.
Parametr defBuffSize může být použit pro optimalizaci práce s pamětí bloku. Hodnota parametru představuje velikost staticky alokované paměti pro vnitřní buffer odchozích zpráv. Pokud je velikost bufferu nadbytečně velká, blok si alokuje paměť, která je zbytečně blokována. Na druhou stranu pokud je hodnota parametru příliš malá, algoritmus bloku musí často dynamicky alokovat paměť, což je časově náročná operace.
Akce přihlášení se k odběru je provedena na základě vzestupné hrany (offon) a odhlášení odběru na základě sestupné hrany (onoff) vstupu RUN.
Výstup nDRDY určuje počet přijatých zpráv, které jsou dostupné ve vnitřním bufferu. Pokud je parametr mode nastaven na hodnotu Last value výstup může mít pouze hodnotu 0 nebo 1.
Výstup RETAIN je nastaven na on, pokud přijatý paket měl nastaven příznak RETAIN. Více informací naleznete ve specifikaci MQTT protokolu [7] (pouze anglicky)..
Přihlašování se k odběrům s využitím zástupných znaků typu wildcards není podporováno.
Vstup
RUN | Povolení běhu algoritmu | Bool |
Parametry
topic | MQTT topic | String |
QoS | Quality of Service 1 | Long (I32) |
|
|
|
type | Očekávaný typ příchozích dat 1 | Long (I32) |
|
|
|
mode | Způsob bufferování příchozích zpráv 1 | Long (I32) |
|
|
|
defBuffSize | Výchozí velikost bufferu 1 2048 | Long (I32) |
Výstupy
value | Výstupní signál | Unknown |
nDRDY | Počet přijatých zpráv 0 10 | Long (I32) |
errId | Kód chyby | Error |
[Předchozí] [Na začátek] [Výše]
2020 © REX Controls s.r.o., www.rexygen.com