You are on page 1of 7

PLC programozás –1.

Az előadás tartalma - Általános tudnivalók, programozási nyelvek, szabvány


szerinti besorolások. Alap - software. PLC szervezőblokkok. Program struktúra.
Felhasználói programok.

A PLC-k szoftvere a funkció alapján két különböző részre osztható: az alapszoftverre


(operációs rendszerre), ill. a felhasználói programra. Az azonos típusú PLC-k
alapszoftvere megegyezik, míg a felhasználói program a változó részt képviseli. Az
alapszoftver (operációs rendszer) funkciói:
• interpreter, amely a felhasználói program utasításait értelmezi, végrehajtja,
• rendszerbeállítás (set up),
• önteszt, amely a PLC hardveregységeit ellenőrzi (RAM-teszt, I/O-teszt stb.),
• sorosvonal-kezelés pl. a program letöltéséhez (rendszerint RS–232 szerint),
• hálózati kommunikáció kezelése,
• megszakítások kezelése (opcionális),
• ember-gép kapcsolat (opcionális),
• programfejlesztési funkció (opcionális),
• programfuttatás-szimuláció,
• további, típustól függő funkciók.
Szemléltetésül egy gyártott PLC alapszoftverének felépítését ismertetjük röviden. A PLC
operációs rendszere három fő szoftver-modultípust tartalmaz: szervezőblokkok (OB),
programblokkok (PB) és adatblokkok (DB).
Az alapszoftver tíz szervező szoftverblokkból (OB) épül fel, amelyek biztosítják:
• OB1 – a ciklikus működést;
• OB2 – a rendszer beállítását (set up);
• OB5 és OB7 – az újraindítási funkciókat;
• OB9 – a hibakezelést;
• OB10, OB11, OB12 – a három programmegszakítást;
• OB18, OB19 – az időzítések kezelését.
Az OB1 szervezőblokk tartalmazza az interpretert és a felhasználói program
végrehajtását biztosító executive részt. A felhasználói programok a PB blokkokban
vannak, és korlátozott számú alprogramot (szubrutin), valamint két adatblokkot kezelnek.

Alapszoftver
A PLC alapszoftverét – hasonlóan valamennyi mikroszámítógépes berendezéshez – az
operációs rendszer biztosítja. Igen erősen gyártó-, illetve típusfüggő, így egyedi. Ennek
ellenére tartalmaznak közös funkciókat, amelyek szinte valamennyi korszerű típusnál
felfedezhetőek.
Az operációs rendszer funkciói:
• Interpreter funkció – a felhasználói programot értelmezi és végrehajtja, a
processzor utasításkészletére lefordítja a programot és végrehajtja.

1
• Státusszó generáló funkció – a processzor műveleteiről történő
információszolgáltatás. A rendszer állapotairól ad információt.
• Önteszt funkciók
o Hardware önteszt – ilyenek a tápellátás, watchdog, hardware elemek
létezését figyelő funkciók.
o Software önteszt – végtelen ciklus ellenőrzése, periféria címek helyes
használata, stb.
• Kommunikációs vonalak kezelése
o Pont – pont típusú kommunikáció
o Terepi buszrendszerek
• Ember – gép (HMI – Human Machine Interface) kapcsolatok kialakításához
szükséges software feltételek.
• Programfejlesztési funkció – például MikróPLC-k esetén lokálisan, a
rendelkezésre álló nyomógombok segítségével programozható a rendszer. Ez a
funkció nagyobb PLC-k esetében nem létezik.

Siemens S7-es PLC alapsoftware és program struktúrája.

A program a következő blokkokból áll:


• OB – szervezőblokk
• FB, FC – programblokkok, függvények
• SFC, SFB – rendszer programblokkok
• DB – adatblokk

Az OB szervezőblokkokat az operációs rendszer hívja meg, ezek működtetik a programot


