IoT Rievtech MQTT beállítás

IoT Rievtech MQTT beállítás

IoT Rievtech MQTT beállítás

Az alábbi bejegyzésben bemutatjuk az IoT Rievtech MQTT beállítás folyamatát( video 4:38-tól ). A videóban található mintaprogram az MQTT beállításáig már előre el lett készítve, így ennek elkészítésével ebben a bejegyzében nem térünk ki.


MQTT funkciók

Az IOT Rievtech plc-n alapuló IoT-hálózatok kiépítésének vagy a már meglévő IOT-hálózatokba történő beépítésének biztosítása érdekében a felhasználó 5 funkciót használhat, melyek a Rievtech PLC programozó szoftverében az xLogicSoft-ban, mint funkcióblokk megtalálható.

  1. Connect To MQTT server
IoT Rievtech MQTT beállítás ; Connect to MQTT server
Connect to MQTT server

AZ MQTT szerverhez való csatlakozás célja a PLC és a Broker közötti kommunikáció megteremtése.


2. Publish

Publish
Publish

Publish / Közzététel – mint a neve is mutatja, ennek a funkcióblokknak a célja, hogy információkat közöljön (a blokkbeállításban konfigurálható) a Broker-nek a megadott témában.


3. Subscribe

Subscribe
Subscribe

A Subscribe / Feliratkozó funkcióblokk az adatok fogadására szolgál a Broker-től. Ennek a blokknak a beállításaiban adja meg azt a témakört, amelynek adatait meg szeretné kapni a Broker-től, valamint kiválasztja azokat a regisztereket, amelyekben ezeket az adatokat a plc-n tárolja további feldolgozás céljából.


4. String to Integer

String to Integer
String to Integer

Ezt a funkcióblokkot a Broker-től fogadott adatok feldolgozására használják. Lehetővé teszi az MQTT üzenetből származó String ( leggyakrabban karakterek sorozata = karakterlánc) adatok numerikus értékké való átalakításárs a funkcióblokk kimenetén.


5. String Comporator

IoT Rievtech MQTT beállítás
String Comporator

Ezt a funkcióblokkot is a Broker-től fogadott adatok feldolgozására használják. A blokkbeállításban megadott String-et (karakterláncot) karakterenként összehasonlítjuk a PLC-ben tárolt karakterlánccal. Amennyiben megegyeznek, akkor a funkcióblokk kimenete bekapcsol és állapota 1 lesz.


Mielőtt részletesebben áttekintenénk az MQTT funkcióblokkokat és azok beállítását, nézzünk át néhány dolgot, amelyek fontosak ahhoz, hogy kapcsolatot építsünk kia a Broker-rel, és MQTT üzeneteket küldjünk / fogadjunk, valamint tároljuk azokat a PLC memóriájában.


Csatlakozás MQTT szerverhez TCP / IP-n keresztül

Az MQTT egy alkalmazási réteg protokoll, vagyis az az a szint, ahol az adatokat bizonyos alkalmazások egymás között cserélik.

Application layer
Application layer

De ahhoz, hogy a kommunikáció létrejöjjön, létre kell hozni egy alacsonyabb szintű kommunikációt, egy kapcsolatot a szállítási rétegen. Ez a kapcsolat olyan TCP / IP protokoll használatával jön létre, amelyken fut az MQTT protokoll.

Az IoT Rievtech MQTT jellemzői
Connect to MQTT server via TCP / IP

A Broker-hez a TCP / IP-n keresztüli kapcsolat létrehozásához ismernie kell annak IP-címés és port-ját. Ezeket az adatokat a Connect to MQTT funkcióblokk beállításában lehet megadni. Ez a funkcioblokk csak egyszer használható a programban.


Adatok tárolása a PLC-ben

Adattárolás PLC-ben
Adattárolás PLC-ben

