Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Systém Alarmů a Eventů

Alarmy a eventy jsou v systému PROMOTIC pojmy pro zachytávání a správu technologických dějů.
- Alarm je zachycený děj (např. porucha ventilu), který vznikne, zanikne a je potřeba aby ho operátor vzal na vědomí tzv. kvitací.
- Event je jednodušší typ děje (např. akce operátora), který pouze vznikne a je potřeba ho zaznamenat.

Protože oba pojmy jsou velmi podobné, řeší se tato oblast v systému PROMOTIC společně pomocí objektu PmAlarmEvent. Takových objektů může být v aplikaci více - vytváříte tak více skupin alarmů/eventů (např. když chcete mít zvlášť komunikační a technologické alarmy nebo zvlášť eventy z kotelny a ze sušárny, atd.) Již před vytvořením takového objektu se však určí, zda tento objekt bude sloužit pro správu alarmů nebo eventů. Jeden daný objekt tedy nemůže být určen pro alarmy i eventy zároveň.

 
Vytvoření konkrétního alarmu/eventu:

Konrétní alarm/event lze vytvořit (tzn. definovat ho aby se později mohl aktivovat/deaktivovat/kvitovat, atd.) několika možnými způsoby:

- Datové rozšíření: Použít Datové rozšíření je nejstandardnější a nejjednodušší způsob pro vytvoření alarmu/eventu. Definuje v datové položce objektu PmData. Systém kontroluje překročení mezí a podle toho pak aktivuje/deaktivuje alarm. Lze použít Datové rozšíření typu ExtAlarmAnalog, ExtAlarmBinary, ExtEvent.
- Statické alarmy/eventy: Alarmy i eventy lze definovat přímo v objektu PmAlarmEvent v záložce Seznam. Tyto alarmy/eventy je pak nutno aktivovat scriptem pomocí metody Activate.
- Dynamické alarmy/eventy: Pokud je potřeba aby se alarmy/eventy nemuseli definovat předem, pak lze v záložce Seznam definovat tzv. vzor (viz konfigurátor "Vzor pro dynamicky vytvářené položky") a dané alarmy/eventy pak vytvářet dynamicky ve skriptu pomocí metod PmAlarmEvent.RegisterNew nebo PmAlarmEvent.ActivateNew.
 
Vytvoření skupiny pomocí více objektů:

Pokud chcete mít jen jednu skupinu alarmů/eventů (abyste například mohli všechny tyto alarmy prohlížet společně) ale chcete ji vytvořit pomocí více objektů PmAlarmEvent (např. pro každý kotel chcete mít vlastní PmAlarmEvent objekt), pak to lze uskutečnit následovně: Vytvoříte jeden objekt PmAlarmEvent, který bude sloužit jako základ (kořen) všem dalším objektům. Příslušně ho parametrizujete ale nemusíte v něm vytvořit ani jeden alarm/event. Na příslušných jiných vhodných místech pak vytváříte další objekty PmAlarmEvent, u kterých však zatrhnete konfigurátor Rodič povolen a vyplníte cestu k základnímu objektu. V těchto objektech pak vytvoříte požadované alarmy/eventy.

Spravovat tyto alarmy/eventy tedy budete nad těmito objekty, ale vnitřně se vše "přesměruje" do základního objektu. Alarmy/eventy pak lze prohlížet všechny společně, lze je ukládat do jednoho souboru, atd.

 
Lokální skupina (server) a vzdálená skupina (klient):
- Lokální skupina (server) - nejběžnější případ, kdy alarm/event skupina představuje v aplikaci místo, kde alarm/event položky skutečně vznikají a jsou uchovávany na disk. Používá se typ uložení "Textový soubor (*.al, *.ev)" nebo "dBASE III soubor (*.dbf)" - viz konfigurátor "Typ uložení".
- Vzdálená skupina (klient) - případ, kdy aplikace zobrazuje alarmy/eventy vznikající a uchovávané v jiné aplikaci (server), která může běžet na jiném počítači. Používá se typ uložení "Vzdálené napojení přes WEB" - viz konfigurátor "Typ uložení".
 
Prohlížení alarmů/eventů:

