Oprogramowanie SCADA w praktyce automatyka - Część 1

| Technika

W praktyce inżyniera-automatyka kontakt z narzędziami SCADA/HMI jest bardzo częsty. Chociaż na rynku dostępny jest szereg różnego rodzaju oprogramowania tego typu, a narzędzia te mają wiele cech wspólnych, wykorzystanie wybranych pakietów do tworzenia aplikacji SCADA wiąże się z koniecznością poznania ich cech charakterystycznych. W trzyczęściowym kursie przedstawiamy oprogramowanie Adroit 6, jak też omawiamy praktyczne projekty wykonane z jego pomocą.

Oprogramowanie SCADA w praktyce automatyka - Część 1

W praktyce inżyniera-automatyka kontakt z narzędziami SCADA/HMI jest bardzo częsty. Chociaż na rynku dostępny jest szereg różnego rodzaju oprogramowania tego typu, a narzędzia te mają wiele cech wspólnych, wykorzystanie wybranych pakietów do tworzenia aplikacji SCADA wiąże się z koniecznością poznania ich cech charakterystycznych. W trzyczęściowym kursie przedstawiamy oprogramowanie Adroit 6, jak też omawiamy praktyczne projekty wykonane z jego pomocą.

Adroit jest zaawansowanym, 32-bitowym oprogramowaniem przemysłowym typu SCADA, dostępnym również w ograniczonej funkcjonalnie wersji jako HMI. System może być wykorzystany do wizualizacji parametrów i kontroli procesu przemysłowego, przy czym jego obiektowa architektura typu serwer-klient pozwala na stosowanie go w przypadku pojedynczych stanowisk, jak i rozbudowanych instalacjach wielostanowiskowych.

Definicje pojęć stosowanych w oprogramowaniu SCADA

Ze względu na stosowaną w Adroit terminologię, która różni się nieco w stosunku do wykorzystywanej w podobnych programach, zaczniemy od wyjaśnienia najczęściej używanych określeń:

  • Agent (inaczej: tag, bramka, zmienna) to podstawowy blok w Adroit, który charakteryzują pewne unikalne właściwości. Zawiera on nie tylko dane, ale również procedury, które pozwalają zarządzać tymi danymi. Najczęściej używanymi agentami są Analog oraz Digital, istnieją również inne ich typy – Expression, MultiState, Recipei Alarm. Po stworzeniu agenta staje się on domyślnie zmienną wewnętrzną, która jest niepodłączona do zewnętrznej zmiennej urządzenia. Zmienna ta nie jest zapisywana do wewnętrznej bazy.
  • Agent Server jest obiektem zawierającym wszystkie agenty wykorzystane w danym projekcie. Po uruchomieniu programu wczytywane są do niego biblioteki DLL, które identyfikują każdy typ agenta.
  • Slot to element zawierający informacje dotyczące powiązanego z nim agenta. Po utworzeniu agenta sloty tworzone są automatycznie, przy czym z każdym typem agenta powiązane są sloty różnego rodzaju. Najczęściej używane są: value, rawvalue, lo, hi i agentDescription. Sloty mogą być używane tylko z nazwą agenta, poprzez rozdzielenie jej separatorem w postaci kropki – np. „Nazwa_agenta.value”, „Nazwa_agenta.lo”.
  • Mimika – obraz graficzny przedstawiający dany obiekt w trybie edycji oraz w trybie rzeczywistym (runtime). Mimika jest tworzona na podstawie obrazka (picture), który jest widoczny tylko w trybie edycji.
  • Behaviors (zachowania) – nadaje obiektom graficznym umieszczonym w mimice właściwości w zależności od wartości slotu agenta. Umożliwia również zmianę wartości stanu agenta z poziomu mimiki. Dostępne są różne opcje zachowania w zależności od typu agenta – najbardziej typowe to: Display Value - wyświetlenie wartości, Operator Action- zmiana wartości lub stanu agenta, Blinking - funkcja migania, Location - zmiana położenia, Rotation - obrót.
  • Wizards – obiekty graficzne, który znajdują się w bibliotece elementów i mogą być używane wielokrotnie. Mogą one dodatkowo zawierać powiązania ze zmiennymi, które nadają im właściwości dynamiczne. Obiekt może być również związany z szablonem synoptyki – template.
  • Template (szablon) jest również mimiką, przy czym ma on dodatkowe właściwości. Każdą stworzoną mimikę można ustawić jako szablon, który może być wykorzystywany wielokrotnie bez potrzeby kopiowania i tworzenia nowego obrazu. Szablonem może być okno mimiki, wykresu, alarmu i zdarzenia.
  • Configurator jest programem umożliwiającym tworzenie i edycję agentów. Wywołanie konfiguratora odbywa się poprzez wybranie File->Open Configurator. Jeśli zostaną wprowadzone w nim zmiany, ich zapisanie do bazy następuje dopiero po wykonaniu zapisu (File->Save). Poniżej przedstawiono widok okna konfiguratora, przy czym dostępne są następujące opcje:
    • Find – odszukuje istniejącego agenta,
    • Add – dodaje nowego agenta,
    • Copy – kopiuje istniejącego agenta,
    • Edit – edytuje podstawowe parametry,
    • Header – wyświetla stan bitów słowa statusu dla danego agenta, umożliwiając ustawienie bitów kontrolnych dla poszczególnych slotów,
    • Groups – umożliwia wybranie grupy do której ma należeć agent,
    • Using – przedstawienie informacji przez jakiego agenta lub funkcję używany jest dany agent,
    • Scan – umożliwia podłączenie danego slotu agenta do urządzenia zewnętrznego - zazwyczaj jest to slot rawvalue. Możliwe jest skanowanie więcej niż jednego slotu w jednym agencie,
    • Alarm – umożliwia ustawienie progów alarmowych dla danego agenta,
    • Log – uruchamia opcję zapisu danego slotu do bazy wewnętrznej Adroit (może być zapisany więcej niż jeden slot tego samego agenta),
    • Remove – kasuje agenta z bazy danych. Funkcja może być wykonana pod warunkiem, że agent nie jest używany przez inną funkcję-agenta,
    • Help – uruchamia funkcję pomocy dla konfiguratora.

