M221 – budujeme chytrou domácnost, 2. díl

V minulém díle jsme si ukázali práci s kontakty a jednoduché logické podmínky. Teď si ukážeme adresaci proměnných a vyzkoušíme práci s časovači TON, TOF a složitější podmínky.

Proměnné dělíme na bity a slova. Bit má pouze 2 stavy a to 0/1 (vypnuto/zapnuto). V programovacím prostředí začínají znakem %Mx (za x dosadíme adresu od 0 do 511). Paměťová slova dělíme na více typů, podle datového typu proměnné.
Pro integer je znak %MWx (za x 0 – 1999), do proměnné lze uložit celé číslo v rozsahu -32768 do 32767.
Pro hodnotu datového typu float používáme znak %MFx (za x 0 – 1998), do proměnné lze uložit desetinné číslo. Na rozdíl od předešlého integeru zabírá datový formát float 2 proměnné. Je nutné s tím počítat a i tak adresovat (pro příklad %MF10, %MF12, MF14, …). Rozdělení do dvou proměnných je tak, že číslo před desetinnou čárkou je v první proměnné a číslo za desetinnou čárkou je v proměnné druhé.
Poslední znak %MDx  (za x 0 – 1998) se používá pro datový typ double integer, lze tak do něj uložit číslo od -2147483648 do 2147483647.
Následně je nutné dodržet správnost adresování, aby nedocházelo k tzv. přepisování adres. Není možné použít proměnnou %MW100 a %MF100 zároveň. Z praxe si určím rozsah adresy, které k danému typu používám (např. %MW0-299, %MF300-798, …), pak má člověk jistotu, že v budoucnu nedojde k problému. Všechny číselné proměnné se dají zapisovat do „Operačního bloku“.

datový typ

Časovač TON je „zpožděné sepnutí“, výstup je sepnut až po nastavené době od přivedení napájení do vstupu. Časovač TOF je „zpožděné vypnutí“, výstup je sepnut zároveň se vstupem, ale po ztrátě napětí na vstupu je výstup aktivní po nastavenou dobu. Jednoduše lze říci, že TON lze použít na fukci tlačítka, které je nutno držet určitý čas, než provede instrukci. TOF lze zase použít například ke zpožděnému vypnutí osvětlení na schodišti. Pomocí těchto časovačů lze vytvořit i funkci „časového relé“.
Časovače používají adresy se znakem %TMx a lze použít až 255 časovačů (tedy 0-254). Do časovače lze externě zapisovat hodnotu času, případně i číst hodnotu aktuálního času. Pro zápis se používá adresa v příponou .P, pro příklad teda %TM14.P a lze do ní zapsat přímo číslo nebo proměnnou (%TM14.P := %MW100). Pokud máme z předchozího kroku do proměnné %MW100 uloženo číslo 2020, časovač bude časovat 2020 sekund. Pro čtení aktuálního času se používá přípona .V, pro příklad tedy %TM14.V. Lze použít rovnici %MW101 := %TM14.V, kde v proměnné %MW101 bude uložený vždy aktuální uplynulý čas v daném časovači. V níže uvedeném příkladu časovač spíná vstup 1, pokud je vstup stále sepnutý a uplyne nastavený čas, sepne i výstup 4. Výstup časovače lze zakreslit přímo z bloku, nebo použít bit s příponou .Q. Pro příklad časovač neukončovat a do řádku níže zapsat %TM14.Q (kontakt) do příslušné cívky.

TON TOF timer

Do jednoho řádku lze kombinovat více časovačů, v níže uvedeném příkladu je program pro opakované cyklování. Po přivedení napětí na vstup 1 se spustí časovač %TM14, po jeho „naplnění“ spustí časovač %TM15, zároveň v dalším řádku kontakt %TM14.Q sepne výstup 4. Po naplnění časovače %TM15 rozepne negovaný kontakt před časovačem %TM14 a celé zapojení resetuje. Následně se cyklus znovu opakuje do ztráty napájení na vstupu 1.

časové relé

 

Následně si ukážeme pár bloků, pro jednoduché tlačítkové ovládání. V níže uvedeném příkladu se jedná o tzv. toggle switch (tlačítko s aretací). Podmínka pro sepnutí cívky %M50 je reakce na náběžnou hranu na %M10 a neaktivní kontakt %M50. Po splnění této podmínky se pomocí funkce SET nastaví cívka %M50 do log.1. Následně je první řádek blokovaný a čeká na náběžnou hranu na %M10, kdy bude aktivní podmínka v druhém řádku.

toggle switch

Toto by bylo zatím k základu vše, co budeme potřebovat. V dalším díle si již ukážeme příslušné bloky programů, které budeme v řízení chytrého domu potřebovat. Například řízení venkovních žaluzií podle denní doby, jednoduchá regulace teploty, bilance spotřebované vody/elektřiny a další…

1 komentář

Přidejte odpověď

Vaše emailová adresa nebude zveřejněna.


*