Praktické úlohy- programování PLC Realizace praktických úloh zaměřených na dovednosti v oblastech: realizace praktických úloh zaměřených na základní funkční bloky; samostatné procvičování na základě zadaných projektů; programování a simulací ve vývojovém prostředí IDE LogoSoft Comfort. Průprava č. 2 Automatické posuvné dveře Zadání Vytvořte automatiku pro otvírání a zavírání posuvných dveří, který bude řízen pomocí PLC LOGO!. Funkce dveří je známá z běžného života: dveře jsou zavřeny, pokud není zaznamenán pohyb poblíž jejich vstupu. Dveře se úplně otevřou při zaznamenání pohybu a zůstanou otevřeny ještě po dobu 2 sec po odeznění tohoto pohybu. Pak se teprve začnou opět zavírat. V případě zaznamenání pohybu během zavírání se dveře budou opět otevírat až do úplného otevření. Řešení s LOGO! Automatika je řízena čidlem pohybu MOVE, z něhož jsou odvozeny signály pro otevírání i zavírání dveří. Dveře mají dva motory, každý buď pro otevírání (výstup MOPEN) nebo zavírání (výstup MCLOSE). Pro hlídání úplného otevření i zavření dveří jsou dveře vybaveny koncovými dorazy s čidly OPEND (úplné otevření) a CLOSED (úplné zavření). Pro případy selhání je automatika vybavena centrálním vypínačem STOP pro zastavení obou motorů dveří. Použité komponenty - LOGO! BA03 Vstupy - čidlo pohybu MOVE (simulováno spínačem) - dorazy dveří OPEND a CLOSED (simulace spínači) - centrální vypínač STOP Výstupy - řízení motorů dveří MOPEN a MCLOSE Pracovní postup při řešení 1/ určete počet vstupů a výstupů pro PLC, rozhodněte, které vstupy jsou akční (řídící) a které stavové a jejich základní logiku (pozitivní x negativní): Řešení: 2 vstup akční (MOVE, STOP) v pozitivní logice, 2 vstupy stavové (OPEND, CLOSED) v negativní logice a 2 výstupy (MOPEN, MCLOSE) v pozitivní logice Datum: 2.1.2011 Průprava 1/ Obor V2.x strana 1/ ze 5
2/ zakreslete do IDE tyto vstupy a výstupy, příslušně si je symbolicky označte (stavové vstupy budou mít před symbolem lomítko ; např. /OPEND) a rozhodněte, co bude základním funkčním blokem automatiky: Řešení: vzhledem k tomu, že z funkce automatiky dveří vyplývá, že motory dveří mají běžet vždy do okrajových poloh (zavřít nebo otevřít), musí být někde tento stav zapamatován. Z toho tedy plyne, že musí být použit blok s paměťovou funkcí. Pro náš případ tedy zvolíme Samodržné relé (RS obvod). 3/ zakreslíme do IDE tedy dva RS obvody (pro každý výstup). Dále musíme vyřešit vygenerování signálu notmove, který bude představovat signál pro spouštění zavírání dveří. Protože tento signál je časově závislý na vstupu MOVE, budeme jej řešit časovou funkcí. Řešení: Zakreslíme si závislost průběhu vstupního signálu na čase a podle něj zakreslíme požadovaný průběh výstupu z tohoto obvodu na čase, který bude představovat signál notmove. Vstup MOVE Výstup notmove 0 -> t 0 2sec -> t Protože z časového diagramu vyplývá, že časování nastává na sestupné hraně signálu MOVE (přechod z log1 do log0), musíme použít signal negovaný, který bude spouštět funkční blok zpožděné zapnutí. 4/ zakreslíme do IDE tedy obvod NOT a blok zpožděné zapnutí, u něhož nastavíme čas 2sec. Jeho výstup bude představovat náš signál notmove. Dále musíme vyřešit vnitřní funkční logiku, která je závislá na okamžitém stavu vstupů a nebo předcházejících stavech výstupů: Řešení: funkční logika, která je závislá pouze na okamžitých stavech vstupů nebo výstupů, je řešena pomocí pravdivostních tabulek a následnou minimalizací převedena na logické funkce automatiky. Proto si vytvoříme a doplníme konkrétní Datum: 2.1.2011 Průprava 1/ Obor V2.x strana 2/ ze 5
pravdivostní tabulku pro vstupy MOVE, notmove, /OPEND a /CLOSED a výstupy řídící vstupy S (sopen a sclose) u RS obvodů (spouští motory) vstupy výstupy notmove MOVE /OPEND /CLOSED sopen sclose Komentář 0 1 0 0 0 0 Chyby ve stavových signálech, proto motory nespouštět! 0 1 0 1 0 0 Dveře již otevřeny, proto motory již neotvírat! 0 1 1 0 1 0 Dveře zavřeny, proto otevírat dveře po pohybu 0 1 1 1 1 0 Dveře sice již pootevřeny, ale ještě ne úplně, proto otevírat 1 0 0 0 0 0 Chyby ve stavových signálech, proto motory nespouštět! 1 0 0 1 0 1 Dveře otevřeny, proto motory zavírat po odeznění pohybu 1 0 1 0 0 0 Dveře zavřeny, proto motory nezavírat! 1 0 1 1 0 1 Dveře sice ještě pootevřeny, proto ještě zavírat Je zřejmý chybový stav stavových čidel, která nemohou současně indikovat stav otevření i uzavření dveří! Po analýze tabulky je zřejmé, že budou platit následující logické funkce: sopen = MOVE AND /OPEND a sclose = notmove AND /CLOSE. 5/ zakreslíme do IDE tedy dva AND obvody (pro každý S vstup). Dále musíme vyřešit vypínání motorů dveří tak, aby se vždy vypnuly při dosažení dorazových hodnot. Budeme řešit opět pravdivostní tabulkou, a to obdobně, jako u spouštění motorů. Řešení: Proto si vytvoříme a doplníme konkrétní pravdivostní tabulku pro vstupy MOVE, signál notmove, /OPEND a /CLOSED a výstupy řídící vstupy R (ropen a rclose) u RS obvodů (zastaví motory otevírání nebo zavírání dveří). vstupy výstupy notmove MOVE /OPEND /CLOSED ropen rclose Komentář 0 1 0 0 1 0 Chyby ve stavových signálech, proto motory zastavit! 0 1 0 1 1 0 Dveře již otevřeny, proto motory zastavit! 0 1 1 0 0 0 Dveře dosud neotevřeny 0 1 1 1 0 0 Dveře dosud neotevřeny 1 0 0 0 0 1 Chyby ve stavových signálech, proto motory zastavit! 1 0 0 1 0 0 Dveře dosud nezavřeny, 1 0 1 0 0 1 Dveře zavřeny, proto motory zastavit! 1 0 1 1 0 0 Dveře dosud nezavřeny, Datum: 2.1.2011 Průprava 1/ Obor V2.x strana 3/ ze 5
Po analýze tabulky je zřejmé, že budou platit následující logické funkce: ropen = NOT (notmove OR /OPEND) a rclose = NOT (MOVE OR /CLOSED). 6/ zakreslíme do IDE tedy obvody NOR a napojíme na vstupy R u RS obvodů. Nyní musíme dořešit připojení centrálního signálu STOP. Řešení: Z povahy jeho funkce je evidentní, že by měl okamžitě zastavit všechny motory. Bude tedy muset řídit vstupy R u RS obvodů, což lze jednoduše vyřešit. 7/ zakreslíme do IDE tedy obvody OR a napojíme na vstupy R u RS obvodů. Nyní musíme ošetřit okrajové funkční podmínky, a to zejména splnění podmínky okamžitého otevírání dveří po detekci pohybu i během zavírání dveří, úplné otevření dveří i po odeznění signálu pohybu a také zabránit současnému sepnutí motorů (MOPEN a MCLOSE). Řešení: Protože lze simulací ověřit, že pokud dveře ještě nebyly úplně zavřeny a byl detekován pohyb, rozběhl se i motor MOPEN. Bylo nutné tedy zapracovat vypnutí motoru do vstupu R (rclose). Další problém nastal v případě, kdy ještě nebyly dveře úplně otevřeny. Bylo nutné nakonec vyloučit z podmínky otevírání dveří signál notmove (ropen = NOT (notmove OR /OPEND)) a zavést vstup /OPEND přímo do vstupu R (ropen). Na posledním obrázku je vidět celkové schema finálního řešení, kde je spuštěna i počáteční simulace, kdy jsou dveře zavřeny. Zelené šipky ukazují na řešení těchto popisovaných okrajových podmínek. Datum: 2.1.2011 Průprava 1/ Obor V2.x strana 4/ ze 5
Finální řešení (simulace výchozí, dveře jsou zavřeny a není detekován pohyb) Datum: 2.1.2011 Průprava 1/ Obor V2.x strana 5/ ze 5