A Broker-től kapott adatok tárolásához és feldolgozásához a Rievtech IoT PLC három változó típust használ. Ezek a változók funkcióblokként jelennek meg, úgy mint: 1. Variable Byte (VB) – Változó bájt 2. Variable Word (VW) – Változó szó 3. Variable Double Word (VD) – Változó dupla szó

  • VB – Variable Byte beállítja a memória címét 1 Byte ( 8 bit ) adat tárolására, amelyet 1 ASCII karakter fejez ki.
  • VW – Variable Word beállítja a memória címét 2 Byte ( 16 bit ) adat tárolására, amelyet 2 ASCII karakter fejez ki.
  • VD – Variable Double Word beállítja a memória címét 4 Byte ( 32 bit ) adat tárolására, amelyet 4 ASCII karakter fejez ki.

PLC memória területe

A három változó funkcióblokk által használt memóriaterület megegyezik az AF funkcióblokkok által használt memóriaterülettel. Az alábbi ábrán látható, hogyan kezelik a memóriát a VB ; VW és WD funkcióblokkok.

PLC memória területe
PLC memória területe
  • A VB funkcióblokkok bitcímei megegyeznek az AF funkcióblokkok bitcímeivel.
  • A VW funkcióblokkok címzéseit a fenti ábra alapján készítsük el. A VW funkcióblokkok száma megegyezik a VB funkcióblokkok számával, ezért az átfedi az előző VW funkcióblokk memóriaterületét. A VW funkcióblokknál a bit-eket az ellenkező irányba számoljuk a VW és AF funkcióblokkokhoz képest.
  • A VD funkcióblokkokra ugyanaz az elv vonatkozik, mint a VW funkcióblokkokra, átfedéssel és a bit-ek fordított számozásával.

Gyakorlati példa az MQTT beállítás és használatára IoT Rievtech PLC-vel

Először egy Broker-t kell kiválasztanunk és konfigurálnunk. A példánkoz egy felhőalapú MQTT Broker-t fogunk használni egy egyszerű regisztrációs folyamat után. A regisztrációs folyamat a fenti videóban (9:24-től) látható.

Sikeres regisztrációt és a szolgátatásba való belépést követően, egy Broker-ként működő példát kell létrehozni a “Create new instance”-re kattintva. A példa létrehozás a fenti videóban látható (9:42-től).

A példa létrehozása után a példánkra (Rievtech-test) kattintva láthatjuk a beállításokat.

Broker settings

Ezek a beállítások lesznek a Broker beállítások:

Broker setting

A TCP / IP kapcsolat létrehozásához szükségünk lesz a szerver nevére és port-jára. A User és Password a közzétételkor (Publish) és a feliratkozások (Subscribe) hitelesítéséhez kell majd.


Mintpélda: Üvegház automatizálása

IoT Rievtech MQTT beállítás
Üvegház automatizálása

Példaként az üvegház automatizálásának feladatát vesszük figyelembe. A feladat a hőmérséklet és a páratartalom adatainak továbbítása a Broker-nek, az összes kimenet állapotával együtt. A Broker-től kapjuk a parancsokat a fűtés manuális be- vagy kikapcsolására, és a hőmérséklet beállításával a fűtés automatikus bekapcsolására.

A vezérlő program már előre el van készítve a Példához (video 10:49), most azt mutatjuk meg, hogyan konfiguráljuk a Broker kapcsolatát a PLC-vel. Ehhez a mintapéldához szükségünk lesz 3db Publis funkcióblokkra és 2db Subscribe funkcióblokkra.


PLC és Broker kapcsolata TCP / IP kapcsolattal

IP cím beállítás

A PLC és a Broker kapcsolatához szükségünk van egy MQTT csatlakozási funkcióblokkra, melynek neve: Connect to MQTT Server

IP adress
IP cím beállítás

A TCP / IP kapcsolathoz tudnunk kell a Broker IP címét. Esetünkben a Cloud MQTT-ben általunk létrehozott Broker server IP címe lesz. Az IP cím könnyen megtudható a Windows parancssorban található ping parancs segítségével ahová a Broker server nevét kell beírni, azaz: soldier.cloudmqtt.com Az IP címet ( 52.91.254.176 ) írjuk be a TCP / IP kapcsolat beállításhoz.

Port beállítás

Be kell állítanunk a port-ot is, hogy csatlakozni tudjunk a Broker-hez.

Port
Port beállítás