Instalacja oprogramowania Adroit SCADA

Zanim utworzony zostanie pierwszy projekt, zapoznajmy się z informacjami dotyczącymi instalacji oprogramowania oraz cechami jego składników.

Rys. 1. Widok okna konfiguratora
Rys. 2. Widok okna konfiguracyjnego oprogramowania Adroit 6

Pod koniec procesu instalacji wyświetlone zostanie okno konfiguracyjne przedstawione na rys. 2, które zawiera podstawowe ustawienia projektu użytkownika (w przykładzie wprowadzone zostały ustawienia na potrzeby tego kursu). Nazwa projektu Project Name jest dowolna - w tym przypadku dla łatwiejszej identyfikacji wprowadzono nazwę KURS APA. W polu Agent Server Name należy wprowadzić nazwę programu-serwera, który przetwarza i udostępnia dane dla innych programów (np.AS_Kurs_APA). Pole Auto-Load Filename zawiera ścieżkę do pliku konfiguracyjnego, który przechowuje dane wszystkich agentów-tagów. Plik ten jest zawsze wczytywany podczas uruchamiania aplikacji użytkownika.

Rys. 3. Zalecana struktura katalogu projektu użytkownika

Tym, co jest istotne podczas tworzenia aplikacji, jest struktura katalogów projektu. Domyślnie tworzony jest folder AdroitProject, a zalecana struktura katalogów została przedstawiona na rys. 3.

W poszczególnych folderach umieszczane są odpowiednie pliki, co ułatwia zarządzanie projektem i wykorzystanie jego elementów w różnych aplikacjach. Po wprowadzeniu podstawowych danych i zakończeniu instalacji na pulpicie pojawią się nowe ikony skrótów do najczęściej używanych programów.

Składniki oprogramowania Adroit

Po zainstalowaniu oprogramowania Adroit w folderze programu znajduje się dużo plików uruchamialnych oraz bibliotek typu „*.dll”. Ograniczymy się do opisania kilku programów, do których skróty zostały umieszczone w pasku zadań - najważniejszymi z tej grupy są Agent Server, Agent Server (timed license), Classic User Interface oraz Setup. Pozostałe pliki zostaną omówione w następnych częściach kursu.

Aby zainstalować oprogramowanie Adroit 6 wymagany jest komputer osobisty z procesorem o minimalnej wydajności analogicznej do Intel Pentium III 800MHz. Konieczne jest posiadanie 256MB pamięci operacyjnej i 120MB przestrzeni na dysku twardym. Ponadto do instalacji wymagany jest napęd CD-ROM i klucz zabezpieczający HASP, który dołączany jest przez port równoległy lub USB - jako nośnik licencji. Interfejs graficzny wyświetlany jest w rozdzielczości 1024x768 pikseli. Program może być uruchomiony jedynie na systemach operacyjnych wywodzących się z Windows NT, takich jak np. Windows 2000 i Windows XP. Oprogramowanie nie może być zainstalowane na platformie Windows XP Home Edition.

Program Agent Server (timed license) służy do zbierania, przetwarzania i zapisywania danych, w tym również z urządzeń zewnętrznych, takich jak sterowniki PLC. Udostępnia on dane dla innych składników oprogramowania Adroit 6. Program w omawianej wersji (timed license) pozwala na korzystanie z pełnych funkcji oprogramowania przez czas jednej godziny, po czym wymaga ponownego uruchomienia. Z kolei Agent Server ma funkcjonalność analogiczną do omawianego programu, przy czym wymaga on klucza licencyjnego i nie ma ograniczeń czasowych w działaniu. Kolejny element – Setup - to program, który zawiera podstawowe informacje o ustawieniach projektu. Jeśli zamierzamy utworzyć nowy projekt lub zmienić ustawienia projektu istniejącego, należy wprowadzić je w tym programie. Wszystkie zmiany uwzględniane są dopiero po ponownym uruchomieniu Agent Server. Program Classic User Interface (CUI) umożliwia tworzenie nowych obrazów synoptycznych – mimik oraz pracę w tzw. trybie runtime. W trybie tym wyświetlane może być kilka okien mimik jednocześnie, przy czym mogą być to okna typu synoptyki, wykresy, zdarzenia, itp. CUI jest najczęściej używanym składnikiem oprogramowania i pozwala również na tworzenie nowych agentów-tagów, obiektów graficznych, funkcji oraz łączenie tych elementów ze sobą.

Poprawna kolejność uruchomienia poszczególnych składników oprogramowania jest następująca – najpierw tworzona jest nowa konfiguracja w programie Setup, następnie uruchamiany jest Agent Server, który korzysta z nowej konfiguracji. Na koniec uruchamiany jest program CUI. Aby programy Agent Server i CUI wczytywane były automatycznie po uruchomieniu się komputera należy umieścić je w grupie Autostart. Wadą takiego rozwiązania jest fakt, że Agent Server zostanie uruchomiony dopiero po zalogowaniu użytkownika do systemu, a więc dane nie będą gromadzone w pamięci od momentu pełnego włączenia się systemu. Można to ominąć instalując Agent Server jako usługę serwisową działającą w tle – opcja ta jest dostępna w zakładce Service programu Setup.

Tworzenia projektu w Adroit

Tworzenie nowego projektu rozpoczynamy od wprowadzenia ustawień w programie Setup. Dane wprowadzane są w taki sam sposób, jak odbywało się to pod koniec instalacji pakietu Adroit. Następnie należy zdefiniować sposób podłączenia do AS (w zakładce UI Connection). Jeśli serwer znajduje się na innym komputerze, można połączyć się z nim wybierając opcję Enable the I connect to any one of the following Agent Servers. Możliwy jest wybór opcji automatycznego (Automatic tracking) lub ręcznego połączenia z serwerem.

Pierwszy projekt będzie realizowany w konfiguracji z serwerem znajdującym się na tym samym serwerze, co interfejs użytkownika. W tym przypadku nie ma konieczności wprowadzania zmian w opisanej powyżej zakładce. W kolejnej zakładce - UI Preferences zmieniane mogą być ustawienia związane z maksymalną liczbą otwartych okien. Takie ograniczenia pozwalają na uzyskanie pewności, że system nie przestanie działać z powodu braku miejsca na dane w pamięci RAM. Prawa część okna związana jest z ustawieniami ścieżki dostępu do folderu projektu, które są istotne podczas wykorzystywania zaawansowanych funkcji oprogramowania związanych z przenoszeniem projektu do innego folderu.

Instalacja protokołu komunikacyjnego w Adroit

Urządzenia z którymi ma komunikować się program, zdefiniowane są w zakładce Drivers. Przykładowy widok okna z zainstalowanym protokołem do sterowników PLC firmy Samsung Automation przedstawiony został na rys. 4. Ponieważ po instalacji dostępne są tylko dwa protokoły, następne można dodawać klikając przycisk Install. Wszystkie pliki obsługujące protokoły znajdują się w katalogu Drivers i dostarczane są razem z oprogramowaniem, natomiast najnowsze wersje protokołów dostępne są na stronie http://www.adroit.co.za/SupportDownloadDrivers.asp

Rys. 4. Widok okna Setup z zakładką Drivers
Rys. 5. Widok okna konfiguracyjnego urządzenia NX7_2 z protokołem Samsunga
Rys. 6. Widok okna konfiguracyjnego urządzenia NX7_MOD z protokołem Modbus RTU
Rys. 7. Widok okna edycji obrazów synoptycznych

Po instalacji protokołu komunikacyjnego można dodać nowe urządzenie. Należy w tym celu ustawić kursor na ikonie protokołu i kliknąć Add. W następnym oknie podajemy dowolną nazwę urządzenia, a po zatwierdzeniu (rys. 4 i 5) należy wprowadzić ustawienia: adres urządzenia, port komunikacyjny, prędkość transmisji, kontrola parzystości, liczba bitów stopu oraz powtórzenia. Niektóre dodatkowe parametry pojawiają się w zależności od typu protokołu komunikacyjnego. Proponowane ustawienia dla protokołu komunikacyjnego Samsunga i Modbus RTU dla sterownika PLC NX7 zostały przedstawione na rys. 5 i 6. Możliwe jest dodanie więcej niż jednego urządzenia pod warunkiem, że dany protokół umożliwia pracę w sieci, a interfejs fizyczny jest zgodny z RS422/485 lub Ethernet. Kolejne zakładki - Eventlog i Service związane są z zaawansowanymi ustawieniami i na tym etapie kursu nie będą omawiane.

SCADA Adroit - obrazy synoptyczne - mimiki

Następnym krokiem jest uruchomienie programów Agent Server (timed licensed) oraz Classic User Interface. Na rys. 7 przedstawiono widok CUI z nowym obrazkiem (picture), zostały również oznaczone najważniejsze przyciski.

Nowe okno można utworzyć wybierając z menu File->New, a następnie wskazać jego typ – np. Picture. Właściwości okna zmienia się poprzez dwukrotne kliknięcie w dowolnym jego miejscu. Po ustawieniu wielkości okna można zapisać obszar pracy przy pomocy File->Save Workspace i przystąpić do procesu tworzenia nowych agentów.

Adroit - tworzenie agentów analogowych i binarnych

W menu File->Open Configurator dodajemy nową zmienną typu analogowego o nazwie np. REJ1 i opisie Rejestr 1 – test1. Po jej utworzeniu wybieramy opcję Edit w konfiguratorze i otwieramy okno z podstawowymi ustawieniami zakresów i progów alarmowych. Na rys. 8 przedstawiony został widok okna z wprowadzonymi parametrami.

Rys. 8. Widok okno konfiguracji agenta typu Analog

