Blok Switcher (v3.2)

  • Plný název funkčního bloku: Lib.Mervis.v3_2.SwitcherBlock
  • Požadované reference projektu: Lib.Mervis, Lib.Mervis.Alarms

Univerzální blok pro bezpečné spínání jednostupňového fyzického zařízení (čerpadlo, ventilátor, kompresor, ventil, topná patrona). Sdružuje standardní funkcionalitu potřebnou pro řízení takového zařízení: provozní režimy Automatika / Ručně zapnuto / Ručně vypnuto, dohled nad zpětnou vazbou běhu, dva vestavěné alarmy (Nespuštění a Porucha/Havarijní stav), periodické protočení zařízení, doběh po vypnutí, havarijní odstavení s nejvyšší prioritou a servisní čítače (provozní hodiny a počet startů). Protože dědí z BaseAlarmBlock, poskytuje blok jednotné alarmové rozhraní, které lze řetězit do projektového alarmového systému.

PROGRAM PUMP_CONTROL_DEMO
    VAR
        Heating_Demand  : BOOL;
        Pressure_Switch : BOOL;
        Thermal_Fault   : BOOL;
 
        PumpSwitcher : Lib.Mervis.v3_2.SwitcherBlock;
        Pump_Relay   : BOOL;
    END_VAR
 
    PumpSwitcher(
        OperatingMode   := OperatingModeType#Automatic,
        Demand          := Heating_Demand,
        Feedback        := BOOL_TO_USINT(Pressure_Switch), // 0/1; použijte 2 pro ignorování zpětné vazby
        Failure         := Thermal_Fault,
        RunDown         := T#2m,    // doběh 2 min pro odvedení zbytkového tepla
        FeedbackTimeout := T#10s    // čekat 10 s na vytvoření tlaku
    );
 
    Pump_Relay := PumpSwitcher.Command;
END_PROGRAM
Název Datový typ Povolený rozsah Retain Povinné Popis
OperatingMode OperatingModeType Ano Ne Požadovaný provozní režim (Automatika / Zapnuto / Vypnuto). Režim Off má nejvyšší prioritu a zabraňuje spuštění jakoukoli jinou funkcí. Výchozí hodnota: Off.
Demand bool Ne Ano Požadavek na provoz v automatickém režimu (standardní průmyslový signál „požadavek na topení / požadavek na chod“). V manuálních režimech je ignorován.
Feedback usint 0..2 Ne Ne Zpětná vazba běhu. Logický signál lze přímo mapovat pomocí BOOL_TO_USINT. Výchozí hodnota: 2 (zpětná vazba není připojena → logika zpětné vazby je vynechána).
FeedbackManual bool Ne Ne Indikuje ruční hardwarové ovládání (např. přepínač HOA na rozvaděči). Promítá se do CompositeState. Výchozí hodnota: false.
Failure bool Ne Ne Externí hlášení poruchy zařízení (vypadlý motorový jistič, tepelná ochrana, porucha měniče, …). Vyvolá alarm Failure. Výchozí hodnota: false.
EmergencyShutdown bool Ne Ne Havarijní odstavení. Okamžitě deaktivuje Command a má prioritu nad všemi režimy. Výchozí hodnota: false.
OperatingHoursReset bool Ne Ne Náběžná hrana, která resetuje čítače provozních hodin a počtu startů. Výchozí hodnota: false.
ControlFlags uint 0..15 Ne Ne Pole bitů definující rozšířené chování (viz tabulka níže). Výchozí hodnota: 0.
RunDown time Ne Ne Doba doběhu po vypnutí: zařízení zůstane v chodu po tuto dobu po zrušení Demand (např. kvůli odvodu zbytkového tepla). Pokud je 0, je funkce vypnuta. Výchozí hodnota: T#5m.
FeedbackTimeout time Ne Ne Maximální doba, po kterou se čeká na aktivaci Feedback po vydání Command, než je vyvolán alarm Not Run. Výchozí hodnota: T#30s.
KickFunctionInterval time Ne Ne Interval periodického protočení zařízení (ochrana proti zadření). Pokud je 0, je funkce vypnuta. Výchozí hodnota: T#0s (vypnuto).
KickFunctionDuration time Ne Ne Doba, po kterou zařízení běží během periodického protočení. Výchozí hodnota: T#1m.
NotRunAlarmPriority AlarmPriorityType Ne Ne Třída alarmu pro alarm „Nespuštění“ (Not Running). Výchozí hodnota: 32.
FailureAlarmPriority AlarmPriorityType Ne Ne Třída alarmu pro externí alarm poruchy. Výchozí hodnota: 32.
EmergencyAlarmPriority AlarmPriorityType Ne Ne Třída alarmu pro reakci na havarijní odstavení jako alarm (viz bit 3 v ControlFlags). Výchozí hodnota: 32.

Popis hodnot Feedback

Hodnota Význam
0 Zpětná vazba není aktivní (zařízení neběží).
1 Zpětná vazba je aktivní (zařízení běží).
2 Zpětná vazba není připojena (výchozí stav) — logika zpětné vazby je vynechána; stav běhu odpovídá hodnotě Command.

Popis hodnot ControlFlags

Bit Maska Význam
0 1 Pokud je TRUE, je kompletně vypnuto veškeré vyhodnocování alarmů.
1 2 Pokud je TRUE, Command je při aktivní poruše zrušen v režimu Automatika.
2 4 Pokud je TRUE, Command je při aktivní poruše zrušen v režimu Ručně (Zapnuto).
3 8 Pokud je TRUE, EmergencyShutdown, ke kterému dojde současně s požadavkem na spuštění, je také hlášeno jako alarm Failure.
4..15 - Nepoužito.
Název Datový typ Popis
Command bool Výstupní povel k provozu (TRUE = běh, FALSE = zastavení).
CompositeState uint Pole bitů popisující kompletní interní stav bloku (viz tabulka níže).
OperatingHours time Celková akumulovaná doba běhu (uchovávaná). Resetuje se pomocí OperatingHoursReset.
StartCounter udint Celkový počet startů (uchovávaný). Resetuje se pomocí OperatingHoursReset.

