rányítástechnika 1 10. Elıadás PLC-k programozása rodalom - Helmich József: rányítástechnika, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler ldikó: PLC programozás az EC 1131-3 szabvány szerint, 2006 - Klöckner-Möller PS3 és PRG3 felhasználói kézikönyv - Klöckner-Möller Hungária: Hardverleírás és tervezési segédlet, 2005
Vezérlési projekt felépítése az EC1131-3 szabvány szerint
A konfiguráció összetevıi A PLC-rendszer valós összetevıi: - konfiguráció: a PLC-rendszer, mint egy keretbe épített, akár több (elosztott) központi egységgel bíró, folyamatközeli (gépegység szintő) irányítórendszer; - erıforrás: (esetleg multitaskingot lehetıvé tevı) CPU; - feladat (taszk): a programok és program típusú függvényblokkok futási sajátosságai (A PLC program egyediesítése) ; - futó program: a programból ill. függvényblokkból és a TASK-ból képzett egység. Egy erıforrás, egyetlen task esetén a konfiguráció szerepét teljesen átveheti a fıprogram (tartalmazza a globális változók, közvetlen leképezéső és szimbolikus változók deklarálását). A futási tulajdonságokat a PLC paraméterei (implicit) beállítják.
CONFGURATON jellemzıi CONFGURATON konfiguráció-név Típusdefiníciók Globális deklarációk RESOURCE-deklaráció ACCESS-deklaráció END_CONFGURATON A konfigurációk közötti adatcserét a VAR_ACCESS valósítja meg. CONFGURATON PLC_gep1 VAR_GLOBAL END_VAR RESOURCE CPU_szallitoszalag ON CPU_001 END_RESOURCE RESUORCE CPU_henger ON CPU_002 END_RESOURCE VAR_ACCESS END_VAR
RESOURCE jellemzıi RESOURCE erıforrás-név ON erıforrás Globális deklarációk TASK-deklaráció END_ RESOURCE RESOURCE CPU_szallitoszalag ON CPU_001 TASK PROGRAM WTH END_RESOURCE RESOURCE CPU_henger ON CPU_002 TASK PROGRAM WTH END_RESOURCE
TASK jellemzıi TASK task-név (task-tulajdonságok) PROGRAM program-név WTH task-név : progr-név (PROGRAM csatlakoztatás) - futásidejő program neve: program-név; - típusa: progr-név; - PROGRAM csatlakoztatás: a formális paramétereknek megfelelı aktuális paraméterek listája. TASK T_gyors (NTERVAL:=t#8ms, PRORTY:=1); PROGRAM berendezes WTH T_gyors : progra(szabpar:=%mw3,szabert:=hibakod) TASK T_megszakit (SNGLE := trigger, PRORTY:=1); PROGRAM berendezes WTH T_megszakit : progrb
Függvények hívása Függvények hívása utasításlistában: a függvénynév megadásával; Az elsıként deklarált bemeneti változót beírjuk az akkumulátorba; A többi változót a függvény hívási sorában, a függvénynév után, vesszıvel elválasztva kell megadni; A függvények érvényességi területe globális; Egy függvénynek pontosan egy kimeneti paramétere van. A függvény deklarálása: FUNCTON felhasznaloi : NT VAR_NPUT fgvpar1, fgvpar2, fgvpar3: NT; END_VAR LD fgvpar1 ADD fgvpar2 ADD fgvpar3 ST felhasznaloi (*visszatérési érték*) END_FUNCTON A függvény hívása: VAR par1: NT :=10; par2: NT :=20; par3: NT :=30; eredm: NT; END_VAR LD par1 felhasznaloi par2, par3 (*második hívás*) felhasznaloi par2, par3 ST eredm
Függvényblokk hívása CAL vagy a CALC/CALCN (feltételes/negált feltételes hívás) paranccsal Hívásmódok: a bemeneti paraméterek zárójelbe zárt listájával; hívás elıtt a bemeneti paramétereknek a megfelelı címre tárolásával; implicit hívás a bemeneti paraméterek, mint operátorok felhasználásával.
Példa: bekapcsolás-késleltetéses idızítı: Deklarálás: VAR indit, ki : BOOL :=0; (*indit: futásengedélyezı input, ki: kimenet*) idozito1: TON; (*standard FB TON deklarálás egyedi néven*) ertek: TME; (*idı adatttípusú változó*) END_VAR kimeneti paraméterek kiértékelése: LD idozito1.q ST ki LD idozito1.et ST ertek
Felhasználói függvényblokk hívása FUNCTON_BLOCK Fblokk VAR_NPUT par1: TME; par2: WORD; par3: NT; END_VAR..(*utasítások sorozata*) END_FUNCTON_BLOCK Hívás: CAL fgvblk1(par1:= t#20ms, par2:=be, par3:=globvalt) vagy: CAL fgvblk1(par1:= t#20ms, par2:=be) (par3 aktuális értéke az elsı híváskor a kezdeti érték, késıbbiekben az utolsó hívás értéke.) PROGRAM progr1 VAR_GLOBAL fgvblk1: Fblokk; globvalt : NT; END_VAR VAR BE: WORD AT %W4; END_VAR. END_PROGRAM vagy: LD t#20ms ST fgvblk1.par1 LD BE ST fgvblk1.par2 LD globvalt ST fgvblk1.par3 CAL fgvblk1
Standard függvények
Standard függvények
Standard függvények
Standard függvények
Követıvezérlés v < 2 v = 2 v > 2 PZ S Z P = = = 4 3 2 4 3 1 4 2 1 3 2 1 4 3 2 4 3 1 4 2 1 3 2 1
Követıvezérlés - létradiagram
Követıvezérlés - funkciódiagram
Követıvezérlés - utasításlista PROGRAM SZELLOZ VAR 1 AT %0.0.0.0.0: BOOL; 2 AT %0.0.0.0.1: BOOL; 3 AT %0.0.0.0.2: BOOL; 4 AT %0.0.0.0.3: BOOL; PROS AT %Q0.0.0.0.2: BOOL; SARGA AT %Q0.0.0.0.1: BOOL; ZOLD AT %Q0.0.0.0.0: BOOL; END_VAR LDN 1 ANDN 2 ANDN 3 OR( 1 NOT ANDN 2 ANDN 4 ) OR( 1 NOT ANDN 3 ANDN 4 ) OR( 2 NOT ANDN 3 ANDN 4 ) ST PROS LD 1 AND 2 AND 3 OR( 1 AND 2 AND 4 ) OR( 1 AND 3 AND 4 ) OR( 2 AND 3 AND 4 ) ST ZOLD LDN PROS ANDN ZOLD ST SARGA END_PROGRAM
Ütemvezérelt lefutóvezérlés: közlekedési lámpa Ciklus szerkezete: -2 idıegységig piros; - 1 idıegységig piros és sárga; - 4 idıegységig zöld; - 1 idıegységig sárga. dıegység hossza: 5 s.
Ütemvezérelt lefutóvezérlés: közlekedési lámpa PROGRAM KZLAMPA VAR S0 AT %0.0.0.0.0: BOOL; PROS AT %Q0.0.0.0.0: BOOL; SARGA AT %Q0.0.0.0.1: BOOL; ZOLD AT %Q0.0.0.0.2: BOOL; SZAMLALO: CTU; UTEM_MAX: NT := 8; T1: TON; UTEMDO: TME := t#5s; M1: BOOL; M2: BOOL; M3: BOOL; M4: BOOL; M5: BOOL; M6: BOOL; M7: BOOL; M8: BOOL; UTEM: BOOL; USZAM: NT; END_VAR
Ütemvezérelt lefutóvezérlés: közlekedési lámpa
Követıvezérlés impulzus idızítıvel kétkezi reteszelés A prés csak akkor engedhetı le, ha a kezelı az S1 és S2 nyomógombot adott idın belül (0,1s) egyszerre nyomja le. Nem engedélyezhetı a présmővelet, ha az egyik vagy a másik nyomógomb folyamatosan be van nyomva. Az excenter feletti nyomás azonnal megszőnik, ha abbahagyják a nyomógombok mőködtetését. Egy préselési mővelet után a prés a kiindulási (felsı) helyzetbe kerül és ott is marad, csak a két nyomógomb újbóli, 0,1s-on belüli lenyomása eredményez újabb mőveletet. Ha az idızítı kimenete úgy vált 0-ról 1-re, hogy valamelyik gomb nincs benyomva, P1 értéke 0 lesz.
Követıvezérlés impulzus idızítıvel PROGRAM ketkeziret VAR S1 AT %0.1 : BOOL ; S2 AT %0.2 : BOOL ; P1 AT %Q0.1 : BOOL ; END_VAR VAR T1 : TP ; M0 : BOOL ; END_VAR VAR CONSTANT T11 : TME := T#0.1S ; END_VAR LD S1 OR S2 ST T1.N LD T11 ST T1.PT CAL T1 LD T1.Q ST M0 LD M0 OR P1 AND S1 AND S2 ST P1 END_PROGRAM
Átmeneti tároló vezérlése fel-le számlálóval Ha a tárolóban lévı munkadarabok száma eléri a maximumot (30 db), le kell állítani a bejövı szalag motorját. Ha a munkadarabok száma a tárolóban 10 alá csökken, (alsó határérték), a vezérlés bekapcsolja a jelzılámpát.
Átmeneti tároló vezérlése fel-le számlálóval PROGRAM mdtarol VAR START AT %0.0.0.0.0: BOOL; torlo AT %0.0.0.0.1: BOOL; OPT1 AT %0.0.0.0.2: BOOL; OPT2 AT %0.0.0.0.3: BOOL; Mot AT %Q0.0.0.0.0: BOOL; JELZES AT %Q0.0.0.0.1: BOOL; SZAMLALO: CTUD; MD_MAX: NT := 30; MD_MN: NT := 10; END_VAR (*SZÁMLÁLÓ*) LD OPT1 ST SZAMLALO.CU LD OPT2 ST SZAMLALO.CD LD torlo ST SZAMLALO.RESET CAL SZAMLALO (*ÖSSZEHASONLÍTÁS <30*) LD SZAMLALO.CV LT MD_MAX AND START ST Mot (*ÖSSZEHASONLÍTÁS <=10*) LD SZAMLALO.CV LE MD_MN AND START ST JELZES END_PROGRAM