ciklikusan vagy megszakításokkal. Az OB-k tartalmazzák az indítási funkciókat (pl.
OB100) és a hibakezelési funkciókat.
Az FB programblokkok memóriával rendelkező függvények, alprogramok. Minden FB-
hez tarozik egy DB adattömb, amely tárolja az FB adatait. Az FC-k abban különböznek
az FB-től, hogy nincs saját memóriája, csak ki-bemeneti változókkal kommunikál a többi
programmal.
Az SFC, SFB (Special Function Block) – előre megírt, gyártóspecifikus
programblokkok, ilyenek a technológia funkciók (PID, PWM, pozíció szabályozás),
kommunikációs függvények, stb.
A DB – adattömbök strukturált adattárolást tesz lehetővé. Kéttípusú adattömb van, az FB-
k adattömbjei (instance DB) és az általános célú megosztott DB-k (shared DB).

2
A következő ábrán az FB-k és DB-k viszonyát látjuk, tehát az FB22 függvényt
meghívjuk több motor paraméterrel, amelyek a DB201, DB202, DB203-ban vannak
tárolva.

Siemens S7 szervezőblokkok:

3
Egy Siemens S7-es rendszer programstruktúrája:

Az összes programblokk kell létezzen a PLC programmemóriájában, az OB1 a


főprogram, ebben meghívódik az FB1-DB1, FB2-DB2, FC1. Az FB1 meghívja az FC1
függvényt, hasonlóan az FB2 az SFC1-et és használja a DB1-et.
A programciklus ábrázolása a következőképpen lehetséges:

Felhasználói programok

Az alapszoftver a PLC-ben futó programok állandó része, és minden azonos típusú


programozható vezérlőben egyforma. Ezzel szemben a felhasználói programok a változó
részét jelentik, és segítségükkel válik alkalmassá a PLC az adott vezérlési feladatra. Ezek
a programok speciális, vezérléstechnikai, illetve irányítástechnikai orientáltságú
programnyelven íródnak.

4
A felhasználói program végrehajtása
A PLC-k a felhasználói programot ciklikusan, újra és újra elölről futtatva hajtják végre.
Ennek oka a felhasználás jellege: a vezérlési feladatokat a gép bekapcsolásától kezdve
egészen a kikapcsolásáig el kell látni. Az egyes ciklusokban a felhasználói program előtt
és után az operációs rendszer bizonyos részei hajtódnak végre. A következı ábra mutatja
a programvégrehajtás folyamatát.

Programvégrehajtás folyamata

A logikai vezérlő bekapcsolása után azonnal egy olyan ciklusba kerül, amelyből csak
kikapcsoláskor fog kilépni. A ciklus a következı három tevékenységből áll:
1. A bemenetek értékeinek beolvasása és tárolása a memória egy előre rögzített, a
rendszer által kezelt területén. Ez a művelet azzal az előnnyel jár, hogy a felhasználói
program futása közben hiába változnak meg a környezet jelei, ezt a program nem
érzékeli, így nem léphetnek fel hazárdjelenségek. A memória azon területétének a neve,
ahol a beolvasott értékeket a rendszer tárolja, “bemeneti folyamattükör”, angolul Process
Input Image (PII).
2. A felhasználói program végrehajtása. A processzor a végrehajtandó
utasításokat egymás után olvassa ki a memóriából. A felhasználói program a bemenetek
értékét a PII-ből veszi, és a számolt eredményeket nem közvetlenül írja ki a kimeneti
egységekre, hanem szintén a memória egy területére teszi le. Ennek a területnek a neve
“kimeneti folyamattükör”, angolul Process Output Image (PIQ).
3. A PIQ-ban tárolt értékek kiíratása a kimeneti egységekre. Így minden kimenet
egyszerre vált értéket, és elkerülhetık a hazárdok. Ha időzítési, vagy egyéb okokból
szükség van egy bemenet adott pillanatbeli értékének használatára, vagy egy kimenet
azonnali beállítására, ez megtehetı a PII és a PIQ megkerülésével. Ezekre az esetekre
speciális utasításokat használhatunk.

5
PLC programnyelvek