Protože je blok potomkem BaseAlarmBlock, poskytuje také zděděné alarmové rozhraní (AlarmsInterface / Reset / Acknowledge / GetActiveAlarmsMask …), které slouží k začlenění jeho dvou interních alarmů do projektového alarmového systému.

Popis hodnot výstupu CompositeState

Bit Maska Význam
0 1 Command je aktivní.
1 2 Zpětná vazba je aktivní (Feedback = 1 nebo Feedback = 2 při aktivním Command).
2 4 Je aktivní manuální režim (OperatingMode ≠ Automatic nebo je hlášeno ruční hardwarové ovládání).
3 8 Je aktivní režim Ručně zapnuto (OperatingMode = On nebo ruční ovládání při běhu).
4 16 Demand je aktivní.
5 32 Právě probíhá periodické protočení.
6 64 Právě probíhá doběh po vypnutí.
7 128 Je přítomen aktivní alarm.
8..9 - Aktuální reprezentace OperatingMode.

Blok používá interní stavový automat (Off → WaitForFeedback → On → Run-Down s paralelními větvemi Failure, Kick a Emergency) a spravuje dva alarmy:

  • Not Run (Nespuštění): vyvolá se, pokud je vydán Command, ale Feedback se nestane aktivním během FeedbackTimeout. Priorita = NotRunAlarmPriority.
  • Failure (Porucha): vyvolává jej externí vstup Failure (a volitelně také EmergencyShutdown, viz bit 3 v ControlFlags). Priorita = FailureAlarmPriority / EmergencyAlarmPriority.

Hlavní funkce:

  • Provozní režimy: Automatika, Ručně zapnuto, Ručně vypnuto. Režim Off má nejvyšší prioritu; EmergencyShutdown přebíjí všechny režimy.
  • Dohled nad zpětnou vazbou: ověřuje, že se zařízení skutečně spustilo; pokud Feedback = 2, logika zpětné vazby je vynechána a stav běhu odpovídá Command.
  • Doběh po vypnutí: po zrušení Demand v automatickém režimu zařízení pokračuje v chodu po dobu RunDown (např. pro odvod zbytkového tepla), poté se zastaví. Zařízení, které nikdy nepotvrdilo běh zpětnou vazbou nebo bylo vypnuto již v prvním cyklu, dobu doběhu přeskočí.
  • Periodické protočení: v automatickém režimu, pokud bylo zařízení nečinné po dobu KickFunctionInterval, je spuštěno na KickFunctionDuration, aby se zabránilo jeho zadření. Protočení má vlastní dohled nad zpětnou vazbou.
  • Havarijní odstavení: okamžitě nastaví Command = FALSE bez ohledu na provozní režim. Pokud je nakonfigurováno (bit 3 v ControlFlags), současný požadavek na spuštění vyvolá alarm Failure.
  • Reakce na poruchu: bity 1 a 2 v ControlFlags určují, zda bude Command při poruše zrušen samostatně pro automatický a manuální režim (např. aby kritické čerpadlo zůstalo při méně závažném alarmu v manuálním režimu v provozu).
  • Servisní čítače: akumulované OperatingHours a StartCounter, které lze resetovat pomocí OperatingHoursReset.

Logika vykonávání: V automatickém režimu je spuštění vyžádáno vstupem Demand; v režimu Ručně zapnuto je vynuceno. Po požadavku na spuštění blok přejde do stavu WaitForFeedback, aktivuje Command a čeká maximálně FeedbackTimeout na Feedback. Pokud je zpětná vazba potvrzena, přejde do stavu On a zvýší StartCounter; při překročení časového limitu vyvolá alarm Not Run. Vstup Failure nebo EmergencyShutdown kdykoli přesměruje řízení do odpovídající větve. Po zrušení Demand zajistí větev Run-Down běh zařízení ještě po dobu RunDown a poté jeho zastavení.

Scénář: Redundantní čerpadlo chladiva pro kolektor ledové plochy

Dvě čerpadla (M4/M5) zajišťují cirkulaci chladiva do ledové plochy. Každé čerpadlo je řízeno vlastním blokem SwitcherBlock:

  • Požadavek z logiky střídání čerpadel Lead/Lag je přiveden na Demand; diferenční tlakový spínač (dP) je mapován na Feedback pomocí BOOL_TO_USINT.
  • Pokud PLC aktivuje Command, ale během FeedbackTimeout = T#10s nevznikne signál dP, alarm Not Run indikuje například prasklou spojku nebo zadřený rotor a logika střídání může přepnout na záložní čerpadlo.
  • Porucha motorové ochrany nebo frekvenčního měniče je přivedena na Failure; při nastaveném bitu 1 v ControlFlags je Command při poruše v automatickém režimu zrušen.
  • Aby nedošlo k zadření během letní odstávky, KickFunctionInterval = T#7d a KickFunctionDuration = T#30s zajistí týdenní protočení čerpadla.
  • Krátký RunDown udržuje po ukončení požadavku krátce cirkulaci chladiva.

Command ovládá relé čerpadla; AlarmsInterface je připojeno do agregátoru alarmů strojovny a OperatingHours / StartCounter jsou využity v servisním přehledu.

  • © Energocentrum Plus, s.r.o. 2017 - 2026