Co je MQTT

MQTT (Message Queue Telemetry Transport) je jednoduchý otevřený komunikační protokol pro přenos datových zpráv. Je značně oblíben a často využíván ke komunikaci se zařízeními IoT (Internet of Things), respektive IIoT (Industrial Internet of Things). V průmyslové automatizaci jeho popularita v posledních letech výrazně vzrůstá a MQTT protokol se stává jedním ze stěžejních standardů pro datovou komunikaci.

Připomeňme si základní strukturu a principy MQTT komunikace.

Struktura datové zprávy

Každá datová zpráva je označena názvem topicu, podle kterého je následně přiřazována jednotlivým subscribers. Přílohou zprávy mohou být jakákoliv data v různých formátech, nejčastěji je pro přenos využíván formát JSON.

MQTT broker

Server, který sbírá data od jednotlivých MQTT publishers a spravuje jejich distribuci pro MQTT subscribers.

MQTT publisher

Klient, který posílá datové zprávy na MQTT broker.

MQTT subscriber

Klient, který odebírá zprávy, k jejichž odběru je přihlášen, z MQTT broker.

Komunikace

Každé klientské zařízení může být současně publisher i subscriber. Princip MQTT komunikace zajišťuje, že klientské stanice dostávají pouze ta data, která potřebují (topics, k jejichž odběru jsou přihlášeny). Díky tomu může MQTT fungovat efektivněji oproti klasické komunikační architektuře server/klient, která je založená na jednotlivých voláních serveru a následných odpovědích (v MQTT komunikaci nedochází k opakovaným voláním serveru a k přenosům nepotřebných dat, nezměněných hodnot a podobně).

Zabezpečení

Zabezpečení je v MQTT realizováno pomocí

  • Autentikace uživatele jménem a heslem
  • Autorizace uživatele k jednotlivým MQTT topics nebo k aktivitám (subscribing, publishing, obojí)
  • TLS/SSL – ověření komunikačních uzlů a kryptovaná komunikace

Softwarové produkty, které popisujeme v tomto článku, nabízejí možnost zabezpečení MQTT komunikace pomocí TLS/SSL. Toto zabezpečení však zatím není podporováno u MQTT komunikace, která je nastavena přímo v programových aplikacích řídicích systémů (Micro800 nebo ControlLogix a CompactLogix).

 

MQTT v produktech Rockwell Automation

V posledních letech nebylo možné si nevšimnout, že vývojářské týmy Rockwell Automation přistupují k MQTT komunikaci se zvláštní pozorností a implementují ji do různých svých projektů.

Snahou je zpřístupnit MQTT komunikaci v jednotlivých softwarových i hardwarových nástrojích tak, aby její ovládání bylo uživatelsky snadné a pohodlné, bez nutnosti dodatečného kódování a s co možná nejširší mírou integrace.

V tomto článku předkládáme souhrnný přehled o současném (červen 2025) stavu implementace MQTT v jednotlivých produktech našeho portfolia.

.

FactoryTalk Optix

Nejrozsáhlejší podporu MQTT komunikace obsahuje v současné době FactoryTalk Optix – vizualizační HMI platforma, která je často využívána i jako univerzální komunikační brána.

FactoryTalk Optix umožňuje shromáždit data z automatizačních zařízení a z různých dalších zdrojů, provést s daty základní preprocessing či analýzu a následně je dále poskytnout nejrůznějšími způsoby dalším aplikacím.

MQTT přitom může stát nejen na obou stranách této datové komunikace, ale dokonce také uprostřed.

Aplikace FactoryTalk Optix může být

  • MQTT subscriber. Tímto způsobem je možné sbírat MQTT data do vizualizačních proměnných, pracovat s nimi v Optix aplikaci, použít je k ovládání připojených řídicích systémů, zobrazovat je uživatelům, ukládat je do databází, a tak dále.
  • MQTT publisher. Optix aplikace může posílat data v pravidelných intervalech nebo na základě událostí či uživatelské interakce jakémukoliv MQTT brokeru. Takto můžeme snadno zajistit přenos automatizačních dat po jejich případném preprocessingu do dalších aplikací.
  • MQTT broker. Ano, sama Optix aplikace dokáže realizovat i serverovou roli MQTT brokera. Tato funkcionalita se hodí zejména tehdy, když zákazník potřebuje zajistit interní, lokální MQTT komunikaci mezi zařízeními v OT síti a přitom nemá v úmyslu instalovat dedikovaný MQTT server. Optix aplikace může tímto způsobem přijímat MQTT topics sama od sebe i z jiných zařízení, nastavit si sama pro sebe odběr těchto dat, nebo je distribuovat dalším MQTT subscribers.

