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.

Podobne dokumenty