Barion Pixel
Weboldalunk használatával jóváhagyja a cookie-k használatát a Cookie-kkal kapcsolatos irányelv értelmében.

Bemutatjuk: Selec PLC és HMI programozása energiamérési feladathoz

Bemutatjuk: Selec PLC és HMI programozása energiamérési feladathoz

Selec termékeket bemutató sorozatunk folytatásában gyakorlati példán keresztül mutatjuk be a DIGIX-1-1-1 kompakt vezérlő egység, illetve az SP11-GT70 érintőképes HMI programozását.

A projekthez a Selec által alkotott SELPRO és SMI szoftvereket alkalmaztuk.

 

Új projekt létrehozása a SELPRO 5.4 használatával

A piros négyzettel bekeretezett ikon segítségével indítható el az új projekt létrehozása.

 

 

Az eszközünk kiválasztása után (esetünkben ez a DIGIX-1-1-1 modell) a „Name” sorban nevet választhatunk a projektünknek, a „Location” sorban pedig a projekt mentési helyét adhatjuk meg, majd a „Next” gomb megnyomásával átléphetünk a következő fázisba.

 

 

A „Next”gomb megnyomása a „Project Settings” lépésre navigál minket.

 

 

Ezen az ablakon kell elvégeznünk projektünk egyik legfontosabb beállítását, a kommunikációs portok konfigurálását.

Hogy eszközeink jól kommunikáljanak, elengedhetetlen a MODBUS portok megfelelő előkészítése. A piros négyzettel keretezett „Communication Port 1 (Slave)” ablak, a laptopunk és a PLC-nk közötti kommunikációt teszi lehetővé, ami elengedhetetlen az eszközünk programozásához. Ügyelnünk kell a megfelelő ID-ra, hogy olyan számozást kapjon eszközünk, amit még a hálózat egy összetevője sem használ.

 A „Baud Rate” -et előre megadott választási lehetőségekből választhatjuk ki minden eszközön, ezeknek feltétlenül azonosnak kell lennie minden eszközön a hálózatunkban különben a rendszer elemei nem fogják látni egymást. Ezt az értéket, és a maradék hármat is, érdemes úgy beállítani, hogy megnézzük minden álltalunk használni kívánt eszköz adatlapját, melyben megtaláljuk, hogy melyik eszköz milyen kommunikációs környezetben képes működni. Meg kell találjuk azt a beállítást, melyre minden a hálózatra kötött eszközünk képes. A többi beállítási lehetőséget is érdemes átnézni ebben a keretrendszerben, hátha találunk még számunkra jelentős beállítási lehetőséget.

Amit feltétlen meg kell még néznünk, azok „PC Settings” kategória lehetőségei. Az előzőleg beállított MODBUS SLAVE port-hoz hasonlóan kell beállítani, ez a számítógépünk MODBUS portjának paramétereit fogja felülírni, melyre a programunk PLC-re való töltésekor van szükség.

Ha minden beállítás optimalizálásával végeztünk, a „Finish” nyomógombbal befejezhetjük a projektünk létrehozását és belevághatunk a programunk fejlesztésébe.

 

MODBUS kommunikáció programozása egy energiamérő műszer esetén

Két funkcióblokkot érdemes megemlítenünk, amire szükség lehet egy MODBUS-os kommunikáció programban való megvalósításához.

RIR funkcióblokk

Az első a RIR (Read Input Register), mellyel egy MODBUS SLAVE egység input regiszterét tudjuk kiolvasni, azaz például egy energiamérő műszer által mért adatokat.

 

 

SI: Slave Identity Number

Ide egy UINT típusú változót kell megadnunk, aminek az értékét az olvasandó Slave eszköz MODBUS ID-jával kell egyenlővé tenni.

SA: Slave Start Address

Ide kell megadnunk a Slave eszközünk olvasni kívánt memória területének a kezdőcímét szintén egy UINT változóban. Például: ha van egy energiamérő műszerünk és az adatlapja alapján a 30000. adatot szeretnénk olvasni, akkor ebben az esetben a változó értékét 0-val kell egyenlővé tenni.

Ehhez tudnunk kell, hogy a Selec termékeknél az input regiszter a 30000., a holding regiszter pedig a 40000. címnél kezdődik, azonban a DIGIX funkcióblokkja 0-tól kezdi az input regiszterek olvasását! Így tehát, ha a 30000. címet szeretnénk olvasni, akkor 0 értéket kell adnunk neki, ha pedig a 30500. címet, akkor 500 értéket. Erre mindig figyeljünk oda, mivel a RIR funkcióblokk nem képes olvasni a Holding registert, azaz a 40000-től kezdődő címeket!