A fejlődése során számos programozási nyelvet fejlesztettek ki, és ezen nyelvek széles
körben való alkalmazása az egyes gyártók eszközei közötti kompatibilitást lehetetlenné
teszi. Ebből adódóan egyre nagyobb igény mutatkozik egy egységes nemzetközi
szabványokban rögzített programozási nyelv kifejlesztésére. Ez a törekvés vezetett az
IEC 1131-3 nemzetközi szabvány létrejöttéhez, ami nem egy új kompatibilis
programnyelvet jelent, hanem a már meglévő, hasonló struktúrájú nyelveket igyekszik
egyesíteni.
A PLC programozási nyelvek közös jellemzője, hogy vezérléstechnikai (újabban
irányítástechnikai) orientáltságúak. Az IEC 1131 szabvány a programnyelveket két
osztályba sorolja: szöveges rendszerű, illetve grafikus szimbólumokat alkalmazó
programnyelvek.

A szöveges rendszerűnek két megvalósítási formája létezik:


• ST (Structured Text), ami a magas szintű programnyelvekkel (Pascal, C)
támogatott strukturált felhasználói programnyelv. Ezen módszer célja, hogy a
magas szintű nyelvet ismerık az általuk már megszokott módon képesek legyenek
PLC program készítésére. Bár a népszerűsége egyre növekvő tendenciát mutat,
nem tartozik az elterjedtebbek közé.
• IL (Instruction List), vagyis az utasításlistás felhasználói programnyelv, amely a
mikroprocesszorok programozásánál már bevált assembly-ből fejlődött ki, és a
bitszervezésű PLC-knél erősen kötődött a hardverstruktúrához.
Az IEC 1131-3 szabványban a grafikus rendszerű nyelvek három alcsoportot
tartalmaznak:
• LD (Ladder Diagram), vagyis létradiagramos programnyelv. Alapvető nyelv,
mely az információtechnológiában járatos embereknek nyújt könnyű
áttekinthetőséget. Az áramúttervből alakult ki, így tulajdonképpen a
létradiagramok az áramúttervek szoftveres megfelelői. Csak logikai egyenletek
leírására szolgálnak, nem tartalmaznak speciális, csak az érintkezős hálózatokra
jellemzı összevonásokat, és elemei csak az adott PLC funkcionális szoftverelemei
lehetnek.
• FD (Function Block), azaz funkcióblokk-diagram. A huzalozott logikában az SSI,
MSI áramköröknél használt szimbólumokból kialakított, erősen hardverorientált
nyelv. Egy funkcióblokknál baloldalon a bemenetek, jobboldalon a kimenetek
találhatóak.

6
• SFC (Sequential Flow Chart), vagyis a sorrendi folyamatábrás programozási
nyelv a Grafcet francia nemzetközi szabvány továbbfejlesztése, a nagyobb
szoftverorientáltság előtérbe helyezésével.

Az SCL (strukturált vezérlési nyelv)

Az SCL (Structured Control Language) nyelven való programozás lehetőségét külön


termékként meg kell venni. A nyelv a többi magas szintű számítógépnyelvhez hasonlóan
szöveges programírást tesz lehetővé. Kulcsszavaiban és definícióiban lényegében
megfelel az IEC1131 – 3 ajánlásainak. A Pascal-szerű SCL-nyelv magas szintű
utasításaival egyszerűbbé teszi a bonyolultabb feladatok (adatfeldolgozás,
kommunikáció, hosszabb képletek, programozási struktúrák stb.) megírását. A
programozás forrásnyelven történik, amit később le kell fordítani futtatható kódra. Mind
a szerkesztőt, mind a fordítót tartalmazza az SCL programcsomag.

SCL Program struktúra

Var_INPUT
…..
END_Var
Var_OUTPUT
…..
END_Var
VAR
I,N: INT;
END_Var
BEGIN
FOR I:=1 TO N DO
….
END_FOR
END

Példa SCL-programra

BEGIN
CONTROL := FALSE;
FOR INDEX := 1 TO ENDWERT DO
IQ1 := IQ1 * 2;
IF IQ1 > 10000 THEN
CONTROL = TRUE
END_IF;
END_FOR;
END_FUNCTION_BLOCK

You might also like