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.
Vytvoření skupiny pomocí více objektů:
Pokud chcete mít pouze 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
"Databáze dBase backups" - 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řít 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ě kdykoli 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čuje, 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:
2. Ve skriptu nastavením vlastnosti
PmAlarmItem.Active - vhodné pro jednoduchou aktivaci/deaktivaci.
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:
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.
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 pouze 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 "
Počet 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 stavů 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 stavů 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();
Dim oCreator
Set oCreator = Pm.CreateView(Empty, "/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
pouze 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ě.