LEN: Length

Ennél a lábnál is UINT változót kell használnunk. Itt az olvasni kívánt terület hosszát kell megadnunk. Ha egy energiamérő műszer két egymás melletti mért adatát szeretnénk olvasni, amik 2 regiszter hosszúak és az első címe a 30000, akkor ennek az értéknek 4-nek kell lennie. Ilyenkor a funkcióblokkunk 30000-től 30004-ig fogja olvasni a Slave eszközünk memóriaterületét.

MA: Master Address

Szintén UINT változót kell ide deklarálnunk. Ebben az értékben azt a memória területet adhatjuk meg ahova menteni szeretnénk az olvasott adatokat. Ennek két módja is van: vagy decimálisan betápláljuk a változónkba a mentésre létrehozott változók első elemének a MODBUS címét, vagy az első elem belső címét adjuk meg a funkcióblokknak.

Például, ha ez a változó táblázatban %ID0, akkor a funkcióblokkunk változójának értékét állítsuk &ID0-ra.

Fontos, hogy ha az előző példában említett két változót szeretnénk olvasni, akkor a változó táblázatban is két változót kell létrehoznunk, amiknek MODBUS címei egymást követik.

ERR: Error

A többi változóhoz hasonlóan szintén UINT változót kell ide deklarálnunk, ezzel azonban nincs más teendőnk. Ebbe a változóba fogja a funkcióblokkunk a hibaüzeneteit visszaadni, amit a SELPRO szoftver „Help”- jében azonosítani is lehet az alábbi táblázatból:

 

 

SR: Scan Rate

Ez a változó a Scan Rate beállítást jelöli. Ezt az értéket a többi lábhoz hasonlóan kell deklarálni, az értékét szinte minden esetben megfelelő, ha 1-re állítjuk.

Deklarálási példa

 

 

Ebben a példában a funkció blokk a 0. címet fogja olvasni, és a DIGIX 5. címére fogja írni 2 regiszter hosszúságban az 1-es ID-val rendelkező Slave egységtől kapott adatot.

PMR funkcióblokk

A második blokk a PMR (Preset Multiple Register), amivel a Slave eszközeink input és holding regisztereinek értékét tudjuk változtatni, ha a célzott eszközünk regisztere írható is, és nem csak olvasható.

 

A SI, SA, LEN, MA, SR lábak beállítása ennek a funkcióblokknak az esetében ugyanúgy működik, mint a RIR funkcióblokknál.

Azonban egy fontos tényezőt figyelembe kell vennünk: ez a funkcióblokk a kiválasztott SLAVE eszközünk regisztereinek az írására való.

Ebben segít nekünk a „HI” jelzésű lába, amely azt a célt szolgálja, hogy válasszunk az input és a holding regiszter között a lábra kötött záró érintkezővel. Ennek az érintkezőnek megadhatunk egy kézzel kapcsolható változót.

Funkcióblokkunk hibatáblázata szintén megtalálható a „Help” -ben, de egyébként teljesen ugyanaz, mint a RIR funkcióblokk táblázata.

 

Kommunikáció HMI-ben az SMI szoftver segítségével

Ha a PLC-nkben az előző pontok alapján megfelelően elkészítettük az adatküldő és -fogadó programsorunkat, akkor a HMI-ben gyakorlatilag nincs más dolgunk, mint hogy a SELPRO-ban alkalmazott lépéseket követve az SMI-ben deklaráljuk a kijelző adattábláját a MODBUS címeket figyelembe véve (sárgával keretezve).

 

 

Amennyiben mindezen túl vagyunk, akkor a kommunikációnk hibátlanul fog működni, és a fogadott/küldött adatokból rajzolhatunk grafikont, vagy végezhetünk belőle elemzéseket.

 

 

Cikkünk folytatásában az energiamérőből kiolvasott adatokkal és az ún. "Node" megoldással tervezünk foglalkozni.

 

Szeretnél még több érdekességet olvasni?

Iratkozz fel hírlevelünkre, ne maradj le az újdonságokról!

 

Tartalomhoz tartozó címkék: energiamenedzsment PLC selec