Parametry te można w dowolnej chwili zmieniać zarówno z poziomu konfiguratora, jak i z poziomu mimiki (obrazy synoptyki) w trybie Runtime (on-line). Projektant systemu decyduje, jakie sloty będą dostępne z synoptyki – przykładowo wszystkie sloty (pola edycji) przedstawione na rys. 8 można umieścić na obrazie i zmieniać ich ustawienia. Zmiany takie wprowadzone zostają do pliku konfiguracji i znajdują odzwierciedlenie w innych miejscach – tam gdzie został użyty dany agent.

Obiekty dynamiczne w systemie Adroit

Rys. 9. Widok okna mimiki podczas wstawiania elementu typu tekst

Następnym krokiem jest pokazanie właściwości agenta na mimice. W trybie edycji wybieramy Text (skrót klawiaturowy: Ctrl+F7), umieszczamy go w dowolnym miejscu i klikamy dwukrotnie, wybierając Behaviors. Następnie należy z dostępnych funkcji wybrać Display Value. Wybrana funkcja musi zostać połączona ze zmienną-agentem, co odbywa się przez kliknięcie pola Edit i wybór z listy agentów zmiennej oraz slotu Value. Poszczególne czynności zostały pokazane na rys. 9 i 10. Po zatwierdzeniu zmian przyciskami OK i Finishprzechodzimy do trybu Runtime, wybierając opcję Window->Toggle View. Na rys. 11 przedstawiony został efekt wykonanej pracy. Po utworzeniu agenta jego wartość powinna wynosić zero. Aby móc zmieniać wartość należy dodać nowe zachowanie – Operator Action. W tym celu wykonujemy operację analogiczną do Display Value (rys. 12).

W ten sposób w systemie Adroit została utworzona pierwsza aplikacja. Aby system uruchamiany był w trybie Runtime, po włączeniu interfejsu użytkownika należy jeszcze raz zapisać obszar pracy wybierając opcję File->Save Workspace. Po zamknięciu i ponownym uruchomieniu UI, od razu zostanie wyświetlona mimika w trybie Runtime.

Rys. 10. Widok okna mimiki podczas dodawania specjalnych własności
Rys. 11. Okno UI w trybie Runtime podczas wyświetlania wartości agenta
Rys. 12. Widok okna podczas dodawania własności - operator Action
Rys. 13. Widok okna UI podczas zmiany wartości agenta

Następną czynnością jest utworzenie agenta typu Digital. W oknie konfiguratora wybieramy grupę Digital i wpisujemy dowolną nazwę agenta w polu Name (w aplikacji testowej użyto nazwy „BIT_1” i opisu „Bit 1 – test 1”). Agent typu Digital ma mniej slotów niż typu Analog i może być w dwóch stanach binarnych, tj. 0 i 1. Dla tych stanów użytkownik może wprowadzić opisy tekstowe, które będą również umieszczone na mimice. W tym celu w trybie edycji klikamy przycisk Button (skrót klawiaturowy Ctrl+F8). W polu Button text wprowadzamy tekst „Bit 1=%s", a następnie dodajemy zachowania: Background color (BIT_1.value), Display Value (BIT_1.textvalue) oraz Operator Action (BIT_1.value). Ustawiamy również typ akcji na Digital Toggle, co pokazane zostało na rys. 14. Efekty działania po wprowadzeniu wszystkich zmian obserwować można na rys. 15.

Rys. 14. Widok okna podczas wstawiania elementu typu przycisk
Rys. 15. Widok UI z działającym elementem typu przycisk

Podsumowanie wstępnych informacji o Adroit

W pierwszej części cyklu artykułów dotyczących Adroit przedstawione zostały podstawowe informacje dotyczące omawianego oprogramowania, sposób instalacji oraz zasady tworzenia aplikacji. Na zakończenie opisane zostaną ogólne cechy funkcjonalne Adroit, z których niektóre omówione zostaną szczegółowo w kolejnych częściach kursu.

