04.04.2006 Seite 1
Ziele Sie können die Vorteile von OPC benennen Sie kennen die wesentlichen Objekte eines OPC-Servers Sie können einen einfachen Client konfigurieren Sie kennen die DCOM-Einstellungen für einen OPC-Server 04.04.2006 Seite 2
Einführung in OPC: der Graben Unternehmensleitebene Produktionsleitebene Prozessleitebene? Feldebene Anlage 04.04.2006 Seite 3
Hystorische Lösungen (1990) Host Data Loggin Betriebsleitrechner TR TR Leitsystem A Leitsystem B TR TR Feldbus Leitsystem A Leitsystem B Steuergerät TR TR TR TR PG Feldgeräte SPS X SPS Y SPS Y BUS 1 04.04.2006 Seite 4
Lösungen um 1999 Leitstelle WindowsNT/2000 Anlagenbedienung, Data Logging als OPC Client Büro Windows 95/NT/2000 OPC Clientapplikationen Leitsystem A Host Leitsystem B OPC -C OPC -C OPC -C Ethernet WindowsNT/2000 OPC-Server OPC -S OPC Server TR OPC -S OPC Server TR Feldbus Steuergeräte SPS X SPS Y SPS Y BUS 1 Feldgeräte 04.04.2006 Seite 5
Lösungen heute Datenserver WindowsNT/2000 OPC-Server Leitstelle WindowsNT/2000 Anlagenbedienung, Data Logging als OPC Client Büro Leitsystem A Host Leitsystem B OPC -C OPC -C OPC -C Ethernet OPC -S OPC Server TR OPC -S OPC Server TR Steuergerät SPS X SPS Y SPS Y BUS 1 Feldgeräte 04.04.2006 Seite 6
Vorteile von OPC: Herstellerunabhängigkeit bei Hard- und Software +/- Plug & Play Konfiguration des Datenaustausches Multi-Client Zugriff und Datendistribution Netzwerkfähigkeit 04.04.2006 Seite 7
Begriffe DDE COM/DCOM, VARIANT OLE, OLE-Automation ActiveX OPC 04.04.2006 Seite 8
Anforderungen an die Datenübertragung Echtzeit, Reaktionszeit Datenmengen Auslösung 04.04.2006 Seite 9
Anwendungen: OPC-Spezifikationen OPC Overview OPC Security OPC Common OPC and XML OPC Data Access OPC Alarms & Events OPC Historical Data Access OPC Data Exchange OPC Batch 04.04.2006 Seite 10
OPC Overview & OPC Common Design Grundlagen Gemeinsame Interface Shutdown des OPC-Servers das Interface IOPCCOMMON mit seinen Methoden Installation und Registrierung von OPC-Server OPC-Server Browser 04.04.2006 Seite 11
Programmierschnittstellen C++ Application OPC Custom I/F OPC Server (In-Proc, Local, Remote, Handler) Vendor Specific Logic VB Application OPC Automation I/F 04.04.2006 Seite 12
Zwingende Interface optionale Interface IUnknown IOPCItemMgt IOPCGroupStateMgt [IOPCPublicGroupStateMgt] IOPCSyncIO IOPCASyncIO2 IConnectionPointContainer [IOPCASyncIO] old [IDataObject] old Standard OPC Group Object 04.04.2006 Seite 13
IOPCCommon Festlegung der LocalID (Sprache, Ländereinstellung) allgemeine Eigenschaften des Servers Client kann sich beim Server registrieren (Fehlersuche!) 04.04.2006 Seite 14
Installation und Registrierung Servertyp CATID, Identifikation Data Access Spezifikation 1.0A {63D5F430-CFE4-11D1-B2C8-0060083BA1FB} Data Access Spezifikation 2.0 {63D5F431-CFE4-11D1-B2C8-0060083BA1FB} Alarms und Event Spezifikation 1.0 {58E13251-AC87-11D1-84D5-00608CB8A7E9} OPC Batch Server Version 1.0 {A8080DA0-E23E-11D2-AFA7-00C04F539421} 04.04.2006 Seite 15
OPC-Serverbrowser Finden von Servern auf Remote Rechnern kein Durchsuchen der Registry durch Client nötig 04.04.2006 Seite 16
OPC-Server InProcServer32: als DLL im Clientprozess LocalServer32: als EXE in eigenem Prozess, kann durch mehrere Clients benutzt werden 04.04.2006 Seite 17
Data Access Server Der häufigste, nützlichste OPC-Server lesen und schreiben von Daten in SPS/Feldgeräten durch HMI (Anlagen- Visualisierung) 04.04.2006 Seite 18
OPC Alarms & Events Ueberwachen von Grenzwerten Ereignisgesteuerte Alarmierung oder Eventbildung Handling der Quittierung Problem: welche Funktionalität wo realisieren? 04.04.2006 Seite 19
OPC Historical Data Access Aufzeichnen von Werten der Feldebene Auswerten der Daten zu aggregierten Daten Erzeugen von Trenddarstellungen beim Client Editieren von Werten durch den Client (!!) 04.04.2006 Seite 20
OPC Batch Schnittstellen gemäss IEC61512-1 (früher ISA SP88.1) zur Rezeptierung von Batch-Anlagen (Verfahrenstechnik) Unterstützung der Ablaufsteuerung Reportgenerierung 04.04.2006 Seite 21
Neuere veröffentlichte Spezifikationen OPC DX: Austausch von Daten zwischen Geräten der Feldebene OPC XML-DA: Datenübertragung mit WSDL/SOAP/XML/http im.net-framework OPC Complex-Data: Erweiterung für DA und XML-DA für Datentypen 04.04.2006 Seite 22
OPC-Security Konfiguration der Sicherheitsanforderungen über OPC-Security Struktur gemäss NT-Security Modell Gewinn: plattformunabhängig portierbar Internet tauglich keine Unsicherheiten betreffend progr. Securtiy 04.04.2006 Seite 23
Ohne OPC-Security Deklarative Security: DCOM cnfg Windows NT-Security überwacht Client OPC-Server Programmatische Security: CoInitializeSecurity() 04.04.2006 Seite 24
Mit OPC-Security Windows NT-Security Bypass DCOM & NT-Security überwacht Client OPC-Server Programmatische Security: CoInitializeSecurity() OPC-Security: Identifikation, Authentizierung logon oder change user 04.04.2006 Seite 25
Systemfiles opcenum OPCComn_PS.dll OPCProxy.dll OPCDAAuto.dll Tool für die Suche von OPC-Servern auf anderen Rechner. Es stellt das Interface IOPCListServer zur Verfügung, mit dem OPC- Server gesucht werden können. Wird mit opcenum /regserver registriert. Enthält die Objekte und Interface die in OPC-Common festgelegt sind. Kann mit regsvr32 OPCComn_PS.dll registriert werden Proxy-Objekt, das die Kommunikation zwischen Client und Server implementiert. Kann mit regsvr32 OPCProxy.dll registriert werden (siehe Kapitel über COM/DCOM Stellt das Automation Interface zur Verfügung. Kann mit regsvr32 OPCDAAuto.dll registriert werden 04.04.2006 Seite 26
Registrierung 1. HKEY_CLASSES_ROOT\Vendor.Drivername. Version =A Deseription of your server 2. HKEY CLASSES_ROOT\Vendor.Drivername.Version\CLSID= {YourServer'sunlaueCLSID} 3. HKEY CLASSES_ROOT\ Vendor.Drivername, Version\OPC 4. HKEY CLASSES_ROOT\ Vendor.Drivername. Version\OPC\Vendor =Your vendor name 5. HKEY CLASSES_ROOT\CLSID\{Your Server's unique CLSID} = A Description of your server 6. HKEY CLASSES_ROOT\CLSID\{ Your Server's unique CLSID}\ProgID = Vendor.Drivername.Version One or more of the following lines (inproc and/or local/remote and/or handler) 7. HKEY-CLASSES_ROOT\CLSID\{Your Serverls unique CLSID}\lnprocServer32 = Full Path to DLL 8. HKEY CLASSES_ROOT\CLSID\{YourServer's unique CLSID}\LocalServer32 = Full Path to EXE 04.04.2006 Seite 27