Wprowadzenie do technologii OPC
Transkrypt
Wprowadzenie do technologii OPC
Wprowadzenie do technologii OPC Łódź marzec 2016 Copyright CAS 2016. The information contained here in is confidential and proprietary to CAS. It may not be disclosed or transferred, directly or indirectly, to any third party without the explicit written permission of CAS. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, translated, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of CAS. Release Document Date Authors Version Type Document History Document Date Version 1.10 R-05010204-WSTEPDOOPC 29-03-16 Mariusz Postół PH.D.Eng. (project director) Maciej Zbrzezny M. Sc. Eng. FINAL User Manual Author Product release Comment version V1.0 CAS 90-527 Łódź ul. Wólczańska 128/134 tel/fax: +48 42 686 25 47; +48 42 686 50 28 www.cas.eu www.commsvr.com mailto:[email protected] SPIS TREŚCI: Spis treści: .......................................................................................................................... 1 OPC .................................................................................................................................... 2 Krótka historia OPC ................................................................................................................................ 2 Porównanie sposobów komunikacji pomiędzy elementami systemu automatyki ................................... 3 Architektura OPC .................................................................................................................................... 4 Specyfikacje OPC .................................................................................................................................... 6 OPC Data Access (OPC DA) ........................................................................................................... 6 OPC Historical Data Access (OPC HDA) ........................................................................................ 7 OPC Alarms & Events (OPC A&E) ................................................................................................. 7 OPC Security .................................................................................................................................... 8 OPC Unified Architecture (OPC UA) .............................................................................................. 8 Bezpieczeństwo OPC UA............................................................................................................... 10 Wykorzystane Technologie ............................................................................................ 12 COM ...................................................................................................................................................... 12 Interfejsy......................................................................................................................................... 12 DCOM ................................................................................................................................................... 13 DCOMCNFG ................................................................................................................................. 14 OFERTA .......................................................................................................................... 21 Otwórz swoje systemy ... dodaj kolejną opcję ....................................................................................... 21 CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 1 Document: R-050102P05-WstepDoOPC OPC OPC OPC jest przemysłowym standardem komunikacji stworzonym przez producentów sprzętu i oprogramowania. Utworzyli oni organizację OPC Foundation, której zadaniem jest rozwijanie tego standardu. W chwili jej członkami jest ponad trzysta firm, wśród nich: CAS, Microsoft, GE, Siemens, Rockwell, ABB. Standard OPC definiuje sposoby komunikacji między urządzeniami przemysłowymi, przez co pozwala uniezależnić oprogramowanie monitorujące i sterujące od producentów sprzętu. Do wielu zalet technologii OPC można zaliczyć m.in.: standaryzację komunikacji i wymiany danych przemysłowych, dużą uniwersalność i skalowalność rozwiązań, znaczne obniżenie kosztów integracji dużych systemów przemysłowych. Krótka historia OPC Wraz z rozwojem oprogramowania i potrzebą wykorzystania go w systemach automatyki przemysłowej, pojawiała się konieczność stworzenia standardowych modułów programowych, gotowych do wykorzystania w wielu systemach i zapewniających komunikację pomiędzy różnymi urządzeniami i oprogramowaniem. Brak standardu, jakim jest OPC, powodował konieczność stosowania sterowników dedykowanych. Każdy twórca oprogramowania musiał stworzyć własne sterowniki do wszystkich urządzeń, z którym dany program miał współpracować. Wynikało z tego wiele problemów – wybór oprogramowania dla danego sprzętu był bardzo ograniczony, a jego tworzenie wymagało większych nakładów czasu i pracy. Wprowadzenie standardu stało się koniecznością. Dynamiczny rozwój systemów z rodziny Windows umożliwił powstawanie technologii pozwalających na komunikację komponentów programowych za pośrednictwem standardowych interfejsów. Pierwszym krokiem była technologia DDE (Dynamic Data Exchange), która pojawiła się na przełomie lat 80. i 90. Dzięki niej wymiana danych między aplikacjami stała się łatwiejszą, częściowo uniezależniając oprogramowanie od sprzętu. Szybko okazało się jednak, że DDE to za mało. Przede wszystkim technologia była mało wydajna, nie oferowała też komunikacji za pośrednictwem sieci. W efekcie opracowane zostały różne rozszerzenia dla DDE (np. NetDDE, FastDDE autorstwa Wonderware, czy AdvanceDDE autorstwa Rockwell Software). Nie były one jednak standardem, a jedynie kolejnymi rozwiązaniami autorskimi. W 1992 roku wprowadzono technologię OLE 2.0, która miała z czasem zastąpić większość zastosowań DDE. W tym samym czasie działalność rozpoczęła grupa WinSEM (Windows in Science, Engineering and Manufacturing), zainteresowana wykorzystaniem OLE w systemach przemysłowych czasu rzeczywistego. Mimo przedstawienia paru ciekawych propozycji, nie udało się jej jednak wypracować standardu. W 1995r. uformowała się grupa OPC Task Force, w skład której weszły firmy: FisherRosemount, Intellution, Intuitive Technology, Opto22, Rockwell i Siemens AG. Po intensywnych pracach, w sierpniu 1996 roku opublikowano pierwszą specyfikację OPC. We wrześniu 1996r. powołano do życia OPC Foundation, która od tamtego czasu koordynuje działania mające na celu utrzymywanie i publikowanie nowych specyfikacji OPC. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 2 Document: R-050102P05-WstepDoOPC OPC Porównanie sposobów komunikacji pomiędzy elementami systemu automatyki Dedykowane sterowniki DDE OPC Brak Brak Tak Przenośność Brak Ograniczona - zarówno w standardowym DDE, jak i w rozszerzeniach (np. FastDDE, AdvancedDDE). Tak Wydajność Duża wydajność – ze względu na optymalizację Mała wydajność. DDE sterownika dla opiera się na wymianie konkretnego urządzenia / wiadomości. rozwiązania. Zdalny dostęp Brak Standaryzacja Bardzo duża wydajność Tak - przez rozszerzenia, Tak takie jak NetDDE. Brak Tak OPC definiuje wiele metod, które mogą być użyte do wymiany dodatkowych informacji między klientem i serwerem. Programowanie DDE jest bardzo trudne bez toolkit'ów oferowanych przez różnych producentów. Programowanie DCOM może być skomplikowane. Dostępne są jednak różne toolkit'y znacznie ułatwiające tworzenie oprogramowania OPC. Interakcja Zwykle brak Złożoność Wielu dostawców oprogramowania zapewnia dodatkowe moduły umożliwiające dostosowanie sterownika do określonego zastosowania, jednak utrudnia to wdrożenie i wymaga dodatkowego czasu na poznanie narzędzi. Udział w rynku Coraz mniejsze Serwery DDE w zainteresowanie dla takich przyszłości znikną z rozwiązań. rynku. Rozwiązania OPC zdominują rynek. Dany driver jest dostępny Dostępne tylko dla zawsze tylko dla Windows. określonej platformy. Dostępne dla systemów z DCOM. Tworzona jest specyfikacja XML, która uniezależni OPC od DCOM. Inne platformy CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 3 Document: R-050102P05-WstepDoOPC OPC W styczniu 2004 roku OPC Foundation stworzyła grupę roboczą, której zadaniem było przygotowanie nowej architektury, zapewniającej dalszy rozwój technologii OPC przez przynajmniej 10 kolejnych lat. Nowa „wersja” OPC została nazwana „OPC Unified Architecture”. Pierwsze części jej specyfikacji zostały opublikowane w czerwcu 2006r.; praca nad dokończeniem specyfikacji trwa nadal. Nowa architektura ma bazować na usługach internetowych, łączyć w sobie zalety wszystkich dostępnych aktualnie specyfikacji i odejść od interfejsu opartego o DCOM (przez co stanie się łatwiejsza do implementacji na innych platformach niż MS Windows). Architektura OPC OPC zostało zbudowane w oparciu o architekturę klient-serwer. Aplikacja wymagająca dostępu do określonego urządzenia, komunikuje się przez wbudowanego w nią klienta OPC z serwerem OPC, który jest odpowiedzialny za bezpośrednią komunikację z urządzeniem. Rysunek 1 OPC jako rozwiązanie typu klient-serwer Bez OPC każdy klient musiałby posiadać sterownik odpowiedni do komunikacji z danym urządzeniem. Przykładowo, jeśli mamy 3 różne urządzenia i chcemy, aby trzech różnych klientów pobierało z nich dane, musimy dla każdego klienta zaimplementować sterownik właściwy dla protokołu komunikacji z każdym urządzeniem. Ponadto, jeśli trzech klientów będzie potrzebowało tych samych danych, każde urządzenie wyśle dane wielokrotnie. Rozwiązanie to przedstawia poniższy schemat: CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 4 Document: R-050102P05-WstepDoOPC OPC Rysunek 2 Rozwiązanie bez OPC OPC likwiduje ten problem oddzielając warstwę klienta od urządzenia. W wymianie danych pośredniczy serwer OPC. Nie ma konieczności pisania osobnych sterowników dla każdego klienta, znika też problem wielokrotnego wysyłania danych przez urządzenie, które może korzystać z dowolnego protokołu, np. MODBUS. Rysunek 3 Rozwiązanie z wykorzystaniem OPC CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 5 Document: R-050102P05-WstepDoOPC OPC Reasumując, z zastosowania standardu OPC płyną następujące korzyści: Zmniejszenie obciążenia urządzeń Zwiększenie żywotności urządzeń Zwiększenie skalowalności systemów Serwery OPC mogą przechowywać dane w pamięci podręcznej Klienci OPC nie muszą korzystać ze sterowników urządzeń Standaryzacja Specyfikacje OPC W ramach projektu zajmującego się standaryzacją OPC powstały różne specyfikacje, z których każda definiuje odrębną funkcjonalność. Wśród istniejących specyfikacji możemy wyróżnić: OPC Data Access (OPC DA)OPC Historical Data Access (OPC HDA)OPC Alarms & Events (OPC A&E)OPC Security OPC BatchOPC Unified Architecture (OPC UA) OPC Data Access (OPC DA) OPC Data Access umożliwia dostęp do aktualnych danych generowanych w czasie rzeczywistym. Przy pomocy OPC DA do serwera OPC kierowane są zapytania o aktualne wartości zmiennych procesowych - temperatur, ciśnień itp. Komunikacja z każdym serwerem odbywa się w taki sam sposób, z wykorzystaniem tego samego formatu. Klient nie musi wiedzieć, w jaki sposób serwer komunikuje się z urządzeniem. Wielu klientów może korzystać jednocześnie z tych samych danych udostępnianych przez serwer. OPC DA daje dostęp (możliwość odczytu lub zapisu) do pojedynczych elementów (tagów), z których każdy posiada wartość, znacznik czasowy, typ i jakość. Znacznik czasowy może być generowany przez urządzenie lub przez serwer OPC (jeżeli dane urządzenie nie generuje znacznika). Przy pomocy OPC DA nie jest możliwe przeglądanie wartości wcześniejszych, a jedyne aktualnych. OPC KLIENT GRUPA TAG 1 TAG 2 OPC SERWER URZĄDZENIE TAG 3 WARTOŚĆ ZNACZNIK CZASOWY JAKOŚĆ TYP WŁAŚCIWOŚCI Rysunek 4 Architektura dostępu do zmiennych procesowych przez OPC DA Klient OPC może logicznie podzielić odczytywane dane na grupy, charakteryzujące się np. różnymi czasami skanowania (czasem pomiędzy dwoma kolejnymi odczytami), trybem odczytu, itp. Charakterystyczną cechą grupy jest jej odczyt w jednej transakcji. W zależności od wersji OPC DA możliwe są dwa tryby odczytu danych: CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 6 Document: R-050102P05-WstepDoOPC OPC synchroniczny – odczyt występuje zawsze w jednakowych odstępach czasowych, asynchroniczny – odczyt występuje wtedy, gdy pewne dane ulegną zmianie – możliwa jest definicja progów, po przekroczeniu których powinien nastąpić odczyt. Dostęp do danych przy pomocy OPC DA może odbywać się na trzy sposoby: z wykorzystaniem COM/DCOM, z wykorzystaniem XML (eXtensible Markup Language) i protokołu SOAP (Simple Object Access Protocol), za pośrednictwem technologii .NET Remoting, posiadającej szersze możliwości niż DCOM (obsługa różnych formatów i protokołów komunikacji, łatwa komunikacja za pośrednictwem Internetu). OPC DA występuje w wielu wersjach, z których najnowszą jest wersja 3.0. (każda wersja zapewnia inny zestaw interfejsów, jednak powinna być zachowana kompatybilność wsteczna). W celu zapoznania się z przykładowym programowaniem wspierającym OPC DA zapraszamy do przyjrzenia się: CommServer – otwarty serwer komunikacji, OPC Client Transporter. OPC Historical Data Access (OPC HDA) OPC HDA umożliwia przeglądanie i analizę zgromadzonych danych historycznych, np. w celu oceny wydajności systemu, bądź przewidywania błędów. Klient uzyskuje dostęp do zarchiwizowanych danych (odczytów jakiegoś urządzenia itp.) poprzez zgłaszanie zapytań do serwera OPC HDA. Specyfikacja OPC HDA zakłada dwa typy serwerów: Prosty serwer trendów - zapewniający implementację interfejsów koniecznych do dostępu do surowych (nieprzetworzonych) danych pomiarowych. Zaawansowany serwer analiz – zapewniający operacje analizy danych (takich jak liczenie średnich, wartości minimalne, maksymalne), odtwarzanie danych, adnotacje, historię odczytów i zmian danych. Specyfikacja zapewnia dostęp do następujących operacji: Odczyt – Klient odczytuje dane i informacje z serwera. Zapis/Aktualizacja – Klient zapisuje dane lub informacje do serwera. Adnotacje – Klient odczytuje lub zapisuje adnotacje do danych w serwerze. Odtwarzanie (Playback) – Klient otrzymuje odtwarzane dane historyczne. OPC Alarms & Events (OPC A&E) OPC A&E służy do informowania o występujących w systemie zdarzeniach i zgłaszanych alarmach. Przez alarm rozumiany jest nienormalny stan jakiegoś obiektu, wymagający szczególnej uwagi. Zdarzenie może być związane ze stanem, jak np. zdarzenie przejścia danej wartości do poziomu alarmowego lub niezwiązane ze stanem, jak zmiany konfiguracji, czy błędy systemowe. Serwery OPC A&E mogą pobierać dane bezpośrednio z urządzenia lub z serwera OPC DA. Serwer OPC A&E może być samodzielnym modułem lub też wchodzić w skład serwera OPC DA. Specyfikacja definiuje zdarzenie, którego wystąpienie jest rejestrowane (do zdarzeń mogą np. należeć: awaria urządzenia, przekroczenie wartości granicznej dla pewnej zmiennej procesowej, akcja operatora). Różne zdarzenia mogą być przypisywane to pewnej zmiennej, mogą być definiowane różne wartości progowe. Specyfikacja zapewnia możliwość tworzenia warunków i podwarunków wystąpienia zdarzenia. Serwer OPC A&E powinien zapewniać następujące typy zdarzeń: Zdarzenia zorientowane warunkowo (condition-related events) – klient jest informowany o wystąpieniu zdarzenia. Warunki mogą być aktywowane i dezaktywowane. Serwer CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 7 Document: R-050102P05-WstepDoOPC OPC implementuje również mechanizm potwierdzania zdarzeń. Zdarzenia śledzone (tracking-related events) – są wykorzystywane w celu zapewnienia informacji o wystąpieniach danego zdarzenia (np. interwencji operatora). Zdarzenia proste (simple events) – używane w celu powiadomienia klienta o wystąpieniu zdarzenia (np. awarii urządzenia). OPC Security Specyfikacja OPC Security ma służyć zapewnieniu bezpieczeństwa dostępu do danych oferowanych przez serwery OPC. Umożliwia poprawną weryfikację klienta, który chce uzyskać dostęp i weryfikację poprawności transmisji (czy dane nie zostały zmienione). Specyfikacja określa trzy poziomy bezpieczeństwa: Disabled security – Zabezpieczenia są wyłączone, każdy posiada prawo dostępu. DCOM Security – Ustawienie domyślne. Działają jedynie zabezpieczenia DCOM, określające, kto ma prawo dostępu i do jakich aplikacji. Nie ma kontroli nad dostępem do poszczególnych obiektów na serwerze. OPC Security – Serwer OPC kontroluje dostęp do poszczególnych obiektów. OPC Unified Architecture (OPC UA) OPC Unified Architecture jest niezależnym od platformy systemowej standardem, który pozwala na komunikację pomiędzy różnymi typami systemów i urządzeń poprzez wysyłanie wiadomości pomiędzy klientem a serwerem Poprzednie wersje specyfikacji OPC bazowały na modelu COM/DCOM, co praktycznie uniemożliwiało komunikację pomiędzy różnymi platformami. Architektura ta została przedstawiona na poniższym rysunku (Rysunek 5). OPC Foundation zdecydowała, że XML może zostać użyty do definiowania wiadomości przesyłanych pomiędzy klientem a serwerem. W rezultacie OPC Foundation rozpoczęła pracę nad nową wersją specyfikacji OPC DA nazwaną OPC XML. XML stał się językiem szeroko stosowanym w Internecie i właśnie o ten standard został oparty protokół komunikacyjny SOAP, który bardzo szybko upowszechnił się wśród producentów oprogramowania. Nowa strategia rozwoju OPC została oparta właśnie o język XML i protokół SOAP. Strategia ta została przyjęta już kilka lat temu. Od tego czasu upowszechniły się usługi internetowe, które musiały zostać uwzględnione w nowej strategii rozwoju. Dzięki zastosowaniu ogólnie przyjętych standardów Rysunek 5 Architektura OPC oparta o model COM/DCOM. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 8 Document: R-050102P05-WstepDoOPC OPC sieciowych serwer OPC i klient OPC mogły działać na różnych platformach. Sytuacja ta została przedstawiona na poniższym rysunku (Rysunek 6). Rysunek 6 Architektura OPC UA oparta o usługi internetowe. Efektem przyjętej strategii było powstanie standardu OPC Unified Architecture, który bazuje na ogólnie przyjętych protokołach komunikacyjnych, takich jak TCP/IP, HTTP, SOAP, co zapewnia bardzo dużą skalowalność rozwiązań implementowanych w oparciu o tę technologię. OPC Unified Architecture umożliwia przesyłanie danych za pośrednictwem różnych formatów m.in. formatu opartego o XML i formatu binarnego. Serwer OPC zbudowany w oparciu o Unified Architecture definiuje swoim klientom zestaw usług, jakie oferuje oraz format danych procesowych za pośrednictwem, którego ma odbywać się komunikacja. Model obiektowy OPC UA definiuje obiekty jako zmienne i metody, jak również pozwala na tworzenie relacji pomiędzy obiektami OPC. Model ten został przedstawiony na poniższym rysunku (Rysunek 7) CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 9 Document: R-050102P05-WstepDoOPC OPC Obiekt Powiadomienie o zmianie wartości Odczyt/zapis Wywołanie metody Powiadomienie o zdarzeniu Zmienne ____________ ____________ ____________ Referencje do innych obiektów Metody ___________() ___________() ___________() Rysunek 7 Model obiektu OPC UA. Bezpieczeństwo OPC UA Podczas tworzenia specyfikacji OPC UA położono szczególny nacisk na bezpieczeństwo. Specyfikacja nowej technologii opracowanej przez OPC Foundation jest zgodna ze specyfikacjami WS-* takimi jak: WS-Security, WS-Trust, WS-Policy, WS-Secure Conversation Architektura bezpieczeństwa OPC UA dostarcza rozwiązań pozwalających na implementację rozwiązań zgodnych z następującymi wymaganiami bezpieczeństwa: Przesyłane dane są widoczne tylko dla autoryzowanych użytkowników. Dane procesowe mogą zostać zmienione tylko przez autoryzowanych użytkowników. Poufność. Śledzenie ruchu. Odporność na ataki typu DoS (ang. denial of service). Mechanizmy bezpieczeństwa OPC UA umieszczone są w warstwie aplikacji i w warstwie komunikacyjnej, na szczycie warstwy transportowej, co zostało przedstawione poniżej (patrz Rysunek 8) CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 10 Document: R-050102P05-WstepDoOPC OPC Klient OPC Serwer OPC Warstwa aplikacji: Autoryzacja użytkownika Autentykacja użytkownika Warstwa komunikacyjna: Poufność Integralność Autentykacja aplikacji Sesja Bezpieczny kanał Warstwa aplikacji: Autoryzacja użytkownika Autentykacja użytkownika Warstwa komunikacyjna: Poufność Integralność Autentykacja aplikacji Warstwa transportowa Rysunek 8 Mechanizm bezpieczeństwa standardu OPC UA Zarządzanie sesją użytkownika odbywa się w warstwie aplikacji. W warstwie tej działają mechanizmy bezpieczeństwa odpowiedzialne za uwierzytelnianie i autoryzację użytkowników. Sesja w warstwie aplikacji jest realizowana poprzez bezpieczny kanał transportowy, który działa w warstwie komunikacji i zapewnia bezpieczną komunikację pomiędzy klientem a serwerem. Wszystkie dane dotyczące sesji są przekazywane do warstwy komunikacyjnej, gdzie są przetwarzane. Warstwa komunikacji dostarcza mechanizmy bezpieczeństwa, które zapewniają poufność, integralność realizowaną poprzez podpisy i autentykację aplikacji dzięki certyfikatom. Dane zabezpieczone w warstwie aplikacji są następnie przesyłane poprzez warstwę transportową, która jest odpowiedzialna za transmisję danych pomiędzy klientem a serwerem. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 11 Document: R-050102P05-WstepDoOPC Wykorzystane technologie WYKORZYSTANE TECHNOLOGIE COM COM (Component Object Model) jest opracowaną przez Microsoft technologią umożliwiającą efektywną komunikację między aplikacjami. COM definiuje komponenty programowe niezależne od języka programowania, co umożliwia włączanie do tworzonych aplikacji elementów należących do innych programów i wymianę danych między poszczególnymi obiektami za pomocą tzw. interfejsów. Technologia COM jest wykorzystywana w wielu aplikacjach, jak np. Microsoft Office, gdzie umożliwia dynamiczne łączenie elementów np. z arkusza MS Excel do dokumentów edytora MS Word. Component Object Model definiuje: binarny standard wywoływania funkcji między komponentami, struktury interfejsów udostępnianych przez poszczególne obiekty, mechanizmy jednoznacznej identyfikacji komponentów i ich interfejsów. Interfejsy Obiekty COM udostępniają swoje funkcje obiektom zewnętrznym za pośrednictwem interfejsów. Interfejs stanowi zbiór wskaźników do funkcji składowych komponentu COM (metod), zgromadzonych w tabelach vtable (Virtual Function Pointer Table). Interfejs nie jest klasą, nie posiada własnej implementacji, to komponent COM implementuje interfejs. Każdy komponent może implementować wiele interfejsów - oferować wiele zestawów usług. Komponenty odwołują się do interfejsów za pośrednictwem wskaźników. Każdy interfejs posiada własny, unikalny identyfikator (GUID). Nowa wersja interfejsu (np. z rozszerzonym zestawem funkcji) nie powoduje konfliktu ze starą wersją - otrzymuje ona inny GUID. Rysunek 9 Interfejsy obiektu COM GUID (Global Unique Identifier) jest 128-bitowym numerem jednoznacznie identyfikującym obiekty. Identyfikatory CLSID odnoszą się do obiektów COM, a IID do interfejsów. IUnknown Podstawowym interfejsem implementowanym przez każdy obiekt COM jest interfejs IUnknown, udostępniający trzy funkjce: QueryInterface, AddRef, Release. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 12 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Rysunek 10 Interfejs IUnknown Funkcja QueryInterface pozwala uzyskać dostęp do informacji o innych interfejsach danego obiektu. Jej składnia jest następująca: HRESULTQueryInterface(REFIIDiid,void**ppvObject); iid - [in] identyfikator żądanego interfejsu ppvObject - [out] wskaźnik do żądanego interfejsu Gdy interfejs jest dostępny, funkcja zwraca wartość S_OK. W przypadku, gdy interfejs nie jest zaimplementowany, zwracana jest wartość E_NOINTERFACE. Funkcje AddRef i Release zarządzają licznikiem referencji do interfejsów. AddRef jest wywoływana, gdy komponent używa danego interfejsu, i zwiększa licznik o 1. Release jest wywoływana, gdy komponent nie potrzebuje już interfejsu, i zmniejsza licznik. Obie zwracają nową wartość licznika referencji. Funkcje QueryInterface, AddRef i Release są dostępne w każdym interfejsie COM, gdyż każdy interfejs dziedziczy po IUnknown. Mechanizm interfejsów pozwala na łatwe dodawanie nowej funkcjonalności do istniejących obiektów poprzez implementację nowych funkcji lub całych interfejsów przy zachowaniu kompatybilności z obiektami korzystającymi ze starszych funkcji/interfejsów. Równie proste jest usprawnianie istniejącej funkcjonalności przez wprowadzanie poprawek w implementacji obecnych funkcji. DCOM Technologia DCOM jest rozszerzeniem technologii COM, umożliwiającym wymianę danych za pośrednictwem sieci, podczas gdy COM dotyczył jedynie komunikacji na lokalnym komputerze. DCOM zastępuje protokołem sieciowym lokalną komunikację między procesami, korzystając z technologii DCE RPC (Distributed Computing Environment / Remote Procedure Call). W rzeczywistości, z punktu widzenia klienta bądź serwera, nie ma różnicy, czy druga strona znajduje się na tej samej maszynie czy zdalnie. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 13 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Rysunek 11 Architektura DCOM Komunikacja realizowana jest to za pośrednictwem tzw. RPC stubs oraz obiektów Proxy, istniejących po obu stronach. Przykładowa komunikacja wygląda następująco: 1. Klient wywołuje lokalnie pewną funkcję. 2. Proxy przejmuje wywołanie i tworzy wiadomość do przesłania przez sieć. 3. Wiadomość jest przesyłana. 4. System operacyjny serwera otrzymuje wiadomość i przekazuje ją do stub’a serwera. Stub rozpakowuje wiadomość i lokalnie wywołuje funkcję na serwerze. Aby umożliwić interakcję zdalnych aplikacji za pośrednictwem DCOM należy skonfigurować DCOM na każdym komputerze, np. przy pomocy programu DCOMCNFG. DCOMCNFG Dcomcnfg jest programem pozwalającym na skonfigurowanie w rejestrze systemu ustawień dotyczących COM. Jest obecny w systemach z rodziny Microsoft Windows NT. Przy pomocy dcomcnfg można: ustawić uprawnienia dla serwerów, globalnie lub dla każdej aplikacji z osobna, zdefiniować konta użytkowników, z których będą uruchamiane serwery, skonfigurować poziom bezpieczeństwa dla połączeń między aplikacjami, dezaktywować DCOM dla całego komputera lub poszczególnych aplikacji. Po uruchomieniu dcomcnfg dostępne jest okienko z kilkoma zakładkami lub drzewem komponentów (w zależności od wersji systemu): CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 14 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Rysunek 12 DCOMCNFG - okno główne (po stronie lewej z Windows 2000, a po stronie prawej z Windows XP i nowszych Podstawowe sprawy, o których należy pamiętać: Ustawienia po stronie klienta muszą zezwalać serwerowi na dostęp, by mógł przesyłać żądane dane. Ustawienia po stronie serwera muszą zezwalać klientom na dostęp i uruchamianie, aby umożliwić klientom dostęp do serwerów i pobieranie danych, a także uruchomienie, gdy serwer nie jest aktywny. DCOMCNFG – Zakładka Aplikacje Zakładka „Aplikacje” lub główne okno programu w przypadku Windows XP (i nowszych) pozwala na zmianę ustawień dotyczących konkretnej aplikacji. Ustawienia te przesłaniają konfiguracje domyślne. Po wybraniu interesującego nas obiektu i wciśnięciu przycisku Właściwości ukazuje się okienko konfiguracji DCOM dla danego programu. W celu zmiany ustawień należy odszukać na liście wybraną aplikację, a następnie dwa razy kliknąć lub prawym przyciskiem wybrać „właściwości”. Pojawi się wówczas okno pozwalające na konfiguracje DCOM’a dla danego komponentu. Na poniższym rysunku zostało przedstawione okno z Windows CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 15 Document: R-050102P05-WstepDoOPC Wykorzystane technologie 2000 i XP: Rysunek 13 DCOMCNFG - okno aplikacji (po prawej stronie z Windows XP) Okno zawiera zakładki: Ogólne (General) - informacje o aplikacji, dla której ustawiamy DCOM oraz poziom uwierzytelnień. Lokalizacja (Location) - określa lokalizację, w której ma działać aplikacja, gdy klient stworzy nową instancję. Zabezpieczenia (Security) - ustawienia poziomu bezpieczeństwa dla danej aplikacji, (należy wybrać, czy chcemy korzystać ze standardowych ustawień, których konfiguracja będzie opisana dalej, czy też dana aplikacja ma mieć specyficzne dla niej ustawienia. Tożsamość (Identity)- ustawienia użytkownika, który będzie używany do uruchamiania aplikacji. Punkty końcowe (Endpoints) - zestaw protokołów, których mogą używać klienci tego serwera. Powyższe elementy są odpowiednikami ustawień globalnych o tych samych nazwach i zostaną opisane w dalszej części. Na poniższym rysunku przestawiono kolejne zakładki: CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 16 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Rysunek 14 Zakładki ustawień DCOM dla aplikacji DCOMCNFG – Właściwości domyślne W zakładce „Właściwości domyślne”(dla Windows 2000) oraz w oknie właściwości dla komputera (dla Windows XP i nowszych) ustawiamy globalne właściwości modelu DCOM na tym komputerze. CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 17 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Rysunek 15 DCOMCNFG - zakładka właściwości domyślnych Użytkownik powinien tutaj ustawić: Czy zamierza wykorzystywać model DCOM na tym komputerze (domyślnie tak) Czy chce uruchomić usługi internetowe na tym komputerze (domyślnie nie) Wybrać domyślny poziom uwierzytelnień Wybrać domyślny poziom personifikacji CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 18 Document: R-050102P05-WstepDoOPC Wykorzystane technologie DCOMCNFG – Zabezpieczenia domyślne Zakładka „Zabezpieczenia domyślne” pozwala na zdefiniowanie domyślnych uprawnień obiektów istniejących w systemie. Podzielona jest na trzy sekcje: Domyślne uprawnienia dostępu – kto będzie miał dostęp do aplikacji, które nie zapewniają własnych uprawnień. Domyślne uprawnienia uruchamiania – jak wyżej, ale dotyczy praw uruchamiania aplikacji. Domyślne uprawnienia konfiguracji – kto ma uprawnienia do modyfikowania konfiguracji, instalacji nowych serwerów itp. Rysunek 16 DCOMCNFG - zakładka zabezpieczeń domyślnych CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 19 Document: R-050102P05-WstepDoOPC Wykorzystane technologie Nowym elementem w przypadku systemów Windows XP SP2 i nowszych są limity. Limity mają nadrzędne znaczenie. To tam definiowane jest, kto (jaki użytkownik, jaka grupa) ma uprawnienia do uruchamiania lub dostępu do komponentów DCOM oraz w jaki sposób (lokalny, czy zdalny). Wszelkie ustawienia są wykonywane przy pomocy standardowych kontrolek Windows, za pomocą których konkretnemu użytkownikowi lub konkretnej grupie przypisujemy albo odmawiamy pewnych uprawnień. DCOMCNFG – Protokoły domyślne Zakładka „Protokoły domyślne” określa, z jakich protokołów ma korzystać DCOM i w jakiej kolejności. W przypadku listy protokołów, DCOM będzie sprawdzał po kolei wszystkie, aż do ostatecznego wyczerpania limitu czasu. Rysunek 17 DCOMCNFG - zakładka protokołów domyślnych CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 20 Document: R-050102P05-WstepDoOPC Wykorzystane technologie OFERTA Otwórz swoje systemy ... dodaj kolejną opcję Konieczność uniezależnienia się od dostawców oraz ochrona inwestycji zmusza do stosowania standardów. Technologia OPC, stworzona z wykorzystaniem dobrze znanego modelu łączenia komponentów OLE COM/DCOM, jest praktycznie jedynym powszechnie stosowanym standardem wymiany danych procesowych pomiędzy urządzeniami w systemach automatyki przemysłowej, z wykorzystaniem sieci komputerowej. Jego stosowanie gwarantuje otwartość i kompatybilność rozwiązań różnych producentów. Więcej informacji na temat OPC znajdziecie Państwo na stronie www.opcfoundation.org. Poszukujemy wśród dostawców i integratorów systemów automatyki firm zainteresowanych rozszerzeniem funkcjonalności oferowanych rozwiązań o komponenty komunikacyjne zgodne ze standardem OPC. Jako aktywny członek OPC Foundation, organizacji zrzeszającej producentów i użytkowników produktów zgodnych ze standardami OPC, zapewniamy możliwość wejścia do grona dostawców tej technologii, przy minimalnych kosztach migracji. Jesteśmy zainteresowani podjęciem współpracy w zakresie konsultacji, tworzenia, testowania i certyfikacji Waszych produktów w technologii OPC. Dysponujemy wieloletnim doświadczeniem, narzędziami i bibliotekami oprogramowania zawierającymi ponad 1000000 linii kodu do wykorzystania wg potrzeb. Posiadamy gotowe produkty OPC, które mogą wzbogacić Państwa ofertę w zakresie rozwiązań dla systemów automatyki. Jesteśmy gotowi do przeprowadzenia szkolenia i prezentacji możliwości technologii OPC. Proponujemy: Tworzenie serwerów OPC dla stacji obiektowych, sterowników i urządzeń programowalnych (OPC Data Access, OPC Historical Data Access, OPC Alarms & Events) Tworzenie specjalistycznych klientów OPC do przetwarzania, rejestracji i akwizycji danych Tworzenie specjalistycznych modułów transferu danych OPC Data eXchange Tworzenie modułów uniwersalnej ekspozycji danych OPC XML-DA Prowadzenie testów OPC Compliance - kompatybilności produktu z technologią Prowadzenie procesu certyfikacji zgodności z OPC dla produktów Testowanie produktów podczas międzynarodowych spotkań OPC Interoperability Workshops Zainteresowanych prosimy o kontakt w celu omówienia możliwości i warunków współpracy [email protected] . CAS 90-527 Łódź ul. Wólczańska 128/134 Page: 21 Document: R-050102P05-WstepDoOPC