Promotic

System alarmów i Eventów

Alarmy oraz eventy to w systemie PROMOTIC pojęcia do wychwytywania i zarządzania zdarzeń technologicznych.
- Alarm to wychwycone zdarzenie technologiczne (np. usterka zaworu), które powstanie, zaniknie i jest wymagane, żeby użytkownik przyjął je do wiadomości tzw. potwierdzenie.
- Event to prostszy rodzaj zdarzenia (np. czynność użytkownika), które tylko powstanie i jest wymagane tylko jego zapisanie.

Oba obiekty są bardzo podobne i z tego powodu mają wspólne niektóre metody. Dla jednej grupy alarmów jest przeznaczony obiekt PmaAlarmGroup, dla grupy eventów obiekt PmaEventGroup. Takich obiektów może być w aplikacji większa ilość. (np. jeżeli chcesz mieć osobno alarmy komunikacyjne i technologiczne lub osobno eventy z kotłowni i z suszarni, itd.)

Wytworzenie konkretnego alarm/eventu:
Konkretny alarm/event można wytworzyć (tzn. zdefiniować w celu jego późniejszej aktywacji/deaktywacji/potwierdzenia, itd.) na kilka różnych sposobów:
- Rozszerzenie danych: Wykorzystać Rozszerzenie danych jest najbardziej standardowym i najprostszym sposobem do wytworzenia alarm/eventu. Jest zdefiniowany w zakładce danych obiektu PmaData. System przeprowadza kontrolę przekroczenia limitów i według tego aktywuje/deaktywuje alarm. Można zastosować Rozszerzenie danych typu AlarmAnalog, AlarmBinary, ExtEvent.
- Statyczne alarmy/eventy: Alarmy (lub eventy) można określić bezpośrednio w obiekcie PmaAlarmGroup (lub PmaEventGroup) w karcie "Pozycje". Takie alarmy/eventy nestępnie muszą być aktywowane w skrypcie przy pomocy metody Activate.
- Dynamiczne alarmy/eventy: Jeżeli jest wymagane żeby alarmy/eventy nie musiały zostać z góry zdefiniowane, wtedy można w karcie "Pozycje" zdefiniować tzw. wzór (patrz konfigurator "Szablon dla dynamicznie wytwarzanych pozycji") i dane alarmy/eventy następnie można wytworzyć dynamicznie w skrypcie przy pomocy metod PmaAlarmGroup.RegisterNew lub PmaAlarmGroup.ActivateNew.


Wytworzenie grupy przy pomocy kilka obiektów:
Jeżeli chcesz mieć tylko jedną grupę alarmów/eventów (żeby było na przykład możliwe wspólne przeglądanie wszystkich tych alarmów) lecz chcesz wytworzyć tą grupę przy pomocy kilka obiektów PmaAlarmGroup (np. dla każdego kotła chcesz mieć własny obiekt PmaAlarmGroup), wtedy można to uczynić w następujący sposób:
Wytwórz jeden obiekt PmaAlarmGroup, który będzie służyć jako podstawa (korzeń - root) dla wszystkich dalszych obiektów. Odpowiednio ustaw go, lecz nie wolno w tym obiekcie wytworzyć żadnego alarm/eventu. W innych odpowiednich miejscach następnie możesz wytwarzać dalsze obiekty PmaAlarmGroup, w których zakreślisz konfigurator "Rodzic aktywny" i wypełnisz ścieżkę do obiektu podstawowego. W taki sposób wytworzonych obiektach następnie wytworzysz wymagane alarmy/eventy.
Zarządzanie tymi alarmami/eventami będzie się odbywać nad tymi obiektami, lecz wewnętrznie wszystko zostanie skierowane do podstawowego obiektu. Alarmy/eventy można następnie przeglądać wspólnie, można je zapisywać do wspólnego pliku, itd.

