niedziela, 16 stycznia 2011

OPC – a programowanie – jak zacząć? [PL]


Niniejszy wpis jest zainspirowany pytaniami dotyczącymi OPC, jakie otrzymuję od czasu do czasu poprzez email, fora itp... Są one mniej więcej takie:
  • W jakim języku najlepiej napisać oprogramowanie wykorzystujące OPC?
  • Czy możesz mi doradzić w kwestii zrobienia oprogramowania w środowisku C++/ Visual C#. NET z wykorzystaniem standardu OPC?
  • Co potrzebuję, żeby zacząć tworzyć oprogramowanie zgodne z OPC? Gdzie szukać informacji na ten temat?
  • Zamierzam napisać prace magisterska na temat wykorzystania standardu OPC w zastosowaniu w automatyce przemysłowej. Rozważam kwestie opracowania własnej aplikacji w środowisku Visual C#.NET do komunikacji np. przez internet z jakimś układem automatyki (może sterownikiem PLC). Bardzo proszę o wszelkie sugestie.

Nie są to pytania, na które odpowiedź jest jednoznaczna i oczywista, a odpowiedzi można pewnie znaleźć tylu co odpowiadających. Postaram się jednak coś podpowiedzieć.
Niestety na samym początku muszę stwierdzić, że samodzielne (bez wykorzystania jakiś dodatkowych bibliotek lub pakietów typu SDK) napisanie oprogramowania wspierającego standard OPC nie jest proste. Trzeba najpierw przebrnąć przez różne specyfikacje opisujące standard OPC (niestety aktualnie specyfikacje są dostępne tylko dla członków OPC Foundation), a później napisać całą masę kodu. O wstępnych zagadnieniach, z tym związanym pisałem już w serii artykułów pod tytułem „OPC, DCOM, .NET i C# w jednym stali domu”. Zagadnienia poruszone w tamtym artykule pozostają cały czas aktualne dla oprogramowania wykorzystującego tzw. OPC Classic (czyli oparte o DCOM). Oczywiście pewne ułatwienia w postaci kodu źródłowego dla oprogramowania typu serwer, czy klient są dostępne, jednak albo odpłatnie, albo tylko dla członków OPC Foundation.
Więcej na temat różnic, pomiędzy odmianami OPC można znaleźć, w artykułach: „Co to jest OPC? (w prostych żołnierskich słowach)” oraz „Porównanie Xi z innymi standardami (OPC DA, OPC XML DA, OPC UA, ...)”.
Trochę inaczej ma się sprawa z innymi odmianami OPC. W przypadku OPC .NET 3.0 (wcześniej OPC eXpress Interface) pewien „wstępny” kod źródłowy można znaleźć na stronie http://www.expressinterface.com/DownloadDialog.aspx, ale więcej znów tylko na stronach OPC Foundation. Podobnie wygląda sprawa w przypadku OPC UA, tutaj również najwięcej przykładów i najbardziej zaawansowany pakiet SDK (C# i C++) dla OPC UA jest dostępny na stronach OPC Foundation. Podobno jest również dostępny pakiet OPC UA SDK dla Java,a na stronach OPC można znaleźć informacje: "A non-commercial JAVA Sample Client and Server are available from VTT Technical Research Centre of Finland. Please email Matti.Paljakka_AT_vtt.fi." (kod dla Java miał być również dostępny tutaj: http://code.google.com/p/opc-ua/, ale projekt tylko utworzono i cisza ...). Oczywiście fakt, że coś jest dostępne tylko dla członków OPC Foundation, nie jest aż takie „straszne”. Przecież można stać się członkiem OPC Foundation, by uzyskać dostęp do wszystkich wspomnianych wcześniej materiałów (specyfikacji, czy kodów źródłowych). Ponadto trzeba wiedzieć, że oprócz firm, członkami OPC Foundation mogą być również na uproszczonych warunkach uniwersytety.
W tym miejscu chciałbym zwrócić uwagę na jeszcze jeden fakt, a mianowicie potrzebę przetestowania i certyfikacji utworzonego rozwiązania, tak aby można było później mówić, że oprogramowanie wspiera technologię OPC. Na temat certyfikacji, dlaczego i jak się ona odbywa, pisałem już we wcześniejszym cyklu wpisów pod tytułem: „Certyfikacja OPC”.

