BIBLIOTEKA ELEMENTÓW Alarmowych
Aby w pełni wykorzystać możliwości alarmu, graficzne oprogramowania Adroit, konieczne jest skorzystanie z biblioteki elementów. Program ma standardową bibliotekę alarmową, która jest instalowana razem z oprogramowaniem. Znajdujące się w niej elementy mogą być wykorzystane w całości lub częściowo, tj. po dokonaniu przeróbek. Wywołanie biblioteki alarmu odbywa się poprzez wybranie z menu File->Open w programie Agent Server. W pojawiającym się oknie dialogowym należy wybrać obiekt WizardMenu.mim, który domyślnie umieszczony jest w katalogu c:\\Adroit\\Wizards. Spowoduje to pojawienie się okienka, w którym możliwe jest oglądanie poszczególnych elementów biblioteki w systemie alarmowym. Przycisk Morę Wizards pozwala na przejście do następnej strony biblioteki, a przycisk Shapes wyświetla elementy statyczne alarmu.
Aby wykorzystać dany element w synoptyce, należy go zaznaczyć, a następnie wkleić na ekran synoptyki. Po wykonaniu tej czynności pojawi się okno Wizard substitution (rys. 1), w którym definiuje się zmienną powiązaną z danym elementem. Można ją wpisać ręcznie lub wybrać z listy. Zmienna musi być wcześniej zadeklarowana lub może być dodana w oknie wyboru Sełect Substitution Tag. Po zatwierdzeniu wyboru można sprawdzić, czy wszystko działa poprawnie poprzez alarmy, przełączenie mimiki do trybu Runtime.
Jako przykład zostanie wykorzystany gotowy element biblioteki. Warto
zaznaczyć, że możliwe jest stworzenie zupełnie nowych elementów alarmowych i umieszczenie ich w bibliotece. W przypadku ich modyfikacji warto zrobić kopię elementu i dopiero wtedy zmieniać jego właściwości. Większość elementów biblioteki składa się z kilku lub kilkudziesięciu części składowych zgrupowanych ze sobą. Jeżeli element po zgrupowaniu zawiera właściwości dynamiczne (behaviours), po rozgrupowaniu zostaną one utracone.
Strukturę połączeń poszczególnych elementów w obiekcie można zobaczyć poprzez zaznaczenie obiektu i wciśnięcie przycisku Ctrl i kliknięcie go myszką. Można wówczas dowolnie zmieniać dany element obiektu. Część elementów jest statyczna, ale niektóre zawierają dodatkowe właściwości dla systemu alarmowego. Klikając w oknie na Back-ground color, można zmieniać kolor obiektu. Zmieniając Descrip-tor: .value na .value, dokonuje się zmiany właściwości funkcji. Można również zmienić kolor, jaki ma się pojawić, jeżeli zmienna ma wartość 1 i 0.
Po zatwierdzeniu wpisanych zmian należy zapisać bibliotekę w katalogu Wizards projektu i przejść do trybu Runtime, następnie wybrać obiekt, przejść do mimiki i go wkleić. W pojawiającym się oknie Wizard Substitution w kolumnie Descriptor widoczny jest tekst dowolna zmienna
cyfrowa, a w polu Substitution należy podać nazwę zmiennej. W nawiasach < > przekazywany jest do obiektu parametr. Użycie danego elementu na synoptyce poprzez wprowadzenie nazwy agenta pozwala na przekazanie wartości tego agentajako parametru.
Takich
parametrów może być więcej niż jeden i mogą być różnego typu w systemach alarmowych. Do elementu typu wizard można również dodać inne dodatkowe właściwości alarmu. Przykładem może być taka zmiana elementu, aby sygnalizował on poprawną pracę urządzenia oraz awarię alarmu. W tym celu należy przejść do edycji obiektu w bibliotece i kliknąć obiekt, trzymając jednocześnie klawisz Ctrl. W oknie Celi contents należy wybrać właściwość Background color i zmienić tekst w nawiasach na . value, po czym zatwierdzić wprowadzone zmiany. Następnie należy kliknąć Elipsę wizard i dodać nową wartość Blinking oraz wprowadzić tekst .value. Można również zmienić kolor, typ i okres migania.
Jeśli wprowadzone zostaną zmiany w danym obiekcie biblioteki alarmowej, na ekranie synoptycznym istniejące obiekty zachowają swoje właściwości przed wprowadzonymi zmianami. Aby elementy na synoptyce miały właściwości obiektów z biblioteki, konieczne jest ich ponowne wprowadzenie. Warto pamiętać o tym, by obiekty biblioteki tworzone dla danej aplikacji systemu alarmowego były umieszczone w folderze projektu. Dobrą zasadą jest również wprowadzanie komentarzy dla danego obiektu. W omawianym przykładzie dodatkowo w konfiguratorze agentów zostały stworzone zmienne typu Digital o nazwie AWARIA i POTW_PRACY - alarmy. Po dodaniu obiektu z biblioteki należy wpisać nazwy zmiennych w oknie Wizard Substitution.
SZABLONY
Kolejnym elementem oprogramowania są szablony (mimie templates). Są one zasobnikami obiektów graficznych umieszczanych na synoptyce lub innych zdefiniowanych obiektów i mogą być wielokrotnie używane w danym projekcie systemu alarmowego. Zmiany wprowadzane w jednym szablonie znajdują odzwierciedlenie wszędzie tam, gdzie dany szablon został użyty. Jest to szczególnie użyteczne dla obiektów, które mają te same lub podobne właściwości i są wielokrotnie wykorzystywane w tym samym projekcie. Przykładem mogą być silniki, mieszadła, pompy, zawory itp. W oprogramowaniu Adroit szablonami mogą być obrazy synoptyczne, okna wykresów, alarmów lub zdarzeń. Każda nowo utworzona synoptyka może być szablonem. Z kolei utworzona mimika, wykres lub okno alarmowe mogą być przerobione na szablon. Najczęściej używane są tutaj okna synoptyk do tworzenia stacyjek dla obiektów graficznych w alarmach.
Poniżej przedstawiono przykład, w którym po kliknięciu przycisku pojawi się okno z wyświetloną wartością zmiennej analogowej oraz cyfrowej z możliwością interakcji ze strony użytkownika. W utworzonym oknie (File->New->Picture) należy wstawić dwa elementy typu Button oraz wykorzystać element typu lampka, który utworzony został wcześniej w bibliotece elementów. W tworzonym projekcie jeden przycisk będzie symulował potwierdzenie pracy urządzenia (zmienna typu Digital o nazwie POTW_PRACY), drugi awarię (zmienna typu Digital o nazwie AWARIA). Lampka będzie odzwierciedlała stan urządzenia. Dodatkowo wyświetlana będzie zmienna analogowa typu Counter, która będzie liczyła czas pracy urządzenia. Aby to zrobić należy stworzyć nową zmienną typu Counter o nazwie CZAS_PRA-CY, a jako parametr wejściowy Input Tag podać zmienną typu Digital o nazwie POTWJPRA-CY. W polu Trigger trzeba wybrać zmienną Systemlnfo.second, zaznaczyć pole Triggered i uruchomić agenta przyciskiem Start. Opcja Triggered określa, kiedy zmienna ma być uaktualniana na synoptyce alarmu.
Na szablonie jeden z przycisków zostanie nazwany Praca i otrzyma właściwość Operator Action. W polu Tag należy wpisać .value, a typ akcji ustawić na Digital Toggle. Drugi przycisk o nazwie Awaria należy skonfigurować w podobny sposób, z tym że w polu Tag powinno się znaleźć: .value. Dla lampki w oknie Wizard Substitution należy wpisać odpowiednio oraz < Sygnał potw pracy>. Po wstawieniu tych elementów
trzeba zapisać plik, np. pod nazwą Stacyjka.mim. Następną czynnością jest wybranie z menu View->Properties, przejście do zakładki Template i wprowadzenie nazwy w kolumnie Named set. W tym przykładzie użyto nazwy Urządzenie 1. W kolumnie Sygnał awaria\" należy wprowadzić nazwę zmiennej, która będzie sygnalizować stan awarii alarmu - w tym przypadku zmienna AWARIA. W kolumnie Sygnał potw pracy\" należy wprowadzić zmienną POTW_ PRACY. W przypadku większej liczby urządzeń należy dodawać kolejne przyciskiem Add. Okno konfiguracji w zakładce Template zostało przedstawione na rys. 6.
Po zatwierdzeniu zmian należy przejść do głównego obrazu synoptyki i wstawić nowy przycisk, np. wprowadzając nazwę Stacyjka oraz dodać nową funkcję Execute Com-mand. Dalsze czynności to wybór funkcji Open window, której typ należy ustawić na Operate picture oraz wpisanie nazwy Stacyjka.mim w polu File name. Należy również zaznaczyć opcję Enable substitution i wpisać wartość 1 w polu Use group. Pola te znajdują się w grupie opcji zaawansowanych.
Po ponownym zapisaniu zmian można przełączyć oprogramowanie do trybu Runtime. Obsługa licznika realizowana jest poprzez dodanie w oknie Stacyjka zmiennej typu Counter, która wyświetlać będzie czas pracy urządzenia alarmowego. Czynność ta rozpoczyna się od wstawienia obiektu Text, wpisania tekstu: Czaspracy=%s, dodania funkcji Display value i wprowadzenia w polu Tag zmiennej z parametrem .onTotalTi-me. Jako wyświetlany slot wybrany został onTotalTime, który zawiera wartość czasu załączenia w formie ciągu znaków typu String. Po zatwierdzeniu w kolumnie Czas pracy calk w zakładce Template właściwości okna należy wpisać nazwę CZAS_PRACY i przejść do trybu Runtime. Powielanie utworzonej stacyjki może odbywać się poprzez dodawanie następnych urządzeń w zakładce Template szablonu synoptyki alarmowej.
ARCHIWIZACJA DANYCH
W systemie Adroit przechowywane są jedynie bieżące wartości agentów w postaci plików konfiguracyjnych *.wgp. Możliwe jest cykliczne dokonywanie zapisów poprzez ustawienie slotu saveNow w agencie alarmu Systemln-fo, co można zrealizować przy użyciu agenta typu Expression i Digital. Po stworzeniu agenta typu Expression jako argument należy podać Syste-mlnfo.minute i sprawdzić, kiedy będzie on równy zeru. Jako wynik podaje się agenta typu Digital o nazwie ZAPIS 1GODZ .value, w którym trzeba ustawić parametr Pulsed output na wartość lOOms. Następnie należy skopiować do slotu SystemInfo.save-Now z agenta ZAPIS lGODZ.value, wybierając opcję Scan i jako sterownik wskazując Aliascan (rys. 8). Jako typ agenta należy wybrać Systemlnfo i slot SaveNow, natomiast jako adres źródłowy - @ZAPISlGODZ.value.
Możliwe jest również zapisywanie do bazy danych dowolnego typu agenta i różnych slotów. Aby przejść do okna konfiguracji, należy wybrać agenta w oknie konfiguratora i kliknąć na przycisk Log. Wyświetlone zostanie okno z ustawieniami do logowania danych -alarmy. W polu Data Set Configuration należy ustawić nazwę pliku, do jakiego zapisywana będzie wartość agenta. Pole Length określa, ile zapisywanych będzie danych historycznych, natomiast Time definiuje częstotliwość zapisywania próbki. Automatycznie wyliczana jest również wielkość pliku, w którym będą zapisywane dane. Po wprowadzeniu wszystkich ustawień należy uruchomić logowanie, klikając Start. Pozyskane dane zapisywane są do wewnętrznej bazy danych. Aby je wyeksportować, należy użyć narzędzia Extract. Można również zapisywać dane do zewnętrznej bazy typu Access, SQL, itd., do czego należy użyć agenta typu DbAccess.
ALARMY, WYKRESY
W systemie Adroit dostępne są standardowe okna wykresów, które mogą być łatwo wykorzystane w projekcie alarmowym. Jedno okno umożliwia przeglądanie danych bieżących i historycznych. Jeśli agent zapisywany jest do wewnętrznej bazy danych, będzie
on również widoczny na wykresie. W przypadku agenta, który nie jest zapisywany do bazy, jest on widoczny w oknie wykresu tylko w momencie, gdy okno wykresu jest otwarte. Jego zamknięcie spowoduje, że dane w systemie alarmu zostaną utracone.
Aby dodać nowe okno, należy wybrać z menu File->New->Trend, otworzyć właściwości okna, wybierając z menu górnego View->Pro-perties, a następnie w karcie Plot zdefiniować zmienne, które mają być umieszczone na wykresie. Możliwa jest również zmiana pozostałych parametrów, takich jak: kolory, ustawienia długości czasu okna, siatka na wykresie, itp. Okno wykresu może być również szablonem, który można wykorzystywać wielokrotnie, bez potrzeby każdorazowego definiowania jego parametrów. Aby wywołać okno wykresu z poziomu synoptyki, można przyporządkować elementowi typu przycisk funkcję Execute command w polu Window Type, wybierając Trend i wskazując nazwę pliku.
ALARMY
Bardzo istotnym elementem systemów SCADA są alarmy. Adroit charakteryzuje się również bardzo rozbudowanym systemem alarmowania. Możliwe jest definiowanie różnego rodzaju alarmów m.in. w zależności od priorytetu, docelowego użytkownika, miejsca zapisania i urządzeń audio, jakie mają być uruchamiane. Domyślnie tworzony jest jeden agent typu Alarm, a jako standardowe urządzenie audio przyporządkowany jest głośnik komputera osobistego. Aby go wyłączyć lub zdefiniować inne urządzenie dźwiękowe, należy wybrać agenta typu Alarm i zmienić wartość w polu Audio w zakładce default Alarm Agent (rys. 11).
W omawianym przykładzie wykorzystany zostanie istniejący agent typu Alarm. Po wystąpieniu alarmu w oknie alarmów powinien pojawić się odpowiedni komunikat. Aby tak się stało, należy wrócić do utworzonej wcześniej zmiennej typu Digital o nazwie AWARIA.
Artykuł autorstwa specjalistów z firmy AT Control, opracowanie: Marcin karbowniczek, Zbigniew Piątek