Prohlížet lze aktuální stav i historii.

Pomocí metody PmAlarmEvent.WndState lze prohlížet aktuální stav. Toto je praktické zejména pro alarmy. Lze zde vidět vždy poslední stav alarmu, jeho čas aktivace, kvitace, atd. Lze zde také alarmy kvitovat.

Pomocí metody PmAlarmEvent.WndHistory lze prohlížet historii. Toto je praktické pro alarmy i eventy. Položky jsou seřazeny dle času vzniku (aktivace) a lze zde vidět jak alarmy/eventy za sebou vznikaly v čase.

 
V dalším se popis pro alarmy a eventy liší. Proto je budeme popisovat zvlášť:
 

Alarmy

Alarm znamená signalizaci stavu, který by za běžných podmínek neměl nastat (např. překročení technologických mezí určité veličiny, výpadek komunikace, atd.).
 
Základní pojmy:
Aktivace alarmu: je děj, kdy se daný alarm stane aktivním. Například čerpadlo se dostane do poruchy. Alarm může být aktivován následujícími způsoby:
1. Ve skriptu voláním metody PmAlarmEvent.Activate nebo PmAlarmEventItem.Activate - vhodné pro existující alarm/event položky.
2. Ve scriptu nastavením vlastnosti PmAlarmEventItem.Active - vhodné pro jednoduchou aktivaci/deaktivaci.
3. Ve scriptu voláním metody PmAlarmEvent.ActivateNew - vhodné pro vytvoření nové alarm/event položky ze vzoru.

Zjistit, zda je alarm aktivní, lze pomocí vlastnosti PmAlarmEventItem.Active.

Deaktivace alarmu: je děj, kdy daný alarm přestane být aktivním. Například čerpadlo přestane být v poruše. Alarm může být deaktivován následujícími způsoby:
1. Ve skriptu voláním metod PmAlarmEvent.Inactivate nebo PmAlarmEventItem.Inactivate.
2. Ve scriptu nastavením vlastnosti PmAlarmEventItem.Active - vhodné pro jednoduchou aktivaci/deaktivaci.
Kvitace alarmu: je děj, kdy operátor v aplikaci potvrdí daný alarm. Například potvrdí, že bere na vědomí, že čerpadlo je (nebo bylo) v poruše. Alarm může být kvitován následujícími způsoby:
1. Kvitováním alarmu v okně přehledu stavů alarmů dané skupiny.
2. Ve skriptu voláním metod PmAlarmEvent.Acknowledge nebo PmAlarmEventItem.Acknowledge.

Upozornění: Operátor musí mít oprávnění Acknowledge. Zjistit, zda je alarm kvitovaný lze pomocí vlastnosti PmAlarmEventItem.Acknowledged.

 
Každý alarm se může nacházet v jednom z následujících stavů:
Stav alarmu: Popis:
aktivní nekvitovaný (červený) Alarm, který byl aktivován a nedošlo k jeho deaktivaci ani ho operátor nekvitoval.
aktivní kvitovaný (žlutý) Alarm, který byl aktivován, nedošlo k jeho deaktivaci a operátor ho kvitoval. Nenastává u alarmů, které mají konfigurátor Typ kvitace nastaven na "2 = při kvitaci i automatická deaktivace".
neaktivní nekvitovaný (modrý) Alarm, který byl deaktivován ale operátor ho ještě nekvitoval. Nenastává u alarmů, které mají konfigurátor Typ deaktivace nastaven na "2 = při deaktivaci i automatická kvitace".
neaktivní kvitovaný (zelený) Alarm, který je deaktivován a pokud je potřeba tak ho i operátor kvitoval.

Při každé změně stavu každého alarmu je vyvolána událost PmAlarmEvent.onStateChange v objektu PmAlarmEvent ve kterém je alarm definován.

 
Alarmy v podezření (zpoždění aktivace a deaktivace):

Nastavuje se v konfigurátorech Zpoždění aktivace [sec] a Zpoždění deaktivace [sec], které umožňují neaktivovat/nedeaktivovat alarm ihned, ale místo toho jej uvést do stavu podezření na aktivaci nebo podezření na deaktivaci. Podezření po nastavené době přejde ve skutečnou aktivaci/deaktivaci alarmu nebo podezření zanikne.