Inne możliwości

Jaki więc proponuje alternatywy wobec powyższych rozwiązań? Otóż wydaje mi się, że dobrym pomysłem może być wykorzystanie gotowego rozwiązania, certyfikowanego i wspierającego technologię OPC, a które jednocześnie pozwala na proste rozszerzenie funkcjonalności i dopasowanie do własnych potrzeb i do własnej aplikacji. Przykładem takiego rozwiązania jest oprogramowanie z rodziny CommServer, dzięki któremu można:
  • opracować serwer OPC dla własnego urządzenia, czy protokołu (z wykorzystaniem CommServer'a lub CommServer'a UA),
  • opracować klienta OPC dla własnej aplikacji (z wykorzystaniem DataPorter'a).
Wykorzystując oprogramowanie z rodziny CommServer można stworzyć własne aplikacje wspierające OPC.
Na temat odczytu danych z OPC poprzez DataPorter'a pisałem już we wcześniejszym artykule: „OPC Client .NET (w języku C# (csharp)). Dlatego teraz skupię się na pierwszej możliwości.

CommServer jako serwer OPC dla własnego urządzenia.

Przy pomocy CommServer'a (dla OPC Classic lub UA) można opracować serwer OPC dla własnego urządzenia, czy protokołu. W tym celu należy wykorzystać mechanizm pluginów CommServer'a, w którym każdy protokół jest obsłużony przez tzw. dostawcę danych (DataProvider). Mechanizm ten opisany jest pod adresem: http://www.commsvr.com/Howitworks/Technologie/Multidataproviders.aspx. Dodatkowo dostępny jest pakiet „DataProvider Rapid Development Kit (DP RDK)”, który jest zestawem narzędzi, kodu źródłowego oraz dokumentacji, pozwalających na przygotowanie wtyczek w postaci DataProvider ’ów dla programu CommServer'a. Pakiet RDK (kod + manual) dostępny jest na stronie: http://www.commsvr.com/DownloadCenter/ProductSoftware/PR2905DataProvider_RDK_Software.aspx. Dodatkowo pod następującym adresem, znajduje się pewien opis co i jak: http://www.commsvr.com/DownloadCenter/Manuals/PR290203DataProviderRDKWalkthrough.aspx. Sporo informacji znajduje się też w helpie dla oprogramowania CommServer: http://www.commsvr.com/OPC-Help/Index.aspx?topic=html/2dea0752-d490-47e6-8444-ac73e07601fc.htm. Polecam również obejrzenie filmów instruktażowych przedstawiających jak konfigurować oprogramowanie CommServer: http://www.youtube.com/cascommserver.

Licencje na oprogramowanie z rodziny CommServer

Oczywiście, aby wykorzystać oprogramowanie z rodziny CommServer, potrzebna jest na nie licencja. Jest ona odpłatna dla końcowego użytkownika, ale dla partnerów (akademickich, integratorów, itp ...) może zostać udzielona licencja specjalna. Więcej na ten temat można znaleźć pod adresami:
Najłatwiejsze jest uzyskanie licencji specjalnej dla programu akademickiego, w takim przypadku wystarczy wypełnić prosty formularz: http://www.commsvr.com/Partnershipprogram/AcademicAlliance/Academicallianceform.aspx.

Podsumowanie

W ramach podsumowania chciałbym wspomnieć jeszcze o jednym pytaniu, jakie od czasu do czasu przewija się przez otrzymywane przeze mnie email'e, a mianowicie „gdzie szukać informacji na temat OPC?”. Tym, którzy jeszcze nie wiedzą gdzie, polecam przeczytanie wpisu: „OPC, OPC UA, OPC XI – gdzie szukać informacji?”.
Na zakończenie chciałbym jeszcze raz podkreślić, że samodzielne (bez pomocy żadnych obcych bibliotek, czy kodu) tworzenie oprogramowania wykorzystującego OPC może być trudne. Warte przemyślenia jest skorzystanie z profitów członkostwa w OPC Foundation, ale może prościej wykorzystać oprogramowanie firmy trzeciej (np. w tym przypadku firmy CAS producenta oprogramowania z rodziny CommServer), by szybciej osiągnąć założony cel – integrację i komunikację.


Brak komentarzy:

Prześlij komentarz

Posty powiązane / Related posts