Promotic
WikipediaLinkedInYoutubeTwitterFacebook

System Alarmów i Zdarzeń

Alarmy i 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.

Z powodu dużego podobieństwa tych pojęć, sfera ta w systemie PROMOTIC rozwiązuje się wspólnie przy pomocy obiektu PmAlarmEvent. Takich obiektów może być w aplikacji większa ilość - wytworzysz w ten sposób więcej grup alarmów/eventów (np. jeżeli chcesz mieć osobno alarmy komunikacyjne i technologiczne lub osobno eventy z kotłowni i z suszarni, itd.) Jednak przed wytworzeniem takiego obiektu określi się, czy dany obiekt będzie użyty do zarządzania alarmami czy też eventami. Jeden obiekt tego typu nie może być więc przeznaczony równocześnie do zarządzania alarmami i eventami.

 
Wytworzenie konkretnego alarmu/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 sposobemdo wytworzenia alarmu/eventu. Jest zdefiniowany w zakładce danych obiektu PmData. System przeprowadza kontrolę przekroczenia limitów i według tego aktywuje/deaktywuje alarm. Można wykorzystać Rozszerzenie danych typu ExtAlarmAnalog, ExtAlarmBinary, ExtEvent.
- Statyczne alarmy/eventy: Alarmy i eventy można definiować bezpośrednio w obiekcie PmAlarmEvent w zakładce Lista. 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 zakładce Lista zdefiniować tzw. wzór (patrz konfigurator "Szablon dla dynamicznie wytwarzanych pozycji") i dane alarmy/eventy następnie wytwarzać dynamicznie w skrypcie przy pomocy metod PmAlarmEvent.RegisterNew lub PmAlarmEvent.ActivateNew.
 
Wytworzenie grupy przy pomocy większej ilości 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 większej ilości obiektów PmAlarmEvent (np. dla każdego kotła chcesz mieć własny PmAlarmEvent obiekt), wtedy można to uczynić w następujący sposób: Wytwórz jeden obiekt PmAlarmEvent, 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 alarmu/eventu. W innych odpowiednich miejscach następnie możesz wytwarzać dalsze obiekty PmAlarmEvent, w których zakreślisz opcję 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/event pozycje rzeczywiście powstają i są zapisywane na dysku komputera. Stosowany jest rodzaj zapisu "Plik tekstowy (*.al, *.ev)" 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 rodzaj zapisu "Odległe połączenie poprzez Web" - patrz konfigurator "Typ zapisania".
 
Przeglądanie alarmów/eventów:

Przeglądać można stan bieżący oraz historię.

Przy pomocy metody PmAlarmEvent.WndState można wyświetlić stan bieżący. To jest praktyczne zwłaszcza w wypadku alarmów. Tak można widzieć zawsze ostatni stan alarmu, czas jego powstania, potwierdzenia, itd. Alarmy można także potwierdzać.

Przy pomocy metody PmAlarmEvent.WndHistory można przeglądać historię. To jest praktyczne jak dla alarmów tak i dla zdarzeń. Pozycje są uporządkowane według czasu powstania (aktywacji) i można widzieć, jak alarmy/eventy powstawały w czasie jeden po drugim.

 
Następujący opis alarmów i zdarzeń różni się, 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.).
 
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 PmAlarmEvent.Activate lub PmAlarmEventItem.Activate - odpowiednie dla istniejących alarm/event pozycji.
2. W skrypcie przez ustawienie właściwości PmAlarmEventItem.Active - odpowiednie do prostej aktywacji/dezaktywacji.
3. W skrypcie przez wywołanie metody PmAlarmEvent.ActivateNew - odpowiednie do wytworzenia nowej alarm/event pozycji według wzoru.

Sprawdzenie, czy alarm jest aktywny można przy pomocy właściwości PmAlarmEventItem.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 PmAlarmEvent.Inactivate lub PmAlarmEventItem.Inactivate.
2. W skrypcie przez ustawienie właściwości PmAlarmEventItem.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 stanów alarmów danej grupy.
2. W skrypcie przez wywołanie metod PmAlarmEvent.Acknowledge lub PmAlarmEventItem.Acknowledge.

Uwaga: Użytkownik musi posiadać upoważnienie Acknowledge. Sprawdzić, czy alarme jest potwierdzony można przy pomocy właściwości PmAlarmEventItem.Acknowledged.

 
Każdy alarm może znajdować się w jednym z następujących stanów:
Stan alarmu: Opis:
aktywny oraz 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 oraz 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, które majł konfigurator Typ potwierdzenia ustawiony na "2 = przy potwierdzeniu także automatyczna deaktywacja".
nie aktywny oraz nie potwierdzony (niebieski) Alarm, który został dezaktywowany lecz użytkownik jeszcze go nie potwierdził. Ten stan nie występuje u alarmów, które mają konfigurator Typ deaktywacji ustawiony na "2 = przy deaktywacji także automatyczne potwierdzenie".
nie aktywny oraz 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 w systemie PROMOTIC dochodzi do wywołania zdarzenia PmAlarmEvent.onStateChange w obiekcie PmAlarmEvent w którym dany alarm został zdefiniowany.

 
Alarmy przeczuwające (opóznienie aktywacji i deaktywacji):

Ustawia się w konfiguratorach Opóźnienie aktywacji [sec] i 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 'limitem czasu', 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 bieżącego (PmAlarmEvent.WndState) każdy alarm znajduje się w większości 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 nie aktywny oraz potwierdzony (zielony).

Jeżeli wartość w konfiguratorze Ilość alarmów nie aktywnych, nie potwierdzonych (niebieskich) obiektu PmAlarmEvent 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 znajduje się większa ilość stanów takich samych alarmów.

 
W uruchomionej aplikacji można przeglądać listę grup alarmowych przez kliknięcie na ikonę "Alarmy". Ikona znajduje się w pasku narzędziowym, który zostanie automatycznie wytworzony przy założeniu nowej aplikacji.

W oknie listy grup alarmowych znajduje się przegląd wszystkich grup alarmowych. Przy każdej grupie alarmowej jest przedstawiona ilość alarmów

- dźwięczących.

Przez podwójne kliknięcie na nazwę dowolnej grupy alarmowej (lub w skrypcie przez wywołanie metody PmAlarmEvent.WndState) otworzy się przegląd bieżącego stanu alarmów w danej grupie. W tym oknie można alarmy przeglądać i potwierdzać. Jeżeli jest to dozwolone, wtedy można także ustawić i zapisać (przyciski "Nastawienie" i "Zapisać") 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ć przez naciśnięcie przycisku "Historia" lub w skrypcie przez wywołanie metody PmAlarmEvent.WndHistory. 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.

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 PmTimer.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ć, albowiem 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 poprzez wywołanie metod PmAlarmEvent.ActivateNew, PmAlarmEvent.Activate lub PmAlarmEventItem.Activate.
 
W uruchomionej aplikacji można przeglądać listę gup eventów przez kliknięcie na ikonę "Events". Ikona znajduje się w pasku narzędziowym, który zostanie automatycznie wytworzony przy założeniu nowej aplikacji.

W oknie listy grup eventowych znajduje się przegląd wszystkich grup eventowych. Przez podwójne kliknięcie na nazwę dowolnej grupy eventów (lub w skrypcie przez wywołanie metody PmAlarmEvent.WndHistory) otworzy się okno z przeglądem historii danej grupy. W tym oknie można przeglądać historię wszystkich eventów w danej grupie.

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