Promotic

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 uživatel vzal na vědomí tzv. kvitací.
- Event je jednodušší typ děje (např. akce uživatele), který pouze vznikne a je potřeba ho zaznamenat.

Oba pojmy jsou velmi podobné a mají také některé stejné metody. Pro jednu skupinu alarmů je určen objekt PmaAlarmGroup a pro skupinu eventů objekt PmaEventGroup. Takových objektů může být v aplikaci více. (např. pokud chcete mít zvlášť komunikační a technologické alarmy nebo zvlášť eventy z kotelny a ze sušárny, atd.)

Vytvoření konkrétního alarm/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í alarm/eventu. Definuje v datové položce objektu PmaData. Systém kontroluje překročení mezí a podle toho pak aktivuje/deaktivuje alarm. Lze použít Datové rozšíření typu AlarmAnalog, AlarmBinary, ExtEvent.
- Statické alarmy/eventy: Alarmy (nebo eventy) lze definovat přímo v objektu PmaAlarmGroup (nebo PmaEventGroup) v kartě "Položky". Tyto alarmy/eventy je pak nutno aktivovat ve skriptu metodou Activate.
- Dynamické alarmy/eventy: Pokud je potřeba aby se alarmy/eventy nemuseli definovat předem, pak v kartě "Položky" lze definovat tzv. vzor (viz konfigurátor "Vzor pro dynamicky vytvářené položky") a dané alarmy/eventy pak lze vytvořit dynamicky ve skriptu pomocí metod PmaAlarmGroup.RegisterNew nebo PmaAlarmGroup.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ů PmaAlarmGroup (např. pro každý kotel chcete mít vlastní objekt PmaAlarmGroup), pak to lze uskutečnit následovně:
Vytvořte jeden objekt PmaAlarmGroup, který bude sloužit jako základ (kořen) všem dalším objektům. Příslušně ho parametrizujete ale nemusíte v tomto objektu vytvořit ani jeden alarm/event. Na příslušných jiných vhodných místech pak vytváříte další objekty PmaAlarmGroup, 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 místo v aplikaci, kde alarm položky skutečně vznikají a jsou uchovávany na disku. Používá se typ uložení "Textový soubor (*.al)" 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é připojení přes Web" - viz konfigurátor "Typ uložení".


Prohlížení alarmů/eventů:
Pro prohlížení alarmů/eventů slouží objekt PmgAlarmStateViewer, PmgAlarmHistoryViewer nebo PmgEventViewer. Objekt bývá umístěný spolu s dalšími obslužnými objekty (tlačítka, texty) v obrazu a vytváří tak prohlížeč stavů alarmů, prohlížeč historie alarmů nebo prohlížeč historie eventů. Prohlížeč je obvykle zaregistrována v objektu PmaAlarmGroup nebo v objektu PmaEventGroup. Zaregistrováním prohlížeče do skupiny alarmů/eventů získá tato skupina schopnost zprostředkovat zobrazení prohlížeče svých alarmů/eventů. Otevření zaregistrovaného prohlížeče (tvořené obrazem) zprostředkovaně skupinou alarmů/eventů je mnohem jednodušší než otevírat přímo prohlížeč, protože skupina dodá do prohlížeče automaticky všechny důležité parametry, které by v opačném případě musely být dodány při otevření. Zaregistrování prohlížeče do skupiny tedy usnadňuje otevíraní prohlížeče pro danou skupinu alarmů/eventů.
Vytvoření obrazu prohlížeče není triviální záležitost. Proto systém PROMOTIC obsahuje předkonfigurace všech tří základních prohlížeček (stavů alarmů, historie alarmů a historie eventů). Obraz prohlížeče při změně své velikosti v runtime přizpůsobuje svůj obsah (zvětšení, posun grafických objektů) a funguje i na Webu. Při vytváření nové skupiny alarmů/eventů lze zvolit i vytvoření příslušných prohlížeček. Prohlížeč však lze vytvořit i samostatně kdykoliv později. Jedná se o předkonfigurovaný obraz, který může projektant libovolně upravovat.
Zaregistrované prohlížeče se otevírají přes PmaAlarmGroup nebo PmaEventGroup přidaným suffixem /#state nebo /#history. Do dodaných parametrů sParams metody Pm.CreateView jsou doplněny (pouze pokud nebyly dodány) základní parametry a jsou předány do prohlížeče (objekt PmaPanel). Základní parametry obrazu zaregistrované prohlížeče:
- filter: Filtrační řetězec určující, které alarmy/eventy se mají zobrazit. Tento parametr se dodává v metodě Pm.CreateView. Pokud není dodán (prázdný), pak jsou zobrazeny všechny alarmy/eventy.
- grouppath: Cesta ke skupině alarmů/eventů. Při otevření zaregistrované prohlížeče je dodána automaticky, pokud nebyla zadána.
- statepath: Cesta pro otevření prohlížeče stavů alarmů. Slouží pouze v prohlížeči historie alarmů a slouží k implementaci přepnutí do prohlížeče stavů alarmů. Při otevření zaregistrovaného prohlížeče je dodána automaticky, pokud nebyla zadána.
- historypath: Cesta pro otevření prohlížeče historie alarmů. Slouží pouze v prohlížeči stavů alarmů a slouží k implementaci přepnutí do prohlížeče historie alarmů. Při otevření zaregistrovaného prohlížeče je dodána automaticky, pokud nebyla zadána.
 