Tímto způsobem lze snadno zamezit zbytečnému vzniku/zániku alarmů vlivem občasných výkyvů hodnot sledované veličiny, například vlivem rušení nebo poruchy komunikace. Také lze tímto způsobem implementovat alarmy pro akce s 'timeoutem', kdy před začátkem takovéto akce se aktivuje alarm se zpožděnou aktivací a při detekci úspěšného dokončení akce se alarm deaktivuje. Pokud ve stanoveném čase nedojde k úspěšnému ukončení akce, alarm v podezření ve stanoveném čase automaticky vznikne.

 
V prohlížeči aktuálních stavů (PmAlarmEvent.WndState) je většinou každý alarm jen jednou. Pro každý alarm je tam vždy jeho nejaktuálnější stav.

Pokud má alarm v konfiguraci zatrhnuto Smazat neaktivní kvitované (zelené), pak alarm ze seznamu aktivních alarmů zmizí, pokud se stane neaktivní kvitovaný (zelený).

Pokud je hodnota konfigurátoru Počet neaktivních, nekvitovaných alarmů (modrých) objektu PmAlarmEvent větší než 1, pak alarmy, které čekají na kvitaci, zůstavají v seznamu i při aktivaci nového alarmu stejného názvu. V tomto jediném případě může nastat situace, kdy je v prohlížeči stavů více stejných alarmů.

 
Ve spuštěné aplikaci lze prohlížet seznam alarmních skupin kliknutím na ikonu "Alarmy". Ikona je v nástrojové liště, která se vytvoří automaticky při zakládání nové aplikace.

V okně seznamu alarmních skupin je přehled všech alarmních skupin. U každé skupiny je uveden počet alarmů

- houkajících.

Dvojklikem myši na název kterékoliv alarmní skupiny (nebo ve skriptu voláním metody PmAlarmEvent.WndState) se otevře přehled stavu alarmů v dané skupině. V tomto okně lze alarmy prohlížet a kvitovat. Pokud je povoleno, lze zde také nastavit a uchovat (tlačítka "Nastavení" a "Uložit") šířky sloupců, barvy stavu alarmů, formát zobrazovaného času, atd.

Každý řádek prohlížeče však informuje pouze o čase poslední aktivace/deaktivace/kvitace alarmu. Celou historii všech alarmů lze zobrazit kliknutím na tlačítko "Historie" nebo ve skriptu voláním metody PmAlarmEvent.WndHistory. Tím se otevře okno pro přehled historie dané skupiny. V tomto okně lze prohlížet historii všech alarmů v dané skupině.

Eventy

Event je oznámení o provedení určité činnosti (např. zahájení, ukončení nebo úspěšnost určitého procesu, atd.). Toto oznámení je zapisováno na disk pro pozdější prohlížení. Vytváří se tak něco jako "kronika" o průběhu dané technologie.

Místo slova "event" lze říci česky "událost". Slovo "událost" je však již v této dokumentaci rezervováno pro objekt (každý objekt může mít události jako například událost PmTimer.onTick) a proto pro pojem zde vysvětlovaný budeme užívat slovo "event".

 
Na rozdíl od alarmů, eventy se jen aktivují. Pojmy "deaktivace" a "kvitace" zde není nutné používat, neboť si to lze představit tak, že eventy se deaktivují a kvitují již při své aktivaci. Aktivace eventů se povádí ve skriptu metodami PmAlarmEvent.ActivateNew, PmAlarmEvent.Activate nebo PmAlarmEventItem.Activate.
 
Ve spuštěné aplikaci lze prohlížet seznam eventových skupin kliknutím na ikonu "Eventy". Ikona je v nástrojové liště, která se vytvoří automaticky při zakládání nové aplikace.

V okně seznamu eventových skupin je přehled všech eventových skupin. Dvojklikem myši na název kterékoliv eventové skupiny (nebo ve skriptu voláním metody PmAlarmEvent.WndHistory) se otevře okno pro přehled historie dané skupiny. V tomto okně lze prohlížet historii všech eventů v dané skupině.

Viz také:
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice