Článek ve formátu PDF je možné stáhnout
zde.
Seriál o programování PLC, jehož předchozí díl vyšel v Automě č. 11/2012 na str. 46, pokračuje řešením sekvenčních úloh časového typu. Jsou zde rovněž popsány standardní funkční bloky čítačů – CTU (čítání nahoru), CTD (čítání dolů) a CTUD (obousměrné čítání). Další pokračování budou zaměřena na řešení komplexnějších sekvenčních úloh.
Příklad 17: Zklidnění svítidla
Je praktické, když je prostor před vchodem do bytu ze schodiště osvětlen svítidlem, které je ovládáno senzorem PIR. Podobně je účelné ovládat senzorem PIR osvětlení u branky nebo u vchodu do domu z chodníku. Senzor PIR však reaguje na každého kolemjdoucího, což je zdrojem zbytečné spotřeby a navíc to rušivě působí na náhodné chodce, obvykle i na obyvatele bytu. V tomto příkladu je požadováno „zklidnit“ osvětlení tak, aby se aktivovalo až po určité době (např. po 30 s) sepnutí kontaktu senzoru. Tím ignoruje náhodné chodce nebo psy a rozsvítí se až při delší přítomnosti osoby, která se pravděpodobně chystá kontaktovat obyvatele (čte nápis u tlačítka zvonku, zvoní, mluví s obyvatelem).
Řešení: Úlohu řeší časovač TON v obvodu 0019 na obr. 35 (Automa č. 11/2012 na str. 46). Výstup časovače (a tedy i osvětlení) je oproti vstupu zpožděn o zadanou dobu předvolby a současně potlačuje impulzy kratší, než je zadaná předvolba – funguje jako časový filtr.
Příklad 18: Prodloužené větrání
Je požadováno, aby se ventilátor spustil současně s příchodem osoby na WC a vypnul se až po uplynutí nastavené doby po odchodu osoby (např. po 3 min). Při jiné alternativě zadání je možné odvodit aktivitu ventilátoru od aktivity svítidla (ovládaného tlačítkem, senzorem PIR nebo vygenerovaným impulzem).
Řešení: Úlohu řeší časovač TOF. Je zapojen obdobně jako časovače TP a TON v obvodu 0018 a 0019 na obr. 35, pouze s tím rozdílem, že na vstup PT je připojena konstanta, která odpovídá nastavené časové předvolbě (zde např. T#3m, popř. T#180s), a na vstup IN je připojena proměnná, kterou je časovač ventilátoru ovládán (odpovídající přítomnosti osoby, aktivitě svítidla nebo paměti tlačítka ventilátoru). Časovat TOF tedy prodlouží aktivitu ventilátoru (svítidla či jiného spotřebiče) o určenou dobu po skončení požadavku na jeho aktivitu. Kdyby během této prodloužené aktivity přišel nový požadavek na zapnutí, bude spotřebič opětně a bez prodlevy aktivován.
Příklad 19: Odložené větrání
Zadání příkladu 18 nemusí každému vyhovovat, protože během setrvání ve větrané místnosti může být hluk ventilátoru rušivý. Nyní je tedy požadováno aktivovat ventilátor na zadanou dobu, ale až po zhasnutí nebo po opuštění místnosti.
Řešení: Úlohu řeší časovač TP, aktivovaný zhasnutím svítidla nebo se skončením vyhodnocení přítomnosti – se spádovou hranou aktivační proměnné nebo rovnocenně s náběžnou hranou negace aktivační proměnné.
Příklad 20: Potlačení krátkodobých požadavků
Nové nebo rekonstruované domy bývají vybavovány žaluziemi (popř. roletami, markýzami, střešními okny apod.) s automatickým ovládáním. Ne vždy však lze automatické ovládání označit jako „chytré“ a obyvatelé nemají důvod ke spokojenosti. Například žaluzie bývají často ovládány senzorem oslunění. Při dostatečné intenzitě oslunění jsou spuštěny a naopak při slabé aktivitě jsou vytaženy zpět. Při oblačném počasí, obzvláště je-li obloha pokryta „beránky“, je možné být svědky přehnané až chaotické aktivity žaluzií. Úkolem je žaluzie uklidnit – se spuštěním začít až tehdy, kdy oslunění trvá dostatečně dlouho, a naopak návrat zpět aktivovat až po dostatečné době slabé intenzity oslunění.
Řešení: Úlohu lze řešit obdobně jako v příkladech 17 a 18 – v horní poloze žaluzií využít časovač TON k „vyfiltrování“ krátkých časových úseků oslunění a v dolní poloze využít časovač TOF k potlačení krátkodobých intervalů zastínění.
Podobně lze uklidnit aktivitu markýz, oken (obzvláště střešních) nebo vnějších žaluzií, které reagují na déšť. Nemá smysl je aktivovat s prvními kapkami, které mnohdy ani nesignalizují začínající déšť. Například u žaluzií na oknech a dveřích, které vedou na zahradu či terasu, může „falešnou aktivitu“ způsobit zalévání, děti v bazénu nebo ve sprše.
Úloha 52: Chytřejším řešením by bylo, kdyby filtrace v čase byla řešena s využitím střední hodnoty, vypočítávané za „přiměřeně dlouhý“ interval od současnosti do minulosti (klouzavý průměr). Navrhněte způsob výpočtu.
Řízení automatických dveří do veřejných prostorů je obdobným problémem. Je třeba „rozumně“ reagovat na blízkost osob z obou stran dveří. Časovou filtraci povelu pro otevření obvykle nelze použít nebo je nutné ji řešit „velmi opatrně“, aby se dveře vždy otevřely včas před příchozím a nehrozila kolize. Pro stanovení povelu k zavření existuje více možností postupu. Často lze být svědky situace, kdy se dveře okamžitě zavírají za každým průchozím (s nevelkou prodlevou – patrně je použita časová filtrace na principu TOF). Při malé četnosti chodců nelze proti postupu nic namítat. Výhrady nelze mít ani v situaci dostatečně velké četnosti průchodů, kdy dveře zůstávají trvale otevřené. Při určité střední četnosti průchodů často nastává situace, kdy se dveře nepřetržitě otvírají a zavírají – často se začínají otevírat dříve, než se zcela zavřou.
Úloha 53: Odhadněte množství energie zbytečně spotřebované na takovou chaotickou aktivitu automatických dveří (obzvláště velkých dveří do obchodů, pasáží obchodních center apod.).
Úloha 54: Navrhněte „chytřejší“ způsob řízení automatických dveří, který by potlačil nebo alespoň omezil tento chaotický a energeticky nevýhodný stav.
Poznámka: Doposud šlo jen o stanovení okamžiků začátků aktivity elektromechanických zařízení (spuštění a vytažení žaluzií či markýz, otevření či zavření oken, dveří nebo vrat), a nebylo řešeno komplexní ovládání průběhu jejich aktivity. Je to podstatně složitější problém než v předchozích příkladech. Úlohy podobného typu budou probrány později, v souvislosti s výkladem systematického řešení sekvenčních logických úloh.
Příklad 21: Krátký a dlouhý stisk
Je požadováno ovládat svítidlo (nebo ventilátor či jiný spotřebič) tak, že při krátkém stisku (např. do 2,5 s) svítí po dobu 2,5 min a pak automaticky zhasne. Jestliže je tlačítko tisknuto déle (např. přes 2,5 s), svítidlo se aktivuje trvale. Při požadavku na zhasnutí je pak ale nutné použít zvláštní postup, např. stisknout dolní polohu tlačítka – provést Reset.
Řešení: Úlohu lze řešit programem na obr. 35 (obvody 0020 až 0022), který byl umístěn v předchozím pokračování seriálu v č. 11 na str. 46. V obvodu 0020 je s počátkem stisku tlačítka tlac_h aktivován časovač TP s dobou předvolby 2,5 min (#T2m30s), jehož stav se uloží na výstup svit_9. Obvod 0021 obsahuje časovač TON s dobou předvolby 2,5 s (#T2.5s). Je-li tlačítko tlac_h tisknuto déle, je trvale nastaven (cívkou S) stejný výstup svit_9. Zhasnutí trvale svítícího svítidla je zde řešeno resetem paměťové funkce stiskem tlačítka tlac_d, které se však uplatní až po 2,5 min od rozsvícení (po skončení časování TP z obvodu 0020).
Úloha 55: Úlohu z příkladu 21 zobecněte pro dvě a více ovládacích míst, např. pro osvětlení chodby nebo schodiště.
Úloha 56: Upravme zadání předchozí úlohy tak, aby při delším stisku tlačítka svítidlo nesvítilo nekonečně dlouho (do nejbližšího resetu), ale jen po dostatečně dlouhou dobu.
Funkční bloky čítačů
Dříve, než bude další text věnován řešení složitějších sekvenčních logických funkcí, popišme tři typy standardních funkčních bloků čítačů.
Čítač CTU, čítání nahoru, dopředný čítač
Funkční blok čítače CTU (Counter UP) je ovládán dvěma vstupy pro dvouhodnotové proměnné typu BOOL (CU – vstup pro čítání nahoru a R – resetovací vstup), popř. číselným vstupem PV pro celočíselnou proměnnou typu INT ve významu číselné předvolby stavu časovače. Poskytuje jeden výstup dvouhodnotové proměnné Q (s informací o dosažení zadané předvolby) a jeden číselný výstup CV (typu INT) pro předání číselné hodnoty čítače. S každou náběžnou hranou na vstupu CU se o jedničku zvětší hodnota čítače (provede se čítání nahoru), která je předávána výstupem CV. Jestliže stav čítače dosáhne hodnoty předvolby, je výstup Q nastaven na jedničkovou hodnotu (TRUE); do té doby byl nulový (na hodnotě FALSE). Vstup R se uplatňuje přednostně – jeho pravdivá hodnota (TRUE) má za následek reset časovače (vynulování načítané hodnoty), výstupů CV a Q a po celou dobu trvání jedničkové hodnoty na vstupu R je činnost čítače blokována – udržována ve stavu reset. Při nulové hodnotě na vstupu R je činnost časovače uvolněna. Příklad časového průběhu proměnných časovače CTU je ukázán na obr. 39.
Čítač CTD, čítání dolů, zpětný čítač
Funkční blok čítače CTD (Counter CTD, Counter Down) je rovněž ovládán dvěma vstupy pro dvouhodnotové proměnné typu BOOL (CD – vstup pro čítání dolů a LD – vstup pro nastavení předvolby) a číselným vstupem PV pro celočíselnou proměnnou typu INT ve významu číselné předvolby stavu časovače. Poskytuje jeden výstup dvouhodnotové proměnné Q typu BOOL (s informací o dosažení nulové hodnoty) a jeden číselný výstup CV (typu INT) pro předání číselné hodnoty čítače. S každou náběžnou hranou na vstupu CD se o jedničku zmenší hodnota stavu čítače, jestliže byla nenulová (provede se čítání dolů), která je předávána výstupem CV. Dosáhne-li stav čítače nulové hodnoty, je výstup Q nastaven na jedničku (TRUE); do té doby byl nulový (na hodnotě FALSE). Vstup LD se uplatňuje přednostně – jeho pravdivá hodnota (TRUE) má za následek nastavení (set) časovače – přepsání dosavadní hodnoty časovače spolu s výstupem CV na hodnotu předvolby a vynulování Q. Po celou dobu trvání jedničkové hodnoty na vstupu LD je činnost čítače blokována – udržována ve stavu set. Při nulové hodnotě na vstupu LD je činnost časovače uvolněna. Vstup LD lze považovat za analogii vstupu R pro čítač dolů. Je užitečné si uvědomit odlišnosti obou typů časovačů – čítač CTU po resetu (po vynulování proměnné R) čítá nahoru od nulové hodnoty až k hodnotě předvolby, zatímco čítač CTD po nastavení (po vynulování proměnné LD) čítá od nastavené hodnoty předvolby dolů k nule. Příklad časového průběhu proměnných časovače CTD je zobrazen na obr. 40.
Čítač CTUD, obousměrné čítání, reverzibilní čítač
Funkční blok čítače CTUD (Counter CTU – CTD) je kombinací obou předchozích typů čítačů. Je ovládán čtyřmi vstupy pro dvouhodnotové proměnné typu BOOL (CU – vstup pro čítání nahoru, CD – vstup pro čítání dolů, R – resetovací vstup a LD – vstup pro nastavení předvolby) a číselným vstupem PV pro celočíselnou proměnnou typu INT ve významu číselné předvolby stavu časovače. Poskytuje dva výstupy dvouhodnotové proměnné typu BOOL (QU – s informací o dosažení předvolené hodnoty a QD – s informací o dosažení nulové hodnoty) a jeden číselný výstup CV (typu INT) pro předání číselné hodnoty čítače. S každou náběžnou hranou na vstupu CU se o jedničku zvětší hodnota stavu čítače (provede se čítání nahoru), s každou náběžnou hranou na vstupu CD se hodnota časovače o jedničku zmenší (jestliže byla nenulová) – provede se čítání dolů. Když stav čítače dosáhne hodnoty předvolby, je výstup QU nastaven na jedničku, dosáhne-li stav čítače nulové hodnoty, je na jedničku nastaven výstup QD. Vstupy R a LD se uplatňují přednostně – pravdivá hodnota R má za následek reset čítače, proměnná LD provede nastavení čítače. Po celou dobu trvání jedničkové hodnoty na vstupu R nebo LD je činnost čítače blokována – udržována ve stavu reset nebo set. Při nulových hodnotách na vstupech R a LD je činnost časovače uvolněna. Příklad časového průběhu proměnných časovače CTUD je na obr. 41.
Oprava: V textu minulé části seriálu (Automa č. 11/2011 na str. 47) bylo pod obr. 38 omylem uvedeno pojmenování časovače TON – správně má být TOF
Ladislav Šmejkal
Obr. 39. Příklad časových průběhů funkčního bloku čítače CTU (čítání nahoru) pro hodnotu předvolby PV = 4
Obr. 40. Příklad časových průběhů funkčního bloku čítače CTD (čítání dolů) pro hodnotu předvolby PV = 4
Obr. 41. Příklad časových průběhů funkčního bloku čítače CTUD (obousměrné čítání) pro hodnotu předvolby PV = 4