Egyes Broker-ek lehetővé teszik a biztonságos (SSL Port) és a nem biztonságos (Port) kapcsolaton keresztüli csatlakozást. Ehhez különböző port-okat használnak. Mi most a biztonságos port-on (SSL Port) keresztül csatlakozunk a Bróker-hez. AZ SSL Port értékét ( 21290 ) írjuk be a TCP / IP kapcsolat beállításhoz.


CA tanusítvány

A Port megadása után engedélyezzük a SSL / TLS kapcsolatot. Ezzel elérhetővé válik a “CA Certificate File 1”

CA tausítvány
CA tausítvány

A CA tanusítvány megtalálható a cloudmqtt.com oldalon a Documentation / FAQ elérési úton keresztül. A CA tanusítvány letöltéséhez segítséget talál a videóban (12:54)


Kliens ; Név ; Jelszó

Client ; Name ; Password
Client ; Name ; Password
  • Client ID: Szabadon választott
  • Name : A Broker beállításnál megadott User-t kell beírni
  • Password: A Broker beállításnál megadott Password-ot kell beírni

Ezzel végére is értünk az MQTT csatlakozási funkcióblokk beállításával.

Publish – Közzététel és Subscribe – Feliratkozás funkcióblokkok

Bemeneti oldal

IoT Rievtech MQTT beállítás ; Publish & Subscribe Input
Publish & Subscribe Input

Mindkét funkcióblokknak van egy Set bemenete, amely aktiválja a kapcsolatot a Broker-rel és a két kimenettel. A mintapéldánkban az összes Publish és Subscribe funkcióblokk folyamatosan aktív lesz, ezért a bemeneteiket egy “Status 1 (high)” funkcióblokkal kössük össze (video 17:49).


Kimeneti oldal

Discret Output
Discret Output

Mindkét funkcióblokknak van egy diszkrét kimenete, ami akkor aktiválódik, amikor a kapcsolat sikeresen létrejött.


Analog Output
Analog Output

Mindkét funkcióblokknak van egy analóg kimenete, melyen az adatátvitel állapota jelenik meg.


Publish – Közzététel funkcióblokk beállítása

A funkcióblokk neve: Publish with MQTT

  • A mintapéldánkban szereplő 1. Publish funkcióblokk az aktuális hőmérsékleti adatokat fogja elküldeni a Broker-nek az alábbiak szerint: greenhouse-1/temperature/measured
  • A mintapéldánkban szereplő 2. Publish funkcióblokk a páratartalom-érzékelő adatait fogja elküldeni a Broker-nek az alábbiak szerint: greenhouse-1/temperature/measured
  • A mintapéldánkban szereplő 3. Publish funkcióblokk az összes kimenet állapotát fogja elküldeni a Broker-nek az alábbiak szerint: greenhouse-1/temperature/outputs/status

Funkcióblokkon belül a Comm felületet beállítása

Publish Comm
Publish Comm

A QoS (Quality of Service) segítségével a hálózaton meghatározott sebességgel és adott időkereten belül lehet az adatokat továbbítani. A QoS-t támogató hálózatokon a magasabb prioritású üzenetek előnyben részesíthetők alacsonyabb besorolású üzenetekkel szemben.


QoS0

IoT Rievtech MQTT beállítás
QoS0

A címzett (Broker) nem erősíti meg az üzenetek fogadását. A feladó (publish) ennek megfelelően csak egyszer továbbítja az üzenetet. Ez a “küldés és elfelejtés” módszer.


QoS1

QoS1
QoS1

Ebben az esetben a feliratkozó (subscrieber) többször is megkapja ugyanazt az üzenetet. A feladó (publis) pedig ismételten próbálkozik az elküldéssel, addig, amíg nem kap megerősítését az üzenet sikeres kézbesítéséről.


Retained – Megörzött

Normál MQTT üzenet. A Broker tárolja az utolsó retained üzenetet, és az adott témához tartozó QoS-t. Azok a Kliens-ek akik feliratkoznak egy olyan témára (Topic), amely megfelel a retained üzenet témájának, a feliratkozást (subscribe) követően azonnal megkapja a retained üzenetet. A retained üzenetek segítenek az újonnan feliratkozóknak abban, hogy a kilens-ek állapotfrissítést kapjanak egy téma feliratkozása után.


Publish interval time – Közzétételi idő