Otevření konkrétní zaregistrovaného prohlížeče prostřednictvím skupiny alarmů/eventů i s příklady bude ukázáno v následujících odstavcích.

V dalším se popis alarmů/eventů liší a 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, chyba komunikace, atd.).

Otevření zaregistrovaného prohlížeče stavů/historie v podobě obrazu obsahující objekt PmgAlarmStateViewer/PmgAlarmHistoryViewer pomocí objektu PmaAlarmGroup.
Příklad:
JavaScriptVyber a zkopíruj do schránky

Pm.CreateView(null, "/Alarms/#state", "pars:{filter:{source:boiler1;}}", "target:main;").Open();
// nebo
Pm.CreateView(null, "/Alarms/#history", "pars:{filter:{source:boiler1;}}", "target:main;").Open();


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 PmaAlarmGroup.Activate nebo PmAlarmItem.Activate - vhodné pro existující alarm položky.
2. Ve skriptu nastavením vlastnosti PmAlarmItem.Active - vhodné pro jednoduchou aktivaci/deaktivaci.
3. Ve skriptu voláním metody PmaAlarmGroup.ActivateNew - vhodné pro vytvoření nové alarm položky ze vzoru.

Zjistit, zda je alarm aktivní, lze pomocí vlastnosti PmAlarmItem.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 PmaAlarmGroup.Inactivate nebo PmAlarmItem.Inactivate.
2. Ve skriptu nastavením vlastnosti PmAlarmItem.Active - vhodné pro jednoduchou aktivaci/deaktivaci.
Kvitace alarmu: Je děj, kdy uživatel 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 PmaAlarmGroup.Acknowledge nebo PmAlarmItem.Acknowledge.

Upozornění: Uživatel musí mít oprávnění "Acknowledge". Zjistit, zda alarm je kvitovaný lze pomocí vlastnosti PmAlarmItem.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 uživatel nekvitoval.
aktivní kvitovaný (žlutý) Alarm, který byl aktivován, nedošlo k jeho deaktivaci a uživatel ho kvitoval. Nenastává u alarmů, kde konfigurátor "Typ kvitace" je nastaven na "2 = po kvitaci i automatická deaktivace".
neaktivní nekvitovaný (modrý) Alarm, který byl deaktivován ale uživatel ho ještě nekvitoval. Nenastává u alarmů, kde konfigurátor "Typ deaktivace" je 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 uživatel kvitoval.

Při každé změně stavu každého alarmu je vyvolána událost PmaAlarmGroup.onStateChange v objektu PmaAlarmGroup 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 ho 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é proměnné, 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, pak alarm v podezření ve stanoveném čase automaticky vznikne.

V prohlížeči stavů alarmů je obvykle 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 hodnota konfigurátoru "Číslo neaktivních, nekvitovaných starších kopií (modrých) daného alarmu" objektu PmaAlarmGroup je 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 v prohlížeči stavů alarmů je více stejných alarmů.

