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 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 ExtAlarmAnalog, ExtAlarmBinary, ExtEvent.
- Statické alarmy/eventy: Alarmy a eventy lze definovat přímo v objektu PmaAlarmGroup nebo PmaEventGroup v záložce "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 lze v záložce "Položky" 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 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í PmaAlarmGroup objekt), 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 něm 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 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í".
 
V dalším se popis pro alarmy/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.).
 
Prohlížení alarmů:
 
K prohlížení alarmů slouží objekt PmgAlarmStateViewer nebo PmgAlarmHistoryViewer umístěný spolu s dalšími obslužnými objekty v obraze. Ten je obvykle zaregistrován v objektu PmaAlarmGroup.
Příklad:
JavaScriptVBScriptVyber a zkopíruj do schránky

pMe.PmPanel.OpenView("/alarmy/#state", "target:main;");
//nebo
pMe.PmPanel.OpenView("/alarmy/#history", "target:main;");
 
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 je alarm 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 = při 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 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é 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 aktuálních stavů (PmaAlarmGroup.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 PmaAlarmGroup 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 alarm 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 PmaAlarmGroup.WndState) 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.
 
Prohlížení alarmů:
 
K prohlížení událostí slouží objekt PmgEventViewer umístěný spolu s dalšími obslužnými objekty v obraze. Ten je obvykle zaregistrován v objektu PmaEventGroup.
Příklad:
JavaScriptVBScriptVyber a zkopíruj do schránky

pMe.PmPanel.OpenView("/eventy/#history", "target:main;");

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 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 se otevře okno pro přehled historie dané skupiny. V tomto okně lze prohlížet historii všech eventů v dané skupině.

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