Üzentet küldhet a Broker-nek a beállított időintervallumonként, melyet másodperc értékre kell beállítani. Ha a funkció nincs aktiválva, akkor az üzenet küldése csak egyszer történik meg a a funkcióblokk bekapcsolásának pillanatában.


Publish topic – Téma közzététel

  • 1. közzétételi téma: greenhouse-1/temperature/measured
  • 2. közzétételi téma: greenhouse-1/humidity
  • 3. közzétételi téma: greenhouse-1/outputs/status

Funkcióblokkon belül a Parameter felületet beállítása

Az 1. Publish funkcióblokk amely hőmérsékleti adatokat fog küldeni az alábbiak szerint

IoT Rievtech MQTT beállítás ; Parameter AF50
Parameter AF50

A hozzáadás (Add) gomb megnyomása után a Parameter legördülő menüből válassza ki a megfelelő adattömböt, esetünkben az AF-et (analóg zászló). Az Index legördülő menü alatt válassza ki a hőmérséklet mérése alkalmas AF-et, ami az AF50 lesz. A leírás (descripton) mezőbe a hőmérséklet mértékegységének első betűjét írjuk be.


Az 2. Publish funkcióblokk amely a páratartalom-érzékelő adatait fogja elküldeni az alábbiak szerint

IoT Rievtech MQTT beállítás ; Parameter AF51
Parameter AF51

Az 3. Publish funkcióblokk amely az összes kimenet állapotát fogja elküldeni az alábbiak szerint

Parameter Q
Parameter Q

A megjegyzés (Comment) és leírás (Description) mezőkbe bármit beírhatunk a funkcióblokk értékén kívül.


Subscribe – Feliratkozás funkcióblokk beállítása

