Dziś jest niedziela, 20 październik 2019 r.
Energoelektronika.pl na stronach Facebook REKLAMA MAPA SERWISU KONTAKT
Strona główna Załóż konto Artykuły branżowe Katalog firm Seminaria FAQ Kalendarium Słownik Oferta
Wyszukaj
1USD 3.8503 -0.35% 1EUR 4.2844 -0.01% 1GBP 4.9671 +0.43%
Zaloguj się
Login (adres e-mail):
Haslo:
  Rejestracja
  Zapomniałem hasła
Reklama

Aktualności
Cykl szkoleń z zakresu programowania sterowników SIMATIC S7-300, S7-1200
więcej
Siemensa buduje fabrykę dla Przemysłu 4.0 w Polsce
więcej
Przed nami 32. edycja targów ENERGETAB 2019
więcej
32 edycja targów Energetab 2019 juz za cztery tygodnie
więcej

Zobacz archiwum

Kalendarium
23 październik 2019
LUMENexpo Targi Techniki Świetlnej  
więcej
29 październik 2019
73. edycja Seminarium dla Służb Utrzymania Ruchu  
więcej
Newsletter
Jeżeli chcesz otrzymywać aktualne informacje o wydarzeniach w branży.
Podaj e-mail do subskrypcji:


Artykuły branżowe
17 kwiecień 2007.

Komunikacja OPC DA w prototypowym zestawie mikroprocesorowym.

Komunikacja OPC DA w prototypowym zestawie mikroprocesorowym.

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.

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

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 serwerem ma dostęp do jego struktury 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żą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.

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.

 

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 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 Mi­crosoft Visual C# 2005 .NET. Część kodu definiująca interfejsy odwołujące się do obiektów COM pochodzi 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 zestaw 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łościową budowę serwera w postaci uproszczo­nego schematu blokowego ukazuje rys. 5.

Uwzględ­niono 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 ser­wera OPC decydują w pierwszym rzędzie obiekty COM, widoczne w lewej części rysunku, a zwłaszcza ich in­terfejsy, zaznaczone symbolicznie poszerzonymi strzałkami, które muszą być zgodne z określoną specyfikacją. Obiekt serwera (OPCServer) ma charakter podstawowy i stanowi funkcjonalny punkt wyjścia do odwoływania się do pożądanych zasobów. Zbiór wszystkich pozycji przyporządkowany jest statycznie obiektowi serwera. Za pomocą odpowiednich metod obiektu serwera two­rzone są dynamicznie obiekty grupy (OPCGroup). Po utworzeniu, 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,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ą min. 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.

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ętowym 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.

Andrzej Bożek
Dariusz Rzońca

Źródło: http://www.par.pl/
O nas  ::  Regulamin  ::  Polityka prywatności (Cookies)  ::  Reklama  ::  Mapa stron  ::  FAQ  ::  Kontakt
Ciekawe linki: www.klimatyzacja.pl  |  www.strony.energoelektronika.pl  |  promienniki podczerwieni
Copyright © Energoelektronika.pl