Výše popsané funkcionality byly poprvé uvedeny ve verzi FactoryTalk Optix 1.5 (v době, kdy píšu tento text, je aktuální verze 1.6). Počínaje verzí 1.5 je podpora MQTT v Optixu plně nativní. Je zajištěna předdefinovaným objektem MQTT Logic, jehož vlastnosti a chování lze konfigurovat v grafickém uživatelském rozhraní Optix Studia bez nutnosti jakéhokoliv skriptování či programování.

FactoryTalk Optix obsahuje svůj vlastní defaultní formát, jakým jsou uspořádána data v přenášeném JSON stringu. Od verze 1.5 je navíc možné vytvářet uživatelské formáty přenášených dat pomocí funkce Payload Formatter.

Aplikaci FactoryTalk Optix je možné nasadit i na zařízení Embedded Edge Compute Module (modul určený k instalaci přímo v šasi řídicího systému ControlLogix) a nově též na zařízení Optix Edge, které je možné připojit přímo k procesorům ControlLogix i CompactLogix. S využitím těchto hardwarových prvků se FactoryTalk Optix dostává do bezprostřední blízkosti ke zdrojům průmyslových dat a při využití MQTT komunikace tak může být ideální efektivní bránou pro přenos automatizačních dat do IT aplikací, analytických aplikací nebo datových úložišť, ať již lokálních nebo umístěných v cloudu.

 

FactoryTalk View SE

Historicky starší a rozsáhlejší vizualizační platforma FactoryTalk View SE přináší implementaci MQTT komunikace ve verzi 15.0.

Byly integrovány nové objekty do knihoven pro Visual Basic (VBA). Tento objektový model poskytuje programové možnosti pro to, aby aplikace FactoryTalk View SE mohla fungovat jako MQTT publisher nebo MQTT subscriber.

Pomocí FT View aplikace tedy můžeme dosáhnout podobného efektu jako v aplikaci FT Optix:

  • aplikace může přijímat MQTT data, zobrazovat je uživatelům, případně s jejich využitím řídit připojená automatizační zařízení
  • aplikace může odesílat svá data jakémukoliv MQTT brokeru a předávat je takto k využití dalším aplikacím.

Integrace MQTT ve FactoryTalk View SE zatím neumožňuje, aby aplikace sama o sobě fungovala jako MQTT broker (server).

Je třeba říci, že výše popsané objektové knihovny jsou určeny pro použití ve Visual Basicu (VBA) a pro vytvoření jednotlivých MQTT objektů a jejich konfiguraci je třeba vytvořit potřebné VBA scripty, anebo je minimálně upravit z dostupných vzorů, návodů či tutoriálů.  Zprovoznění MQTT komunikace tedy zatím není zcela nativní a vyžaduje jisté programovací dovednosti.

VBA scripty jsou prováděny na jednotlivých klientských stanicích.  Každý klient v distribuované architektuře FactoryTalk View SE je provádí samostatně. V budoucnu lze nejspíše očekávat, že developeři přenesou logiku MQTT komunikace na FT View SE server.

 

FactoryTalk Linx Gateway

Tento softwarový nástroj slouží ke zpřístupnění dat z automatizačních zařízení Rockwell Automation aplikacím třetích stran. FactoryTalk Edge Gateway sbírá tagy z řídicích systémů RA a poskytuje je dále jako OPC UA server.

Verze 6.50 přináší možnost nastavit FactoryTalk Linx Gateway jako MQTT publisher. Takto je tedy možné odesílat hodnoty tagů z řídicích systémů na lokální nebo vzdálený MQTT broker.

Aplikace umožňuje nastavit názvy MQTT topics. Pro přenos dat jsou k dispozici tři předdefinované formáty přenášeného JSON stringu:

  • FactoryTalk Optix format – záměr developerů zde byl zřejmě co nejvíce zjednodušit přenos dat do Optix aplikací, tento formát přesně odpovídá defaultnímu formátu dat pro MQTT komunikaci v aplikacích FactoryTalk Optix.
  • Rich format - název tagu, jeho hodnota, časová značka a údaje o kvalitě. To vše uspořádáno ve struktruře vnořených objektů a polí.
  • Flat format - tytéž hodnoty uspořádané úspornějším způsobem.