A funkcióblokk neve: Subscribe with MQTT

  • A mintapéldában szereplő 1. Subcribe funkcióblokk a fűtés távoli be- és kikapcsolási parancsát egy másik MQTT kilens ( (okostelefon, webböngésző ) a ” greenhouse-1/heater/controll ” témában állítja be a Broker-nek.
  • A mintapéldában szereplő 2. Subcribe funkcióblokk a hőmérséklet beállításokat elküldik a Kliens-ek a fűtés automatikus bekapcsolásához a ” greenhouse-1/temperature/threshold ” témában.

Funkcióblokkon belül a Comm felületet beállítása

A felület beállításai megegyeznek a Publish funkcióblokk Comm felület beállításával.

Subscribe topic – Téma feliratkozás

  • 1. feliratkozási téma: greenhouse-1/heater/controll
  • 2. feliratkozási téma: greenhouse-1/temperature/threshold

Funkcióblokkon belül a Parameter felületet beállítása

1. Subcribe funkcióblokk a fűtés távoli be- és kikapcsolás az alábbiak szerint

IoT Rievtech MQTT beállítás ; Subscribe parameter VB0
Subscribe parameter VB0-VB2

2. Subcribe funkcióblokk a hőmérséklet beállítás az alábbiak szerint

Subscribe parameter VB3
Subscribe parameter VB3-VB4

String Start byte

Itt állapítjuk meg a kezdeti VB változót, melyben a kapott üzenet első karaktere tárolásra kerül.

Recieve number

Beállíthajuk az üzenetet tartalmazó karakterek pontos számát.

  • Az 1. Subscribe blokknál egy 3 karakterből álló üzenet elegendő a fűtés be- és kikapcsolásához. “ON” or “OFF” Ez a 3 karakter a VB0-VB2 változókban kerül tárolásra.
  • A 2. Subscribe blokknál szükségünk van az üzenet első 2 karakterére, amelyek a beállított hőmérséklet számait fogjak tartalmazni. Ezt a 2 karaktert a VB3 és VB4 változókban tároljuk.
  • Ha a Recieve number = Chars to Recieve, akkor beállítható az olvasható karakterek száma.
  • Ha a Recieve number = As Recieve, akkor nem állítható az olvasható karakterek száma.

String Comporator funkcióblokk

Ahhoz, hogy az 1. Subscribe blokknál a Fűtés be- és kikapcsolásához megfelelő vezérlőjelet hozzunk létre, String összehasonlító (String Comprator) blokkra van szükségünk. 1 blokk kell a bekapcsoláshoz és 1 blokk kell a kikapcsoláshoz, melyeket a hozzá tartozó Subscribe blokk kimenetével kötünk össze a PLC programban (video 20:39).

  • Start: A String Comporator blokkok beállításánál mindkettőhöz ugyanazt a kezdeti változót kell beállítani, ami a VB0.
  • String: Az egyik blokkba: ON ; míg a másikba: OFF

String to Integer funkcióblokk

Mivel a 2. Subscribe blokknál a hőmérséklet értékének számnak kell lennie, és a VB3 és VB4 változóban tárolt adat nem numerikus érték azaz nem számérték, ezért egy “String to Integer” funkcióblokkot kell használni a tárolt adat számértékké való átalakításához. A ” Stirng to Integer” blokk “Parameter” beállításánál ezeket az adatokat kell beírni:

  • Start: Legordülő menűnél kell beállítani a változót kezdeti értékét ami a VB3 .
  • Count: Értékét 2-re kell beállítani.

Ennek a “String to Integer” átalakítónak a bemenetét kell összekötni a Subscribe funkcióblokk kimenetével a PLC programban (video 21:45). “String to Integer” átalakító kimenetét amin a hőmérséklet számértéke jelenik meg összekötjük az AF20 “analog flag” funkcióblokk bemenetével, ami a fűtés bekapcsolási hőmérsékletének beállítására szolgál (video 22:16).


Az IoT Rievtech PLC MQTT beállítás utolsó lépéseként hozzáadjuk a PLCprogramhoz az 5db “VB” (variable block) funkcióblokkot (video 22:30), amiket már korábban beállítottunk (VB0-VB2 és VB3-VB4), amikben a Broker-től kapott információkat tároljuk.


Adatcsere ellenőrzése a PLC és Broker között

Miután feltöltötte a programot a PLC-be, ellenőrizzük az adatcserét a PLC és a Broker között.

check data exchange
check data exchange

Az ellenőrzést elvégezheti a cloudmqtt.com keresztül is.

check data
Websocket

Lépjen a WebSocket UI fülre, és nézze meg, hogy a PLC már megkezdte-e az adatok továbbítását a Broker-nek. A további ellenőrzéseket, adattovábbításokat és a PLC MQTT szerveren keresztüli vezérlését a fenti videóban követhetik nyomon (23:02).


Bízunk benne, hogy sikerült érthetően, felhasználóbarát módon bemutatni az IoT Rievtech MQTT beállítás menetét. Felmerülő kérdések esetén forduljon hozzánk bizalommal az alábbi elérhetőségeken>>>


Az alábbi Rievtech PLC-k rendelkeznek beépített MQTT-vel:

MQTT bemutató

MQTT bemutató


MQTT bemutató

Ez az MQTT bemutató reméljük segítségére lesz az MQTT világában eligazodni.


Mi is az az MQTT?

MQTT bemutató
MQTT bemutató

Az MQTT-t (Message Queue Telemetry Transport = az üzenetek sorbaállításán alapuló telemetriai adattovábbítás ) könnyű üzenetküldési protokollként tervezték, kis méretű, alacsony energiafelhasználású felhasználása miatt minimalizálja az adatcsomagokat, és a megvalósítás egyszerűsége teszi a protokollt ideálissá a gép és gép közötti kapcsolatban vagy az IoT világában. 


MQTT fogalmak

  • Publish / Subscribe – Közzététel / Feliratkozás
Publish-Subscirbe
Publish / Subscirbe – Közzététel / Feliratkozás

Közzétételi és feliratkozási rendszerben, egy eszköz közzétehet üzenetet egy témában, vagy feliratkozhat egy adott témára, hogy üzeneteket fogadjon.


  • Messages – Üzenetek
Messages-Üzenetek
Messages-Üzenetek

A üzenetek azok az információk melyeket két eszköz között osztanak meg. Az üzenet formája lehet adat vagy parancs. Minden üzenetnek van témája (topic) néhány paraméterrel, és egy hasznos része (payload), amely tartalmazza a továbbítandó adatokat. A küldő eldönti, hogy bináris adatszöveget vagy akár teljes értékű XML-t ( Extensible Markup Language = kiterjeszthető jelölőnyelv amely strukturált szöveg és információ megosztása az interneten keresztül ) vagy JSON-t (JavaScript Object Notation = kis méretű, szöveg alapú szabvány, ember által olvasható adatcserére ) akar-e elküldeni.


  • Topics – Témák
Topics-Témák
Topics-Témák

A témák a bejövő üzenetek regisztrálásának módját vagy az üzenet közzétételének a helyét határozzák meg. A különböző témák perjellel vannak elválasztva. Minden perjel témaszintet jelöl. PL. otthon / hálószoba / hőmérséklet


  • Broker
Broker
Broker

A Broker arra a szerverre utal, amely a kliens-ek közötti adatátvitelt kezeli. A Broker a felelős az összes üzenet fogadásáért, azok szűréséért, majd az üzenetek kiértékelése után közzéteszi (publish) az összes feliratkozott (subscribe) kliens számára.

Publish / Subscribe – Közzététel / Feliratkozás

Nézzük meg a fenti ábra alapján, hogy a Kliens-ek (Clients) közül a 3 Témával kapcsolatban melyek a közzétevők (publishes) és melyek a feliratkozók (subscribes) :

  • A Kliens 1. közzéteszi (publish) az 1. és a 2. Téma (Topic 1 és Topic 2) adatait, ugyanakkor feliratkozója (subscribe) a 3. Témának (Topic3).
  • A Kliens 2. egyik Téma adatait sem teszi közzé, ugyanakkor mind a három Témának a feliratkozója.
  • A Kilens 3. közzéteszi a 3. Téma adatait, és feliratkozója az 1. és 2. Témának.
  • A Kliens 4. közzéteszi az 2. és a 3. Téma adatait, és feliratkozója az 1. Témának.

Nézzük meg hogyan továbbítják az adatokat ebben az esetben:

  • A Kilens 1. adatokat közöl (publis) a 1. Témakörben (Topic 1). A Broker elküldi ezeket az adatokat az összes feliratkozónak (subscribe), jelen esetben a 2. ; 3. ; és 4. Kliens-nek.
  • A Kilens 1. adatokat közöl a 2. Témakörben. A Broker elküldi ezeket az adatokat az összes feliratkozónak, jelen esetben a 2. és 3. Kliens-nek.
  • A Kilens 2. nem közöl adatokat egyik témakörben sem.
  • A Kliens 3. adatokat közöl a 3. Témakörben. A Broker elküldi ezeket az adatokat az összes feliratkozónak, jelen esetben a 1. és 2. Kliens-nek.
  • A Kliens 4. adatokat közöl a 3. Témakörben. A Broker elküldi ezeket az adatokat az összes feliratkozónak, jelen esetben a 1. és 2. Kliens-nek
  • A Kliens 4. adatokat közöl a 2. Témakörben. A Broker elküldi ezeket az adatokat az összes feliratkozónak, jelen esetben a 2. és 3. Kliens-nek.

MQTT Broker

Az MQTT használatához el kell döntenie, hogy milyen MQTT Brokert fog használni. Választhatja a felhőalapú Broker-eket ( Cloud Based Brokers ), vagy a saját hálózaton futó Broker-eket ( Self-Hosted Brokers) , amelyek belső hálózaton vagy interneten keresztül működnek.

MQTT Broker
MQTT Broker

Felhőalapú Broker ( Cloud Base Broker)

A fejlesztők csak a szoftverek telepítéséért és kezeléséért felelősek, miközben a kiszolgáló hardvert az eladó biztosítja és tarja karban. Néhány eladó felügyelt MQTT Broker-t is biztosít ahol a kiszolgálószoftvert és az MQTT alkalmazást is az eladó telepíti és kezeli.

Self-Hosted Broker

A fejlesztő ezeket a Broker-eket a saját szerverére telepíti, ebben az esetben a fejlesztő maga felelős a szerverek szoftverének és hardverének minden telepítéséért és karbantartásáért.


Az alábbi Rievtech PLC-k rendelkeznek beépített MQTT-vel:


Felmerülő kérdések esetén forduljon hozzánk bizalommal az alábbi elérhetőségeken>>>