Program Adroit jest jednolitym narzędziem do tworzenia aplikacji – wszystkie jego elementy i dodatki dostarczane są z każdym pakietem oprogramowania. Instalowana jest również biblioteka elementów dynamicznych – tzw. wizards, na którą składa się ponad 500 zdefiniowanych obiektów, które mogą zostać wykorzystane do szybkiego tworzenia aplikacji. Są to obiekty, takie jak symbole przycisków, lampek, mierników, silników, pomp, zbiorników, itd. Programista może utworzyć również swoje własne symbole, które wykorzystane zostaną w przyszłych projektach.

Licencja oprogramowania pozwala na tworzenie nielimitowanej liczby bramek wewnętrznych – ograniczeniami licencyjnymi objęte są jedynie bramki (agenty) wymieniane z zewnętrznym serwerem. Można przy tym wykorzystać agenta typu Marshall, który umożliwia redukcję koniecznych licencji dzięki zapisowi szesnastu zmiennych bitowych do PLC, które traktowane są jako jedna zmienna I/O. Podczas korzystania z Adroit możliwe jest programowanie on-line, dzięki czemu nie ma potrzeby zatrzymywania sterownika komunikacyjnego podczas wprowadzania nowych bramek-agentów. Można również dodawać "w locie" nowe wykresy, okna alarmowe oraz zmieniać i dodawać elementy w obrazach synoptycznych. Standardowo z pakietem podstawowym dostarczane jest ponad 80 sterowników komunikacyjnych do różnych urządzeń, w tym również do najbardziej popularnych sterowników PLC.

W oprogramowaniu Adroit wykorzystywana jest grafika wektorowa, tj. taka, jaka stosowana jest w programach typu CAD, co znacząco zwiększa możliwości manipulacji obiektami. Oprogramowanie wspiera szablony synoptyk, dzięki czemu operacje eksportu i importu nie wymagają ponownej konfiguracji obiektów i znacząco ułatwiają pracę. Edycja w głównym szablonie umożliwia automatyczne wprowadzanie zmian we wszystkich synoptykach. Program wyposażony jest również w edytor do pisania skryptów w Visual Basic i Java. Programista może operować na danych (również zewnętrznych), zarządzać operacjami na interfejsie użytkownika i wykonywać operacje matematyczne.

Oprogramowanie Adroit ma funkcję redundancji Active Cluster, dzięki czemu w przypadku awarii sprzętowej lub programowej użytkownik nie straci danych, ustawień sterowania i monitorowania. Program pozwala również na wysyłanie i odbieranie wiadomości SMS poprzez modem GSM. Daje to możliwość zdalnego sterowania, zmiany parametrów pracy i odczytywania alarmów. System umożliwia wymianę danych z innym oprogramowaniem, takim jak np. Microsoft Excel czy Access. Wykorzystuje się przy tym standardy: OLE, OLE DB, DDE, OPC, SQL i ActiveX. Adroit pozwala również inteligentnie zarządzać alarmami poprzez wyłączanie określonych grup alarmów, odwoływanie alarmów za pomocą zdarzeń i ich przekierowywanie na głośnik, drukarkę czy do bazy danych. W programie istnieje również funkcja „zdarzenia”, która jest globalną metodą dostarczającą informacji o działaniach operatora, alarmach, zdarzeniach systemowych, logowaniu do systemu, itp. Użytkownik może filtrować przychodzące zdarzenia według założonych kryteriów, jak też w łatwy sposób generować wykresy danych bieżących i historycznych bez przerywania pracy programu.

A w kolejnych częściach o oprogramowaniu Adroit...

W następnych częściach omówione zostaną m.in. sposoby połączenia Adroit ze sterownikiem PLC. Dociekliwych czytelników zachęcamy do zapoznania się z materiałami technicznymi i szkoleniowymi w języku polskim oraz angielskim, które zostały umieszczone na stronie dystrybutora systemu Adroit – firmy AT Control (www.atcontrol.pl) w dziale Centrum Techniczne.

Artykuł autorstwa specjalistów z firmy AT Control, opracowanie: Marcin Karbowniczek, Zbigniew Piątek.