Podrobný popis datových formátů s příklady naleznete v dokumentu FactoryTalk Linx Gateway Getting Results Guide version 6.50, který je dostupný v literatuře na stránkách Rockwell Automation.

 

Řídicí systémy Micro800

Pro řídicí systémy Micro800 byla navržena sada funkčních bloků MicroLink MQTT. Tato sada zabezpečuje obousměrnou MQTT komunikaci s jakýmkoliv MQTT brokerem.

MicroLink MQTT obsahuje tři funkční bloky

  • RA_MQTT_CONNECT – připojovací funkční blok. Slouží k navázání spojení s MQTT brokerem.
  • RA_MQTT_SUBSCRIBE – funkční blok pro odběr dat (subscription). Pomocí tohoto funkčního bloku je možné zapisovat MQTT data do tagů řídicího systému a tím ovládat chod programové aplikace.
  • RA_MQTT_PUBLISH – funkční blok pro publikování dat. Umožňuje přenášet hodnoty tagů z programové aplikace MQTT protokolem.

S řídicími systémy Micro800 je tedy možné zprovoznit MQTT komunikaci přímo z programové aplikace bez nutnosti využití dalších softwarových produktů.

Aplikace běžící v procesoru Micro800 je závislá na existenci externího MQTT Brokera, sama tuto funkcionalitu neposkytuje, může být pouze publisherem či subscriberem.

Sada funkčních bloků MicroLink MQTT je omezena pro systémy Micro 820, Micro850 a Micro870.

MQTT komunikaci řízenou přímo z programové aplikace procesorů Micro není možné zabezpečit pomocí TLS/SSL certifikátů.

 

Řídicí systémy ContolLogix a CompactLogix

Podobně jako u procesorů Micro800 je možné MQTT komunikaci přímo nastavit i v programových aplikacích pro řídicí systémy ControlLogix a CompactLogix. U těchto procesorů je však vyžadováno ethernetové rozhraní pro podporu socketů (Socket Ethernet Interface). Systémy Compact Logix 5370 a 5380, stejně jako ControlLogix 5580 mají toto rozhraní již defaultně integrováno. Pro ostatní ControlLogixy je nutné použít kartu 1756-EN2T nebo její odpovídající ekvivalent.

Pro vývoj je požadován Studio 5000 Logix Designer ve verzi 24 nebo vyšší.

Princip fungování je podobný jako u Micro800 – v Logix Designeru jsou k dispozici funkční bloky a add-on instrukce pro nastavení MQTT připojení, subscribingu a publishingu.

Ani v tomto případě není podporováno zabezpečení MQTT komunikace pomocí TLS/SSL.

 

Softing DataFeed

DataFeed sice nepatří do rodiny softwarových produktů Rockwell Automation, přesto však si zaslouží, aby byl zmíněn v tomto textu. Německá firma Softing je technologickým partnerem Rockwell Automation a její hardwarové i softwarové nástroje představují špičku v průmyslové datové komunikaci.

Software DataFeed je univerzální datovou bránou, která dokáže na jednom místě shromáždit data z automatizačních zařízení různých výrobců.

DataFeed tato data standardně poskytuje dále jako OPC UA server. Pokud jde o preprocessing dat, nabízí DataFeed omezený rozsah základních matematických funkcí.

Konektor DataFeed MQTT je nadstavbovým prvkem pro systém DataFeed, který rozšiřuje funkcionalitu o možnosti MQTT publisheru. S pomocí MQTT konektoru je tedy systém DataFeed schopen publikovat průmyslová data do jakéhokoliv MQTT brokeru.

Datový formát JSON je v tomto případě volně definovatelný, což umožňuje vhodné přizpůsobení formátům, které požadují cíloví odběratelé dat (MQTT subscribers).

 

Závěrem

Tento text byl napsán s vědomím, že jeho aktuálnost je časově omezená. Vývoj softwarových produktů probíhá velmi rychle a MQTT komunikace se zdá být jednou z podstatných vývojových priorit. Je velmi pravděpodobné, že v blízké době budou další softwarové nástroje Rockwell Automation a technologických partnerů doplňovány o jednotlivé prvky MQTT komunikace, stejně tak očekávejme, že stávající podpora MQTT bude průběžně vylepšována a rozšiřována.

Chcete-li získat aktuální informace o podpoře MQTT v jednotlivých produktech, kontaktujte prosím technické konzultanty ControlTech.