Grupa lokalna (serwer) i grupa odległa (klient):
- Grupa lokalna (serwer) - najczęstszy przypadek, kiedy alarm/event grupa przedstawia miejsce w aplikacji, w którym alarm pozycje rzeczywiście powstają i są zapisywane na dysku komputera. Stosowany jest typ zapisu "Plik tekstowy (*.al)" lub "Plik dBase III (*.dbf)" - patrz konfigurator "Typ zapisania".
- Grupa odległa (klient) - przypadek, kiedy aplikacja wyświetla alarmy/eventy powstające i przechowywane w innej aplikacji (serwer), która może działać na innym komputerze. Stosowany jest typ zapisu "Odległe połączenie poprzez Web" - patrz konfigurator "Typ zapisania".


Przeglądanie alarmów/eventów:
Do przeglądania alarmów/eventów służy obiekt PmgAlarmStateViewer, PmgAlarmHistoryViewer lub PmgEventViewer. Obiekt ten wraz z następnymi obiektami (przyciski, teksty) znajduje się w panelu i w ten sposób tworzy przeglądarkę stanu alarmów, historii alarmów lub historii eventów. Zazwyczaj przeglądarka jest zarejestrowana w obiekcie PmaAlarmGroup lub w obiekcie PmaEventGroup. Poprzez zarejestrowanie przeglądarki do grupy alarmów/eventów dana grupa uzyska zdolność pośredniczenia wyświetlania w przeglądarce swoich alarmów/eventów. Otwarcie zarejestrowanej przeglądarki (tworzonej panelem) za pośrednictwem grupy alarmów/eventów jest o wiele prostsze od otwieranie bezpośrednio przeglądarki, ponieważ grupa automatycznie dostarczy przeglądarce wszystkie ważne parametry, które w drugim przypadku musiały by zostać przekazane podczas otwarcia. Zarejestrowanie przeglądarki do grupy upraszcza otwieranie przeglądarki dla danej grupy alarmów/eventów.
Wytworzenie przeglądarki alarmów własnymi środkami nie jest prostym zadaniem. Dlatego system PROMOTIC zawiera konfiguracje wstępne wszystkich trzech podstawowych przeglądarek (stanu alarmów, historii alarmów oraz historii eventów). Panel przeglądarki podczas zmiany rozmiaru w runtime skaluje swoją zawartość (zwiększa, przesuwa obiekty graficzne) oraz działa również w Webie. Podczas tworzenia nowej grupy alarmów/eventów można wybrać opcję wytworzenia odpowiednich przeglądarek. Przeglądarkę można wytworzyć również kiedykolwiek później korzystając z konfiguracji wsępnej, którą projektant może swobodnie modyfikować.
Zarejestrowane przeglądarki otwierane są za pośrednictwem PmaAlarmGroup lub PmaEventGroup określając typ /#state lub /#history. Do dodanych parametrów sParams metody Pm.CreateView zostaną uzupełnione (tylko jeżeli nie zostały dodane) podstawowe parametry oraz zostaną przekazane przeglądarce (obiekt PmaPanel). Podstawowe parametry panela zarejestrowanej przeglądarki:
- filter: Łańcuch filtra określający, które alarmy/eventy mają zostac wyświetlone. Parametr ten jest dostarczany w metodzie Pm.CreateView. Jeżeli nie zostanie dostarczony (jest pusty) wtedy zostaną wyświetlone wszystkie alarmy/eventy.
- grouppath: Ścieżka do grypy alarmów/eventów. Jest dostarczana automatycznie (jeżeli nie została określona) podczas otwierania zarejestrowanej przeglądarki.
- statepath: Ścieżka do otwarcia przeglądarki stanu alarmów. Służy tylko w przeglądarce historii alarmów i jest przeznaczona do przełączenia do przeglądarki stanu alarmów. Jest dostarczana automatycznie (jeżeli nie została określona) podczas otwierania zarejestrowanej przeglądarki.
- historypath: Ścieżka do otwarcia przeglądarki historii alarmów. Służy tylko w przeglądarce stanu alarmów i jest przeznaczona do przełączenia do przeglądarki historii alarmów. Jest dostarczana automatycznie (jeżeli nie została określona) podczas otwierania zarejestrowanej przeglądarki.
 
Otwarcie konkretnej zarejestrowanej przeglądarki za pośrednictwem grypy alarmów/eventów wraz z przykładami pokazano w następujących punktach.

Następujący opis alarmów/eventów różni się i dlatego będziemy je opisywać oddzielnie:

Alarmy

