V této části seriálu pokračuje řešení sekvenčních úloh časového typu tentokrát složitějších, včetně úloh rozpoznání sekvencí tlačítek – krátkého a dlouhého stisku, jednoduchého a dvojitého stisku. Zadané problémy jsou zde stále řešeny intuitivními postupy. Systematické postupy s využitím teorie konečných automatů budou uvedeny v příštím pokračování.
Příklad 22: Generování impulzu s časovačem TON
Doposud byl ke generování impulzů zadané délky v tomto seriálu využíván funkční blok impulzního časovače TP. Ten generuje impulz zadané délky, která je určena pouze číselným údajem časové předvolby na vstupu časovače (PT) a nezávisí na hodnotě dvouhodnotové vstupní proměnné (IN) – dobu trvání generovaného impulzu nelze ani zkrátit ani prodloužit. Impulz zadané délky lze generovat i s využitím časovače TON, popř. TOF. Požadujme např. impulz délky 2 min.
Řešení: Řešení s využitím časovače TON je uvedeno na obr. 42 (obvody 0001 a 0002). Proměnné in_x a out_y jsou blíže neurčené proměnné „jakéhosi technologického procesu“. Výstupní impulz je zde určen jako logický součin:
imp := in_x AND NOT out_y
Součin je jedničkový, jestliže je vstupní proměnná in_x jedničková po dobu, kdy je výstupní proměnná out_y nulová (časovač ještě „nedočasoval“). Uvedené řešení není rovnocenné s tím, co poskytuje časovač TP, ale někdy může být využito jako užitečná alternativa. Je-li proměnná in_x jedničková po dobu kratší, než je zadaná doba impulzu, bude i generovaný impulz zkrácen na dobu trvání vstupního impulzu. Řešení propouští na výstup i krátké impulzy vstupní proměnné.
Úloha 57: Řešte zadaný problém s využitím časovače TOF.
Příklad 23: Generování impulzu od tlačítka s časovačem TON
Nyní je požadováno řešit generování impulzu komplexněji – odvodit jej od mžikového tlačítka v inteligentní elektroinstalaci, např. s požadovanou dobou osvětlení 3,5 min.
Řešení 1: Jedna z alternativ řešení je uvedena na obr. 43. Stisk tlačítka tl_1 se v čase prodlouží zápisem instrukcí SET do pomocné proměnné trv_1 (obvod 0001). Obdobně jako v předchozím příkladu je vygenerován impulz imp_1 pro aktivaci svítidla (obvod 0002). Ještě je nutné se postarat o vynulování proměnné trv_1. Bylo by možné k tomu využít zvláštní vstup, např. kontakt dolní polohy mžikového vypínače tl1_d (obvod 0003). Jednodušší je proměnnou trv_1 vynulovat se sestupnou hranou impulzu imp_1 (obvod 0004).
Řešení 2: Jednodušší alternativu řešení představuje program s obvody 0005 a 0006 na obr. 43. Kontakt tlačítka tl_2 je opět v čase prodloužen nastavením (SET) proměnné svit, která je vynulována (resetována) jedničkovým výstupem časovače TON. Proměnná svit má charakter impulzu od stisku tlačítka do konce časování časovače TON – trvá po dobu zadané předvolby časovače TON. Může tedy být využita jako výstupní proměnné pro ovládání svítidla.
Příklad 24: Generování přerušitelného impulzu
Může se stát, že doba trvání impulzu pro osvětlení je nastavena s rezervou pro nejhorší případ, a v obvyklých situacích stačí doba podstatně kratší. Požadujme tedy možnost impulz zkrátit.
Řešení 1: V situaci, kdy jsou k dispozici kontakty od obou poloh mžikového tlačítka, lze použít program obdobný řešení 2 předchozího příkladu (obr. 44, obvody 0001, 0002) doplněný o obvod 0003, kde je kontakt dolní polohy tlačítka tl3_d využit pro vynulování (reset) výstupní proměnné svit_1.
Řešení 2: Jestliže je k dispozici pouze jeden kontakt mžikového tlačítka, lze aktivitu svítidla přerušit opakovaným stiskem tlačítka – program je na obr. 44. Nejprve je na výstupní proměnné svit realizován paměťový obvod typu T (viz postup z obr. 31, obvod 0011 ve vydání Automa 10/2012 na str. 38). Řešením je obvod 0004 na obr. 44. Postupem z předchozích příkladů je jedničkový stav proměnné svit_2 zkrácen na dobu nastavené předvolby časovače TON. Při požadavku na přerušení aktivity svítidla je opětovným stiskem tlačítka tl_4 vynulována proměnná svit_2, a tím je přerušena i aktivita svítidla. Opakovaného rozsvícení se dosáhne dalším stiskem tlačítka tl_4.
Příklad 25: Generování prodloužitelného impulzu
Obvyklá je situace, kdy člověk vstupuje do již osvětleného prostoru (místnosti, schodiště nebo chodby) a je pravděpodobné, že doba impulzu pro ovládání osvětlení brzy uplyne, a je potřebné impulz prodloužit, aby byl jeho čas měřen od počátku. Obdobně může být zapotřebí např. prodloužit dobu aktivity ventilátoru.
Řešení: Odpovídající program je uveden na obr. 44 (obvody 0006 až 0007). Od řešení 2 příkladu 24 se liší jen zařazením rozpínacího kontaktu tlačítka tl_5 do série s kontaktem proměnné svit_3 před vstup časovače TON. Při opětném stisku tlačítka je časování přerušeno a po uvolnění tlačítka začíná opět od začátku. Po dobu držení tlačítka časování neprobíhá, což není na závadu, protože tlačítko bývá tisknuto krátce.
Úloha 58: Zobecněte řešení příkladů 23 až 25 pro případ ovládání ze dvou nebo více míst (např. pro ovládání schodiště nebo chodby).
Úloha 59: Do řešení příkladu 21 ve 12. části seriálu ve vydání Automa 11/2012 na str. 46 (obvody 20 až 22 na obr. 35) se vloudila chyba – odhalte její podstatu, analyzujte chování chybného programu a navrhněte správné řešení.
Příklad 26: Rozlišení krátkého a dlouhého stisku tlačítka
Vraťme se znovu k zadání příkladu 21. Je požadováno, aby okamžitě po stisku mžikového tlačítka do horní polohy (kontakt tl_6) se aktivovalo svítidlo ovládané proměnnou svit_4. Jestliže stisk trvá krátce (např. do 2 s), je svítidlo ovládáno impulzem trvajícím 2,5 min. Při delším stisku se svítidlo rozsvítí trvale – až do nejbližšího vynulování – např. stisku dolní polohy mžikového tlačítka (kontakt tl_5d).
Řešení 1: Zadání odpovídá program na obr. 45 (obvody 0001 až 0003). Je-li kontakt tl_6 sepnut déle než 2,5 s, aktivuje se výstup časovače TON a nastaví pomocnou proměnnou dlouho. Její pravdivostní hodnota se logicky sčítá s výstupem časovače TP, který je aktivován stiskem tlačítka tl_6. Výstupní proměnná svit _4 ovládá svítidlo. Proměnná dlouho se nuluje (resetuje) s proměnnou tl_6d.
Řešení 2: Kdyby bylo požadováno využívat k ovládání pouze jediný kontakt tlačítka tl_6, lze nulování (reset) proměnné řešit podle obvodu 0004 na obr. 45 – bude-li po dobu trvání proměnné dlouho stisknuto tlačítko tl_6, provede se vynulování proměnné dlouho.
Příklad 27: Impulzy od krátkého a dlouhého stisku tlačítka
Je požadováno modifikovat zadání příkladu 26 tak, aby při držení tlačítka tl_7 déle než 2 s bylo svítidlo ovládáno impulzem v trvání 5 min.
Řešení: Zadání odpovídá program na obr. 45 (obvody 0005 až 0006). Jestliže je kontakt tl_7 sepnut déle než 2 s, výstup časovače TON aktivuje časovač TP s dobou předvolby 4 min 58 s (5 min zkrácených o 2 s). Jeho výstup se logicky sčítá s výstupem časovače TP s předvolbou 2 min 30 s (je aktivován stiskem tlačítka tl_7). Tak se vytváří proměnná svit_5.
Příklad 28: Jednoduchý a opakovaný stisk
Je požadováno rozlišit jednoduchý stisk tlačítka tl_8, při kterém se svítidlo rozsvítí na 3,5 min, a opakovaný stisk téhož tlačítka, po kterém se svítidlo rozsvítí natrvalo (do nejbližšího resetu).
Řešení: Zadání odpovídá program na obr. 46 (obvody 0001 až 0004). Se stiskem kontaktu tl_8 se aktivuje časovač TP s časovou předvolbou 3,5 min, což je doba aktivity svítidla (ovládaného proměnnou svit_6, obvod 0003). Je-li během této doby opakovaně stisknut stejný kontakt (je vyhodnocena náběžná hrana kontaktu tl_8), je generována proměnná podruhé, která se logicky přičítá k proměnné svit_6 – viz obvod 0002. Proměnnou podruhé lze vynulovat kontaktem dolní polohy mžikového tlačítka tl_8d (je-li k dispozici nebo je-li to žádoucí). Jestliže je žádoucí ovládání jediným kontaktem, je k resetu proměnné podruhé potřebné vyhodnotit třetí stisk tlačítka tl_8 (obvod 0001).
Příklad 29: Jednoduchý a dvojitý stisk
Zadání předchozího příkladu předpokládá, že k opakovanému stisku může dojít kdykoliv v průběhu aktivity časovače TP s předvolbou 3,5 minut. To může být někdy příliš „volný“ požadavek. Zvolme nyní „přísnější zadání“ a požadujme, aby ke druhému stisku došlo v intervalu 2,5 s po prvním, jinak nebude druhý stisk akceptován.
Řešení: Zadání odpovídá program na obr. 47 (obvody 0001 až 0005). Se stiskem kontaktu tl_9 se aktivuje časovač TP s časovou předvolbou 3,5 min, což je doba aktivity svítidla (ovládané proměnnou svit_7 – obvod 0003) odpovídající jednoduchému stisku tl_9. Současně je aktivován časovač TP, který generuje impulz v délce 2,5 s. Za podmínky, že je během této doby opakovaně stisknut stejný kontakt (je vyhodnocena náběžná hrana kontaktu tl_9, tedy obvod 0002), je generována proměnná podruhe_1, která se logicky přičítá k proměnné svit_7. Proměnnou podruhé_1 lze vynulovat kontaktem dolní polohy mžikového tlačítka tl_9d (je-li k dispozici nebo je-li to žádoucí). Jestliže je žádoucí ovládání jediným kontaktem, je k resetu proměnné podruhé_1 potřebné vyhodnotit třetí stisk tlačítka tl_9 (viz obvod 0001).
Úloha 60: Řešte modifikovaná zadání příkladů 28 a 29 tak, že při vyhodnocení dvojitého stisku bude vygenerován impulz délky 7 min.
Úloha 61: V řešení příkladů 28 a 29 (na obr. 46 a obr. 47) jsou jednotlivé obvody zdánlivě „nelogicky“ uspořádány. Například proměnná interval je generována obvodem 0004, ale je použita již v obvodu 0002 ke generování proměnné podruhé_1, která je použita již v obvodu 0001 – obvody jsou řazeny v protisměru k pořadí vytvářených proměnných. Je to v pořádku? Nebylo by lepší obvody uspořádat v pořadí, v jakém se proměnné vytvářejí?
Poznámka: V příkladech 26 až 29 bylo použito zjednodušené zadání příkladů a úloh, kdy aktivity vyvolané krátkým nebo dlouhým stiskem tlačítka nebo jednoduchým či opakovaným stiskem jsou stejné. Vždy jde o aktivaci téhož svítidla (nebo jiného spotřebiče), odlišná je jenom doba trvání aktivity. Za tohoto předpokladu může být odezva okamžitá, bezprostředně po stisku tlačítka. Složitější by byla situace, kdy by byla požadována odlišná aktivita po krátkém a dlouhém stisku nebo po jednoduchém či opakovaném stisku. Pak by bylo nutné čekat se začátkem aktivit až po vyhodnocení sekvence tlačítek.
Ladislav Šmejkal
Obr. 42. Impulz generovaný časovačem TON (k příkladu 22)
Obr. 43. Generování impulzů od tlačítek (k příkladu 23)
Obr. 44. Generování přerušitelných a prodloužitelných impulzů (k příkladům 24 a 25)
Obr. 45. Rozlišení krátkého a dlouhého stisku (k příkladům 26 a 27)
Obr. 46. Rozlišení jednoduchého a dvojitého stisku (k příkladu 28)
Obr. 47. Rozlišení jednoduchého a dvojitého stisku (k příkladu 29)