A második részben részletesebb információ található meg a változók hozzáadásáról, kezeléséről, a program futtatásáról és funkcióblokkok példányosításáról.
A változó különböző besorolásúak lehetnek és különböző módon lehet őket hozzáadni.
A hozzáadás attól függően változhat, hogy milyen programnyelvben készül a program, de a SHIFT +F2 billentyű kombinációt használjuk, azt bármely programnyelvnél működik, mint változó deklarálás. Illetve az adott programnyelv készletéből tudunk választani, hogy az adott változó milyen típus legyen és hogy a programban szeretnénk-e esetleg különleges funkciót hozzáadni (pl. comment, ugrás, negáció stb.).
A lehetséges változó típusok a VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_GLOBAL.
VAR: Helyi változónak használjuk, ami csak az adott blokkon belül hívódik meg és más blokk számára nem elérhető (kivéve, ha program helyi változóját szeretnénk elérni és másik programba, akkor lehet egy direkt hivatkozást használni, de ez már funkció blokknál, vagy funkciónál már nem működik).
VAR_INPUT: Helyi bemeneti változónak használjuk, ami az adott blokkon belül hívódik meg, de már elérhető egy másik blokk számára.
VAR_OUTPUT: Helyi kimeneti változónak használjuk, ami az adott blokkon belül hívódik meg, de már elérhető egy másik blokk számára.
VAR_IN_OUT: Helyi bemeneti és kimeneti változónak használjuk, ami az adott blokkon belül hívódik meg, de már elérhető egy másik blokk számára.
VAR_GLOBAL: Globális változónak használjuk, ami bármely program, funkcióblokk, vagy funkció számára elérhető.
Ábra 1.: Többféle változó típus bemutatása a funkció blokkon belül
Ahogy a 2. ábrán látható, hogy azok a változók érhetőek el és láthatóak, amelyek input-ként vagy output-ként lettek deklarálva. Nem feltétlen szükséges változót deklarálni, mivel direkt értéket is lehet beírni az adott bemenethez vagy kimenethez (pl. TRUE, FALSE, T#5s) csak ezek programfutás közben nem változtathatók, állíthatók csak, azok, amelyek változóként szerepelnek. Tehát azokat a változókat, amelyeket nem szeretnénk programfutás közben változtatni (akár vizualizációból vagy programból), akkor azokat megadhatjuk fix állapotként, értékként is.
Ábra 2.: Funkció blokknál elérhető változó típusok
A változóknak megadható kezdeti érték ’Initial Value’ is, ami annyit jelent, hogy amikor a program elindul, akkor azt az értéket vagy állapotot fogja felvenni, de természetesen ez módosítható (pl. vizualizációból) és ha a program úgy kívánja, felül tudja írni ezt az értéket.
A váltózó cím ’Address’ menüpontnál hozzá lehet adni egy memória címet, ami lehet egy pl. %MW0 vagy %MX0.0-s modbusz változó is, de mutathat közvetlen fizikai címre pl.%IX0.0 is. A PLC címeinek további leírása a PLC-nek a kézikönyvében megtalálható a következő oldalon.
https://www.wago.com/wagoweb/documentation/index_e.htm
Ábra 3.: Fizikai digitális bemenetek egy lehetséges címei
Egy adott bemenethez vagy kimenethez is közvetlen hozzá lehet rendelni címet, úgyhogy nem is kell hozzá semmilyen változót létrehozni, de az ilyen jellegű direkt címzésnél arra kell odafigyelni, hogy egy új modul konfiguráció adásánál a címek módosulhatnak. A 4-es ábránál jól látható, hogy egy analóg modul hozzáadásával miként változtak, csúsztak el a címek. A címek csak analóg modulok hozzáadásánál módosulnak. Amennyiben nem szeretnénk foglalkozni a címek helyével, akkor a bemenetekhez és kimenetekhez mindenképpen rendeljünk hozzá változó neveket és innentől kezdve, ha változik is a hardver a címek módosulásával már nem kell foglalkozunk. A bemeneti és kimeneti címek területe külön kezelendő, értelmezendő.
Ábra 4.: PLC (750-890) kézikönyvben szereplő cím kiosztás bemutatása
Ábra 5.: Fizikai bemenetek címeinek lehetséges módosulása
A globális változó listát (Ábra 6.), akkor érdemes használni, ha a változóinkat bármely program rész és/vagy vizualizáció számára szeretnénk elérhetővé tenni. Arra oda kell figyelni, hogy az itt felvett változó neveket nem szabad máshol a deklarációs résznél használni, felvenni, mivel ilyen esetben, ha többször szerepel ugyanaz a nevű változó mindig a lokális változó értéke, állapota lesz a mérvadó és nem a globálisé. Továbbá a globális lista előnye, hogy a programban használt főbb változókat ide felvéve megtekinthetők és módosíthatók és nem kell keresgélni a sűrűn használt változóinkat. Ebben a listában is lehet memória területeket beállítani a változóknak.
Ábra 6.: Globális változó lista
Egyedül a funkció blokkok példányosíthatók, ami annyit jelent, hogy egy funkció blokkban megírt programot fel lehet használni több más néven is úgyhogy mégis egymástól függetlenül működnek a bemeneteiknél megadott paramétereknek köszönhetően. A példányosítás akár tömbösített formában is működik.
Ábra 7.: Funkció blokk példányosítása