Alarm oznacza sygnalizację stanu, który w zwykłych warunkach nie powinien wystąpić (np. przekroczenie zakresu technologicznego danej wartości, błąd komunikacji, itd.).

Otwarcie zarejestrowanej przeglądarki stanu/historii w formie panela zawierającego obiekt PmgAlarmStateViewer/PmgAlarmHistoryViewer przy pomocy obiektu PmaAlarmGroup.
Przykład:
JavaScriptWybierz oraz skopiuj do schowka

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


Pojęcia podstawowe:
Aktywacja (powstanie) alarmu: Istnieje sytuacja, kiedy dany alarm stanie się aktywnym. Na przykład dojdzie do uszkodzenia pompy. Alarm może zostać zaktywowany jednym z następujących sposobów:
1. W skrypcie przez wywołanie metody PmaAlarmGroup.Activate lub PmAlarmItem.Activate - odpowiednie dla istniejących alarm pozycji.
2. W skrypcie przez ustawienie właściwości PmAlarmItem.Active - odpowiednie do prostej aktywacji/dezaktywacji.
3. W skrypcie przez wywołanie metody PmaAlarmGroup.ActivateNew - odpowiednie do wytworzenia nowej alarm pozycji według wzoru.

Sprawdzenie, czy alarm jest aktywny można przy pomocy właściwości PmAlarmItem.Active.
Dezaktywacja alarmu: Istnieje sytuacja, kiedy dany alarm przestanie być aktywnym. Na przykład pompa przestanie być uszkodzona. Alarm może zostać dezaktywowany jednym z następujących sposobów:
1. W skrypcie przez wywołanie metod PmaAlarmGroup.Inactivate lub PmAlarmItem.Inactivate.
2. W skrypcie przez ustawienie właściwości PmAlarmItem.Active - odpowiednie dla prostej aktywacji/dezaktywacji.
Potwierdzenie alarmu: Istnieje sytuacja, kiedy użytkownik w aplikacji potwierdzi dany alarm. Na przykład potwierdzi, że przyjął do wiadomości, że pompa jest (lub była) uszkodzona. Alarm może być potwierdzony jednym z następujących sposobów:
1. Potwierdzeniem alarmu w oknie przeglądu stanu alarmów danej grupy.
2. W skrypcie przez wywołanie metod PmaAlarmGroup.Acknowledge lub PmAlarmItem.Acknowledge.

Uwaga: Użytkownik musi posiadać uprawnienie "Acknowledge". Sprawdzić, czy alarm jest potwierdzony można przy pomocy właściwości PmAlarmItem.Acknowledged.


Każdy alarm może znajdować się w jednym z następujących stanów:
Stan alarmu: Opis:
aktywny niepotwierdzony (czerwony) Alarm, który został zaktywowany i nie doszło do jego dezaktywacji ani użytkownik nie przyjął go do wiadomości (nie potwierdził).
aktywny potwierdzony (żółty) Alarm, który został zaktywowany, nie doszło do jeho dezaktywacji i użytkownik potwierdził go. Ten stan nie występuje u alarmów, gdzie konfigurator "Typ potwierdzenia" jest ustawiony na "2 = po potwierdzeniu także automatyczna deaktywacja".
nieaktywny niepotwierdzony (niebieski) Alarm, który został dezaktywowany lecz użytkownik jeszcze go nie potwierdził. Ten stan nie występuje u alarmów, gdzie konfigurator "Typ deaktywacji" jest ustawiony na "2 = przy deaktywacji także automatyczne potwierdzenie".
nieaktywny potwierdzony (zielony) Alarm, który jest dezaktywowany i jeżeli jest to konieczne to został potwierdzony przez użytkownika.

Przy zmianie stanu każdego alarmu zostanie wywołane zdarzenie PmaAlarmGroup.onStateChange w obiekcie PmaAlarmGroup w którym dany alarm został zdefiniowany.

