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.

- Hirdetés -

Ú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.

Ipari-elektronika.com Webshop

- Hirdetés -

- Hirdetés -

Akár ez is tetszhet