Ve spuštěné aplikaci lze prohlížet seznam skupin alarmů 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 skupin alarmů je přehled všech skupin. U každé skupiny je uveden počet alarmů:
- houkajících.

Dvojklikem levým tlačítkem myši na název kterékoliv skupiny se otevře přehled stavu alarmů v dané skupině. V tomto okně lze alarmy prohlížet a kvitovat. Pokud je povoleno, pak 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". 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.

Otevření zaregistrovaného prohlížeče historie v podobě obrazu obsahující objekt PmgEventViewer pomocí objektu PmaEventGroup.
Příklad:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oCreator = Pm.CreateView(null, "/Events/#history", "pars:{filter:{source:boiler1;}}", "target:main;");
oCreator.Open();

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 PmaTimer.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, protože si to lze představit tak, že eventy se deaktivují a kvitují již při své aktivaci. Aktivace eventů se povádí ve skriptu pomocí metod PmaEventGroup.ActivateNew, PmaEventGroup.Activate nebo PmEventItem.Activate.

Ve spuštěné aplikaci lze prohlížet seznam skupin eventů 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 skupin eventů je přehled všech skupin eventů. Dvojklikem levým tlačítkem myši na název kterékoliv skupiny eventů se otevře okno pro přehled historie dané skupiny. V tomto okně lze prohlížet historii všech eventů v dané skupině.

Historie:
Pm8.03.00:
- Historii lze nyní ukládat i do MS SQL databáze a Oracle databáze (viz konfigurátor "Typ uložení").
- Prohlížeč historie:
- Místo scrollbaru jsou nyní tlačítka "nahoru" a "dolů".
- Zprovozněno třídění sestupně a vzestupně podle času vzniku, tzn. nové alarmy teď mohou být nahoře.
- Prohlížeč stavu i historie lze nyní otevřít vícekrát najednou, například lze mít malé okno otevřené pořád a velké okno otevřít jen někdy.
Pm8.02.09:
- Při přepínání mezi prohlížečem stavu a historie se nezachovalo nastavení podskupin a filtrace.
- V prohlížeči stavů na Webu je oprava pro větší množství zobrazených alarmů.
Pm8.02.05: Pokud v objektu PmaAlarmGroup byl konfigurátor "Typ uložení" nastaven na hodnotu "Vzdálené připojení přes Web", pak:
- někdy správně nefungovala metoda GetHistoryData.
- prohlížeč stavů při otevření na chvíli zobrazil alarmy ve špatných barvách. Oprava dána i do verze Pm8.1.11.
- prohlížeč historie někdy způsobil pád systému. Oprava dána i do verze Pm8.1.11.
- během kvitace vzdáleným uživatelem se nyní předávají lepší informace o tomto uživateli. Oprava dána i do verze Pm8.1.11.
- prohlížeč stavů nezobrazoval sloupce u klienta AckerId a UserNote. Oprava dána i do verze Pm8.1.11.
Pm8.02.00:
- Nyní lze historii ukládat i do dBase DBF souborů, viz konfigurátor "Typ uložení" a "Parametry pro typ: dBase III soubor (*.dbf)".
- Při ukládání do textových souborů již nevznikají soubory typu *.alc/*.evc ve kterém byl seznam záloh. Seznam záloh se nyní tvoří automaticky.
Pm8.01.11: Pokud v objektu PmaAlarmGroup byl konfigurátor "Typ uložení" nastaven na hodnotu "Vzdálené připojení přes Web", pak:
- prohlížeč stavů při otevření na chvíli zobrazil alarmy ve špatných barvách. Oprava dána i do verze Pm8.2.5.
- prohlížeč historie někdy způsobil pád systému. Oprava dána i do verze Pm8.2.5.
- po kvitaci vzdáleným uživatelem se nyní předávají lepší informace o tomto uživateli. Oprava dána i do verze Pm8.2.5.
- klient u prohlížeče stavů nezobrazoval sloupce AckerId a UserNote. Oprava dána i do verze Pm8.2.5.
Pm8.00.11: Na OS Windows XP při otevírání okna prohlížeče se někdy zobrazily nepřekreslené šedé plochy.
Pm8.00.10: pro Web prohlížení historie zlepšeno ovládání scrollbaru.
© MICROSYS, spol. s r.o.