Příklady PLC - učitel
Autoři: Ing. Josef Kovář Ing. Zuzana Prokopová Ing. Ladislav Šmejkal, CSc.
Partneři projektu:
Rostra s.r.o.
Trimill, a.s.
Výukový materiál byl vytvořen v rámci projektu „Implementace programování PLC automatů dle evropské normy IEC 61 131 do výuky žáků středních škol“, reg. č. CZ.1.07/1.1.08/01.0016. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Příklady PLC
-2-
1. příklad: Signál STOP Kontrolka svítí v případě, že není stisknut spínač STOP. PROGRAM prgMain VAR_INPUT END_VAR VAR Spinac : BOOL; Stop : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR Spinac := not Stop; END_PROGRAM 2. příklad: Hlídání skladů a) Siréna zazní v případě, že jeden nebo druhý senzor přítomnosti dává při poplachu signál l. b) Siréna zazni v případě, že jeden nebo druhý senzor přítomnosti dává při poplachu signál 0. c) Siréna zazní v případě, že jeden i druhý senzor přítomnosti dává při poplachu signál l. d) Siréna zazní v případě, že jeden i druhý senzor přítomnosti dává při poplachu signál 0.
3. příklad: Plnění nádrží a) Tři nádrže jsou napouštěny nezávisle na sobě. Navrhněte bezpečnostní obvod, který vytvoří signál H v případě, že některý snímač maximální výše hladiny dá při zaplavení signál l.
Příklady PLC
-3-
b) Tři nádrže jsou napouštěny nezávisle na sobě. Navrhněte bezpečnostní obvod, který vytvoří signál H v případě, že některý snímač maximální výše hladiny dá při zaplavení signál 0.
c) Tři nádrže jsou propojeny do společné výpusti. Stav každé nádrže je hlídán senzorem, který v přítomnosti kapaliny dává log. l. Navrhněte obvod, který bude signalizovat, že už zbývá jen jedna plná nádrž.
Příklady PLC
-4-
Řešení příkladu 3c) ve strukturovaném textu: PROGRAM prg3c VAR_INPUT END_VAR VAR snimac1 : BOOL; snimac2 : BOOL; snimac3 : BOOL; sirena : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR sirena:= (snimac1 and not snimac2 and not snimac3)or (not snimac1 and snimac2 and not snimac3)or (not snimac1 and not snimac2 and snimac3); END_PROGRAM
4. příklad: Bezpečnostní tlačítka Hlavní stykač odpadne v případě, že je stisknuto kterékoliv z bezpečnostních tlačítek B1, B2, B3. PROGRAM treti VAR_INPUT END_VAR VAR BT1 : BOOL; BT2 : BOOL; BT3 : BOOL; HlSt : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR ld or or st
BT1 BT2 BT3 HlSt
END_PROGRAM
Příklady PLC
-5-
5. příklad: Signalizace výšky hladiny Výška hladiny je snímána dvěma senzory - horním SH a dolním SD , které dávají logickou 1 v případě detekce vody. Navrhněte logické funkce, které budou rovny jedné v případě: a) YN - v nádrži poklesla voda pod dolní senzor, horní indikuje stav bez vody b) YP - oba senzory indikují vodu c) YS - hladina je mezi oběma senzory d) YE - horní senzor indikuje vodu, dolní nikoliv
6. příklad: Ovládání lisu Elektropneumatický ventil, ovládající lis, dostane signál l pro spuštění lisu v případě, že: a) jsou stisknuta obě tlačítka ručního ovládání nebo právě dva ze tří senzorů přísunu materiálu indikují přítomnost materiálu (log. l) b) jsou stisknuta obě tlačítka obouručního ovládání a zároveň senzor přítomnosti polotovaru dává signál l nebo právě dva ze tří senzorů přísunu materiálu indikují přítomnost materiálu (log. l)
Příklady PLC
-6-
7. příklad: Ovládání tisku Tiskárna vydá signál l, jestliže senzor přítomnosti papíru dává log. l a současně není aktivní signál Pause. 8. příklad: Chod tří ventilátorů Navrhněte a realizujte logickou funkci pro signalizaci chodu tří ventilátorů. Signalizace svítí: a) je-li v chodu právě jeden (libovolný) ventilátor ze tří b) jsou-li právě dva libovolné ventilátory v chodu c) jsou-li v chodu nejméně dva ventilátory Řešení příkladu 8b), 8c) pomocí kontaktních schémat
9. příklad: a) Ovládání světla ze dvou míst Navrhněte obvod pro ovládání světla ze dvou míst A, B.
Příklady PLC
-7-
b) Ovládání světla ze tří míst Navrhněte obvod pro ovládáni světla ze tři míst A, B, C. (Funkci vyjádřete také pomocí XOR).
10. příklad: Kodér Navrhněte převodník binárního kódu v rozsahu 0-3 na kód jedna ze čtyř, který má dva vstupy A,A() a čtyři výstupy Y3Y2Y,Yo, z nichž je vždy právě jeden roven log. l. 11. příklad: Elektrický motor pracuje je-li současně zapnut hlavní vypínač (a) a zároveň osvětlení stroje (b) a není současně buď nízký stav oleje (c) v převodovce nebo rozpojená spojka (d). 12. příklad: Petr (z) je vždy doma, když prší (a) a nemá deštník (b) nebo když je zajímavý televizní program (c) a má čokoládu.
13. příklad: Žárovku lze rozsvítit není-li vypnut vypínač C a vypínač D a je-li současně sepnut vypínač A nebo B. 14. příklad: Kabinka ve výtahu se pohybuje jestliže v kabince je alespoň jedna osoba A a sepnutím tlačítka B v kabince dá povel k spuštění motoru, nebo když není v kabince osoba A a někdo sepnutím tlačítka C výtah přivolá.
Příklady PLC
-8-
15. příklad: Ovládání světel auta Navrhněte zapojení spínačů světel v osobním automobilu. V autě jsou čtyři spínače: pro zapínání světel: OB (obrysová), DT (dálková/tlumená), PM (přední mlhovky), ZM (zadní mlhovky). Dále jeden spínač PDT na přepínání tlumená/dálková světla. Spínače ovládají světla obrysová YOB , tlumená YT, dálková YD, přední mlhovky YPM, zadní mlhovky YZM. Žádná světla nelze rozsvítit bez zapnutí obrysových světel, zadní mlhovky lze rozsvítit jen současně s předními, přední mlhovky lze rozsvítit i bez dálkových či tlumených světel. Varianta pro pokročilé: ve skutečném autě je navíc další spínač pro ovládání světelné houkačky (dálková světla), která musí fungovat nezávisle na všech spínačích. 16. příklad: Nápojový automat - verze l Navrhněte a realizujte logickou funkci pro ovládáni nápojového automatu. Stroj obsahuje tyto volby a signály: - signál MINCE ze senzoru, je roven l v případě vhození správné mince - tlačítka VODA, SIRUP, BUBLINKY, při stisku dávají logickou jedničku (s vodou je možno chtít pouze sirup, bublinky, nebo sirup a bublinky) - výstupní signály: YK - signál pro spuštění kelímku, YV - ventil pro vodu, YS - dávkování sirupu, YB - ventil pro kysličník uhličitý (bublinky). Pozn.: Stroj nesmí reagovat na nesmyslnou kombinaci, např. není MINCE a chceme VODU. 17. příklad: Nápojový automat - verze 2 Navrhněte a realizujte logickou funkci pro ovládání nápojového automatu. Stroj obsahuje tyto volby a signály: - signál MINCE ze senzoru, je roven l v případě vhození správné mince - tlačítka VODA, SIRUP, BUBLINKY, při stisku dávají logickou jedničku (s vodou je možno chtít pouze sirup, bublinky, nebo sirup a bublinky) - senzory pro kontrolu přítomnosti vody SV, sirupu SS , plynu SP , kelímků SK - výstupní signály: Y)( - signál pro spuštění kelímku, Yv - ventil pro vodu, Ys - dávkování sirupu, Yg - ventil pro kysličník uhličitý, vrácení mince Yp,. Stroj nesmí reagovat na nesmyslnou kombinaci, např. není MINCE a chceme VODU, ani na požadavek, který není možno splnit z důvodu chybějící položky, např. plynu. V tom případě je vydán signál pro vrácení mince Y„,. 18. příklad: Sestavte dekodér z kódu BCD na 7-segmentový display.
Příklady PLC
-9-
PROGRAM prgMain VAR_INPUT END_VAR VAR kody : ARRAY [0..9] OF BYTE := [16#3f,16#06,16#5b,16#4f]; cislo : BYTE; segment : BYTE; ukazatel : INT; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR ukazatel:=byte_to_int(cislo); //převedení čísla na typ INT segment := kody[ukazatel]; END_PROGRAM 19. příklad: Navrhněte čítač, který čítá do 60. Při této hodnotě se rozsvítí dioda a po 5 sekundách se vypne. Tento děj se stále opakuje.
PROGRAM treti VAR_INPUT END_VAR VAR BT1 : BOOL; BT2 : BOOL; HlSt : BOOL; citej : INT; citac : CTU; zapni : SR; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR cal citac( CU:=s13_2, R:=BT1, PV:=20, Q=>BT1, CV=>citej) ld citej eq 5 jmpcn pokr ld true st BT2 jmp delej pokr: ld false
Příklady PLC
- 10 -
st BT2 delej: cal zapni( S1:=BT1, R:=BT2, Q1 =>HlSt) END_PROGRAM 20. příklad: Navrhněte stopky, které čítají od 0 do 59. Do obvodu navrhněte 2 tlačítka, kde první bude sloužit k zastavení a spuštění stopek a druhé k jejich nulování.
Funkční blok T klopný obvod
21. příklad: Navrhněte čítač, který : při 4 rozsvítí diodu č. 1 a při 8 ji zhasne, při 3 rozsvítí diodu č. 2 a při 9 ji zhasne, svítí-li obě diody, rozsvítí se dioda č. 3. 22. příklad: Navrhněte obvod, ve kterém se bude měnit frekvence blikání diody. Po 4. bliknutí se sníží frekvence 2*, po 9. se sníží 4*. Po 11. bliknutí se nastaví původní frekvence. Obvod je možné zastavit pomocí tlačítka. 23. příklad: Navrhněte čítač, který čítá do 99. Dále navrhněte druhý čítač, který zvýší svoji hodnotu vždy, když se na prvním čítači objeví 6 (výsledek je 11). 24. příklad: Navrhněte 8 kanálový multiplexer, který automaticky přepíná vstupy na jeden výstup. K výstupu je připojena LED dioda. 25. příklad: Navrhněte program, který bude postupně dokola spínat 8 výstupů (rotace jedna diody). Řešení na straně 15
Příklady PLC Řešení příkladu 21 v jazyce LD
- 11 -
Příklady PLC Řešení příkladu 22 v jazyce LD
- 12 -
Příklady PLC Řešení příkladu 23 v jazyce LD
- 13 -
Příklady PLC
- 14 -
Řešení přikladu 24 v jazyce LD Funkční blok pro 8-kanálový multiplexer
VAR_GLOBAL s16_0 AT %s16.0 : BOOL; s16_1 AT %S16.1 : BOOL; s16_2 AT %S16.2 : BOOL; END_VAR
Příklady PLC
- 15 -
Řešení příkladu 25 v jazyce LD
Řešení příkladu 25 v jazyce LD s využitím procesu P5 (nejdříve musíme definovat úlohu s procesem P5)
26. příklad: Ovládání výtahu Motor výtahu se rozběhne v případě, že stiskneme některé ze tří tlačítek T1, T2 , T3 výběru patra, není-li přitom stisknuto tlačítko STOP a dává-li snímač zavření dveří D signál l. 27. příklad: Navrhněte obvod pro ovládání 3 dopravních pásů dopravní linky. Každý pás bude ovládán samostatně pomocí tlačítka START a STOP. Obvod musí zajistit blokování dopravníků tak, aby zadní dopravníky nešly spustit, pokud neběží dopravníky přední. Při vypnutí předního dopravníku se musí zadní dopravníky zastavit.
Příklady PLC
- 16 -
3 28. příklad: Sestavte schéma pro ovládání 2 elektromotorů tak, že pouze jen jeden z nich smí být v provozu. K ovládání každého elektromotoru slouží dvě tlačítka.
Příklady PLC
- 17 -
29. příklad: Navrhněte obvod pro ovládání elektromotoru, který se uvádí do chodu stiskem tlačítka START. Motor se zastavuje pomocí dvou koncových spínačů A a B. K zastavení dojde pouze v případě, kdy se sepne nejprve spínač A a následně spínač B. Spínač A Spínač B
30. příklad: Navrhněte obvod pro ovládání elektromotoru, který se uvádí do chodu stiskem tlačítka START. Motor se zastavuje pomocí dvou koncových spínačů A a B. K zastavení dojde pouze v případě, kdy se sepne nejprve spínač A, následně spínač B. Spínač A Spínač B
Příklady PLC
- 18 -
Funkční blok pro D-KO (jsou úmyslně uvedeny dvě možnosti řešení – jiná pro SET a jiná pro RESET)
31. příklad: Navrhněte obvod pro ovládání motoru s přepínáním HVĚZDA – TROJÚHELNÍK. Pro ovládání se používají tlačítka A – rozběh do hvězdy, B – chod v trojúhelníku. Pro vypnutí tlačítko S. Princip činnost: Po stisku tlačítka A se sepne stykač pro zapnutí do hvězdy. Do trojúhelníku lze motor přepnout až po vypnutí hvězdy tlačítkem S, kterým lze kdykoliv vypnout oba stykače. Podmínkou pro chod v trojúhelníku je rozběhnutí motoru do hvězdy. Pokud motor běží v trojúhelníku, nelze jej tlačítkem B přepnout do hvězdy.
32. příklad: Postupné spínání elektromotorů. Máme 4 elektromotory, které se spínají jeden za druhým vždy po časové prodlevě 2s. Princip činnosti: Sekvence zapínání začne po stisku tlačítka START. Každý z motorů se dá samostatně vypnout tlačítkem STOP1 až STOP4. Protože je chod motorů na sobě navzájem závislý, musí při vypnutí jednoho z motorů dojít i k vypnutí motorů následujících. (Např.: při vypnutí motoru 2 se musí vypnout i motory 3 a 4.)
Příklady PLC
- 19 -
Příklady PLC
- 20 -
33. příklad: Zapínání elektromotoru přepínačem hvězda trojúhelník. Zapnutí a vypnutí řešte pomocí dvojtlačítka. Princip činnosti: Po stisku tlačítka START se sepne 1. stykač (pro hvězdu). Po rozběhu motoru (5s) se odpojí a po uplynutí 2s se zapne 2. stykač (pro trojúhelník). Motor se vypíná tlačítkem STOP. Pokud je sepnutý 2. stykač, je 1. stykač blokovaný – nelze jej sepnout. Celou sekvenci je možné opakovat.
34. příklad: Reverzace motoru s časovou prodlevou. Pro zapnutí slouží tlačítka VPŘED a VZAD. Pro vypnutí tlačítko STOP. Princip činnosti: Po stisku VPŘED se sepne 1. stykač a motor běží směrem vpřed. Pokud je stisknuto tlačítko VZAD, 1. stykač se rozpojí, ale 2. stykač pro zpětný chod lze zapnout až po 5s, kdy se předpokládá, že se motor již neotáčí. Motor lze kdykoliv vypnout tlačítkem STOP. Celá sekvence platí i pro chod opačný. 35. příklad: Reverzace motoru s časovou prodlevou. Pro zapnutí slouží tlačítka VPŘED a VZAD. Pro vypnutí tlačítko STOP. Princip činnosti: Po stisku VPŘED se sepne 1. stykač a motor běží směrem vpřed. Pokud je stisknuto tlačítko VZAD, 1. stykač se rozpojí, ale 2. stykač pro zpětný chod se sám sepne až po 5s, kdy se předpokládá, že se motor již neotáčí. Motor lze kdykoliv vypnout tlačítkem STOP. Celá sekvence platí i pro chod opačný.
Příklady PLC Řešení příkladu 34 v jazyce LD
- 21 -
Příklady PLC
- 22 -
Řešení příkladu 35 v jazyce LD
36. příklad: Zapínání elektromotoru přepínačem hvězda trojúhelník s reverzací. Pro zapnutí slouží tlačítka VPŘED a ZPĚT. Pro vypnutí tlačítko STOP. Princip činnosti:
Příklady PLC
- 23 -
Po stisku tlačítka VPŘED se sepne 1. stykač (pro hvězdu). Po rozběhu motoru (5s) se odpojí a po uplynutí 2s se zapne 2. stykač (pro trojúhelník). Pokud je stisknuto tlačítko ZPĚT, 2. stykač se rozpojí, ale 3. stykač pro zpětný chod (pro hvězdu) se sepne až po 5s, kdy se předpokládá, že se motor již neotáčí. Po rozběhu motoru (5s) se odpojí a po uplynutí 2s se zapne 4. stykač (pro trojúhelník). Motor lze kdykoliv vypnout tlačítkem STOP. Celá sekvence platí i pro chod opačný. (Fl_1 = 1 or Vpred = 0) and Fl_0 = 0
(Fl_1 = 0 and Vpred = 1) or Fl_0 = 1
T > 5s
T < 5s and Stop = 0
Fl_0 := 1, Hv_0 := 1
20
21
(Fl_1 := 1 , Fl_0: = 0 T > 5s
T < 5s
24
(Fl_1 := 0 , Fl_0: = 0 Tr_0 := 0, Hv_0 := 0
Stop= 1
Stop= 1 Hv_0 := 0
RAF_0 Tr_0 := 0
23
22
Vzad = 1 Tr_0 := 1 Vzad = 0 and Stop = 0
(Fl_0 = 1 or Vzad = 0) and Fl_1 = 0
T > 5s
T > 2s
(Fl_0 = 0 and Vzad = 1) or Fl_1 = 1
T < 2s
T < 5s and Stop = 0
Fl_1 := 1, Hv_1 := 1
30
31
(Fl_0 := 1 , Fl_1: = 0 T > 5s
T < 5s
34
Stop= 1
(Fl_0 := 0 , Fl_1: = 0 Tr_1 := 0, Hv_1 := 0
Stop= 1 Hv_1 := 0
RAF_1 Tr_1 := 0
33
32
Vpred = 1 Tr_1 := 1 Vpred = 0 and Stop = 0
T > 2s
T < 2s
Deklarace globální proměnné pro využití registru S16: VAR_GLOBAL s_16 AT %s16 : INT; END_VAR // motory se dají vypnout kdykoliv
// reverzace je možná až po přepnutí do trojúhelníku
Příklady PLC PROGRAM prgPrikl39 VAR_INPUT END_VAR VAR Vpred : BOOL; Vzad : BOOL; Stop : BOOL; Fl_0 : BOOL; Fl_1 : BOOL; Tr_0 : BOOL; Tr_1 : BOOL; Hv_0 : BOOL; Hv_1 : BOOL; RAF_0 : INT := 20; RAF_1 : INT := 30; Time_0 : INT; Time_1 : INT; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR CASE RAF_0 OF 20 : IF ((Fl_1 = false and Vpred = true) or (Fl_0 = true)) THEN Hv_0 := true; Fl_0 := true; Time_0 := S_16 + 5; RAF_0 := 21; END_IF; 21 : IF (S_16 > Time_0) THEN Hv_0 := false; Time_0 := S_16 + 2; RAF_0 := 22; END_IF; IF (Stop = true) THEN RAF_0 := 23; END_IF; 22 : IF (S_16 > Time_0) THEN Tr_0 := true; RAF_0 := 23; END_IF; 23 : IF (Stop = true) THEN Hv_0 := false; Tr_0 := false; Fl_0 := false; Fl_1 := false; RAF_0 := 20; ELSE IF (Vzad = true) THEN
- 24 Tr_0 := false; Time_0 := S_16 + 5; RAF_0 := 24; END_IF; END_IF; 24 : IF (S_16 > Time_0) THEN Fl_0 := false; Fl_1 := true; RAF_0 := 20; END_IF; END_CASE; CASE RAF_1 OF 30 : IF ((Fl_0 = false and Vzad = true) or (Fl_1 = true)) THEN Hv_1 := true; Fl_1 := true; Time_1 := S_16 + 5; RAF_1 := 31; END_IF; 31 : IF (S_16 > Time_1) THEN Hv_1 := false; Time_1 := S_16 + 2; RAF_1 := 32; END_IF; IF (Stop = true) THEN RAF_0 := 33; END_IF; 32 : IF (S_16 > Time_1) THEN Tr_1 := true; RAF_1 := 33; END_IF; 33 : IF (Stop = true) THEN Hv_1 := false; Tr_1 := false; Fl_0 := false; Fl_1 := false; RAF_1 := 30; ELSE IF (Vpred = true) THEN Tr_1 := false; Time_1 := S_16 + 5; RAF_1 := 34; END_IF; END_IF; 34 : IF (S_16 > Time_1) THEN Fl_1 := false; Fl_0 := true; RAF_1 := 30; END_IF; END_CASE; END_PROGRAM
Příklady PLC
- 25 -
37. příklad: Postupné zapínání 4 elektromotorů přepínačem hvězda trojúhelník. Zapnutí a vypnutí řešte pomocí tlačítek START a STOP. Princip činnosti: Po stisku tlačítka START se sepne 1. stykač (pro hvězdu). Po rozběhu motoru (5s) se odpojí a po uplynutí 2s se zapne 2. stykač (pro trojúhelník). Po časové prodlevě 1s se vždy stejným způsobem zapíná další motor. Motory se vypínají tlačítkem STOP Graf pro sepnutí jednoho motoru
Deklarace struktury TYPE Motor_struct: STRUCT StHv : BOOL; StTr : BOOL; Del : BOOL; END_STRUCT; END_TYPE
Vst = 1
Vyst_0 := 1
20
21 RAF
T > 2s
VAR_GLOBAL S_16 AT %S16 : INT; Stop : BOOL; END_VAR
Funkční blok pro jednoho motoru
T < 5s
Vst = 0
T > 5s Vyst_0 := 0
Uz := 1
23
22 Vyst_1 := 1
sepnutí
FUNCTION_BLOCK Zapni VAR_INPUT vst : BOOL; END_VAR VAR RAF : INT := 20; Time_0 : INT; END_VAR VAR_OUTPUT vyst_0 : BOOL; vyst_1 : BOOL; Uz : BOOL; END_VAR VAR_TEMP END_VAR IF Stop // vypnutí motorů THEN vyst_0 := false; vyst_1 := false;
T < 2s
T > 2s
T < 2s
RAF := 20; //nastavení poč. sekvence END_IF; Uz := false; CASE RAF OF 20 : IF vst THEN vyst_0 := true; Time_0 := S_16 + 5; RAF := 21; END_IF; 21 : IF (S_16 > Time_0) THEN vyst_0 := false; Time_0 := S_16 + 2; RAF := 22; END_IF; 22 : IF (S_16 > Time_0) THEN vyst_1 := true; Time_0 := S_16 + 2;
Příklady PLC
- 26 Uz := true; END_IF; END_CASE;
RAF := 23; END_IF; 23 : IF (S_16 > Time_0) THEN RAF := 20;
PROGRAM prgPrikl37
END_FUNCTION_BLOCK
//program využívá funkční blok ZAPNI
VAR_INPUT END_VAR VAR motor_0 : Zapni; motor_1 : Zapni; motor_2 : Zapni; motor_3 : Zapni; Start : BOOL; StHv_0 : BOOL; StTr_0 : BOOL; Del_0 : BOOL; StHv_1 : BOOL; StTr_1 : BOOL; Del_1 : BOOL; StHv_2 : BOOL; StTr_2 : BOOL; Del_2 : BOOL; StHv_3 : BOOL; StTr_3 : BOOL; Del_3 : BOOL; i : USINT; motor : ARRAY [1..4] OF Motor_struct; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR motor_0 (vst := Start, vyst_0 => StHv_0, vyst_1 => StTr_0, Uz => Del_0); motor_1 (vst := Del_0, vyst_0 => StHv_1, vyst_1 => StTr_1, Uz => Del_1); motor_2 (vst := Del_1, vyst_0 => StHv_2, vyst_1 => StTr_2, Uz => Del_2); motor_3 (vst := Del_2, vyst_0 => StHv_3, vyst_1 => StTr_3, Uz => Del_3); END_PROGRAM
Příklady PLC PROGRAM prgPrikl37 VAR_INPUT END_VAR
- 27 //jinou možností je využití struktury a příkazu FOR
VAR motor_0 : Zapni; mot : ARRAY [1..3] OF Zapni; Start : BOOL; i : USINT; motor : ARRAY [0..4] OF Motor_struct; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR motor_0 (vst := Start, vyst_0 => Motor[0].StHv, vyst_1 => Motor[0].StTr, Uz => Motor[0].Del); FOR i := 1 TO 3 DO mot[i] (vst := Motor[i-1].Del, vyst_0 => Motor[i].StHv, vyst_1 => Motor[i].StTr, Uz => Motor[i].Del); END_FOR; END_PROGRAM
38. příklad: Zapínání elektromotoru přepínačem hvězda trojúhelník s ručním přepínáním. Zapnutí a vypnutí řešte pomocí tlačítek HVĚZDA, TROJÚHELNÍK, STOP. Princip činnosti: Po stisku tlačítka HVĚZDA se sepne 1. stykač (pro hvězdu). Motor nejde přepnout do trojúhelníku. Musí se nejprve vypnout tlačítkem STOP. Tlačítkem TROJÚHELNÍK lze zapnout 2. stykač (pro trojúhelník) jedině v případě, pokud nejdříve byl sepnut 1. stykač a to do 5s. Motor se vypíná tlačítkem STOP. Celou sekvenci je možné opakovat. Hv = 0
Stop = 0
Hv = 1
St_0 := 1
20
21 RAF
Stop= 1
Stop = 1 St_0 := 0
St_1 := 0 T > 5s
23
22 St_1 := 1
Stop = 0
Tr = 1 and T <
T < 5s
Příklady PLC
- 28 -
PROGRAM prgPrikl38 VAR_INPUT END_VAR VAR Stop : BOOL; St_1 : BOOL; Tr_0 : BOOL; Hv_0 : BOOL; RAF_0 : INT := 20; Time_0 : INT; St_0 : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR
21 : IF Stop THEN St_0 := false; Time_0 := S_16 + 5; RAF_0 := 22; END_IF; 22 : IF (S_16 > Time_0) THEN RAF_0 := 20; END_IF; IF Tr_0 THEN St_1 :=1; RAF_0 := 23; END_IF; 23 : IF (Stop = true) THEN St_1 := false; RAF_0 := 20; END_IF; END_CASE; END_PROGRAM
CASE RAF_0 OF 20 : IF Hv_0 THEN St_0 := true; RAF_0 := 21; END_IF;
39. příklad: Reverzace motoru s časovou prodlevou a prodlevou po stisku STOP. Pro zapnutí slouží tlačítka VPŘED a ZPĚT. Pro vypnutí tlačítko STOP. Princip činnosti:
Po stisku VPŘED se sepne 1. stykač a motor běží směrem vpřed. Pokud je stisknuto tlačítko ZPĚT, 1. stykač se rozpojí, ale 2. stykač pro zpětný chod se sepne až po 5s, kdy se předpokládá, že se (Fl_0 = 0 and Vpred = 0) or Fl_1 = 1 (Fl_0 = 1 or Vpred = 1) and Fl_1 = 0
20
Fl_0 := 0 Fl_1 := 1
(Fl_1 = 0 and Vzad = 0) or Fl_0 = 1
Zpet = 0
St_0 := 1 Fl_0 := 1
Fl_1 := 0 Fl_0 := 1
RAF_ 0
St_1 := 0 Vpred= 1
Zpet = 1 T > 5s
T > 5s
22
22
Stop = 1
T < 5s
St_0 := 1, St_1 := 0 Fl_0 := 1, Fl_1 := 1 Raf_0 := 20 Raf_1 := 30 Stop = 0
21
RAF_1
St_0 := 0
T < 5s
Vpred = 0
St_1 := 1 Fl_1 := 1
20
21
(Fl_1 = 1 or Vzad = 1) and Fl_0 = 0
20 RAF_ 2 Fl_0 := 0, Fl_1 := 0
T > 5s
T < 5s
21
Příklady PLC
- 29 -
motor již neotáčí. Motor lze kdykoliv vypnout tlačítkem STOP. Po stisku tohoto tlačítka nelze zapnout motor po dobu 5s. Celá sekvence platí i pro chod opačný. PROGRAM prgPrikl39 VAR_INPUT END_VAR VAR St_0 : BOOL; St_1 : BOOL; Vpred : BOOL; Zpet : BOOL; Stop : BOOL; RAF_0 : INT := 20; RAF_1 : INT := 30; RAF_2 : INT := 40; Time_0 : INT; Fl_0 : BOOL; Fl_1 : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR CASE RAF_0 OF 20 : IF ((Fl_0 = true or Vpred = true) and (Fl_1 = false)) THEN St_0 := true; Fl_0 := true; RAF_0 := 21; END_IF; 21 : IF (Zpet = true) THEN St_0 := false; Time_0 := S_16 + 5; RAF_0 := 22; END_IF; 22 : IF (S_16 > Time_0) THEN Fl_0 := false; Fl_1 := true; RAF_0 := 20; END_IF; END_CASE;
CASE RAF_1 OF 30 : IF ((Fl_1 = true or Zpet = true) and (Fl_0 = false)) THEN St_1 := true; Fl_1 := true; RAF_1 := 31; END_IF; 31 : IF (Vpred = true) THEN St_1 := false; Time_0 := S_16 + 5; RAF_1 := 32; END_IF; 32 : IF (S_16 > Time_0) THEN Fl_1 := false; Fl_0 := true; RAF_1 := 30; END_IF; END_CASE; CASE RAF_2 OF 40 : IF Stop THEN St_0 := false; St_1 := false; Fl_0 := true; Fl_1 := true; Time_0 := S_16 + 5; RAF_0 := 20; RAF_1 := 30; RAF_2 := 41; END_IF; 41 : IF (S_16 > Time_0) THEN Fl_0 := false; Fl_1 := false; RAF_2 := 40; END_IF; END_CASE; END_PROGRAM
Příklady PLC
- 30 -
40. příklad: Po stisknutí tlačítka „Pohyb stolu zapnout" se má stůl brusky začít pohybovat střídavě vlevo až do polohy dané levým koncovým spínačem a pak vpravo až do polohy dané pravým koncovým spínačem. Po stisknutí tlačítka „Pohyb stolu vypnout" se má pohyb stolu okamžitě zastavit. Navrhněte řízení pomocí PA a napište program v jazyku mnemokódů.
VSTUPY A VÝSTUPY
- označení proměnných a definice významů jejich logických hodnot Vstupní proměnná Konc.spínač levý Konc.spínač pravý Tlačítko zapnout Tlačítko vypnout Výstupní proměnná Motor stolu doleva Motor stolu doprava
Označení SL SP ZAP VYP
Význam log. hodnoty Stůl vlevo: SL=1 Stůl vřavo: SP=1 Stisknuto: ZAP=1 Stisknuto: VYP=1
MOTL MOTP
MOTL=1: stůl doleva MOTL=1: stůl doprava
Blokové schéma
Příklady PLC
- 31 -
41. příklad: Čerpadlo topného oleje pro olejový hořák může být spuštěno a vypnuto dvěma různými tlačítky ze dvou míst. Čerpadlo lze ovšem spustit jen tehdy, hoří-li pomocný plamének, což indikuje bimetalické čidlo. Navrhněte program pro PA .
Příklady PLC
- 32 -
VSTUPY A VÝSTUPY
označení proměnných a definice významů jejich logických hodnot Vstupní proměnná Spínač č.l Spínač č.2 Čidlo plaménku Výstupní proměnná Čerpadlo
Označení S1 S2 PP
Význam log. hodnoty Stisknuto: S1 změní hodnotu Stisknuto: S2 změní hodnotu Plamének hoří: PP=1
C
C=l: spustit motor čerpadla Blokové schéma
Pomocí funkce XOR lze výraz vyjádřit takto:
C = (S1 xor S2) . PP
Příklady PLC
- 33 -
42. příklad: Agregát je chlazen dvěma ventilátory. Kontrola jejich funkce probíhá pomocí senzorů proudu vzduchu. PA má realizovat následující kontrolní a indikační funkce: a) při výpadku libovolného ventilátoru se má rozsvítit optická signalizace b) při výpadku obou ventilátorů se má navíc rozezvučet akustická signalizace. Obě hlášení jsou realizována jen tehdy, je-li spuštěn agregát, což je též signalizováno opticky. Navrhněte pro tuto úlohu program pro PA.
Blokové schéma
Příklady PLC
- 34 -
Algebraické rovnice
ALMO = AG . (V2 + V1) ALMA = V2 . V1 . AG KAG = AG
43. příklad: Ve vodárně jsou instalována tři čerpadla, dvě malá, Cl o výkonu QC1 a C2 o výkonu QC2 a jedno velké C3 o výkonu QC3. Tato čerpadla jsou určena pro běžný provoz. Dále je ve vodárně připraveno jedno záložní čerpadlo CR. Toto záložní čerpadlo se má uvést do provozu tehdy, jestliže dojde k poruše nčkterého z čerpadel a fungující čerpadla nedodávají minimální výkon. Provoz všech provozních čerpadel má být signalizován kontrolkou a spuštění záložního čerpadla ohlášeno zvukovou signalizací. Minimální výkon pokryje současný provoz obou malých čerpadel nebo provoz velkého a jednoho z malých čerpadel, ale nepokryje jej provoz samotného velkého čerpadla. Platí: QC1
Příklady PLC Vstupní proměnná Motor čerpadla C1 Motor čerpadla C2 Motor čerpadla C3 Výstupní proměnná Motor záložního čerpadla Kontrolka čerpadla C1 Kontrolka čerpadla C2 Kontrolka čerpadla C3 Kontrolka čerpadla CR Akustická signalizace
- 35 Označení Cl C2 C3
Význam log. hodnoty Běží: Cl-1 Běží: C2=l Běží:C3=l
I MR Kl K2 K3 ZR ALMA
MR-M:Spustit Kl = l: Svítí=Motor čerpadla Cl běží K2^1: Svítí=Motor čerpadla C2 běží K3=l: Svítí=Motor čerpadla C3 běží ZR-1: Svítí=Motor čerpadla CR běží ALMA=1: Zní=motor čerpadla CR běží
44. příklad: Zboží na válečkové trati má být přesunuto pneumomotorem na další kolmý úsek válečkové trati. Protože obsluhující personál má na starosti více podobných pracovišť rozmístěných po dílně, může vydat pokyn k přesunutí ze tří různých stanovišť. Pokyn k přesunutí je realizován přepínačem VÝJEZD. Po přepnutí do polohy l se pneumotor vysune a přesune zboží na další trať. Při přepnutí do polohy 0 se pneumomotor vrátí zpět. Pneumomotor je ovládán monostabilním elektropneumatickým rozvaděčem. Pokud je vydán pokyn k přesunu z jednoho stanoviště, rozsvítí se na ostatních stanovištích kontrolky ZÁKAZ (manipulace). Případné povely k přesunu z dalších stanovišť musí být ignorovány. Nakreslete blokové schéma řízení manipulace na válečkové trati. Sestavte pravdivostní tabulku.
Příklady PLC
- 36 -
VSTUPY A VÝSTUPY
označení proměnných a definice významů jejich logických hodnot
Vstupní proměnná
Označení
Význam log. hodnoty
Přepínač Výjezd na stanovišti 1 Přepínač Výjezd na stanovišti 2 Přepínač Výjezd na stanovišti 3 Výstupní proměnná Elektromag. ventil Kontrolka na stanovišti 1 Kontrolka na stanovišti 2 Kontrolka na stanovišti 3
SI S2 S3
Poloha 1:S1 = 1 Poloha 1:S2=1 Poloha 1: S3=l
Yl Kl K2 K3
Yl=l: Přesunout zboží Kl = l: svítí=zákaz manipulace Kl=2: svítí=zákaz manipulace Kl=3: svítí=zákaz manipulace
45. příklad: V třídicím automatu jsou testovány rozměry těles tvaru kvádru oproti dorazům. Je přitom snímána hloubka t, šířka b a výška h. Dalším snímačem je snímána zmagnetizovatelnost materiálu těles (remanentní magnetická indukce). Sledované signály mají tento význam: hloubka: t =1 rozměr je velký, t = 0 rozměr není velký šířka: b = 1 rozměr je velký, b = 0 rozměr není velký výška: h = 1 rozměr je velký, h = 0 rozměr není velký m = 1 zmagnetizovatelné, m = 0 nezmagnetizovatelné (těleso) Po odměření jsou výrobky tříděny nejprve výhybkou x a pak zdvojenou výhybkou y do jednoho ze čtyř zásobníků 1, 2, 3 nebo 4 (viz obr). Každá z výhybek má dvě polohy a je elektricky řízená. V klidovém bezproudovém stavu jsou výhybky nastaveny doprava. Tělesa by měla být tříděna podle těchto kritérií: do zásobníku 1 tělesa, která mají velký jen jeden rozměr. Všechna plochá tělesa (se dvěma velkými rozměry a jedním nevelkým rozměrem) a zároveň zmagnetizovatelná by měla směřovat do zásobníku 2. Ostatní tělesa by měla směřovat do zásobníku 4 a zásobník 3 by měl zůstat prázdný. a) Sestavte úplnou pravdivostní tabulku pro signály t, b, h, m, připište do tabulky polohy x, y výhybek a čísla cílových zásobníků. b) Nalezněte pomocí Karnaughových map minimální výstupní funkce pro řídicí proměnné x, y c) Napište program pro řízení třídicího automatu.
Příklady PLC
- 37 -
46. příklad: Úchop robotu je na jedné straně vybaven destičkou s maticí 4x4 taktilních (hmatových) čidel s tlakovými snímači (obr. 1). Robot má uchopovat kulové čepy, pokud možno pomocí středů destiček úchopu, tedy tak, aby uchopená koule tlačila na čtyři prostřední snímače číslo 6, 7, 10 a 11 (obr. 2). Při jiném úchopu by měl robot uvolnit sevření úchopu, korigovat polohu ramena s úchopem a opakovat sevření. Podle kombinace signálů z tlakových snímačů při nesprávném úchopu by měl být generován řídicí signál k uvolnění úchopu (signál W = 1), řídicí signál ke korekci polohy doprava (signál R = 1), doleva (signál L = 1), nahoru (signál 0 = 1) nebo dolů (signál U = 1). Polohy snímačů jsou kódovány pomocí čtyř proměnných (signálů) a, b, c, d. Při stlačení některého snímače v horních dvou řadách (1 až 8) je generován signál a = 1. Stlačením některého snímače v levých dvou sloupcích se generuje signál b = 1. Stlačením některého snímače ve dvou vnitřních sloupcích se generuje signál c = 1 a stlačení snímače ve dvou vnitřních řadách generuje signál d = 1 (obr. 2). Robot sevře chapadla, pokud čep je přítomný na stanovišti. To signalizuje koncový spínač Ks1. Činnost robotu: a) Pokud Ks1 = 1, robot sevře čelisti (Sevri = 1) b) Podle stisku snímačů vyhodnotí, zda je čep ve středu. Pokud ano, pak - přesune čep na nové stanoviště (Presun = 1) - pustí jej (Sevri = 0) a vrátí se zpět (Presun = 0) - mezi jednotlivými úkony je vždy krátká prodleva - pokračuje od bodu a) c) Pokud není čep ve středu, pak podle zjištěného signálu provede korekci - Pustí čep (Sevri = 0) - Posune chapadla podle kombinace snímačů - Začíná od bodu a)
Příklady PLC
- 38 -
Obr.1: Úchop robota s taktilními čidly
a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Tabulka 1: Pravdivostní tabulka ke cvičení čidlo č. W R L O b c d 16 0 0 0 1 1 0 0 12 0 0 1 1 1 0 0 15 0 1 0 1 0 0 0 11 0 1 1 0 0 0 0 13 1 0 0 1 0 1 0 9 1 0 1 1 0 1 0 14 1 1 0 1 0 0 0 10 1 1 1 0 0 0 0 4 0 0 0 1 1 0 1 8 0 0 1 1 1 0 0 3 0 1 0 1 0 0 1 7 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 5 1 0 1 1 0 1 0 2 1 1 0 1 0 0 1 6 1 1 1 0 0 0 0
Obr.2: Uspořádání taktilních čidel
U
dec
1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
25 24 17 0 21 20 17 0 24 24 18 0 22 20 18 0
Příklady PLC
- 39 -
Deklarace vstupů a výstupů: VAR_GLOBAL Vstupy_X AT Vstupy : BYTE; Vystupy_X AT Vystupy : BYTE; S_16 AT %s16 : INT; END_VAR
Funkční blok pro konverzi kódu tlačítka na výstupy FUNCTION_BLOCK Matice VAR_INPUT END_VAR VAR kod : ARRAY [0..15] OF BYTE := [25,24,17,0,21,20,17,0,26,24,18,0,22,20,18,0]; mem : byte; ukazatel : int; END_VAR VAR_OUTPUT Vyst : byte; END_VAR VAR_TEMP END_VAR Mem := (Vstupy_X and 16#0f); //nulování horních 4 bitů ukazatel := byte_to_int(mem); Vyst := kod [ukazatel]; //převod kódu tlačítka na odpovídající výstupy END_FUNCTION_BLOCK
Hlavní Program: PROGRAM prgMain VAR_INPUT END_VAR VAR RAF_0 : INT := 20; Time_0 : INT; Koduj : Matice; mem : byte; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR
Příklady PLC
- 40 -
CASE RAF_0 OF 20 : IF (Ks_1 = true)
//čep je přítomný na koncovém spínači,
THEN Sevri := true;
//pak ho sevři
RAF_0 := 21; END_IF; 21 : Koduj ( vyst => mem);
//dle tlačítka vytvoř kód
IF (mem.4 = false) THEN
//když je výrobek správně uchycený
Time_0 := S_16 + 2; //tak pokračuj na 22 RAF_0 := 22; ELSE Sevri := 0;
//pokud není pak povol výrobek
Time_0 := S_16 + 2; RAF_0 := 30;
//a pokračuj na 30
END_IF; 22 : IF (S_16 > Time_0) THEN Presun := 1;
//po prodlevě přesuň čep
Time_0 := S_16 + 2; RAF_0 := 23; END_IF; 23 : IF (S_16 > Time_0) THEN Sevri := 0; Time_0 := S_16 + 2; RAF_0 := 24; END_IF; 24 : IF (S_16 > Time_0) THEN Presun := 0; Time_0 := S_16 + 2; RAF_0 := 25; END_IF; 25 : IF (S_16 > Time_0)
//návrat na 20
THEN RAF_0 := 20; END_IF; 30 : IF (S_16 > Time_0) THEN mem.4 := 0; Vystupy_X := (Vystupy_X or mem); //zapni posun chapadel Time_0 := S_16 + 2; RAF_0 := 31; END_IF; 31 : IF (S_16 > Time_0) THEN Vystupy_X := (Vystupy_X and 16#f0); //vypni posun chapadel RAF_0 := 20; END_IF; END_CASE; END_PROGRAM
Příklady PLC
- 41 -
47. příklad: Manipulátor pro podávání polotovarů do lisu může uchopený plech natočit do správné polohy otočením kolem příčné osy o 180° po řídicím signálu w = 1 a (nebo) otočením kolem podélné osy o 180° po řídicím signálu d = '\. Otáčení kolem obou os může být spuštěno současně. Polotovary mají být podávány do lisu ve stálém taktu v poloze 1 (obr. 1). Pokud se dostane polotovar ze zásobníku do manipulátoru v nesprávné poloze, je tato poloha indikována třemi signály a, b, c ze tří bezkontaktních snímačů, a poloha musí být nastavena správně. Bezkontaktní snímač dává signál 0, není-li proti němu výřez. Je třeba navrhnout logický kombinační obvod, který vyhodnocuje signály a, b, c ze tří snímačů a na základě jejich hodnot dává buď povely k otáčení, nebo povel s = 1 k zastavení zařízení, neodpovídá-li kombinace signálů a, b, c přítomnosti správného polotovaru v manipulátoru. a) Sestavte úplnou (s osmi řádky) pravdivostní tabulku a přiřaďte potřebné výstupní signály a slovní popis stavu. b) Nalezněte pomocí Karnaughových map minimální výstupní funkce pro výstupní proměnné w, d, s. c) Napište program logického řízení otáčení manipulátoru a zastavení.
48.příklad: 1. Na ID panelu nasimulujte čítač, který čítá od 0 do 60. 2. Na panelu nasimulujte čítač, který čítá od počáteční hodnoty do koncové hodnoty. Obě se zadávají na panelu. 3. Na panelu č.2 nasimulujte hodiny, na kterých zobrazíte minuty, sekundy a milisekundy. Použijte systémové registry. 49.příklad: Postupné spínání tří elektromotorů. a) Sekvence spínání se spouští stiskem tlačítka START. Prodleva mezi sepnutím jednotlivých motorů se zadává z klávesnice ID panelu. b) Tento příklad řešte s tím, že délka každé prodlevy se zadává samostatně a může tedy být různě dlouhá.
Příklady PLC
- 42 -
Řešení příkladu 48a)
51. příklad: Vytvořte program, pomocí kterého je možné vybrat si oběd na určitý den v týdnu a následně druh obědu (ze tří možností), nápoj (ze dvou možností) a polévku (ano – ne). 52. příklad: Navrhněte nápojový automat, kde se na displeji zobrazuje výsledná suma vhozených mincí, je možné zvolit jeden z pěti nápojů a na závěr se ukáží vrácené mince. Např. : Vhodí se desetikoruna, nápoj stojí 7Kč, na výstupu se ukáže dvoukoruna a 1Kč. Příklad blíže vysvětlí vyučující 53. příklad: Na pět vstupů přicházejí impulzy. V paměti je pět registrů, do kterých se impulzy sumují. Na panelu zobrazujte jednotlivé sumy. Pokud přijde impulz na 3. vstup, odpovídající displej automaticky vystoupí do popředí. Možné alternativy - po stisku klávesy se uloží suma do paměti i s časem a je možné ji zpětně vyvolat - nulování jednotlivých registrů - setřídění a výpis podle velikosti - výpis maxima
Příklady PLC
- 43 -
54.příklad: Napište program pro řízení automatické linky dle následujících zadání K2
Přesun2
Přesun1 K5
PÁS2
K3
K4
K6 PÁS3
120cm
PÁS1
V1
V2
K7
V3 K8 K1
V4 K9
START
STOP
I. 1. 2. 3. 4. 5.
Linka se zapíná tlačítkem START Pokud je obrobek na K1, Pás1 se rozjede Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. Dojezdem na K3 se vypne Přesun1. Pás2 se vypne po najetí na K5.
Zjednodušený graf pro 1. úlohu Start = 1
1
K5 = 1
K1 = 1 2
Pas1 : = 1 Presun1 : = 1 Pas1 := 0 Pas2 := 1
Pas2 := 0
Presun1 := 0
5
4 K3 = 1
3
K2 = 1
Příklady PLC PROGRAM prgMain VAR_INPUT END_VAR VAR RAF : INT := 20; Start : BOOL; K1 : BOOL; K2 : BOOL; K3 : BOOL; K5 : BOOL; PAS_1 : BOOL; PAS_2 : BOOL; PAS_3 : BOOL; Presun_1 : BOOL; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR CASE RAF OF 20 : IF (Start = true) THEN RAF := 21; END_IF;
- 44 21 : IF (K1 = true) THEN PAS_1 := 1; RAF := 22; END_IF; 22 : IF (K2 = true) THEN PAS_1 := 0; PAS_2 := 1; Presun_1 :=1; RAF := 23; END_IF; 23 : IF (K3 = true) THEN Presun_1 := 0; RAF := 24; END_IF; 24 : IF (K1 = true) THEN PAS_2 := 0; RAF := 20; END_IF; END_CASE; END_PROGRAM
II. 1. 2. 3. 4. 5. 6.
Linka se zapíná tlačítkem START Pokud je obrobek na K1, Pás1 se rozjede Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. Dojezdem na K3 se vypne Přesun1. Dojezdem na K4 se pás na 4s zastaví a opět rozjede. Pás2 se vypne po najetí na K5.
III. 1. Linka se zapíná tlačítkem START 2. Pokud je obrobek na K1, Pás1 se rozjede 3. Po projetí Zav1 se spustí čítač a zastaví se po projetí Zav2. Z počtu impulzů se vyhodnotí rychlost a vypíše na displeji 4. Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. 5. Dojezdem na K3 se vypne Přesun1. 6. Dojezdem na K4 se pás na 4s zastaví a opět rozjede. 7. Pás2 se vypne po najetí na K5.
Příklady PLC
- 45 -
PROGRAM prgMain VAR_INPUT END_VAR VAR RAF : INT := 20; Start : BOOL; Stop : BOOL; K1 : BOOL; K2 : BOOL; K3 : BOOL; K4 : BOOL; K5 : BOOL; K6 : BOOL; K7 : BOOL; K8 : BOOL; K9 : BOOL; V1 : BOOL; výrobku V2 : BOOL; V3 : BOOL; V4 : BOOL;
// koncové spínače
//vyhození
Zav1 : BOOL; //závora Zav2 : BOOL; PAS_1 : BOOL; PAS_2 : BOOL; PAS_3 : BOOL; Presun_1 : BOOL; Presun_2 : BOOL; citac_1 : CTU; citej_1 : INT; rychlost : INT; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR CASE RAF OF 20 : IF (Start = true) THEN RAF := 21; END_IF; 21 : IF (K1 = true)
Ukázka možné simulace pomocí prostředí PANEL
THEN PAS_1 := 1; RAF := 22; END_IF; 22 : IF (Zav1 = true) //po projetí závory Zav1 se spustí čítač THEN citac_1 (CU := S13_0, R := 0, PV := 500, CV => citej_1); RAF := 23; END_IF; 23 : IF (Zav2 = false) //po projetí závory Zav2 se čítání ukončí THEN
Příklady PLC
- 46 -
citac_1 (CU := S13_0, R := 0, PV := 500, CV => citej_1); ELSE RAF := 24; rychlost := 120*10/citej_1; // rychlost v metrech za sekundu END_IF; 24 : IF (K2 = true) THEN PAS_1 := 0; PAS_2 := 1; Presun_1 :=1; RAF := 25; END_IF; 25 : IF (K3 = true) THEN Presun_1 := 0; RAF := 26; END_IF; 26 : IF (K5 = true) THEN PAS_2 := 0; RAF := 20; END_IF; END_CASE; END_PROGRAM
IV. 1. Linka se zapíná tlačítkem START 2. Pokud je obrobek na K1, Pás1 se rozjede 3. Po projetí Zav1 se spustí čítač a zastaví se po projetí Zav2. Z počtu impulzů se vyhodnotí rychlost a vypíše na displeji 4. Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. 5. Dojezdem na K3 se vypne Přesun1. 6. Po najetí na K4 se Pás2 zastaví a obrobek se ohřívá – zapne se Topení 7. Po ohřátí – indikace vstupem OHREV se Topení vypne, Pás2 se opět rozjede 8. Pás2 se vypne po najetí na K5. V. 1. Linka se zapíná tlačítkem START 2. Pokud je obrobek na K1, Pás1 se rozjede 3. Po projetí Zav1 se spustí čítač a zastaví se po projetí Zav2. Z počtu impulzů se vyhodnotí rychlost a vypíše na displeji 4. Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. 5. Dojezdem na K3 se vypne Přesun1. 6. Po najetí na K4 se Pás2 zastaví a obrobek se ohřívá – zapne se Topení 7. Doba, po kterou se obrobek ohřívá se zadává na displeji. 8. Po ohřátí se Topení vypne, Pás2 se opět rozjede 9. Pás2 se vypne po najetí na K5. VI. 1. Linka se zapíná tlačítkem START 2. Pokud je obrobek na K1, Pás1 se rozjede
Příklady PLC
- 47 -
3. Po projetí Zav1 se spustí čítač a zastaví se po projetí Zav2. Z počtu impulzů se vyhodnotí rychlost a vypíše na displeji 4. Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. 5. Dojezdem na K3 se vypne Přesun1. 6. Po najetí na K4 se Pás2 zastaví a obrobek se ohřívá – zapne se Topení 7. Teplota, na kterou se má obrobek ohřát se zadává na displeji (max. 90°C). Porovnává se s teplotou, která je snímána přes analogový převodník na vstupech x1.0 až x1.3 jako číslo 0 až 15 (15 odpovídá 90°C). 8. Po ohřátí se Topení vypne, Pás2 se opět rozjede 9. Pás2 se vypne po najetí na K5. VII. 1. Linka se zapíná tlačítkem START 2. Pokud je obrobek na K1, Pás1 se rozjede 3. Po projetí Zav1 se spustí čítač a zastaví se po projetí Zav2. Z počtu impulzů se vyhodnotí rychlost a vypíše na displeji 4. Dojezdem na K2 se zapne Přesun1, rozběhne se Pás2 a Pás1 se vypne. 5. Dojezdem na K3 se vypne Přesun1. 6. Po najetí na K4 se Pás2 zastaví a obrobek se ohřívá – zapne se Topení 7. Doba, po kterou se obrobek ohřívá se zadává na displeji. 8. Po ohřátí se Topení vypne, Pás2 se opět rozjede 9. Dojezdem na K5 se zapne Přesun2, rozběhne se Pás3 a Pás2 se vypne. Přesun2 se vypne po 2s 10. Obrobek , podle zadaného typu (na ID panelu) pokračuje na jeden z koncových spínačů K6 až K9 11. Odpovídající vyhazovák jej vyhodí do příslušného koše 12. Pás3 se zastaví a program najede na bod 2. 13. Linka se zastaví a uvede do počátečního stavu tlačítkem STOP
55.příklad: Navrhněte program pro řízení vstřikolisu. Funkce vstřikolisu: * vstřikolis se zapíná tlačítkem START * pro ohřívání plastu slouží tři topná hnízda * tlačítkem FORMA se rozběhne následující sekvence: - najíždí forma - po najetí se zapne vstřik plastu do formy - chlazení formy - odjetí formy do výchozí polohy
Příklady PLC
- 48 Násypka pro granulát Topná hnízda
Ochranný kryt formy
Vpřed
Zpět
Pohyb formy Stav0 Stav1
Popis činnosti: Po stisku tlačítka START (vstup x0.5) se zapnou topná hnízda, která ohřívají granulovaný plast. (výstupy y0.1, y0.2, y0.3). Teploty pro jednotlivá hnízda se zadávají na ID panelu. Ohřátí plastu na určenou teplotu signalizují vstupy x1 a to následujícím způsobem: Předpokládáme, že na vstupy x1 je připojený AD převodník s multiplexerem. Měřené vstupy se přepínají pomocí výstupů y1.0 a y1.1. Podle binárního čísla na těchto výstupech vstupuje na x1 teplota odpovídajícího topného hnízda. Rozsah měřené teploty je 0 až 500 oC Pokud nedojde k vypnutí lisu tlačítkem STOP, plast se musí trvale udržovat na odpovídající teplotě nezávisle na další činnosti lisu. Vlastní lisování se může zahájit až po natavení plastu. To je signalizováno prvním dosažením přednastavené teploty na všech topných hnízdech. Forma začne najíždět (výstup y0.4) do pozice pro vstřik plastu, je-li stisknuto tlačítko FORMA (vstup x0.6) a současně je ve výchozí poloze (vstup x0.3). Uzavření formy v pracovní poloze je signalizováno vstupem x0.4. Po prodlevě 2s se spustí vstřik plastu (výstup y0.6). Čas vstřiku se zadává z ID panelu. Po ukončení vstřiku se forma chladí (výstup y0.0). Čas chlazení se opět zadává pomocí ID panelu. Po ochlazení formy se vypne výstup y0.4 a po prodlevě 2s forma odjíždí do výchozí polohy (výstup y0.5). Vrácení zpět je signalizováno vstupem x0.3. Výstup y0.5 se vypne a lis je připravený pro opakování cyklu. Vstřikolis se vypíná tlačítkem STOP (vstup x0.7)
Příklady PLC
- 49 -
Vstupy: Stav0 Stav1 START FORMA STOP
x0.3 x0.4 x0.5 x0.6 x0.7
výchozí poloha formy pracovní poloha formy zapnutí vstřikolisu zahájení cyklu vstřiku vypnutí vstřikolisu
Teplota
x1
vstup teplot přes AD převodník
Výstupy: Chlazení Hnízdo1 Hnízdo2 Hnízdo3 Vpřed Zpět Plast
y0.0 y0.1 y0.2 y0.3 y0.4 y0.5 y0.6
ovládání chlazení formy ovládání ohřevu v místě 1 ovládání ohřevu v místě 2 ovládání ohřevu v místě 3 pohyb formy do pracovní polohy pohyb formy do výchozí polohy vstřik plastu
y1.0, y1.1
přepínaní měřených vstupů pro jednotlivé teploty
56.příklad:
Zadání 1 Popis činnosti pračky: 1 - po zapnutí Start začíná pračka napouštět vodu a začíná prát: pravidelné otáčení bubnu vlevo a vpravo. Rotace bubnu trvá vždy přibližně 5s, mezi reverzací je prodleva 2s.. 2 - napouštění se ukončí, když snímač Hladina = log1 3 - po prodlevě 4s se zapíná Topení: teplota se zadává na ID panelu v rozsahu 30 – 90o C 4 - topení vypne po dosažení teploty, která se kontroluje na vstupech x1.0 – x1.3, na ID panelu naskočí hláška o vypnutí topení 5 - pračka dále pere podle zadaného času na ID panelu: 15s, 20s, 25s, 30s (otáčení bubnu vlevo i vpravo) 6 - následuje vypouštění vody (8s) - Čerpadlo 7 - po prodlevě 3s se napouští voda pro máchání 8 - doba máchání je 10s 9 - voda se vypouští (viz bod6) 10 - po prodlevě 5s pračka začíná odstřeďovat Odstřeď, odstřeďování trvá 15s 11 - konec činnosti – hláška na ID panelu !! Trvalé otáčení bubnu vlevo i vpravo je součástí činnosti pračky v bodech 1 až 9
Zadání 2
Na ID panelu se zadává množství prádla: 1/3, 1/2., 2/3, full. Podle zadání se hlídá výška hladiny vody na vstupech x0.0 a x0.1 Pokud dojde ke snížení hladiny, musí se voda automaticky dopustit Pokud dojde ke snížení teploty, dojde automaticky k ohřevu na zadanou teplotu
Zadání 3 Zadání 2 plus: Na ID panelu se zadává počet máchání: 1x, 3x, 5x
Příklady PLC
- 50 -
Na ID panelu se zadává počet otáček pro odstřeďování: 600, 800, 1000, 1200. Každým otáčkám je přiřazený jeden výstup !! Pračku lze vypnout přepínačem S0 a po jeho opětovném zapnutí !! musí pračka pokračovat od cyklu, kde skončila Start=1
Voda=1
CerpN=1 S25.1=1
4s
CerpN=0 Time=S16+4
0
1
Ohrev=1
3
2
Teplota=1 Start=0
Ohrev=0 Time=S16+60
12 4
Odstred=0
60s
CerpV=0 15s
11
CerpV=1 Time=S16+10
AUT1
Odstred=1 Time=S16+15 3s
5
10 S25.1=0 Time=S16+3
CerpV=0 Time=S16+3
Vlevo=0 Vpravo=0
9
8 Time=S16+10 CerpV=1
10s
6
7 Time=S16+60 CerpN=0
60s
CerpN=1 3s
Voda=1
1s 5s Vlevo= 1 0
Vpravo= 0
1
AUT2
3
Vlevo= 0
2 Vpravo= 1
5s
1s
10s
Příklady PLC
- 51 -
57. příklad:
Návrh logického obvodu pro ovládání dopravníkového pásu Text zadání: Dopravníkový pás je poháněný elektromotorem. Pracovní cyklus je: pohyb vpřed, rychlý pohyb vpřed a pohyb zpět. Cyklus je řízen pomocí tlačítek START, STOP, a koncových spínačů KS0, KS1, KS2. Otáčky motoru jsou ovládány sepnutím stykačů S1, S2, S3. Schéma ovládání pohybu pásu je na obr. 1. VZAD
M
KS0
VPŘED
KS1
KS2
Obr. 1: Schéma ovládání pásu START
STOP
M – KS – koncové spínače START, STOP – tlačítka pro ovládání
motor
Popis a podmínky činnosti dopravníkového pásu: Výchozím stavem je krajní poloha pásu, která je určena sepnutým spínačem KS0. Stiskem tlačítka START se sepne první stykač, rotor motoru se roztočí a začne pásem pohybovat směrem vpřed. Po najetí narážky na koncový spínač KS1 se vypne první stykač. Po uplynutí jedné sekundy je sepnut druhý stykač. Pás se pohybuje rychlým pohybem vpřed. Tento pohyb se ukončí najetím narážky na koncový spínač KS2. Vypne se druhý stykač. Po uplynutí pěti sekund sepne třetí stykač. Rotor motoru se roztočí opačným směrem a pás se pohybuje směrem vzad. Cyklus je ukončen najetím narážky na koncový spínač KS0 – třetí stykač se vypne. Činnost po stisku tlačítka STOP: Pokud se pás pohybuje směrem vpřed, musí se po stisku tlačítka STOP okamžitě zastavit (první nebo druhý stykač se vypne). Po uplynutí pěti sekund sepne třetí stykač a rotor motoru se roztočí opačným směrem. Pás se pohybuje směrem vzad. Najetím narážky na koncový spínač KS0 je ukončen pohyb pásu – třetí stykač se vypne. Pokud se pás pohybuje směrem vzad, je pohyb ukončen najetím narážky na koncový spínač KS0 – třetí stykač se vypne. Bezpečnost provozu je zajištěna splněním této podmínky: Současně nesmí být sepnuto více než jeden ze stykačů S1, S2, S3.
Příklady PLC
- 52 -
Použitá literatura : Příklady č. 40 – 44 jsou převzaty z knihy PLC a automatizace 1, autoři : Ladislav Šmejkal, Marie Martinásková, nakladatelství BEN; Příklady č. 45 – 47 jsou převzaty z knihy Řízení a regulace pro strojírenství a mechatroniku, autoři Dietmar Schmid a kol., nakladatelství Europa – Sobotáles cz. S. r. o.;