Komunikacja OPC DA z wykorzystaniem 1-wire.pdf

(642 KB) Pobierz
Rzonca.indd
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. Ba-
zuje 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 oprogramowa-
niem 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 Automa-
tyki Politechniki Rzeszowskiej opracowano w ramach
praktyki studenckiej prototypowy zestaw laboratoryjny
umożliwiający poznanie budowy zarówno klienta jak
i serwera OPC DA.
funkcji, np. minimów, maksimów, średnich, inter-
polacji itp.
OPC A&E ( Alarms and Events ) – służy do powiada-
miania o stanach i sytuacjach wymagających szcze-
gólnej uwagi operatora lub bezpośredniej reakcji
urządzeń współpracujących. Serwery OPC A&E wy-
krywają warunki alarmów i zdarzeń w urządzeniach
współpracujących. Klientami OPC A&E są stacje ope-
ratorskie oraz urządzenia archiwizujące.
Specyfikacja OPC DA jest spotykana najczęściej za-
równo w pojedynczych urządzeniach, jak i w rozbu-
dowanych systemach. Klient OPC DA po połączeniu
z odpowiednim ser werem ma dostęp do jego struktur y
danych. Jest to przeważnie struktura hierarchiczna, po-
dobna do drzewa katalogowego w systemach plików.
Rozmieszczenie elementów ( items ) odzwierciedla fi-
zyczne bądź logiczne zależności występujące między
nimi. Pozycje skrajne, pozbawione odgałęzień, odpowia-
dają 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 fun-
damentalne należy wymienić wartość ( value ), jakość
( quality ) i stempel czasowy ( time stamp ). Wartość po-
zycji 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. In-
formacja 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 stano-
wią 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 zle-
cenie serwerowi zawiadamiania klientów o zmianach
wartości wybranych pozycji grupy. Jest to bardzo pożą-
Standard OPC
Komponenty programowe komunikujące się w standar-
dzie OPC tworzą relację klient-serwer. Typowy serwer
OPC pośredniczy w wymianie danych pomiędzy właści-
wym urządzeniem automatyki a aplikacjami klienckimi
[3]. Bywa on zintegrowany sprzętowo z danym urządze-
niem lub działa jako autonomiczny moduł. Wymiana da-
nych 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 da-
nych serwera dokonywanych przez klientów, względ-
nie 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 uszeregowa-
nych czasowo. Cechą charakterystyczną OPC HDA
jest możliwość wyznaczania wartości różnorodnych
Andrzej Bożek, Politechnika Rzeszowska
mgr inż. Dariusz Rzońca, Politechnika Rzeszowska
12
217721796.008.png
Pomiary Automatyka Robotyka 4/2007
dany mechanizm, zwłaszcza gdy klient jest przyłączony
do wielu pozycji, których intensywność zmian jest nie-
wielka. W takim przypadku zawiadomienia z serwera
są bardziej ekonomicznym trybem pracy, niż cykliczne
odpytywanie przez klienta.
z przykładów firmy VISCOM [7]. Dzięki temu uzyskano
kod w całości jawny, bez dołączanych bibliotek lub mo-
dułów związanych z obsługą OPC, które z reguły są od-
płatne. Przykładowe okno podczas pracy z programem
pokazano na rys. 3.
Oprogramowanie serwera utworzone zostało za po-
mocą pakietu DANSrv OPC DA Server Toolkit Evaluation
firmy Advosol [8]. Wykorzystano znowu środowisko Vi-
sual C# 2005 .NET. Z uwagi na wersję ewaluacyjną opro-
gramowania 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 wykorzy-
staniu zestawu.
Moduł serwera zaimplementowany w systemie uru-
chomieniowym MegaAVR komunikuje się z kompu-
terem 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 modu-
le 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-
Prototypowy zestaw laboratoryjny
Zestaw laboratoryjny
z komunikacją według
standardu OPC DA został
oparty na systemie uru-
chomieniowym MegaAVR
pokazanym na rys. 1.
System został opraco-
wany jako uniwersalny
moduł mikroproceso-
rowy i stanowi pomoc
dydaktyczną podczas
zajęć dotyczących mi-
krokontrolerów. Za jed-
nostkę centralną służy
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.
Rys 2. Struktura zestawu laboratoryjnego
W skład zestawu laboratoryjnego wchodzą następu-
ją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 uruchomieniow y 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 Mi-
crosoft Visual C# 2005 .NET. Część kodu definiująca
interfejsy odwołujące się do obiektów COM pochodzi
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 po-
zwalają 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 ra-
mach obsługi 1-wire można poprzez OPC określić liczbę
urządzeń przyłączonych do magistrali, odczytać 64-bi-
towe 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 sche-
matu blokowego ukazuje rys. 5. Uwzględniono na nim
zarówno właściwe składniki serwera OPC, jak i ele-
menty 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, za-
znaczone symbolicznie poszerzonymi strzałkami, które
Rys 3. Program klienta OPC DA
13
Rys 1. System uruchomie-
niowy MegaAVR
217721796.009.png 217721796.010.png 217721796.011.png 217721796.001.png 217721796.002.png 217721796.003.png
Pomiary Automatyka Robotyka 4/2007
Rys 5. Schemat blokowy hierarchii serwera OPC z uwzględnieniem fizycznego źródła
danych
którego metody są wywoływane przez
dany interfejs. Napis na strzałce okre-
śla interfejs, a pod strzałką metody
interfejsu. Rysunek ukazuje reprezen-
tatywny, ale nie kompletny zbiór in-
terfejsów i metod, co wynika z dużej
ich liczby. Szczegółową listę i opisy
zawiera wspomniana już specyfikacja
[5]. Zazwyczaj klient wywołuje me-
tody serwera, istnieją jednak także in-
terfejsy 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 gru-
pach. Poziom interfejsów COM jest
fragmentem omawianego zestawu,
który w sposób ścisły podlega założe-
niom specyfikacji OPC, aby zapewnić
kompatybilność z innymi modułami programowymi
podobnego typu. Kompatybilność potwierdziły udane
próby łączenia klienta z różnymi serwerami i serwera
z różnymi klientami OPC DA.
muszą być zgodne z określoną specyfikacją. Obiekt ser-
wera (OPCServer) ma charakter podstawowy i stanowi
funkcjonalny punkt wyjścia do odwoływania się do po-
żądanych zasobów. Zbiór wszystkich pozycji przypo-
rządkowany jest statycznie obiektowi serwera. Za po-
mocą odpowiednich metod obiektu serwera tworzone
są dynamicznie obiekty grupy (OPCGroup). Po utwo-
rzeniu, grupy zarządzane są przez własne interfejsy,
bezpośrednio przyłączane do klienta, bez pośrednictwa
obiektu serwera. Poszczególne pozycje (OPCItems) re-
prezentujące dane, choć stanowią integralne składniki
oprogramowania serwera, nie są obiektami COM i nie
mają interfejsów, dostęp do nich możliwy jest albo za
pomocą obiektu serwera albo obiektów grup.
Strukturę połączenia komunikacyjnego OPC DA
między klientem a serwerem na poziomie interfejsów
COM przedstawia rys. 6. Grot strzałki wskazuje obiekt,
Podsumowanie
Stworzony zestaw prototypowy dobrze ukazuje zasadni-
cze właściwości struktur OPC DA. Pozwala na zapozna-
nie się z komunikacją w relacji klient-serwer, przegląda-
nie w programie klienckim struktury danych serwera,
dokonywanie odczytów i zapisów wartości pozycji ser-
wera powodujących zmiany w sprzętow ym funkcjono-
waniu modułu MegaAVR. Odczytane dane oprócz war-
tości zawierają stempel czasowy i oznaczenie jakości.
Zestaw umożliwia także zapoznanie się z mechanizmem
grup OPC DA, łącznie z funkcją zawiadamiania klientów
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 ist-
niejącego systemu automatyki. W ramach dalszych prac
planowane jest rozbudowanie aplikacji serwera o obsłu-
gę 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 interfej-
sów COM
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 rozproszo-
nego , Pomiary Automatyka Robotyka 11/2006.
5. OPC Data Access Custom Interface Specification, Ver-
sion 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.
14
217721796.004.png 217721796.005.png 217721796.006.png 217721796.007.png
Zgłoś jeśli naruszono regulamin