Obsah

MQTT

V Mervis IDE je protokol MQTT technicky implementován jako klientský driver. Protože však Mervis RT dokáže data jak publikovat (poskytovat), tak i odebírat (přijímat), funguje efektivně oběma směry. Do sekce serverových protokolů je zařazen proto, že prostřednictvím centrálního Brokeru funguje jako poskytovatel dat pro ostatní systémy.

Data jsou organizována pomocí „Topics“, což jsou hierarchické struktury fungující jako cesty, kam jsou data publikována. Například základní složka může být building/hvac, se podsložkami jako building/hvac/temp.

(Poznámka k organizaci: Mervis podporuje Prototypy, které pomáhají systematicky organizovat pojmenování v rozsáhlých projektech. Nebudeme se jim zde detailně věnovat, ale jejich použití je velmi doporučeno pro udržení přehlednosti proměnných.)

Krok 1: Nastavení připojení k brokeru

Nejprve je potřeba vytvořit komunikační spojení mezi vaším Mervis zařízením a MQTT brokerem.

Nastavení TCP a MQTT parametrů zařízení

1. Konfigurace TCP parametrů

2. Konfigurace parametrů zařízení

Užitečné makra Při nastavování Client ID nebo Topics můžete použít makra (nerozlišují velikost písmen), která automaticky doplní systémová data. Tím zajistíte plný kontext bez nutnosti opakovaného psaní.

Makro Popis
ClientId Vloží definované MQTT Client ID.
PlcName Vloží přiřazený název PLC.
system.rtc Vloží systémový reálný čas (lokální čas).
system.rtcutc Vloží systémový čas v UTC (Coordinated Universal Time).

3. Nastavení rozumného intervalu čtení/zápisu (KRITICKÉ)

Krok 2: Organizace skupin pro čtení a zápis

Mervis RT organizuje komunikaci oddělením příchozích a odchozích dat.

Prohlížeč proměnných s přehledně oddělenými Read_Group a Write_Group

1. Read Group (Subscribing)

Mervis RT používá Read Group pro odběr topicu, parsování dokumentu a aktualizaci hodnot v programu.

Vlastnosti Read Group

2. Write Group (Publishing) & šablony

Mervis RT používá tuto skupinu pro vytvoření dokumentu a jeho odeslání do brokeru.

Vlastnosti Write Group

Krok 3: Vytváření a mapování datových bodů

(Poznámka pro nové uživatele: Mapování datových bodů a práce s Enumy je obecná vlastnost klientských kanálů v Mervis. Pokud jste již používali Modbus nebo jiné protokoly v Mervis, bude vám tento proces velmi povědomý.)

1. Mapování vstupních proměnných

Uvnitř Read_Group vytvořte datový bod pro vstup.

Mapování příchozích MQTT dat na interní proměnnou

2. Mapování výstupních proměnných

Uvnitř Write_Group vytvořte datový bod pro výstup (např. Total).

Mapování vypočtené interní proměnné do MQTT brokeru

Krok 4: Logika funkčních bloků

Po namapování komunikačních proměnných je můžete použít ve standardní logice IEC 61131-3.

Jednoduchý FBD program sčítající vstupy logického bloku

V praktické aplikaci můžete například mapovat dva MQTT vstupy (např. Power_Zone_1 a Power_Zone_2) a sečíst je pro výpočet celkové spotřeby energie objektu. Matematický blok vypočítá součet a výsledek se zapíše přímo do globální MQTT výstupní proměnné (Calculated_Total).

Krok 5: Testování pomocí MQTTX

Pro ověření správné funkčnosti použijte desktopového klienta, jako je MQTTX, který simuluje reálný datový provoz. Umožní vám vidět výsledky Publish Templates vytvořených v Kroku 2.

Simulace senzorických dat v MQTTX