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.
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ć następująco:
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
"Baza danych dBase backups" - 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 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śla, 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 otwarcia 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 otwarcia 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 otwarcia 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 stanów/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:
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 szablonu.
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:
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.
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 lub 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 "
Ilość 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();
Dim oCreator
Set oCreator = Pm.CreateView(Empty, "/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ę "Eventy". 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.