====== Spínací blok (v3.0) ====== {{:cs:mervis-ide:35-help:switcherblock_v2.0.png}} ===== Popis ===== * Úplný název funkčního bloku: Lib.Mervis.v3_0.SwitcherBlock * Vytvořen rozšířením bloku * [[cs:mervis-ide:35-help:035-software_basic:060-libraries:060-lib-mervis:015-utilities:040-base-function-blocks:010-basealarmblock:v2_0|Lib.Mervis.v2_0.BaseAlarmBlock]] * Potřebné reference projektu * Lib.Mervis ===== Použití v ST ===== program test var switcher: lib.mervis.v3_0.SwitcherBlock; end_var switcher(Demand := ..., Feedback := ..., Failure := ...); hw.DO1 := switcher.Command; end_program ===== Vstupy ===== ^ Jméno ^ Datový typ ^ Povolený rozsah ^ Jednotka ^ Retain ^ Nutno připojit ^ Význam ^ | OperatingMode | [[cs:mervis-ide:35-help:035-software_basic:060-libraries:060-lib-mervis:015-utilities:030-types:operatingmodetype|Lib.Mervis.v1_0.OperatingModeType]] | | Ano | Ne | Požadovaný režim provozu, režim vypnuto je dominantní - nelze tedy docílit spuštění žádnou jinou funkcí | | Demand | bool | | Ne | Ano | Požadovaný stav v automatickém režimu | | Feedback | usint | 0..2 | Ne | Ne | Zpětná hláška o chodu - lze přímo připojit zpětnou hlášku typu bool. | | FeedbackManual | bool | | Ne | Ne | Zpětná hláška indikující manuální zapnutí (např. z panelu rozvaděče) | | Failure | bool | | Ne | Ne | Hlášení o poruše | | EmergencyShutdown | bool | | Ne | Ne | Nouzové vypnutí | | OperatingHoursReset | bool | | Ne | Ne | Nulování provozních hodin | | RunDown | time | | Ne | Ne | Požadovaná doba doběhu (pokud je nulový, funkce je neaktivní) | | FeedbackTimeout | time | | Ne | Ne | Interval čekání na aktivní zpětnou hlášku | | KickFunctionInterval | time | | Ne | Ne | Interval funkce periodického spouštění (pokud je nulový, funkce je neaktivní) | | KickFunctionDuration | time | | Ne | Ne | Doba běhu pro periodické spouštění | | NotRunAlarmPriority | Alarms.V1_0.AlarmPriorityType | | Ne | Ne | Třída generovaného alarmu | | FailureAlarmPriority | Alarms.V1_0.AlarmPriorityType | | Ne | Ne | Třída generovaného alarmu | | EmergencyAlarmPriority | Alarms.V1_0.AlarmPriorityType | | Ne | Ne | Třída generovaného alarmu | | ControlFlags | uint | 0..15 | Ne | Ne | Bitové pole definující rozšířené chování bloku | Popis hodnot pro vstup Feedback ^ Hodnota ^ Význam ^ | 0 | Zpětná hláška neaktivní | | 1 | Zpětná hláška aktivní | | 2 | Zpětná hláška není připojena (výchozí hodnota) | Popis hodnot pro vstup ControlFlags ^ Bit ^ Maska ^ Význam ^ | 0 | 1 | Pokud je bit roven jedné nedochází k vyhodnocování alarmů | | 1 | 2 | Definuje chování výstupu Command při vzniku alarmu v automatickém režimu. Pokud je bit roven jedné, dojde k deaktivaci výstupu | | 2 | 4 | Definuje chování výstupu Command při vzniku alarmu v manuálním režimu. Pokud je bit roven jedné, dojde k deaktivaci výstupu | | 3 | 8 | Definuji reakci alarmu na vstup EmergencyShutdown. Pokud je roven jedné, dojde k vyhlášení alarmu poruchy. | | 4..15 | - | Nevyužit | ===== Výstupy ===== ^ Jméno ^ Datový typ ^ Jednotka ^ Význam ^ | Command | bool | | Povel | | AlarmsInterface | ptr_to [[cs:mervis-ide:35-help:035-software_basic:060-libraries:060-lib-mervis:015-utilities:040-base-function-blocks:010-basealarmblock:v2_0|Lib.Mervis.v2_0.BaseAlarmBlock]] | | Sdružené rozhraní k alarmové indikaci | | CompositeState | uint | | Bitové pole popisující celkový stav | | OperatingHours | time | | Provozní hodiny | | StartCounter | udint | | Počet spuštění | Popis hodnot výstupu CompositeState ^ Bit ^ Maska ^ Význam ^ | 0 | 1 | Command | | 1 | 2 | Feedback \\ Pokud není připojena zpětná hláška (tzn. Feedback = 2), kopíruje stav Command | | 2 | 4 | ManualMode | | 3 | 8 | ManualOn | | 4 | 16 | Demand | | 5 | 32 | Protočení aktivní | | 6 | 64 | Doběh aktivní | | 7 | 128 | Porucha | | 8-9 | - | OperatingMode | ===== Bloky ===== ^ Jméno ^ Datový typ ^ Význam ^ | AlarmFlags | array[0..1] of Alarms.v1_0.AlarmPoint | Index 0 - Porucha nechod \\ Index 1 - Externí vstup poruchy nebo EmergencyShutdown | | State | [[cs:mervis-ide:35-help:035-software_basic:060-libraries:060-lib-mervis:015-utilities:030-types:switcherblockstate:v2_0|Lib.Mervis.v2_0.SwitcherBlockState]] | Interní stav funkčního bloku | ===== Podrobný popis funkce ===== Blok v sobě integruje často používané funkce při spínání zařízení. Mezi tyto funkce patří následující: * Režim provozu - //Automat, Manuálně vypnuto, Manuálně zapnuto// * Hlídání zpětné hlášky a s tím související * Alarmová funkce * Nechod - tzn. Existuje aktivní požadavek //Command// a není aktivní zpětná hláška //Feedback// * Porucha - Vzniká aktivací vstupu //Failure// příp. //EmergencyShutdown// * Periodické spouštění (např. protočení pro čerpadla) * Doběh po vypnutí * Nouzové/okamžité vypnutí * Počítání provozních hodin Povel pro sepnutí se generuje na základě požadavku v automatickém režimu nebo pokud je režim provozu nastaven na //Zapnuto//. V případě aktivního povelu se poté kontroluje stav zpětné hlášky, pokud se nestane aktivní do uplynutí času daného vstupem //FeedbackTimeout// dojde k vygenerování alarmu **Nechod**. Pro informaci o externím vzniku poruchy (např. nadproudová ochrana, výstup frekvenčního měniče) slouží vstup //Failure//, jeho nastavením dojde ke vzniku alarmu **Porucha**. Nastavení //EmergencyShutdown// na true vede k okamžíté deaktivaci povelu __bez ohledu na zvolený režim provozu__. Pokud je povoleno generování alarmu od //EmergencyShutdown// dojde v případě jeho aktivace (tzn. pri současně aktivním výstupu //Command//) ke vzniku alarmu **Porucha** V __automatickém__ režimu může dojít k aktivace povelu také vypršením intervalu //KickFunctionInterval// pro periodické spouštění. Povel se aktivuje na dobu parametrem //KickFunctionDuration//. Pokud se stane požadavek na provoz //Demand// neaktivní, spouští se odpočet doběhu po vypnutí, tzn. že povel //Command// je aktivní ještě po dobu danou parametrem //RunDown//, teprve po jeho uplynutí se povel deaktivuje. ===== Verze ===== {{indexmenu>..120-switcherblock#2}}