Niniejszy wpis jest próbą odpowiedzi na pytania dotyczących implementacji
serwera OPC UA, z którymi spotykam się od czasu do czasu:
- „Słyszałem, że OPC UA łączy ze sobą sposoby dostępu do danych aktualnych (Data Access, DA), historycznych (Historical Data Access, HDA), o zdarzeniach (Allarms & Events, A&E lub Alarms & Conditions, A&C) i innych typów danych. Mnie interesuje tylko prosty serwer DA, czy muszę zaimplementować lub zakupić od razu również HDA i A&E?”
- „Podobno serwer OPC UA, oferuje usługi jako serwisy, które są rejestrowane, aby klient mógł je odszukać i nawiązać połączenie. Zakładając, że chcemy więc tylko przesłać wartości danych, czy wystarczy jeżeli nie zaimplementujemy całego serwera OPC UA, ale tylko pewien serwis, który odpowiednio zarejestrujemy?”
- „Interesuje mnie proste udostępnianie dane, czy mogę wybrać pewne usługi serwera OPC UA, zaimplementować je i poinformować wszystkich, że mam serwer OPC UA o „nie pełnej funkcjonalności” ?”
OPC
UA jest dosyć skalowalne – oprogramowanie wspierające tę
technologię nie musi implementować wszystkich elementów opisanych
w specyfikacji (która ma przecież kilkanaście tomów) aby móc je
określić np. mianem serwera OPC UA. Nie jest jednak tak, że można
zaimplementować dowolny serwis (wybrany zbiór usług, itp...),
który zostanie zarejestrowany w serwerze typu OPC
UA Discovery, by móc stwierdzić, że mamy serwer OPC UA.
Specyfikacja
OPC UA przewiduje tzw. Profile. Profile definiują zbiory
funkcjonalności wchodzących w skład specyfikacji OPC UA. Dostawca
oprogramowania deklaruje, jakie profile są wspierane przez jego
produkt, a użytkownik może wskazywać, dla jakich profili on
potrzebuje wsparcia. Poszczególne aplikacje mogą być sprawdzane,
czy wspierają dany profil w procesie certyfikacyjnym. Więcej
na temat profili można znaleźć na moim blogu lub w książce
"OPC
- From Data Access to Unified Architecture”, która jest
pewnego rodzaju kompendium wiedzy o standardzie komunikacyjnym OPC
UA.
W
przypadku najprostszego serwer OPC UA należy dać wsparcie dla
profilu "Nano
Embedded Device Server", który jest zbiorem całej dużej
grupy funkcjonalności (profili
aspektowych, ang. Facets). Co ciekawe taki serwer udostępnia
dane nie poprzez Web-Serwisy, a strumienie binarne (specyfikacja OPC
UA pozwala na różne kanały transmisyjne, o czym można przeczytać
we wspomnianej książce lub na moim blogu w artykule „Kodowanie
i mapowanie w OPC Unified Architecture”). Serwer, aby mógł
być uznany za zgodny z OPC UA, musi wspierać przynajmniej jeden
profil typu „w pełni funkcjonalny” (ang. Full-featured), np.:
- Nano Embedded Device Server
- Micro Embedded Device Server
- Embedded UA Server
- Standard UA Server
Więcej informacji, odnośnie co
zawiera konkretny profil znaleźć można pod adresem:
https://opcfoundation.org/profilereporting/index.htm.
Nie
wystarczy wybrać sobie dowolne usługi, zaimplementować je i
twierdzić, że ma się serwer OPC UA.
Można
zaimplementować w serwerze tylko wybrane funkcjonalności, np. tylko
DA, jednak trzeba wskazać, które profile są spełnione (elementy
HDA, A&E, A&C są określone w osobny profilach aspektowych
(ang. Facets))
Reasumując,
wydaje mi się, że samodzielne stworzenie serwera OPC UA (tym
bardziej na urządzenie typu PLC) to raczej trudne zadanie. Nie wielu
producentów sterowników ma już coś takiego. Wiem m.in. że
Beckhoff ma rozwiązanie typu serwer OPC UA na sterowniku PLC (które
testował już na warsztatach
OPC interoperability) jest to TwinCAT
OPC UA Server, z innych urządzeń słyszałem o FasaLink,
gdzie serwer OPC został zaimplementowany w małym układzie, który
może być zabudowany w innym urządzeniu.
Fajnie, że wreszcie wraca temat OPC :)
OdpowiedzUsuńJeżeli dostęp do serwera OPC UA będzie tak samo prosty jak w OPC XML DA to tylko się cieszyć.
Pozdrawiam.
Cieszę się, że temat związany z OPC się podoba. OPC UA w dużym stopniu zmienia filozofię tego co było dotychczas. Czy na lepsze? Chyba tak... Czy na prostsze? Miary "prostości" nie ma, ale że więcej możliwości oznacza więcej do zrozumienia. Ważne jest, czy odpowiednio proste w obsłudze będą narzędzia którymi będziemy się posługiwać, by tą technologię wykorzystywać.
OdpowiedzUsuńPozdrawiam, zapraszam do komentowania i zadawania pytań (w miarę możliwości będę się starał odpowiadać).
świetny blog i ciekawe treści.
OdpowiedzUsuńŚwietny tekst! Od roku nie czytałam tak wartościowego artykułu.
OdpowiedzUsuńPodoba mi się bardzo Twój styl pisania
OdpowiedzUsuńale tu wiele fajnych wiadomości
OdpowiedzUsuńZainteresował mnie ten blog
OdpowiedzUsuńmiło się czyta te wpisy!
OdpowiedzUsuńświetny blog, ciekawe wpisy
OdpowiedzUsuńświetny blog, ciekawe wpisy
OdpowiedzUsuńNo ciekawy przekaz, dzięki za wszystko i pozdrawiam!
OdpowiedzUsuńBardzo fajny i ciekawy wpis.
OdpowiedzUsuńFajny blog!
OdpowiedzUsuńdobre dobre, przemysle
OdpowiedzUsuńCiekawie na tym blogu
OdpowiedzUsuńCiekawy wpis
OdpowiedzUsuńczłowiek każdego dnia uczy się nowych rzeczy, polecę tego bloga znajomym.
OdpowiedzUsuńFajnie,że trafiłem na ten blog. Super i interesujące wpisy. Na pewno tu wrócę.
OdpowiedzUsuńTo bardzo ciekawe i może się naprawdę przydać, będę pamiętać.
OdpowiedzUsuńinspirujące wpisy i fajne zdjęcia
OdpowiedzUsuńrzeczowo i solidnie napisane
OdpowiedzUsuńmega interesujący wpis
OdpowiedzUsuńsuper ten blog idzie
OdpowiedzUsuńrewelka wpis
OdpowiedzUsuń