Oldal kiválasztása

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: