Betöltés…
WAGO Hungária

Több PLC közötti kommunikáció megvalósítására rengeteg különféle megoldás létezik, de talán a legkevesebb programozást igénylő módszer a Hálózati változók (Network Variables) használata.

A működés alapfeltétele, hogy az eszközök egy hálózaton helyezkedjenek el és a kiválasztott UDP portot ne használja más alkalmazás. Az adatküldés broadcast jellegű, viszont egy eszköz lehet küldő és fogadó is.
Mivel broadcast üzenetről van szó a hálózaton lévő összes eszköz megkapja az üzeneteket, így bármilyen eszköz vagy alkalmazás képes fogadóként szerepelni, ami UDP protokollt támogat.
Egy lista mérete maximum 255 bájt lehet, viszont korlátlan számú lista alkalmazható.

Példa program e!COCKPIT-ben

Első példában egy 750-8212 és egy 750-8202/000-012 vezérlő között fogunk egy irányban.
Hozzunk létre a G2-es PLC projekt alkalmazásában egy ’Network Variable List (Sender)’ változó listát (ez egy előre konfigurált globális változó lista).

A 1202 port az alapértelmezett. Ha több hálózati változó listát szeretnénk, akkor mindegyiknek saját ’List identifier’ értéket kell beállítani másik porton.  

A létrehozott hálózati változó lista beállításaiban a ’Link to File’ fül alatt az ’Export before compile’ beállítási lehetőséget kell kiválasztani, majd meg kell adni egy elérési útvonalat (lehetőleg a projekt mappát), ahol szeretnénk, hogy létrejöjjön egy „.gvl” kiterjesztésű fájl, amely tartalmazza a benne lévő paramétereket és változókat.

Összesen 3 különböző típusú változó lett létrehozva, a PLC_PRG program teljesen üres és gyakorlatilag más teendő nincs is küldő PLC részről.

Következő lépésben hozzunk létre egy új projektet, adjuk hozzá a ’Network Variable List (Reciever)’ listát.

Importáljuk be az előzőleg létrehozott „.gvl” kiterjesztésű fájlt. Ezután itt is a majdnem üres programot rá lehet tölteni a PLC-re.

 

Mindkét PLC-re rácsatlakozva online change-el változtatva az értékeket a fenti gif-en látható, hogy gyakorlatilag 0 program sort írva már képesek vagyunk adatcserére két PLC között.

Példa program e!COCKPIT és Codesys 2.3 között

Codesys 2.3 és e!COCKPIT-ben programozható PLC-k között valamivel trükkösebb megoldásra van szükség.

8212 a küldő és 881-es PLC a fogadó

Új Codesys projektnél első lépésként a ’Target Settings’-en belül a ’Network functionality’ fül alatt ki kell pipálni a ’Support network variables’ lehetőséget.

A ’Resources’ ablakban adjunk a projekthez egy új globális változó listát és a beállításaiban kattintsunk az ’Add network’ gombra. Mivel codesys nem „.gvl” hanem „.exp” kiterjesztésű fájlban kéri a listát így közvetlenül nem lehet importálni. Ami fontos, hogy a ’List identifier’ és a használt port egyezzen meg a küldőével.

A változókat elég egyszerűen átmásolni, még a nevüknek sem kell egyeznie. Egyedül a változó típusok sorrendje és száma kell, hogy egyezzen.

A „programot” már csak fel kell tölteni a vezérlőre és kész is az adatcsere.

881 a küldő és 8212-es PLC a fogadó.

Ennél a esetnél már tényleg érdekes módszert kell alkalmazni, hiszen e!COCKPIT-ben (Receiver) típusú listát csak .gvl fájl importálását követően lehet létrehozni.

Először is Codesys 2.3-ban hozzunk létre egy küldő listát, természetesen nem 1-es List Identifier-el, mert az már foglalt, valamint a Write legyen kipipálva.

Felvettük a változó listánkat és a programot fel lehet tölteni és el is lehet indítani a 881-es PLC-n.

Most jön a trükkös rész. Először is e!COCKPIT-ben hozzunk létre egy (Sender ) listát azzal a List identifier-el, amivel létrehoztuk Codesys-ben is (jelen esetben 2-es). Codesys projektből a lista tartalmát másoljuk át ide és a beállításokban a ’Link to file’ fül alatt exportáljuk ki a .gvl kiterjesztésű fájlt.

Sikeres compile után a létrejön a fájl, ezt az ideiglenesen létrehozott (Sender) listát a projektből ki lehet törölni.

Ha van egy minta ’.gvl’ fájlunk, akkor már közvetlenül bele lehet másolni a változó listát és itt is lehet paraméterezni, így ezek a lépések kihagyhatóak.

A projektben most hozzunk létre egy új (Receiver) listát és a módosított fájlt importáljuk be.

Ezekre a lépésekre azért volt szükség, mert e!COCKPIT-ben ez a lista nem módosítható nem úgy, mint Codesys 2.3-ban.

Program indítását követően a kommunikáció gond nélkül létrejött.