Alarmy przeczuwające (opóźnienie aktywacji i deaktywacji):
Ustawia się w konfiguratorach Opóźnienie aktywacji [sec] oraz Opóźnienie deaktywacji [sec], które umożliwiają nieaktywowanie/niedeaktywowanie alarmu w bieżącej chwili, lecz zamiast tego wprowdzają alarm do stanu przeczucia aktywacji lub przczucia deaktywacji. Przeczucie po ustawionym odcinku czasu zmieni się w rzeczywistą aktywację/deaktywację alarmu albo przeczucie zaniknie.
Dzięki temu można w łatwy spósób zabronić zbytecznemu powstawaniu/zanikaniu alarmów przez chwilowe wahania w wartościach monitorowanych danych, na przykład spowodowane zakłóceniami lub błędami komunikacji. W ten sposób można również implementować alarmy dla czynności z 'timeoutem', kiedy na początku takiej czynności jest aktywowany alarm z opóźnioną aktywacją i przy stwierdzeniu pomyślnego zakończenia czynności alarm należy deaktywować. Jeżeli w określonym czasie nie dojdzie do pomyślnego zakończenia czynności, wtedy alarm w podejrzeniu po określonym czasie powstanie automatycznie.

W przeglądarce stanu alarmów każdy alarm znajduje się zazwyczaj tylko raz. Dla każdego alarmu jest tam przedstawiony jego najbardziej aktualny stan.
Jeżeli alarm ma w ustawieniu zakreśloną opcję Usuń nieaktywne potwierdzone (zielone), wtedy dany alarm zniknie z listy aktywnych alarmów, jeżeli znajdzie się w stanie nieaktywny potwierdzony (zielony).
Jeżeli wartość konfiguratora "Liczba alarmów nieaktywnych, niepotwierdzonych starszych kopii (niebieskich) danego alarmu" obiektu PmaAlarmGroup jest większe niż 1, wtedy alarmy, które wymagają potwierdzenia, pozostają w liście również przy aktywacji nowego alarmu tej samej nazwy. I tylko w tym przypadku może wystąpić sytuacja, kiedy w przeglądarce stanu alarmów znajduje się większa takich samych alarmów.

W uruchomionej aplikacji można przeglądać listę grup alarmów kliknięciem na ikonę "Alarmy". Ikona znajduje się w pasku narzędzi, który zostanie automatycznie wytworzony przy założeniu nowej aplikacji.
W oknie listy grup alarmów znajduje się przegląd wszystkich grup. Przy każdej grupie alarmów jest przedstawiona ilość alarmów:
- dźwięczących.

Poprzez dwukrotne kliknięcie lewym przyciskiem myszki na nazwę dowolnej grupy zostanie otwarta lista stanów alarmów określonej grupy. W tym oknie można alarmy przeglądać i potwierdzać. Jeżeli jest zezwolone, wtedy można także ustawić i zapisać (przyciski "Ustawienia" i "Zapisz") szerokości kolumn, kolory stanów alarmów, format wyświetlenia czasu, itd.
Każda linia przeglądarki informuje tylko o czasie ostatniej aktywacji/dezaktywacji/potwierdzeniu alarmu. Pełną historię wszystkich alarmów można wyświetlić kliknięciem przycisku "Historia". Tym sposobem otworzy się okno do przeglądania historii wszystkich alarmów w danej grupie.

Eventy

Event jest oznajmieniem o wykonaniu pewnej czynności (np. rozpoczęcie, dokończenie lub pomyślność wykonania jakiegoś procesu, itd.). Oznajmienie to jest zapisywane na dysk twardy w celu późniejszego przeglądania. W ten sposób wytwarza się tak jakby "kronika" o działaniu całej technologii.

Otwarcie zarejestrowanej przeglądarki historii w formie panela zawierającego obiekt PmgEventViewer przy pomocy obiektu PmaEventGroup.
Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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

Zaniast słowa "event" można użyć "zdarzenie". Słowo "zdarzenie" jest wszak w tej dokumentacji zarezerwowane dla obiektu (każdy obiekt może posiadać zdarzenia jako na przykład zdarzenie PmaTimer.onTick) i dlatego poniżej będziemy posługiwać się określeniem "event".

W odróżnieniu od alarmów, eventy tylko aktywują się. Pojęcia jak "dezaktywacja" i "potwierdzenie" nie musimy w ich odniesieniu stosować, ponieważ można to sobie wyobrazić w ten sposób, że eventy dezaktywują się i potwierdzają się już przy swej aktywacji. Aktywacja eventów wykonuje się w skrypcie przy pomocy metod PmaEventGroup.ActivateNew, PmaEventGroup.Activate lub PmEventItem.Activate.

