Častokrát nám jednoduché příkazy pro plnohodnotné řízení žaluzií stačit nebudou. V této části si ukážeme komplexnější řízení žaluzií pomocí univerzálních nastavitelných bloků, které provádí sekvence příkazů. Uveďme si jednoduchý příklad: potřebujeme, aby při nějaké splněné podmínce – ať už v časovém programu TPG, nebo při překlopení komparátoru v určité hodnotě osvitu fasády – žaluzie sjely na požadovanou pozici a provedly určitý počet naklopení pro žádané zastínění. V následující kapitole se seznámíme postupně se všemi bloky této sekvence.
Pozn.: Nejprve se prosím seznamte s projektem v prvním díle.
Při použití časového programu je třeba před jeho použitím upravit výstupní signál pomocí bloku Sched2_MW240. Ten obsahuje dva monostabilní klopné obvody, které na výstupu vygenerují 0,5 s dlouhý pulz. Výstup PulseON_OUT vygeneruje pulz při náběžné hraně TPG, naopak výstup PulseOFF_OUT vygeneruje pulz při sestupné hraně TPG. Prakticky se tedy akce provádí pouze při změně stavu TPG. Pokud v průběhu vykonávání bude příkaz přerušen jiným příkazem, ať už z PLC, nebo místně, „vyhraje“ ten poslední. Program už se o znovu vykonání žádaného příkazu z TPG nepokusí. Další šance nastane až při následující změně stavu TPG.
Pozor! Při návrhu programu je třeba vyloučit stavy, kdy více požadavků přistupuje k jedné žaluzii ve stejnou chvíli. Může docházet k hazardním stavům.
Pro jednoduché sloučení booleovských požadavků použijeme blok logický OR. Pro slučování požadavků na přejezd na žádanou hodnotu (usint) použijeme vytvořený blok int_OR_mw240. Ten překopíruje tu hodnotu vstupu, jehož hodnota je odlišná než v minulém cyklu PLC a zobrazí ji na výstupu. Pro vstup In1_noCalibr platí výjimka: pokud se mění hodnota na 0, nepřekopíruje se na výstup. Tento vstup používejte výhradně pro připojení výstupu z bloku Seq_move_and_tilt_MW240. Nevyužité vstupy skryjte ve vlastnostech bloku.
Jako poslední si představíme blok Seq_move_and_tilt_MW240. Ten obsahuje sekvenci příkazů pro přejezd na žádanou pozici a následně počet naklopení žaluzií, tedy úroveň zastínění. Náběžnou hranou vstupu StartSeq_IN spouštíme sekvenci. Na vstup actual_position přivedeme proměnnou z datového bodu, která je navázaná na reg. 16 LSB modulu MW240-B. Pomocí ní se dozvíme, zda už jsme na správné pozici a můžeme tedy zahájit naklápění. Na vstupech ReqNumberOfTilts a RequiredPosition_IN nastavíme konstanty počtu naklopení a žádanou pozici. Následně je skryjeme ve vlastnostech bloku.
Pokud by v průběhu sekvence došlo k jejímu přerušení, ať už místně tlačítky, nebo jiným příkazem a žaluzie nedorazily na žádanou pozici do 120 s, nedojde k naklápění a nedokončená sekvence bude ukončena.