Komunikacja OPC DA w prototypowym zestawie mikroprocesorowym
Transkrypt
Komunikacja OPC DA w prototypowym zestawie mikroprocesorowym
Pomiary Automatyka Robotyka 4/2007 Komunikacja OPC DA w prototypowym zestawie mikroprocesorowym Andrzej Bożek Dariusz Rzońca Standard OPC uważany jest za skomplikowany, dlatego na razie występuje jedynie w większych systemach automatyki. Poniższy artykuł opisuje budowę stosunkowo prostego zestawu laboratoryjnego z komunikacją według standardu OPC DA. OPC (OLE for Process Control) jest modelem wymiany danych przeznaczonych dla systemów automatyki. Bazuje na technologiach obiektów OLE, COM oraz DCOM firmy Microsoft [1]. Jest to nowoczesny standard, coraz powszechniej stosowany w dużych systemach. Umożliwia połączenie urządzeń automatyki z oprogramowaniem sterującym, jak też lokalną bądź zdalną wymianę danych pomiędzy aplikacjami. Nad jego rozwojem i tworzeniem kolejnych specyfikacji czuwa fundacja OPC Foundation [2]. W Katedrze Informatyki i Automatyki Politechniki Rzeszowskiej opracowano w ramach praktyki studenckiej prototypowy zestaw laboratoryjny umożliwiający poznanie budowy zarówno klienta jak i serwera OPC DA. Standard OPC Komponenty programowe komunikujące się w standardzie OPC tworzą relację klient-serwer. Typowy serwer OPC pośredniczy w wymianie danych pomiędzy właściwym urządzeniem automatyki a aplikacjami klienckimi [3]. Bywa on zintegrowany sprzętowo z danym urządzeniem lub działa jako autonomiczny moduł. Wymiana danych może odbywać się przy wykorzystaniu dwojakiego rodzaju interfejsów: custom lub automation [4], z których drugi jest opcjonalny. W opisywanym rozwiązaniu używane są wyłącznie interfejsy typu custom. Istnieje kilka specyfikacji standardu OPC wyróżnionych ze względu na rodzaj danych oraz sposób zarządzania. Podstawowymi są: OPC DA (Data Access) – umożliwia wymianę bieżących danych. Polega to na zapisach lub odczytach danych serwera dokonywanych przez klientów, względnie na wysyłaniu przez serwer do klienta określonego zestawu danych, gdy ich wartości ulegają zmianom. OPC HDA (Historical Data Access) – pozwala na gromadzenie i przekazywanie danych uszeregowanych czasowo. Cechą charakterystyczną OPC HDA jest możliwość wyznaczania wartości różnorodnych 12 Andrzej Bożek, Politechnika Rzeszowska mgr inż. Dariusz Rzońca, Politechnika Rzeszowska funkcji, np. minimów, maksimów, średnich, interpolacji itp. OPC A&E (Alarms and Events) – służy do powiadamiania o stanach i sytuacjach wymagających szczególnej uwagi operatora lub bezpośredniej reakcji urządzeń współpracujących. Serwery OPC A&E wykrywają warunki alarmów i zdarzeń w urządzeniach współpracujących. Klientami OPC A&E są stacje operatorskie oraz urządzenia archiwizujące. Specyfikacja OPC DA jest spotykana najczęściej zarówno w pojedynczych urządzeniach, jak i w rozbudowanych systemach. Klient OPC DA po połączeniu z odpowiednim serwerem ma dostęp do jego struktury danych. Jest to przeważnie struktura hierarchiczna, podobna do drzewa katalogowego w systemach plików. Rozmieszczenie elementów (items) odzwierciedla fizyczne bądź logiczne zależności występujące między nimi. Pozycje skrajne, pozbawione odgałęzień, odpowiadają określonym danym dostępnym dla klientów. Są one przechowywane w postaci tzw. własności (properties) przynależnych pozycjom [5]. Pozycja może zawierać bardzo liczny zbiór własności (identyfikator jest liczbą 16-bitową), jednak niektóre z nich są wyróżnione i w sposób szczególny obsługiwane przez serwer. Jako fundamentalne należy wymienić wartość (value), jakość (quality) i stempel czasowy (time stamp). Wartość pozycji dotyczy np. poziomu cieczy, natężenia przepływu, prędkości itd. Zmiana rzeczywistego wejścia pociąga za sobą aktualizację wartości w serwerze OPC. Klient może dokonać zapisu nowej wartości do serwera, co spowoduje modyfikację rzeczywistego wyjścia. Informacja o czasie ostatniej modyfikacji wartości jest przechowywana jako stempel czasowy. Jakość określa stopień poprawności danej na jaki może liczyć w danej chwili klient. Bezpośrednie odczyty lub zapisy wartości pozycji zawartych w strukturze danych serwera nie stanowią typowej metody wykorzystania standardu OPC DA. Preferowaną formą komunikacji jest użycie grup (groups) będących logicznym zbiorem pozycji, które serwer zakłada na życzenie klienta. Pozwalają one na pożądaną segregację pozycji niezależną od hierarchii danych serwera. Mechanizm grup umożliwia także zlecenie serwerowi zawiadamiania klientów o zmianach wartości wybranych pozycji grupy. Jest to bardzo pożą- Pomiary Automatyka Robotyka 4/2007 dany mechanizm, zwłaszcza gdy klient jest przyłączony do wielu pozycji, których intensywność zmian jest niewielka. W takim przypadku zawiadomienia z serwera są bardziej ekonomicznym trybem pracy, niż cykliczne odpytywanie przez klienta. Prototypowy zestaw laboratoryjny Zestaw laborator yjny z komunikacją według standardu OPC DA został oparty na systemie uruchomieniowym MegaAVR pokazanym na rys. 1. System został opracowany jako uniwersalny moduł mikroproceso row y i stanowi pomoc dyda k t yczną podcza s zajęć dot yczących mikrokontrolerów. Za jedRys 1. System uruchomienostkę centralną służy niowy MegaAVR mikrokontroler ATmega 128 [6] z rodziny Atmel AVR. Moduł wyposażony jest w następujące peryferia: wyświetlacz LCD, klawiatura, diody LED, przetwornik ADC, zegar RTC, interfejs RS-232. z przykładów firmy VISCOM [7]. Dzięki temu uzyskano kod w całości jawny, bez dołączanych bibliotek lub modułów związanych z obsługą OPC, które z reguły są odpłatne. Przykładowe okno podczas pracy z programem pokazano na rys. 3. Oprogramowanie serwera utworzone zostało za pomocą pakietu DANSrv OPC DA Server Toolkit Evaluation firmy Advosol [8]. Wykorzystano znowu środowisko Visual C# 2005 .NET. Z uwagi na wersję ewaluacyjną oprogramowania serwer jest aktywny tylko przez 30 min po uruchomieniu. Potem przestaje aktualizować dane i należy dokonać restartu – zamknięcia i ponownego uruchomienia. Ograniczenie to nie jest szczególnie uciążliwe przy badawczym i dydaktycznym wykorzystaniu zestawu. Moduł serwera zaimplementowany w systemie uruchomieniowym MegaAVR komunikuje się z komputerem PC za pomocą łącza szeregowego. Program ten stworzono od podstaw korzystając z pakietu WinAVR z kompilatorem avr-gcc. Struktura danych OPC została zdefiniowana w module MegaAVR, jak to pokazano na rys. 4. Organizowanie hierarchii danych polega na tworzeniu listy struktur języka C opisujących pozycje oraz ich własności. Jedna z gałęzi struktury zawiera pozycje reprezentujące typy danych, które może obsługiwać serwer. Naturalnie ze- Rys 2. Struktura zestawu laboratoryjnego W skład zestawu laboratoryjnego wchodzą następujące elementy pokazane na rys. 2: a) klient OPC współpracujący z serwerami OPC DA w wersjach 1.0, 2.0 oraz 3.0 b) moduł programowy serwera PC bezpośrednio łączący się z klientami, wspierający OPC DA 2.0 i 3.0 c) system uruchomieniowy MegaAVR komunikujący się z serwerem przez port szeregowy d) dodatkowe układy przyłączone do modułu MegaAVR za pomocą magistrali 1-wire. Program klienta został napisany w środowisku Microsoft Visual C# 2005 .NET. Część kodu definiująca interfejsy odwołujące się do obiektów COM pochodzi Rys 3. Program klienta OPC DA Rys 4. Fragment kodu dla systemu MegaAVR definiującego strukturę danych serwera staw tych typów jest znacznie ograniczony w stosunku do pełnego zestawu typów OPC. Pozostałe gałęzie pozwalają na dostęp do elementów sprzętowych modułu, m.in. do zegara czasu rzeczywistego, klawiszy, diod LED, wyświetlacza LCD oraz do magistrali 1-wire [9]. W ramach obsługi 1-wire można poprzez OPC określić liczbę urządzeń przyłączonych do magistrali, odczytać 64-bitowe identyfikatory oraz odczytać temperaturę z przyłączonych czujników DS18B20. W dość prosty sposób można tę strukturę danych modyfikować i rozszerzać. Całą budowę serwera w postaci uproszczonego schematu blokowego ukazuje rys. 5. Uwzględniono na nim zarówno właściwe składniki serwera OPC, jak i elementy systemu MegaAVR, stanowiące źródło danych. O funkcjonowaniu oprogramowania jako serwera OPC decydują w pierwszym rzędzie obiekty COM, widoczne w lewej części rysunku, a zwłaszcza ich interfejsy, zaznaczone symbolicznie poszerzonymi strzałkami, które 13 Pomiary Automatyka Robotyka 4/2007 którego metody są wywoływane przez dany interfejs. Napis na strzałce określa interfejs, a pod strzałką metody interfejsu. Rysunek ukazuje reprezentatywny, ale nie kompletny zbiór interfejsów i metod, co wynika z dużej ich liczby. Szczegółową listę i opisy zawiera wspomniana już specyfikacja [5]. Zazwyczaj klient wywołuje metody serwera, istnieją jednak także interfejsy pozwalające na wywoływanie pewnych metod zaimplementowanych w programie klienta, które pozwalają m.in. na zawiadamianie przez serwer o zmianach wartości pozycji w grupach. Poziom interfejsów COM jest Rys 5. Schemat blokowy hierarchii serwera OPC z uwzględnieniem fizycznego źródła fragmentem omawianego zestawu, danych który w sposób ścisły podlega założeniom specyfikacji OPC, aby zapewnić muszą być zgodne z określoną specyfikacją. Obiekt serkompatybilność z innymi modułami programowymi wera (OPCServer) ma charakter podstawowy i stanowi podobnego typu. Kompatybilność potwierdziły udane funkcjonalny punkt wyjścia do odwoływania się do popróby łączenia klienta z różnymi serwerami i serwera żądanych zasobów. Zbiór wszystkich pozycji przypoz różnymi klientami OPC DA. rządkowany jest statycznie obiektowi serwera. Za pomocą odpowiednich metod obiektu serwera tworzone Podsumowanie są dynamicznie obiekty grupy (OPCGroup). Po utwoStworzony zestaw prototypowy dobrze ukazuje zasadnirzeniu, grupy zarządzane są przez własne interfejsy, cze właściwości struktur OPC DA. Pozwala na zapoznabezpośrednio przyłączane do klienta, bez pośrednictwa nie się z komunikacją w relacji klient-serwer, przeglądaobiektu serwera. Poszczególne pozycje (OPCItems) renie w programie klienckim struktury danych serwera, prezentujące dane, choć stanowią integralne składniki dokonywanie odczytów i zapisów wartości pozycji seroprogramowania serwera, nie są obiektami COM i nie wera powodujących zmiany w sprzętowym funkcjonomają interfejsów, dostęp do nich możliwy jest albo za waniu modułu MegaAVR. Odczytane dane oprócz warpomocą obiektu serwera albo obiektów grup. tości zawierają stempel czasowy i oznaczenie jakości. Strukturę połączenia komunikacyjnego OPC DA Zestaw umożliwia także zapoznanie się z mechanizmem między klientem a serwerem na poziomie interfejsów grup OPC DA, łącznie z funkcją zawiadamiania klientów COM przedstawia rys. 6. Grot strzałki wskazuje obiekt, o zmianach wartości pozycji w serwerze. Zgodność ze standardem pozwala na wykorzystanie innej aplikacji klienta lub serwera, w szczególności przyłączenie do istniejącego systemu automatyki. W ramach dalszych prac planowane jest rozbudowanie aplikacji serwera o obsługę protokołu MODBUS, co pozwoli na akwizycję danych z typowych aparatowych urządzeń automatyki. Bibliografia Rys 6. Połączenie OPC DA klient-serwer na poziomie interfejsów COM 14 1. OPC Common Definitions, Version 1.0, OPC Foundation 1998. 2. http://www.opcfoundation.org/ 3. OPC Overview. OPC Foundation 1998. 4. Simicz A.: Zintegrowane środowisko projektowania i testowania regulatorów do sterowania rozproszonego, Pomiary Automatyka Robotyka 11/2006. 5. OPC Data Access Custom Interface Specification, Version 3.00. OPC Foundation 2003. 6. ATmega 128 Datasheet. Atmel 2003. 7. http://www.codeproject.com/dotnet/opcdotnet.asp 8. http://www.advosol.com/pc-5-4-dansrv-net-server-toolkit.aspx 9. Book of iButton Standards. Dallas Semiconductor Corp. 2002.