W uruchomionej aplikacji można przeglądać listę gup eventów kliknięciem na ikonę "Events". Ikona znajduje się w pasku narzędzi, który jest wytworzony automatycznie przy założeniu nowej aplikacji.
W oknie listy grup eventów znajduje się przegląd wszystkich grup eventów. Poprzez dwukrotne kliknięcie lewym przyciskiem myszki na nazwę dowolnej grupy eventów otworzy się okno z przeglądem historii danej grupy. W tym oknie można przeglądać historię wszystkich eventów w danej grupie.

Historia:
Pm8.03.00:
- Dane historyczne można teraz zapisywać również do Baza danych MS SQL oraz Baza danych Oracle (patrz konfigurator "Typ zapisania").
- Przeglądarka historii:
- Zamiast paska przewijania są teraz przyciski "w górę" oraz "w dół".
- Usprawnione zostalo sortowanie malejąco oraz narastająco według czasu powstania, tzn. nowe alarmy teraz mogą znajdować się u góry.
- Przeglądarkę stanu oraz historii można teraz otworzyć wielokrotnie jednocześnie, na przykład można mieć wciąż otwarte małe okno a doże okno otworzyć tylko niekiedy.
Pm8.02.09:
- Podczas przełączania pomiędzy przeglądarką stanu a historii nie zostało zachowane ustawienia podgrup oraz filtrów.
- W przeglądarce stanów w Webie znajduje się poprawka dla większej ilości wyświetlonych alarmów.
Pm8.02.05: Jeżeli w obiekcie PmaAlarmGroup był konfigurator "Typ zapisania" ustawiony na wartość "Odległe połączenie poprzez Web", wtedy:
- czasem nie działała poprawnie metoda GetHistoryData.
- podczas otwarcia przeglądarka stanu chwilowo wyświetliła alarmy innymi kolorami. Korekta jest wprowadzona również do wersji Pm8.1.11.
- przeglądarka historii czasem spowodowała zawieszenie systemu. Korekta jest wprowadzona również do wersji Pm8.1.11.
- podczas potwierdzenia przez użytkownika sieciowego obecnie są przekazywane dokładniejsze informacje o danym użytkowniku. Korekta jest wprowadzona również do wersji Pm8.1.11.
- przeglądarka stanu nie wyświetlała kolumny u klienta AckerId oraz UserNote. Korekta jest wprowadzona również do wersji Pm8.1.11.
Pm8.02.00:
- Historię można obecnie zapisywać również do dBase DBF plików, patrz konfigurator "Typ zapisania" oraz "Parametry dla typu: Plik dBase III (*.dbf)".
- Przy zapisywaniu do plików tekstowych już nie powstają pliki typu *.alc/*.evc, w których znajdowała się lista kopii zapasowych. Lista kopii zapasowych jest obecnie wytwarzana automatycznie.
Pm8.01.11: Jeżeli w obiekcie PmaAlarmGroup był konfigurator "Typ zapisania" ustawiony na wartość "Odległe połączenie poprzez Web", wtedy:
- podczas otwarcia przeglądarka stanu chwilowo wyświetliła alarmy innymi kolorami. Korekta jest wprowadzona również do wersji Pm8.2.5.
- przeglądarka historii czasem spowodowała zawieszenie systemu. Korekta jest wprowadzona również do wersji Pm8.2.5.
- po potwierdzeniu przez użytkownika sieciowego obecnie są przekazywane dokładniejsze informacje o danym użytkowniku. Korekta jest wprowadzona również do wersji Pm8.2.5.
- przeglądarka stanu nie wyświetlała kolumny u klienta AckerId oraz UserNote. Korekta jest wprowadzona również do wersji Pm8.2.5.
Pm8.00.11: Pod SO Windows XP podczas otwierania okna przeglądarki niekiedy zostały wyświetlone nieodświeżone szare obszary.
Pm8.00.10: ulepszone funkcjonowanie paska przewijania przy przeglądaniu historii w przeglądarce Webowej.
© MICROSYS, spol. s r.o.