Ütemvezérelt lefutóvezérlések Közlekedési lámpa vezérlése Egy közlekedési lámpa 3 időegységig piros, ahol a 3. időegységben a piros mellett a sárga lámpa is világít. Ezután 4 időegység zöld fázis következik. A ciklus 1 időegység sárgával zárul. Az időegység legyen 5 s.
Összerendelési táblázat Bemenetek
Jel
BE/KI kapcsoló
Logikai hozzárendelés
Cím
S0
bekapcsolva:
S0=1
I0.0
Piros. lámpa
P
világít, ha:
P=1
Q0.0
Sárga lámpa
S
világít, ha:
S=1
Q0.1
Zöld. lámpa
Z
világít, ha:
Z=1
Q0.2
Kimenetek
Megoldás
1. változat
Egy ciklus 8 időegységből áll. Az időütemet egy ütemadó adja, amelynek igen egyszerű a programja: az időzítő kimenőjelével vezérelt UTEM-merker legyen 0 állapotú. A merker negáltját az indítójellel (S0) együtt egy bekapcsolás-késleltetéses időzítő IN bemenetéhez kapcsoljuk. Bekapcsoláskor elindul az időzítő, és a kimenetén 5s elteltével megjelenik az 1 jel, amely csak egyetlen ciklusideig „él”, mert a következő ciklusban az indítófeltétele nullára vált. Ez a ciklus ismétlődik mindaddig, amíg S0-al ki nem kapcsoljuk a vezérlést. Az ütemgenerátor impulzusai egy számlálót inkrementálnak. Ha a számláló értéke eléri a 8-at, a számlálót RESET-elni kell. A számláló érétke megadja az ütemszámot, amely segítségével a kimenőjelek beállíthatók.
Ütem 1 2 3 4 5 6 7 8
Lámpafázisok A számláló értéke 0 P 1 P 2 P S 3 Z 4 Z Z 5 6 Z 7 S
ütemmerker M1 M2 M3 M4 M5 M6 M7 M8
1
Utasításlista PROGRAM KZLAMPA VAR S0 AT %I0.0.0.0.0: BOOL; PIROS 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: INT := 8; T1: TON; UTEMIDO: TIME := t#5S; M1: BOOL; M2: BOOL; M3: BOOL; M4: BOOL; M5: BOOL; M6: BOOL; M7: BOOL; M8: BOOL; UTEM: BOOL; USZAM: INT; END_VAR (*ÜTEMGENERÁTOR*) LD S0 ANDN UTEM ST T1.IN LD UTEMIDO ST T1.PT CAL T1 LD T1.Q ST UTEM (*SZÁMLÁLÓ*) LD UTEM ST SZAMLALO.CU LD SZAMLALO.CV GE UTEM_MAX ORN S0 ST SZAMLALO.RESET CAL SZAMLALO (*ÜTEM-MERKEREK*) LD SZAMLALO.CV ST USZAM EQ 0 ST M1 LD USZAM EQ 1 ST M2 LD USZAM EQ 2 ST M3 LD USZAM EQ 3 ST M4
LD EQ ST LD EQ ST LD EQ ST LD EQ ST
USZAM 4 M5 USZAM 5 M6 USZAM 6 M7 USZAM 7 M8
(*PIROS LÁMPA*) LD M1 OR M2 OR M3 ST PIROS (*SÁRGA LÁMPA*) LD M3 OR M8 ST SARGA (*ZÖLD LÁMPA*) LD M4 OR M5 OR M6 OR M7 ST ZOLD END_PROGRAM
2
Megoldás
2. változat, utasításlista
PROGRAM KZLAMP2 VAR S0 AT %I0.0.0.0.0: BOOL; PIROS AT %Q0.0.0.0.0: BOOL; SARGA AT %Q0.0.0.0.1: BOOL; ZOLD AT %Q0.0.0.0.2: BOOL; UTGEN AT %QB0.0.0.1: BYTE; FELFUTO: R_TRIG; FGVBL: FBKLAMP; FGVBL2: FBSARGA; END_VAR CAL FELFUTO(CLK:=S0) LD S0 JMPCN VILLOG LD FELFUTO.Q ST FGVBL.INDIMP CAL FGVBL LD FGVBL.P ST PIROS LD FGVBL.SA ST SARGA LD FGVBL.Z ST ZOLD LD FGVBL.UTEMB ST UTGEN RET
VILLOG: CAL FGVBL2 LD FGVBL2.P ST PIROS LD FGVBL2.SA ST SARGA LD FGVBL2.Z ST ZOLD LD FGVBL2.UTEMB ST UTGEN RET END_PROGRAM
FUNCTION_BLOCK FBKLAMP VAR_INPUT INDIMP: END_VAR
BOOL;
VAR_OUTPUT P: BOOL; SA: BOOL; Z: BOOL; UTEMB: BYTE; END_VAR VAR T1: TON; MB: BYTE; UTIMP: BOOL; UTEMIDO: TIME := t#1S; END_VAR LD INDIMP JMPCN TOVABB LD 1 ST MB
TOVABB: (*ÜTEMGENERÁTOR*) LDN UTIMP ST T1.IN
3
LD UTEMIDO ST T1.PT CAL T1 LD T1.Q ST UTIMP (*FORGATÁS*) LD UTIMP JMPCN TOV2 LD MB ROL 1 ST MB (*KIMENETEK BEÁLLÍTÁSA*) TOV2: LD MB ST UTEMB LD 0 ST Z ST P ST SA
ST
SA
LD MB LE 4 ST P RETC LD MB EQ 128 ST SA RETC LD ST
1 Z
RET
END_FUNCTION_BLOCK LD EQ
MB 4
FUNCTION_BLOCK FBSARGA VAR_OUTPUT P: BOOL; SA: BOOL; Z: BOOL; UTEMB: BYTE; END_VAR VAR T1: TP; T2: TP; UTIDO1: UTIDO2: END_VAR
TIME := t#100MS; TIME := t#500MS;
(*VILLOGÁS KÉT IDŐZÍTŐVEL*) LDN T2.Q ST T1.IN LD UTIDO1 ST T1.PT CAL T1 LDN T1.Q ST T2.IN LD UTIDO2 ST T2.PT CAL T2 (*KIMENETEK BEÁLLÍTÁSA*) LD T2.Q ST SA LD 0
ST P ST Z LD 0 ST UTEMB END_FUNCTION_BLOCK
4
Folyamatvezérelt lefutóvezérlések Az üzemmód programrész (függvényblokk) Az üzemmód függvényblokk feldolgozza a kezelői felületről és a berendezés felől jövő parancsokat, jelzéseket és engedélyező jelek formájában továbbítja a léptetőlánc felé. Visszajelzi ezen kívül az üzemmódot, és engedélyezi a kimenetek működtetését.
1. ábra A kezelői felület
KEZELŐI FELÜLET K_AUT AUT/KÉZI VEZÉRLÉÁTADÁS V_ATAD P_ENG PARANCSENGED. STOP STOP
BERENDEZÉS
START
START NYOMÓGOMB
ÜZEMMÓDFÜGGVÉNYBLOKK
KEZELŐI FELÜLET Q_AUT AUTOMATA KIJELZŐ
ENG0 ENG1 ENG2
ENG3
LÉPTETŐLÁNC FB. BEREND. ALAPHELYZETBEN 0. LÉPÉS 1. LÉPÉS
. . .
AM0 M0 M1
MN
ENG4
LÉPTETŐLÁNC KEZD. IMP. FELTÉTELES FELTÉTELNÉLKÜLI TOVÁBBLÉPÉS ENGEDÉLYEZÉSE 0-1 LÉPÉS ENGED.
PARANCSKIADÁS ENGEDÉLYEZÉS KEZELŐI FELÜLET LÉPÉSKIJELZÉS
2.ábra Az üzemmód programrész kapcsolata a többi programrésszel, illetve a kezelői felülettel és a berendezéssel
5
Az üzemmód függvényblokk Készítsük el a fenti ábra előírásainak megfelelő függvényblokkot. A függvényblokk definiálásakor arra törekedtünk, hogy csak a konkrét technológiától független jeleket, a kezelői felület jeleit dolgozzuk fel. Azonos kezelői felület esetén így a későbbiekben változtatás nélkül felhasználhatjuk a függvényblokkot.
3. ábra A kezelői felület a függvényblokk változónév jelöléseivel
A függvényblokk utasításlistája: FUNCTION_BLOCK UMODFGV VAR_INPUT I1 : BOOL ; I2 : BOOL ; I3 : BOOL ; I4 : BOOL ; AM0 : BOOL ; (*BERENDEZÉS ALAPÁLLAPOTA*) M0 : BOOL ; (*0. LÉPÉS*) S0 : BOOL ; (*START a főprogramban*) END_VAR VAR_OUTPUT Q4 : BOOL ; (*AUTOMATA ÜZEMMÓD*) ENG0 : BOOL ; (*EN0 a főprogramban*) ENG1 : BOOL ; (*EN1 a főprogramban*) ENG2 : BOOL ; (*EN2 a főprogramban*) ENG3 : BOOL ; (*EN3 a főprogramban*) ENG4 : BOOL ; (*EN4 a főprogramban*) END_VAR VAR V_IMP : BOOL ; B11 : BOOL ; T_STOP : BOOL ; END_VAR Impulzuskapcsoló a vezérlésátadás felfutó élére (V_IMP) LD I2 ANDN B11 ST V_IMP LD I2 ST B11 Indító impulzus (ENG0) 6
LD V_IMP AND AM0 ANDN Q4 AND I1 ANDN M0 ST ENG0 Automata üzemmód kijelzés (Q4) és feltételes léptetés engedélyező jele (ENG1) LD AM0 AND V_IMP AND M0 S Q4 LDN I1 OR( T_STOP AND M0 ) R Q4 LD Q4 ST ENG1 Stop nyomógomb tárolása (T_STOP) LD Q4 ANDN I4 S T_STOP LDN Q4 R T_STOP Feltétel nélküli továbblépés engedélyező jele (ENG2) LD V_IMP ANDN I1 ST ENG2 Parancsengedélyezés (ENG4) LD S0 AND AM0 ST ENG3 LD Q4 OR( I3 ANDN I1 ) ST ENG4 END_FUNCTION_BLOCK
7