====== SectionFlagsHolder ====== {{:cs:mervis-ide:35-help:img_20.png?180}} ==== Název bloku ==== SectionFlagsHolder ==== Volání v ST ==== PROGRAM TEST_SectionFlagsHolder VAR USINT1: USINT; SectionState1: SectionState; BOOL1,BOOL2,BOOL3,BOOL4,BOOL5,BOOL6,BOOL7,BOOL8,BOOL9: BOOL; END_VAR FB(Clear:= BOOL1, Flags:= USINT1, State:= SectionState1, InternalWarning:= BOOL2, ExternalWarning:= BOOL3, FireAlarm:= BOOL4, IntruderAlarm:= BOOL5, PanicAlarm:= BOOL6, SabotageAlarm:= BOOL7, EntryDelay:= BOOL8, ExitDelay:= BOOL9); END_PROGRAM ==== Knihovna ==== LIB\JABLOTRON ==== Verze ==== V1.0 \\ ---- ==== Popis ==== Varianta funkčního bloku **SectionFlags** s upravenou funkcionalitou. Jeho funkcí je stejně jako u SectionFlags reprezentace vstupní hodnotu příznaku sekce na jednotlivých výstupech.\\ Navíc byl přidán výstup **SabotageAlarm** spolu s funkcí, která automaticky rozpozná sabotáž a nastaví tento výstup na **TRUE**. Zásadní změnou je, jak napovídá název, funkce **přidržení**. Ta přidrží alarm až do změny stavu sekce **STATE** (libovolný stav), díky čemuž je nutné přivést na vstup i stav sledované sekce. Poslední změnou je volitelný vstup **Clear**, ten umožňuje manuální reset přidržených výstupů poplachu. Tento vstup je skrytý a nemusí být použit. ==== Vstupy ==== ^Vstup^Typ ^Význam ^Výchozí hodnota^ |Clear|BOOL |Náběžná hrana provede manuální reset poplachových (alarm) výstupů (nastaví FALSE)|FALSE (skrytý) | |Flags|USINT |Aktuální příznak sekce |0 | |State|ENUM (SectionState)|Aktuální stav sekce |Unknown | ==== Výstupy ==== ^Vstup ^Typ ^Význam ^ |InternalWarning|BOOL|Hlášení vnitřních sirén| |ExternalWarning|BOOL|Hlášení vnitřních sirén| |FireAlarm |BOOL|Poplach-hoří | |IntruderAlarm |BOOL|Poplach vloupání | |PanicAlarm |BOOL|Poplach-tíseň | |SabotageAlarm |BOOL|Poplach-sabotáž | |EntryDelay |BOOL|Příchodové zpoždění | |ExitDelay |BOOL|Odchodové zpoždění | ==== Funkce ==== Funkční blok čte příznak sekce **Flags**. Čtená hodnota se převádí podle bitové masky na jednotlivé bity, každý bit je zapsán na odpovídající výstup. Výstup **sabotage** je odvozen z logiky ústředny, kdy jsou v příznaku sekce aktivní pouze záznamy **Warning**. Na alarmové (poplachové) výstupy //„fire, Intruder, panic, sabotage“// se zapisuje pouze hodnota **TRUE**. Hodnota **FALSE** se na alarmové výstupy zapíše až ve chvíli, kdy se změní stav sekce (na libovolný stav), nebo se zapíše **TRUE** na vstup **Clear** (reaguje na náběžnou hranu). ==== Bitová maska ==== ^Pozice bitu^Význam bitu ^ |1 |Internal Warning | |2 |External Warning | |4 |Fire Alarm | |8 |Intruder Alarm | |16 |Panic Alarm | |32 |Entry Delay | |64 |Exit Delay | |0 |Výchozí stav příznaku| \\ ---- ==== Příklad použití ==== {{:cs:mervis-ide:35-help:img_21.png}} Na vstup **Flags** je přivedena proměnná **Section_Flag** čtená z ústředny. Na vstup **State** je přivedena proměnná stavu sekce **Section_State**. Je důležité, aby číslo sekce bylo i u stavu, i u příznaku shodné. Poslední vstup **Clear** je resetovací vstup a resetuje pouze výstupy typu poplach (alarm). Výstupy musí být připojeny. Hodnotu výstupů lze využít např. ve webovém rozhraní pro indikaci, nebo mohou vyvolat odeslání upozornění, či spustit zabezpečovací logiku domu. {{:cs:mervis-ide:35-help:img_22.png}} Indikace alarmů je držena v hodnotě **TRUE** i ve chvíli, kdy již na vstupu **Flags** je výchozí hodnota 0. {{:cs:mervis-ide:35-help:img_23.png}} Zde ústředna postupně nahlásila všechny poplachové stavy. Na obrázku vidíme, že vstup **Flags** již není aktivní, ale funkční blok stále indikuje že k poplachu došlo. Pokud se v tuto chvíli aktivuje vstup **Clear**, nebo změní stav sekce (na libovolný stav), jsou všechny alarmové výstupy nastaveny na hodnotu **FALSE**, tím se funkční blok překlopí zpět do výchozího stavu.