OPC-Client für die XML-DA Schnittstelle des SIMATIC NET ... · .NET, speziell des OPC XML-DA...

97
Applikation zur Kommunikation Visual Basic .NET OPC-Client für die XML-DA Schnittstelle des SIMATIC NET OPC Servers Erweiterung

Transcript of OPC-Client für die XML-DA Schnittstelle des SIMATIC NET ... · .NET, speziell des OPC XML-DA...

Applikation zur Kommunikation

Visual Basic .NET OPC-Client für die XML-DA Schnittstelle des SIMATIC NET OPC Servers

Erweiterung

Gewährleistung, Haftung und Support

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 2/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Gewährleistung, Haftung und Support

Für die in diesem Dokument enthaltenen Informationen übernehmen wir keine Gewähr.

Unsere Haftung, gleich aus welchem Rechtsgrund, für durch die Verwen-dung der in diesem Dokument beschriebenen Beispiele, Hinweise, Pro-gramme, Projektierungs- und Leistungsdaten usw. verursachte Schäden ist ausgeschlossen, soweit nicht z.B. nach dem Produkthaftungsgesetz in Fäl-len des Vorsatzes, der grober Fahrlässigkeit, wegen der Verletzung des Lebens, des Körpers oder der Gesundheit, wegen einer Übernahme der Garantie für die Beschaffenheit einer Sache, wegen des arglistigen Ver-schweigens eines Mangels oder wegen Verletzung wesentlicher Vertrags-pflichten zwingend gehaftet wird. Der Schadensersatz wegen Verletzung wesentlicher Vertragspflichten ist jedoch auf den vertragstypischen, vorher-sehbaren Schaden begrenzt, soweit nicht Vorsatz oder grobe Fahrlässig-keit vorliegt oder wegen der Verletzung des Lebens, des Körpers oder der Gesundheit zwingend gehaftet wird. Eine Änderung der Beweislast zu Ih-rem Nachteil ist hiermit nicht verbunden.

Die Applikationsbeispiele sind unverbindlich und erheben keinen Anspruch auf Vollständigkeit hinsichtlich Konfiguration und Ausstattung sowie jegli-cher Eventualitäten. Sie stellen keine kundenspezifische Lösungen dar, sondern sollen lediglich Hilfestellung bieten bei typischen Aufgabenstellun-gen. Sie sind für den sachgemäßen Betrieb der beschrieben Produkte selbst verantwortlich. Diese Applikationsbeispiele entheben Sie nicht der Verpflichtung zu sicherem Umgang bei Anwendung, Installation, Betrieb und Wartung. Durch Nutzung dieses Applikationsbeispiels erkennen Sie an, dass Siemens über die oben beschriebene Haftungsregelung hinaus nicht für etwaige Schäden haftbar gemacht werden kann. Wir behalten uns das Recht vor, Änderungen an diesem Applikationsbeispiel jederzeit ohne Ankündigung durchzuführen. Bei Abweichungen zwischen den Vorschlä-gen in diesem Applikationsbeispiel und anderen Siemens Publikationen, wie z.B. Katalogen, hat der Inhalt der anderen Dokumentation Vorrang.

Copyright© 2004 Siemens A&D. Weitergabe oder Vervielfältigung die-ser Applikationsbeispiele oder Auszüge daraus sind nicht gestattet, soweit nicht ausdrücklich von Siemens A&D zugestanden.

Bei Fragen zu diesem Beitrag wenden Sie sich bitte über folgende E-Mail-Adresse an uns:

mailto:[email protected]

Vorwort

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 3/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Vorwort

Ziel der Applikation Der Prozessdatenaustausch zwischen speicherprogrammierbaren Steuer-ungen und Rechnern via OPC stellt ein Kernelement der Automatisierungs-technik dar.

Die vorliegende Applikation zeigt eine mögliche Vorgehensweise, um selbstständig individuelle OPC-Clients in der Programmiersprache Visual Basic .NET von Microsoft zu erstellen.

Hierzu wird eine Visualisierung eines Mischprozesses in Visual Basic .NET umgesetzt. Dabei wird das Programmierparadigma „.NET“ von Microsoft eingesetzt.

Kerninhalte dieser Applikation Folgende Lerninhalte werden mit dieser Applikation bereitgestellt:

• Installation und Konfiguration eines Web-Servers (in diesem Beispiel ist dies der Web-Server der Internet-Informationsdienste von Windows). Über diesen Web-Server erfolgt der Zugriff auf den OPC-Server.

• Usersicherheit (Authentifizierung und Autorisierung von Clients) für den Zugriff auf den Web-Server und den OPC XML-DA Web-Service.

• Demonstration im Umgang mit Web-Diensten (engl.: web service) unter .NET, speziell des OPC XML-DA Webservice.

• Demonstration der wichtigsten OPC XML-DA-Methoden für den Zugriff auf Prozessvariablen (den OPC-Server nach verfügbaren Prozessvari-ablen durchsuchen (browsen), synchron schreiben und lesen, asyn-chron lesen, Bedienen und Beobachten)

• Demonstration des Fehlerhandlings unter .NET

• Erstellung eines OPC-Clients sowohl als Windows-Anwendung als auch als ASP.NET Web-Anwendung (zum Aufruf in einem Web-Browser) mit annähernd gleichem Funktionsumfang.

Abgrenzung Diese Applikation enthält keine vollständige Beschreibung

• von Netzwerksicherheitsaspekten (Verschlüsselte Kommunikation über SSL, Einsatz von Firewalls, Benutzung von VPNs)

• des .NET-Frameworks,

• der OPC-Spezifikation sowie

• tiefgehender ASP.NET-Mechanismen

Deswegen werden grundlegende Kenntnisse im Bereich der objektorien-tierten Programmierung voraus gesetzt. Des Weiteren sind Kenntnisse in UML (UnifiedModellingLanguage) von Vorteil.

Vorwort

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 4/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Aufbau des Dokuments Die Dokumentation der vorliegenden Applikation ist in drei Dokumente ge-gliedert:

• Einführung

• Erweiterung

• Demonstration Zusätzlich sind zwei Setup-Programme (jeweils für die Windows-Anwendung und für die ASP.NET-Anwendung), die auch den Quellcode der Anwendung enthalten, sowie der STEP 7-Code verfügbar.

Das erste, vorliegende Dokument, die Erweiterung, ist für Personen ge-dacht, die sich einen schnellen Überblick verschaffen wollen.

Teil Beschreibung Einführung Applikationsbeschreibung und Funktionsprinzipien

Hier erfahren Sie alles, um sich einen Überblick zu verschaffen. Sie lernen die verwendeten Kompo-nenten (Standard Hard- und Softwarekomponen-ten, sowie die eigens erstellte Anwender Software) kennen.

Erweiterung Funktionsprinzipien im Detail und Programm-Strukturen

Hier wird auf die detaillierten Funktionsabläufe der beteiligten Hard- und Softwarekomponenten, die Lösungsstrukturen und wo sinnvoll auf die konkrete Implementierung dieser Applikation eingegangen. Sie benötigen diesen Teil, wenn Sie das Zusam-menspiel der Lösungskomponenten kennen lernen wollen, um diese z.B. als Basis für eigene Entwick-lungen zu verwenden.

Demonstration Aufbau, Projektierung und Bedienung der Applikation

Dieser Teil führt Sie Schritt für Schritt durch den Aufbau, wichtige Projektierungsschritte, Inbetrieb-nahme und Bedienung der Applikation.

Als weitere Komponente ist noch der S7-Programmcode verfügbar.

Teil Beschreibung

Setup-Programm der Win-dows-Anwendung.

Installiert die Windows-Anwendung auf Ihrem PC. Der Quellcode der Anwendung ist im Programmver-zeichnis verfügbar

Setup-Programm der ASP.NET-Anwendung.

Installiert die ASP.NET-Anwendung auf Ihrem PC. Der Quellcode der Anwendung ist im Programmver-zeichnis verfügbar

S7-Programmcode Der S7-Programmcode beinhaltet den Code und eine Bedienoberfläche.

Vorwort

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 5/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Referenz zum Automation and Drives Service & Support Dieser Beitrag stammt aus dem Internet Applikationsportal des Automation and Drives Service & Support. Durch den folgenden Link gelangen Sie di-rekt zur Downloadseite dieses Dokuments.

http://support.automation.siemens.com/WW/view/de/21402169

Vorwort

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 6/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Inhaltsverzeichnis

Inhaltsverzeichnis......................................................................................................... 6

Einleitung ...................................................................................................................... 7

1 Vorliegendes Dokument................................................................................. 7

Funktionsprinzipien und Programmstrukturen ......................................................... 8

2 Generelle Funktionsmechanismen ............................................................... 8 2.1 Internet-Informationsdienste (IIS) ..................................................................... 8 2.2 Sicherheitsaspekte der Internet-Informationsdienste ..................................... 11 2.3 Einführung in XML .......................................................................................... 17 2.4 Das SOAP Protokoll ....................................................................................... 18 2.5 Webservices ................................................................................................... 20 2.6 Einbindung eines Webservice in Visual Studio .NET ..................................... 22 2.7 Funktionsmechanismen des .NET Frameworks ............................................. 26 2.8 ASP.NET ........................................................................................................ 28 2.9 Sicherheitseinstellungen einer ASP.NET Anwendung ................................... 32

3 Funktionsmechanismen dieser Applikation .............................................. 36 3.1 Die OPC XML-DA Schnittstelle....................................................................... 37 3.2 Synchrone und Asynchrone Methoden der OPC XML-DA Schnittstelle......... 41 3.3 Verwendete Objekte und Methoden der XML-DA Schnittstelle ...................... 43 3.4 Zyklisches Lesen von Prozesswerten (Subscriptions).................................... 45 3.5 Datenflussmodell ............................................................................................ 47 3.6 Logische Datenschnittstelle zwischen Steuerung und OPC-Client................. 49 3.7 Verwaltung der OPC-Items im OPC-Client ..................................................... 52 3.8 Aufbau der Windows-Anwendung .................................................................. 53 3.9 Aufbau der ASP.NET Anwendung.................................................................. 55

4 Erläuterungen zum Beispielprogramm....................................................... 57 4.1 Erläuterung zum Simulationsprogramm (S7-Programm)................................ 57 4.2 Speicherung der Konfigurationsdaten ............................................................ 58 4.3 Windows-Anwendung ..................................................................................... 60 4.4 ASP.NET-Anwendung .................................................................................... 72

5 Konfiguration und Projektierung ................................................................ 83 5.1 Projektierung eines OPC-Servers mit STEP 7 ............................................... 83 5.2 Konfiguration der Internet Informationsdienste............................................... 88

Anhang und Literaturhinweise .................................................................................. 94

6 Glossar .......................................................................................................... 94

7 Literaturhinweise .......................................................................................... 96 7.1 Literaturangaben............................................................................................. 96 7.2 Internet-Link-Angaben .................................................................................... 97

Einleitung

Vorliegendes Dokument

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 7/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Einleitung

1 Vorliegendes Dokument

Dieses Dokument ist die Erweiterung des Dokumentes "OPC-Client für die XML-DA Schnittstelle des SIMATIC NET OPC Servers – Einführung".

Die Einführung beschreibt den grundlegenden Aufbau der Applikation und sollte daher vor dem vorliegenden Dokument, der Erweiterung, gelesen werden.

In diesem Dokument finden Sie weiter- und tiefer gehende Informationen zur Applikation als in der Einführung. Es ist aber kein Handbuchersatz.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 8/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Funktionsprinzipien und Programmstrukturen

Inhalt Hier wird auf die detaillierten Funktionsabläufe der beteiligten Hard- und Softwarekomponenten, die Lösungsstrukturen und wo sinnvoll auf die kon-krete Implementierung dieser Applikation eingegangen.

2 Generelle Funktionsmechanismen

Hier erfahren Sie… mehr über die Internet-Informationsdienste (IIS) und deren Sicherheitsas-pekte. Sie erhalten eine kurze Einführung in XML, SOAP, Webservices (Web-Dienste), das .NET-Framework sowie ASP.NET. Tabelle 2-1

Kap. Überschrift Relevanz Seite

2.1 Internet-Informationsdienste (IIS) Generell 8 2.2 Sicherheitsaspekte der Internet-

Informationsdienste Generell 11

2.3 Einführung in XML Generell 17 2.4 Das SOAP Protokoll Generell 18 2.5 Webservices Generell 20 2.6 Einbindung eines Webservice in Visual

Studio .NET Generell 22

2.7 Funktionsmechanismen des .NET Frameworks

Generell 26

2.8 ASP.NET ASP.NET-Anwendung 28 2.9 Sicherheitseinstellungen einer

ASP.NET Anwendung ASP.NET-Anwendung 32

2.1 Internet-Informationsdienste (IIS)

Einführung Die Internet-Informationsdienste (IIS – Internet Information Services) sind die im Windows Betriebssystem integrierten Dienste um Informationen im LAN, Intranet oder Internet zu veröffentlichen. Mit diesen Diensten kann auf relativ einfache Weise ein Webserver eingerichtet und administriert werden.

Funktionalität der IIS Die IIS stellen, je nach Installation folgende Dienste zur Verfügung. Bei der Installation der Internet Informationsdienste sollten Sie nur die Dienste in-stallieren, die Sie auch tatsächlich anwenden wollen (siehe Band "De-monstration" dieser Applikation).

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 9/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Tabelle 2-2

Dienst Beschreibung WWW-Dienst (bzw. WWW-Server)

Webserver - ermöglicht den Zugriff auf Webseiten oder Web-Dienste (engl.: web services) über das HTTP-Protokoll. In dieser Applikation wird ausschließlich der WWW-Server installiert und genutzt.

FTP-Server FTP – File Transfer Protocol, Ermöglicht die Erstellung von FTP-Sites zum Übertragen von Dateien.

SMTP-Dienst Mailserver-Dienst zur Übertragung von E-Mails. FrontPage 2000 Erweiterungen

Ermöglicht das Erstellen und Verwalten von Websites mit MS FrontPage.

Snap-In IIS IIS-Verwaltungsoberfläche (Internetdienste-Manger) für die Microsoft Management Console

Konfiguration der IIS Die Konfiguration der IIS erfolgt mit dem Internetdienste-Manager. Eine Beschreibung der benötigten Konfiguration des IIS erfolgt im Band "De-monstration" dieser Applikation. Der Internetdienste-Manager wird aufgeru-fen über:

Start Einstellungen Systemsteuerung Verwaltung Internetdiens-te-Manager

Der WWW-Dienst Wie bereits erwähnt, ermöglicht der WWW-Dienst den Zugriff auf Websei-ten oder Web-Dienste (siehe 2.5 Webservices) über das HTTP-Protokoll. Die Webseiten sind meist statische HTML-Seiten aber auch zunehmend dynamische ASP-, ASPX-, PHP- oder JSP-Seiten. Web-Dienste, die mit .NET erstellt wurden, haben die Erweiterung ASMX.

Das HTTP-Protokoll Das HTTP-Protokoll dient zum Datenaustausch in Computernetzwerken (Internet, Intranet oder lokale Netze) und basiert auf TCP/IP. Es bietet be-stimmte HTTP-Anfragemethoden mit denen Clients Informationen von Ser-vern anfordern können. Daraufhin liefert der Server die gewünschte Infor-mation an den Client zurück.

HTTP ist ein zustandloses Protokoll, d.h. es werden keine festen Verbin-dungen zwischen einem Client und einem Server aufgebaut (im Gegensatz zu einer projektierten S7-Verbindung). Dies hat zur Folge, dass Informatio-nen aus früheren Anfragen eines Clients verloren gehen. Dies hat auch Auswirkungen auf den Einsatz der OPC XML-DA Schnittstelle, die ihrer-seits auf SOAP und HTTP basiert (siehe 3.1 Die OPC XML-DA Schnittstel-le).

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 10/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die Standardwebsite und virtuelle Verzeichnisse Die Daten, die der WWW-Dienst auf einem Server den Clients zur Verfü-gung stellt, befinden sich auf der Standardwebsite. Die Standardwebsite enthält sog. virtuelle Verzeichnisse. Diese virtuellen Verzeichnisse stellen eine Verknüpfung zu einem realen Verzeichnis auf dem Server (oder einer Netzwerkfreigabe oder zu einer URL – hierauf wird im Rahmen dieser Ap-plikation jedoch nicht näher eingegangen) dar. Der Client erhält damit Zugriff auf bestimmte Bereiche (Verzeichnisse oder Dateien) auf dem Ser-ver.

Struktur der Standardwebsite Folgende Abbildung zeigt die Struktur der Standardwebsite (Default Web Site) im Internetdienste-Manager. Der gezeigte Aufbau ist der Standard-aufbau nach Installation des .NET Framework und der IIS. Im rechten Fenster sehen Sie unter "Path" die tatsächlichen Positionen der virtuellen Verzeichnisse ("Name") auf dem Server. Abbildung 2-1

Zugriff auf einen Webserver Der Zugriff auf den Webserver eines PC über das Intra- bzw. Internet er-folgt von ein Web-Client (z.B. einem Web-Browser) aus über die URL (sie-he Glossar) des PCs sowie der Bezeichnung des virtuellen Verzeichnisses und der Datei, auf die zugegriffen werden soll. Diese kann unterschiedlich aufgebaut sein:

• http://[Rechnername]/[Virtuelles Verzeichnis]/[Dateiname]

• http://[IP-Adresse]/[Virtuelles Verzeichnis]/[Dateiname]

• http://[Ihre Domain]/[Virtuelles Verzeichnis]/[Dateiname]

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 11/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.2 Sicherheitsaspekte der Internet-Informationsdienste

Allgemeines Beim Einsatz der IIS als Web-Server im Internet aber auch im Intranet oder einem lokalen Netzwerk, müssen Sie als Projekteur bzw. Administrator und Anwender ein besonderes Augenmerk auf die Netzwerksicherheit legen.

Die nachfolgend beschriebenen Mechanismen beziehen sich hauptsächlich auf die Anwendungssicherheit (Authentifizierung und Autorisierung der An-wendung gegenüber, siehe Glossar). Das sehr breite Thema der Netz-werksicherheit (sichere Kommunikation über SSL, Firewall, IPSec, ...) wird im Rahmen dieser Applikation nicht behandelt. Siehe dazu \10\.

Übersicht Die folgende Abbildung zeigt die Sicherheitsaspekte, die im Folgenden be-trachtet werden sollen. Die fett gedruckten Mechanismen wurden in der vorliegenden Applikation realisiert.

Die Web-Server Authentifizierung und Autorisierung (linker Kasten im Bild) werden in diesem Kapitel erläutert. Die ASP.NET bzw. Webservice Authen-tifizierung und Autorisierung (rechter Kasten) werden im Kapitel 3.1 Die OPC XML-DA Schnittstelle erläutert. Abbildung 2-2

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 12/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Web-Server Authentifizierung Um nur einem berechtigtem Benutzerkreis Zugriff auf den Web-Server zu ermöglichen ist es notwendig, jeden Benutzer/Client aufzufordern, sich ge-genüber dem Server zu identifizieren.

Die Identifikation erfolgt meist über die Angabe eines Benutzernamens und eines dazugehörigen Passworts. Der Client meldet sich dabei an einem auf dem Server vorhandenem Windows-Benutzerkonto an. Über dieses Benut-zerkonto werden dann die weiteren Berechtigungen festgelegt.

Zur Identifikation eines Clients auf dem IIS-Web-Server stehen die folgen-den Mechanismen zur Verfügung. Siehe auch \4\.

Tabelle 2-3

Mechanismus Beschreibung

Anonymer Zugriff Sicherheit: Keine

Der Zugriff eines Clients auf den Web-Server erfolgt unter dem Benutzer-namen "IUSR_Computername" und erfordert nicht die Angabe eines Be-nutzernamens oder Passworts. Der Benutzer "IUSR_Computername" ist der Gruppe "Gäste" zugeordnet. Für diese Applikation wird der anonyme Zugriff deaktiviert, so dass sich jeder Client am Server identifizieren muss.

Standardauthenti-fizierung Sicherheit: Nied-rig

Ist eine weit verbreitete Möglichkeit um Anwender zu Identifizieren. Diese Methode basiert auf der HTTP-Spezifikation (ab Version 1.1) und wird von allen Browsern unterstützt. Achtung Bei dieser Methode wird das Passwort unverschlüsselt (als BASE64 Co-dierung) über das Netz übertragen und kann von Dritten eingesehen wer-den! Daher sollte diese Methode nur angewendet werden, wenn eine si-chere Verbindung zwischen Client und Server besteht (z.B. eine Telefon- (Wähl-) verbindung oder eine Verbindung mit SSL-Verschlüsselung).

Digestauthentifi-zierung Sicherheit: Hoch

Die Digestauthentifizierung bietet die gleichen Features wie die Standar-dauthentifizierung. Jedoch erfolgt hier die Übertragung des Passworts verschlüsselt. Diese Methode ist im HTTP 1.1 Standard beschrieben. Da diese Authentifizierungs-Methode nur mit Windows 2000 Server zur Verfügung steht, wird sie in dieser Applikation nicht angewendet.

Integrierte Win-dows-Authen-tifizierung Sicherheit: Hoch

Diese Authentifizierungsmethode bietet ebenfalls einen Weg die Login-Informationen verschlüsselt vom Client zum Server zu übertragen. Zur Verschlüsselung wird eine Hash-Verschlüsselung oder der Kerboros Standard benutzt. Diese Authentifizierungs-Methode ist mit allen gängigen Browsern einsetzbar und wird auch in dieser Applikation verwendet. Diese hat jedoch den Nachteil, dass die Verbindung zwischen dem Client und dem Server nicht über einen Proxy erfolgen darf. Damit ist die integ-rierte Windows-Authentifizierung am besten für eine Intranet-Umgebung einsetzbar, bei der sich der Server und alle Clients in der gleichen Domain befinden.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 13/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Mechanismus Beschreibung

Client-Zertifikat Sicherheit: Hoch

Der Client identifiziert sich bei dieser Methode gegenüber dem Server mit einem digital signierten Zertifikat. Dieses Zertifikat wird von einer glaub-würdigen Zertifizierungsstelle ausgestellt (z.B. www.verisign.com). Zur Authentifizierung des Clients wird vom Web-Server SSL/TSL benutzt. Da die Einrichtung eines Client-Zertifikats nicht ganz einfach ist und die integrierte Windows-Authentifizierung für diese Applikation ausreichend ist, wird diese Methode hier nicht benutzt.

Einstellen der Authentifizierungs-Methode Die Authentifizierungs-Methoden des IIS Web-Servers werden über den In-ternetdienste-Manager eingestellt. Dabei kann die Methode global für den Zugriff auf den gesamten Web-Server, ein bestimmtes virtuelles Verzeich-nis oder eine bestimmte Datei festgelegt werden. Siehe dazu 5.2 Konfiguration der Internet Informationsdienste.

Web-Server Autorisierung Nachdem sich der Client gegenüber dem Server authentifiziert/identifiziert hat, werden dem Client vom Server bestimmte Rechte erteilt. Diese Rechte regeln den Zugriff auf die Daten des Web-Servers.

Für die Art und Weise, wie diese Rechte erteilt werden, bietet der IIS Web-Server verschiedene Möglichkeiten, die in folgenden Abschnitten erläutert werden.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 14/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Web-Berechtigungen Web-Berechtigungen werden direkt über den Internetdienste-Manager festgelegt (siehe 5.2 Konfiguration der Internet Informationsdienste). Dabei können die Rechte global für den Zugriff auf den gesamten Web-Server, ein bestimmtes virtuelles Verzeichnis oder eine bestimmte Datei festgelegt werden.

Die vergebenen Rechte gelten für alle Clients am Server gleichermaßen (im Gegensatz zu den NTFS-Berechtigungen). Folgende Rechte können vergeben werden: Tabelle 2-4

Berechtigung Beschreibung

Lesen Clients können Verzeichnis- oder Dateiinhalte sowie deren Eigenschaften lesen. Für diese Applikation aktiviert.

Schreiben Clients können Verzeichnis- oder Dateiinhalte sowie deren Eigenschaften verändern. Für diese Applikation deaktiviert.

Skriptzugriff (nur verfügbar, wenn Lese- oder Schreibberechtigungen erteilt wurden) Gestattet dem Benutzer den Zugriff auf den Quellcode Skripten auf dem Server (z.B. ASP-Skripten). Für diese Appli-kation ist der Skriptzugriff deaktiviert. Achtung Bei aktiviertem Skriptzugriff hat der Client eventuell die Mög-lichkeit, vertrauliche Informationen, wie z.B. Benutzernamen und Passwörter, in Skripten einer ASP-Applikation einzusehen. Auch könnte der Client den Quellcode auf dem Server ändern und so die Sicherheit und Performance des Servers beträcht-lich einschränken.

Verzeichnis durchsuchen

Der Client kann sich eine Liste von Dateien und Unterver-zeichnissen in diesem virtuellen Verzeichnis anzeigen lassen. Für diese Applikation deaktiviert.

Anwendungseinstellungen Eine IIS-Anwendung (z.B. eine ASP.NET-Anwendung oder ein Webservi-ce) wird mit dem Internetdienste-Manager zunächst als virtuelles Verzeich-nis angelegt. Dieses enthält eine oder mehrere in einem Web-Browser aus-führbare Dateien (z.B. *.asp, *.aspx, *.asmx). Zu dieser Applikation gehören auch alle Unterverzeichnisse und Dateien des virtuellen Verzeichnisses. Dieses virtuelle Verzeichnis muss dann zu einer Applikation gemacht wer-den (siehe 5.2 Konfiguration der Internet Informationsdienste).

Im Internetdienste-Manager lassen sich folgenden Einstellungen für eine IIS-Anwendung vornehmen.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 15/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Tabelle 2-5

Einstellung Beschreibung

Ausführungsberechtigungen Keine Es dürfen keine Skripts (z.B. ASP.NET-Anwendung) ausge-

führt werden. Nur Skripts Es dürfen nur Skripts auf dem Server ausgeführt werden.

Diese Einstellung wird in dieser Applikation sowohl für den OPC XML-DA Webservice als auch für die ASP.NET-Anwendung benutzt.

Skripts und aus-führbare Dateien

Es dürfen Skripts und ausführbare Dateien auf dem Server ausgeführt werden.

Anwendungsschutz Niedrig Die Anwendung läuft im IIS-Prozess. Im Falle eines Abstur-

zes durch einen Programmfehler wird auch der gesamte Web-Server lahm gelegt und muss manuell neu gestartet werden.

Mittel Alle IIS-Anwendungen laufen in einem separaten Prozess. Bei einem Programmfehler in einer Anwendung werden zwar alle parallel laufenden IIS-Anwendungen beendet, der Web-Server ist davon jedoch nicht betroffen. Diese Einstellung wird in dieser Applikation sowohl für den OPC XML-DA Web-service als auch für die ASP.NET-Anwendung benutzt.

Hoch Jede IIS-Anwendung läuft in einem eigenen Prozess. Der Absturz einer IIS-Anwendung hat keine Auswirkung auf an-dere IIS-Anwendungen oder den Web-Server. Bei vielen (>10) parallel laufenden IIS-Anwendungen führt diese Ein-stellung jedoch Performance-Einbußen.

NTFS- Berechtigungen Im Gegensatz zu den Webberechtigungen der IIS spielen sich die NTFS-Berechtigungen auf Betriebssystemebene ab. Auf NTFS-Dateisystemen (für Windows-Betriebssysteme ab Windows NT) können für jede Datei und jedes Verzeichnis verschiedene, individuelle Benutzerrechte vergeben werden.

Die wichtigsten dieser Berechtigungen sind Lese-, Schreib- und Ausfüh-rungsberechtigungen. Diese Berechtigungen gelten für alle Anwendungen (also auch für die IIS oder auch ASP.NET), die unter einem bestimmten Benutzer auf diese Dateien oder Verzeichnisse zugreifen. Die Berechtigun-gen können individuell für einzelne Benutzer oder Benutzergruppen verge-ben werden. Die Benutzer und Benutzergruppen werden in der Windows-Benutzerverwaltung angelegt und verwaltet.

Vergabe von NTFS-Berechtigungen Die Vergabe von NTFS-Berechtigungen für bestimmte Dateien oder Ver-zeichnisse erfolgt im Windows-Explorer über den Eigenschaften-Dialog der Datei bzw. des Verzeichnisses (in der Lasche "Sicherheitseinstellungen").

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 16/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Hinweis Wenn Sie Web-Berechtigungen und gleichzeitig NTFS-Berechtigungen vergeben haben, so haben die Berechtigungen, die einen Zugriff verwei-gern immer Vorrang vor Berechtigungen, die den Zugriff erlauben.

Beschränkungen für IP-Adressen Mit dieser Methode können Sie bestimmten Benutzern, Computern, mehre-ren Computern oder Domänen den Zugriff auf die Website, das Verzeichnis oder die Datei erteilen oder verweigern.

Da diese Funktion nur mit dem Windows 2000 Server Betriebssystem ver-fügbar ist, wird sie in dieser Applikation nicht eingesetzt.

IISLockdown Mit dem Tool IISLockdown können Sie einen Großteil des Absicherungs-prozesses für Ihren Web-Server automatisieren. Sie können einen spezifi-schen Servertyp auswählen, der Ihrem Web-Server am nächsten kommt und danach werden die wichtigsten Sicherheitseinstellungen für Ihren Web-Server automatisch vorgenommen. Dazu gehört:

• Deaktivierung nicht benötigter IIS-Dienste (z.B. FTP, E-Mail usw.)

• Ausführung nicht benötigter oder problematischer Skripte verhindern (z.B. .idq, .shtml, .idc, .printer usw.)

• Entfernen nicht benötigter virtueller Verzeichnisse auf dem Web-Server (IIS Samples, MSADC, IISHelp, Scripts, IISAdmin)

• Deaktivierung des anonymen Zugriffs auf den Web-Server

• Deaktivierung der WebDAV-Unterstützung (Dienst zum Editieren von Daten auf dem Server und Clients)

• Anlegen der Benutzergruppe "Web Applications" mit eingeschränkten Zugriffsrechten auf dem PC.

• Zugriffsberechtigung (Ausführen und Schreiben) für die Benutzergrup-pen "Web Anonymous Users" (anonymer Internetzugriff) und "Web Ap-plications" (ASP.NET-Anwendungen) auf diverse Systemdateien und -programme einschränken (über NTFS-Berechtigungen)

• Installation des URLScan ISAPI-Filters

URLScan URLScan ist ein ISAPI (Internet Server Application Programming Interface, siehe Glossar) Filter, der es dem Administrator der IIS (also Ihnen) ermög-licht festzulegen, welche HTTP-Anfragen vom Web-Server bearbeitet wer-den.

Abhängig von der gewählten Web-Server-Konfiguration im IISLockdown-Tool wird URLScan automatisch so konfiguriert, dass nur die für diese Kon-figuration unbedingt notwendigen HTTP-Anfragen bearbeitet werden.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 17/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.3 Einführung in XML

Das folgende Kapitel erläutert die Grundlagen von XML, welches die Grundlage für Webservices (Web-Dienste) bildet.

Die Grundlage der Webservices: XML XML (Extensible Markup Language) ist ein Standard für die strukturierte Darstellung von Daten. In XML-Dateien sind die Daten in Klartext abgelegt und damit sowohl menschen- als auch maschinenlesbar. Das bietet den Vorteil, dass XML-Daten auf beliebigen Systemen mit beliebigen (textver-arbeitenden) Programmen verarbeitet werden können.

Mit XML können die enthaltenen Daten mit verschiedensten Metainforma-tionen (Zusatzinformationen) versehen werden. Weitere Informationen zu XML finden Sie unter dem Link \6\.

Beispiel einer XML-Datei Folgendes Beispiel einer XML-Datei zeigt alle typischen Merkmale von XML. Konkret wird hier eine fiktive Kiste mit ihrem Inhalt beschrieben. Abbildung 2-3

Struktur einer XML-Datei Die Struktur XML-Datei entspricht einer hierarchischen Baumstruktur. Die nachfolgende Tabelle beschreibt die Elemente von XML. Tabelle 2-6

Element Beschreibung

XML-Deklaration

Enthält Informationen über die vorliegende XML-Datei. <?xml version="1.0"> bedeutet, dass diese XML-Datei der XML Spezifikation Version 1.0 entspricht.

Element Aufgebaut aus einem Start-Tag <Elementname> und einem End-Tag </Elementname>. Zwischen den beiden Tags befindet sich der Inhalt des Elements. Elemente ohne Inhalt kommen mit einem Tag aus: <Elementname />

Attribute Stellen die Metainformation eines Elements dar. Sie werden im Start-Tag eines Elements definiert: <Elementname Attributname="Attributwert">

Kommentare Dienen der besseren Verständlichkeit des XML-Dokuments und enthalten keine konkreten Daten: <!-- Kommentar -->

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 18/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.4 Das SOAP Protokoll

Einführung Das SOAP-Protokoll dient dem Datenaustausch zwischen Computersyste-men (in dieser Applikation zwischen dem Client und dem Webservice). Die Daten einer SOAP-Nachricht werden als Text in XML-Format dargestellt. Die Übertragung dieser Daten kann auf beliebigen Transportprotokollen er-folgen. Das gängigste und auch in dieser Applikation benutzte Transport-protokoll ist HTTP. HTTP lässt sich durch eine Firewall einfach administrie-ren und schützen.

Aufbau einer SOAP-Nachricht Eine SOAP-Nachricht ist immer in zwei Abschnitte geteilt: Tabelle 2-7

Abschnitt Beschreibung

Head Optional. Enthält die Metainformationen der Nachricht, z.B. über das Routing, die Verschlüsselung oder eine bestimmte Transak-tion.

Body Enthält die eigentlichen Daten der Nachricht. Diese Daten ent-sprechen einem bestimmten XML-Schema.

Kommunikation über das SOAP Protokoll Die Kommunikation über SOAP gliedert sich immer in zwei Schritte: Tabelle 2-8

Nr. Schritt Beschreibung 1 SOAP Request Der Client sendet eine Anforderung (als XML-Tele-

gramm) an den Server, z.B. eine bestimmte Funktion auszuführen.

2 SOAP Response Nach Bearbeitung der Anforderung, sendet der Server das Ergebnis in einem XML-Telegramm an den Client zurück, z.B. das Ergebnis der aufgerufenen Funktion.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 19/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Kommunikation über das SOAP Protokoll Das folgende Bild zeigt noch einmal grafisch den Ablauf einer SOAP Kom-munikation. Abbildung 2-4

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 20/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.5 Webservices

Was sind Webservices? Webservices (deutsch: Web-Dienste) basieren auf offenen Standards (XML, SOAP, WSDL) und ermöglichen eine Kopplung von Softwarekom-ponenten untereinander. Diese Kopplung ist auf Grund der Standardisie-rung unabhängig von Programmiersprachen, Plattformen oder Betriebsys-temen (im Gegensatz zum COM-Modell von Microsoft).

Damit können Softwarekomponenten (Clients) Funktionen anderer Soft-warekomponenten (Service) aufrufen und damit deren Funktionalität nut-zen. Die Softwarekomponenten können sich dabei auf dem gleichen PC befinden oder auch beliebige Netze (z.B. Internet/Intranet) miteinander ver-bunden sein. Für die Nutzung des Webservice durch den Client macht dies keinen Unterschied (abgesehen von der unterschiedlichen Laufzeit der Da-ten zwischen Client und Server).

Komponenten eines Webservice Die folgende Tabelle beschreibt die vier wichtigsten Komponenten eines Webservices (siehe Link \7\). Tabelle 2-9

Komponente Beschreibung

Service Eine Software-Komponente, die imstande ist, Daten aus XML-Dokumenten zu verarbeiten. Die XML-Dokumente können von einem Client auf beliebige Weise zum Service übertragen wer-den. Gängig ist der Transport über HTTP. Wie der Service die Informationen des XML-Dokuments verarbeitet ist vorerst be-langlos. Das Ergebnis der Bearbeitung wird dem Client wieder in einem XML-Dokument zugestellt.

Dokument Das XML-Dokument, welches zum Service gesandt wird, ist das wichtigste Merkmal von Webservices. Es enthält alle Applikati-ons-spezifischen Informationen. Die Dokumente, die zwischen einem Client und dem Service ausgetauscht werden, entsprechen einem bestimmten XML-Schema. Damit wird sichergestellt, dass beide Seiten gültige XML-Dokumente erstellen und verarbeiten. Das XML-Schema, auf welches beide Seiten Zugriff haben müssen, nennt man WSDL (Webservice Description Language, siehe unten).

Adresse Die Adresse des Service gibt an, wo dieser zu finden ist, wenn ein bestimmtes Protokoll (z.B. HTTP) verwendet wird.

Hülle Die Hülle (engl. envelope) ist ein Protokoll zum Kapseln des XML-Dokuments. Damit wird sichergestellt, dass die Service-spezifische Information des XML-Dokuments klar getrennt wer-den kann von anderen Informationen, die zwischen dem Client und dem Server ausgetauscht werden könnten. Das Protokoll, welches dafür eingesetzt wird, ist SOAP (siehe oben).

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 21/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Dienstbeschreibung mit WSDL Damit ein Client einen Webservice nutzen kann, muss dieser wissen, wel-che Operationen der Webservice zur Verfügung stellt. Des Weiteren muss der Client wissen, wie die XML-Dokumente bzw. SOAP-Nachrichten für die Kommunikation zwischen dem Client und dem Webservice aufgebaut sind. Zu diesem Zweck kann für jeden Webservice die Dienstbeschreibung im WSDL-Format (Webservices Description Language) abgefragt werden.

In der WSDL sind die Operationen des Webservices definiert, die vom Client aufgerufen werden können. Dazu gehören die benötigten Parameter für diese Operationen sowie der Aufbau der XML-Dokumente bzw. SOAP-Nachrichten um diese Operationen aufzurufen.

Die Entwicklungsumgebung Microsoft Visual Studio .NET kann Webservi-ces nutzen und liest dazu automatisch die WSDL Informationen ein. Damit werden die Funktionen des Webservice dem Anwender zur Verfügung ge-stellt (siehe 2.6 Einbindung eines Webservice in Visual Studio .NET).

Ein Beispiel für einen Webservice Die OPC Foundation (eine Interessenvereinigung namhafter Hersteller für die Weiterentwicklung des OPC-Standards) stellt einen Webservice für den Zugriff auf einen Beispiel-OPC-Server zur Verfügung.

Die Adresse des Webservice lautet: http://opcfoundation.org/XmlDaSampleServer/Service.asmx. Durch Ankli-cken des Links öffnen sie den Webservice in einem Web-Browser. Die an-gezeigte Website wird vom Webservice automatisch generiert und führt die verfügbaren Operationen des Webservice auf.

Durch Klicken auf die dargestellten Operationen werden die zugehörigen SOAP-Nachrichten (SOAP Request und zugehöriger SOAP Response) an-gezeigt. Aus diesen Telegrammen ist ersichtlich, welche Parameter an die Operationen übergeben werden und welche Rückgabewerte diese liefern.

Durch Klicken auf Service Description wird die zugehörige WSDL Datei an-gezeigt.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 22/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.6 Einbindung eines Webservice in Visual Studio .NET

Einleitung Dieses Kapitel erläutert Ihnen, wie Sie einen Webservice in Ihrer .NET-Anwendung nutzen. Dabei ist es unerheblich, welche .NET-Programmier-sprache Sie nutzen (C++, C# oder Visual Basic .NET) oder welche Anwen-dung Sie realisieren (Windows-Anwendung oder ASP.NET-Webanwendung), da die hier benutzte Entwicklungsumgebung (Visual Stu-dio .NET 2003) immer die gleiche ist.

Im Folgenden wird der OPC-Server Webservice der OPC Foundation in ei-ne Windows-Anwendung eingebunden. Für die Programmierung wird die Sprache Visual Basic .NET benutzt.

Anlegen einer neuen Windows-Anwendung In diesem Abschnitt erfahren Sie, wie Sie eine neue Windows-Anwendung mit der Programmiersprache Visual Basic .NET im Visual Studio .NET 2003 anlegen. Sollten Sie den Webservice in eine eigene Anwendung einbinden wollen, können Sie diesen Abschnitt überspringen.

Tabelle 2-10

Nr. Aktion Anmerkung

1 Starten Sie das Visual Studio .NET 2003 über: Start Programme Microsoft Visual Studio .NET 2003 Microsoft Visual Stu-dio .NET 2003

2 Öffnen Sie den Neues Projekt-Dialog über: Menü Datei Neu Projekt...

3 Nehmen Sie folgende Einstellungen vor: • Projekttypen Visual Basic-Projekte • Vorlagen: Windows-Anwendung • Name Ein Name für Ihre Anwendung • Speicherort Ablagepfad für Ihr Projekt

4 Erstellen Sie mit OK das neue Projekt. Das neue Projekt wird erstellt und geöffnet.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 23/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Einbinden eines Webservice Hier erfahren Sie, wie Sie in ein bestehendes Visual Studio .NET 2003 Pro-jekt einen Verweis auf einen Webservice einfügen. Dies wird am Beispiel des OPC-Server Webservice der OPC Foundation erläutert. Dies setzt vor-aus, dass Ihr PC eine Verbindung zum Internet besitzt.

Tabelle 2-11

Nr. Aktion Anmerkung

1 Öffnen Sie im Projektmappen-Explorer das Kontextmenü Ihres Projekts und wählen Sie Webverweis hinzufü-gen....

2 Geben Sie im Feld URL die URL des OPC-Servers Web-service der OPC Foundation an: http://opcfoundation.org/XmlDaSampleServer/ Service.asmx

3 Klicken Sie auf den Button Gehe zu. Die Dienstbeschreibung des Webservice wird angezeigt.

4 Sollte die Fehlermeldung rechts angezeigt werden, so werden Ihre Proxy-Einstellungen automatisch konfigu-riert. Das Visual Studio .NET kann die automatischen Einstellungen jedoch nicht nutzen. Deshalb müssen Sie Ihre Proxy-Einstellungen anpassen. Führen Sie dazu die folgenden Schritte aus: 1. Öffnen Sie die Internetoptionen über: Start

Einstellungen Internetoptionen. 2. Wählen Sie im Dialog Eigenschaften von In-

ternet die Lasche Verbindungen. 3. Öffnen Sie die LAN-Einstellungen mit dem Button

Einstellungen... (ganz unten). 4. Setzen Sie den Haken für Proxyserver für LAN

verwenden.... 5. Geben Sie in den Feldern Adresse und Port die

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 24/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung Adresse und den Port Ihres Proxy-Servers an. Soll-ten Sie diese Angaben nicht kennen, erfragen Sie diese bei Ihrem Netzwerk-Administrator.

6. Bestätigen Sie alle Angaben mit OK und führen Sie im Visual Studio noch einmal die Schritte 2 und 3 aus.

5 Wurde der Webservice gefunden, so wird ein Namens-vorschlag im Feld Webverweisname angezeigt. Diesen können Sie beliebig ändern oder beibehalten. Fügen Sie den Webverweis über den Button Verweis hinzufügen Ihrem Projekt zu. Den Webverweis sehen Sie nun

im Projektmappen-Explorer:

Nutzung der Funktionen eines Webservice Nach Einbinden des Webverweises in Ihr Projekt sind die Operationen des Webservices in Ihrem Programm nutzbar.

Dazu legt Visual Studio .NET zunächst anhand der WSDL-Informationen einen neuen Namespace für alle relevanten Webservice Komponenten an. In diesem Namespace befinden sich alle Klassen, die für den Zugriff auf die Operationen des Webservice benötigt werden.

Diese Klassen sind sog. Proxy-Klassen, die den Zugriff auf die eigentlichen Operationen des Webservice ermöglichen. Diese kapseln die gesamte Kommunikation zum Webservice über SOAP und HTTP und bedürfen pro-grammiertechnisch keiner weiteren Beachtung.

Damit können Sie auf die Operationen des Webservice genauso zugreifen, wie auf die Methoden einer beliebigen anderen Klasse.

Die Klassen eines Webservice im Objektbrowser Die Klassen eines Webservice können im Objektbrowser angezeigt wer-den. Dort sind alle Methoden und Eigenschaften der einzelnen Klassen er-sichtlich.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 25/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zugriff auf die Operationen eines Webservice Der programmatische Zugriff auf den Webservice erfolgt dann über das An-legen einer neuen Instanz der Webservice-Klasse. Über diese Instanz kön-nen dann die Operationen des Webservice aufgerufen werden. Dies wird in der folgenden Abbildung verdeutlicht. Abbildung 2-5

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 26/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.7 Funktionsmechanismen des .NET Frameworks

Einleitung Das .NET Framework ist eine Entwicklungs- und Ausführungsumgebung. Diese ermöglicht das Zusammenspiel von verschiedenen, .NET-fähigen Programmiersprachen und Bibliotheken zum Erstellen von .NET-Anwen-dungen.

Diese .NET Anwendungen werden, ähnlich wie bei Java, nicht direkt in Ma-schinencode übersetzt, der direkt auf der CPU des PC abläuft, sondern in eine Zwischensprache übersetzt. Diese Zwischensprache wird erst beim Starten der Anwendung von einer speziellen Ablaufumgebung in den Ma-schinencode übersetzt.

Übersicht Die folgende Abbildung zeigt die Struktur des .NET-Frameworks. Die ein-zelnen Komponenten werden in den folgenden Abschnitten beschrieben. Abbildung 2-6

WIN32 API Die Basis des .NET Frameworks ist die Win32 API (Application Program-ming Interface, Anwendungsprogrammierschnittstelle). Die Win32 API stellt Systemfunktionen zur Verfügung. Diese Systemfunktionen werden von Windows-Anwendungen benutzt, um Zugriff auf das Betriebssystem zu er-halten.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 27/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Common Language Runtime (CLR) Die Common Language Runtime (CLR) setzt auf der Win32 API auf. Sie stellt eine Laufzeitumgebung dar, die vom Modell her mit einer Java Virtual Machine vergleichbar ist. Sie übersetzt Just In Time (JIT) eine Art Bytecode in Maschinencode (dieser ist von der jeweiligen Prozessorarchitektur ab-hängig). Microsoft spricht hierbei von IL-Code (Intermediate Language).

Intermediate Language, Garbage Collector und unmanaged Code Vorteil des IL-Codes ist, dass er plattformunabhängig ist. Es ist so z.B. auch möglich, diesen Code auf Linux (Unix)-Systemen auszuführen, sofern dort eine CLR implementiert ist (z.B. http://www.mono-project.com/).

Die CLR übernimmt nicht nur das JIT-kompilieren des IL-Codes, sondern auch die gesamte Speicherverwaltung. So wurde, ähnlich wie in Java, ein Garbage Collector (GC) entwickelt, der in der CLR nicht mehr referenzierte Speicherbereiche nach einer nicht festgelegten Zeit frei gibt. Code, der dem Zugriff des Garbage Collectors unterliegt, bezeichnet man auch als “managed code“.

Damit es in bestimmten Fällen dennoch möglich ist, die Freigabe von Spei-cherbereichen manuell zu kontrollieren, kann der entwickelte Code als „unmanaged“ deklariert werden. Damit ist es möglich bestimmte Code-Be-reiche oder ganze Programme explizit vor dem Zugriff des Garbage-Collectors zu schützen.

Base Classes Was in der klassischen Windows-Welt die teilweise unterschiedlich mächti-gen Bibliotheken angeht, hat Microsoft nun eine einheitliche Basis-Klassen-Bibliothek implementiert, auf die unabhängig von der .NET-Programmier-sprache zugegriffen werden kann.

Visual Studio .NET Das Visual Studio .NET stellt für die unterschiedlichen .NET-Sprachen eine einheitliche Entwicklungsumgebung zur Verfügung.

So ist es ohne weiteres möglich, .NET-Komponenten in unterschiedlichen Sprachen zu realisieren. Interaktionen zwischen den .NET-Komponenten sind durch das Visual Studio .NET ohne größeres zutun möglich.

Somit ist vor allem durch die einfach zu handhabenden Integrationsmö-glichkeiten innerhalb der .NET-Komponenten ein schnelleres entwickeln möglich.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 28/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.8 ASP.NET

Einleitung ASP.NET ist eine Technologie von Microsoft zum Erstellen von dynami-schen Web-Anwendungen. ASP steht für Active Server Pages, wobei ASP.NET eine Weiterentwicklung von ASP ist.

ASP.NET (wie auch schon der Vorgänger ASP, DHTML oder Javascript) ermöglicht, im Gegensatz zu statischen HTML-Seiten, die Anzeige von Sei-ten mit dynamischen Inhalten (z.B. Ergebnisse von Berechnungen) im Web-Browser. Wie der Name ASP schon sagt, läuft dabei die Programmlo-gik der Web-Anwendung auf dem Server ab und ist von der Anwendungs-darstellung im Browser des Clients getrennt. Der Client bekommt nichts davon mit und erhält nur das Ergebnis der Programmlogik als HTML-Seite übermittelt.

ASP.NET ist Teil des .NET Frameworks. Damit können die Web-Anwen-dungen mit jeder .NET-kompatiblen Programmiersprache erstellt werden (z.B. Visual Basic .NET, C# oder J#). Weiter Infos unter \12\.

Übersicht der Funktionsweise Folgende Abbildung zeigt den Ablauf bei der Anforderung einer ASP.NET-Seite von einem Client aus. Abbildung 2-7

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 29/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Beschreibung der Funktionsweise Der Ablauf der Anforderung soll nun näher erläutert werden. Tabelle 2-12

Nr. Beschreibung

1 Der Client sendet vom Internet-Browser aus eine Anforderung an den Web-Server (über HTTP). Dies kann z.B. der Aufruf einer ASPX-Seite (diese stellen immer ASP.NET-Anwendungen dar) oder das Betätigen eines Buttons auf der ASPX-Seite sein.

2 Der Web-Server erkennt die Anforderung als eine ASP.NET-Anforderung und leitet sie an die ASP.NET-Anwendung weiter.

3 Je nach Anforderung werden bestimmte Funktionen im Programmcode der ASP.NET-Anwendung aufgerufen.

4 Beim ersten Aufruf des Programmcodes der ASP.NET-Anwendung wird dieser vom .NET-Framework in die Intermediate Language (IL) übersetzt und in der Common Language Runtime (CLR) des .NET-Frameworks ausgeführt.

5 Vom Programmcode der ASP.NET-Anwendung wird nun eine dynamische ASPX-Seite generiert und an den Web-Server übergeben.

6 Der Web-Server leitet die generierte ASPX-Seite an den Client weiter (über HTTP).

Lebenszyklus einer ASP.NET-Seite Beim jedem Aufruf einer ASPX-Seite durch einen Web-Server durchläuft die Seite auf dem Server verschiedene Zustände, die als Lebenszyklus be-schrieben werden. Die folgende Tabelle zeigt dabei den Lebenszyklus ei-ner ASPX-Seite in seiner zeitlichen Reihenfolge. Tabelle 2-13

Stadium Beschreibung

Initialisierung Initialisierung von Einstellungen, die für die gesamte Dauer der Anforderung gelten sollen.

Laden des Anzei-gestatus

Der Anzeigestatus ist eine Auflistung von Name/Wert-Paaren, in der Steuerelemente und die Seite selbst alle Informationen speichern, die über Webanforderungen hin-weg permanent verfügbar sein müssen.

Verarbeiten von Rücksendedaten

Verarbeitung von Formulardaten, z.B. wenn sich der Text einer Textbox geändert hat, wird ein entsprechendes Ereig-nis im Server ausgelöst.

Laden der Seite Laden der Seite mit allen Steuerelementen und allen sons-tigen, erforderlichen Daten, z.B. Datenbankabfragen.

Rücksenden der Änderungsbe-nachrichtigung

Wenn sich eine Änderung des Status zum vorherigen Sta-tus ergeben hat, wird eine entsprechende Methode aufge-rufen.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 30/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Stadium Beschreibung

Rücksenden der Ereignisbe-handlung

Aufruf von serverseitigem Code, der vom Client ausgelöst wurde (z.B. durch einen Klick auf einen Button).

Phase vor Sei-tendarstellung

Vorbereitung zur Darstellung der Seite. Ausführen von kurz-fristigen Aktualisierungen.

Speichern des Anzeigestatus

Der Anzeigestatus aller Steuerelemente und der gesamten Seite wird gespeichert.

Seitendarstellung Anzeige der Seite. Entladen der Sei-te

Das letzte Lebenszeichen der Seite, kurz bevor sie verwor-fen wird. Dient zum Freigeben kritischer Ressourcen.

Wichtige Features von ASP.NET Tabelle 2-14

Feature Beschreibung

.NET Framework

Die Integration von ASP.NET in das .NET Framework ermöglicht den Zugriff auf die komplette Funktionalität des .NET Frameworks von der Web-Anwendung aus. Dazu gehört auch die Nutzung aller .NET-kompatiblen Programmiersprachen.

Kompilierter Code

Der Programmcode (IL) einer ASP.NET-Anwendung wird beim ersten Aufruf von der CLR in Maschinencode kompiliert (deshalb kommt es beim ersten Aufruf einer ASPX-Seite auch zu einer Verzögerung gegenüber den danach folgenden Aufrufen). Das führt zu einem Performance-Vorteil gegenüber herkömmlichen ASP-Anwendungen (bei denen der Programmcode bei jedem Aufruf interpretiert wird).

Web Forms Mit Web Forms können formularbasierte Webseiten erstellt wer-den. Sie können dabei ASP.NET-Serversteuerelemente verwen-den, um allgemeine Elemente der Benutzeroberfläche zu erstellen und sie für allgemeine Aufgaben zu programmieren. Mit diesen Steuerelementen können Web Forms sehr schnell aus wieder verwendbaren integrierten oder benutzerdefinierten Komponenten erstellt werden, so dass der Code einer Seite vereinfacht wird.

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 31/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Speichern von Variablen in einer ASP.NET-Anwendung Wie beschrieben, basiert die Übertragung von ASPX-Seiten auf HTTP. Da dieses Protokoll zustandslos ist, ist es nicht ohne weiteres möglich Zustän-de (z.B. von Variablen oder gar ganzen Instanzen von Klassen) über meh-rere Aufrufe hinweg zu speichern. Wird eine Seite von einem Client aufge-rufen, weiß der Server zunächst nicht, ob der gleiche Client diese Seite nicht schon einmal angefordert hat.

ASP.NET bietet verschiedene Möglichkeiten Daten über mehrere Seiten-aufrufe hinweg zu speichern. Drei Möglichkeiten werden in der folgenden Tabelle beschrieben. In dieser Applikation wird der Session state benutzt. Tabelle 2-15

Status Beschreibung

ViewState Speichert den Status der Seite über mehrere Aufrufe der selben Seite hinweg (z.B. bei Formularen). Zum Status gehört z.B. der Zustand von Eingabefeldern und anderer Steuerelemente auf der Seite aber auch benutzerdefinierte Daten. Zum Speichern des ViewState wird auf der Webseite ein ver-stecktes Feld mit dem Namen __VIEWSTATE benutzt. Dort hinein wird der Status in codierter Form geschrieben. Da sich das Feld auf der Webseite selbst befindet, werden die ViewSta-te-Daten bei jedem Aufruf vom Client an den Server und zurück geschickt. Je mehr Daten also im ViewState gespeichert wer-den, desto größer ist das zu übertragende Datenvolumen (Kos-ten + Zeit!). Daten speichern: ViewState("[beliebiger Name]") = Daten Daten lesen: Daten = ViewState("[beliebiger Name]")

Session state Eine Sitzung (session) erstreckt sich über die gesamte Zeitdau-er, in der ein Client eine bestimmte Web-Anwendung benutzt. Daten, die im Session state gespeichert werden, verbleiben dabei immer auf dem Server. Damit wird das zu übertragende Datenvolumen sehr gering gehalten. Die Identifizierung einer Session erfolgt entweder durch einen Cookie (siehe Glossar) oder durch eine Session ID in der URL, die vom Server jedem Client zugewiesen wird. Daten speichern: Session("[beliebiger Name]") = Daten Daten lesen: Daten = Session("[beliebiger Name]")

Application state

Der Anwendungs-Status (Application state) enthält die Daten und Informationen die für die gesamte Web-Anwendung und auch für jeden Nutzer (Client) gelten. Der Anwendungs-Status wird im Hauptspeicher des Servers abgelegt und ist nicht persistent (d.h. nach Beenden des Web-Servers gehen diese Daten verloren.) Daten speichern: Application("[beliebiger Name]") = Daten Daten lesen: Daten = Application("[beliebiger Name]")

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 32/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

2.9 Sicherheitseinstellungen einer ASP.NET Anwendung

Übersicht Die folgende Abbildung zeigt die Sicherheitsaspekte, die im Rahmen dieser Applikation betrachtet werden. Im Folgenden wird näher auf die ASP.NET-Anwendung bzw. den Webservice eingegangen. Die fett gedruckten Me-chanismen wurden in der vorliegenden Applikation realisiert. Abbildung 2-8

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 33/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Authentifizierung Tabelle 2-16

Methode Beschreibung

Windows-integriert

Bei der Verwendung der integrierten Windows-Authentifizierung muss in der ASP.NET-Anwendung keine weitere Authentifizie-rung durchgeführt werden. Dieser wird vollständig vom IIS Web-Server ausgeführt. Dabei werden die auf dem Server vorhande-nen Windows-Benutzerkonten zu Authentifizierung des Clients benutzt. Diese Methode wird für diese Applikation genutzt.

Formularba-siert

Bei dieser Authentifizierungsmethode werden nicht die Win-dows-Benutzerkonten auf dem Server verwendet. Beim Aufruf einer geschützten Seite durch den Client wird dieser vom Server zu einer Login-Seite umgeleitet. Dort gibt der Client einen Be-nutzernamen und ein Passwort ein. Sind diese gültig, erhält der Client vom Server ein sog. Ticket. Dieses ist zeitlich begrenzt und wird als Cookie auf dem Client-Rechner gespeichert. Mit diesem Ticket kann der Client nun auf die geschützten Seiten zugreifen. Diese Authentifizierungsmethode wird in dieser Applikation nicht weiter betrachtet.

Passport Dazu wird das Microsoft Passport-SDK (Software Development Kit) benötigt. Die Authentifizierung erfolgt dabei über die Pass-port-Benutzerdatenbank von Microsoft im Internet. Dort sind die Benutzerinformationen aller registrierten Passport-Nutzer hinter-legt. Dieser Service wird z.B. vom E-Mail Dienst Hotmail von Micro-soft genutzt. Da der Passport-Service von Microsoft jedoch nicht kostenfrei für den Anbieter ist, wird dieser in der Applikation nicht genutzt.

Festlegen der Authentifizierungsmethode Die Festelegung der Authentifizierungsmethode für eine ASP.NET-Anwendung ist relativ einfach. Sie erfolgt in der Konfigurationsdatei "web.config" der ASP.NET-Anwendung.

Folgende Abbildung zeigt einen Ausschnitt aus dieser Konfigurationsdatei. Im Element "authentication" wird im Attribut "mode" die Art der Authentifi-zierung angegeben. Für diese Applikation ist der Wert "Windows", da die integrierte Windows-Authentifizierung eingesetzt wird. Weitere mögliche Werte sind "Forms", "Passport" oder "None". Abbildung 2-9

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 34/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Autorisierung Tabelle 2-17

Methode Beschreibung

URL-Autorisierung

Überprüfung des Dateizugriffs durch ASP.NET auf Basis der der angeforderten URL (z.B. "http://localhost/app/mainform.aspx"). Sie wird in der "web.config" konfiguriert. Damit kann der Zugriff auf die jeweilige ASP.NET-Anwendung für bestimmte Benutzer oder Benutzergruppen explizit zugelas-sen oder verweigert werden. In dieser Applikation ist der Zugriff auf die ASP.NET-Anwendung auf Mitglieder der Benutzergruppe "Users" eingeschränkt. Die Standardeinstellung (voreingestellt: Zugriff für alle Anwender erlaubt) ist in der globalen Konfigurationsdatei "machine.config" eingestellt.

Dateiautori-sierung

Siehe auch 2.2 Sicherheitsaspekte der Internet-Informationsdienste. Wenn die ASP.NET-Anwendung von einem Client gestartet wird, wird diese unter dem Benutzerkonto "ASPNET" auf dem Server ausgeführt (wenn keine Impersonation benutzt wird, siehe un-ten). Sie müssen also dafür sorgen, dass die von der Anwen-dung benötigten Dateien eine Freigabe für den Nutzer "ASPNET" haben, was im Normalfall auch so ist.

.NET-Roles Mit dieser Methode können Sie im Quellcode der ASP.NET-Anwendung festlegen, ob der aktuelle Client berechtigt ist, auf bestimmte Ressourcen zuzugreifen oder bestimmte Operationen auszuführen. Dabei überprüfen Sie den Client auf seinen Benut-zernamen und/oder auf seine Benutzergruppenzugehörigkeit hin. Diese Funktionalität ist in dieser Applikation nicht direkt ausge-führt. Ein kurzes Beispiel ist jedoch im Quellcode der Applikation als Kommentar beschrieben.

Einstellung der Autorisierung in der "web.config" Datei Die folgende Grafik zeigt die Autorisierungseinstellung für die vorliegende Applikation. Hierbei hat nur der Benutzer "OPC-Client" Zugriff auf die ASP.NET-Anwendung ("allow"-Element). Allen anderen Nutzern wird der Zugriff verweigert ("deny"-Element). Abbildung 2-10

Funktionsprinzipien und Programmstrukturen

Generelle Funktionsmechanismen

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 35/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Impersonation Wird von einem Client eine ASP.NET-Anwendung aufgerufen, so wird die-se im Normalfall auf dem Server unter dem Benutzerkonto "ASPNET" aus-geführt. Dieses Konto ist Mitglied der Gruppe "Users" und damit mit relativ wenigen Rechten ausgestattet.

Wenn Sie den Clients bei der Ausführung der ASP.NET-Anwendung indivi-duelle Rechte auf Dateiebene (über die Dateiautorisierung) gewähren möchten, können Sie die Impersonation nutzen. Damit übernimmt die ASP.NET-Anwendung auf dem Server die Identität des Clients (sie läuft al-so unter dem Benutzerkonto auf dem Server, an dem sich der Client an-gemeldet hat). Jetzt gelten für die ASP.NET-Anwendung die gleichen Zugriffsrechte auf Dateiebenen wie für das Benutzerkonto des Clients.

Die Impersonation wird in der Konfigurationsdatei "web.config" der ASP.NET-Anwendung festgelegt. Da die Impersonation in dieser Applikati-on jedoch nicht benutzt wird, soll an dieser Stelle auch nicht weiter darauf eingegangen werden.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 36/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3 Funktionsmechanismen dieser Applikation

Hier erfahren Sie… welche Funktionalitäten OPC XML-DA Schnittstelle anbietet, wie die Da-tenschnittstelle zwischen Steuerung und Kopfstation aufgebaut ist, wie die OPC-Items in der Windows-Applikation verwaltet werden und wie die Win-dows-Applikation aufgebaut ist. Tabelle 3-1

Kap. Überschrift Relevanz Seite

3.1 Die OPC XML-DA Schnittstelle Generell 37 3.2 Synchrone und Asynchrone Methoden

der OPC XML-DA Schnittstelle Generell 41

3.3 Verwendete Objekte und Methoden der XML-DA

Generell 43

3.4 Zyklisches Lesen von Prozesswerten (Subscriptions)

Generell 45

3.5 Datenflussmodell Generell 47 3.6 Logische Datenschnittstelle zwischen

Steuerung und OPC-Client Generell 49

3.7 Verwaltung der OPC-Items im OPC-Client

Windows-Anwendung 52

3.8 Aufbau der Windows-Anwendung Windows-Anwendung 53 3.9 Aufbau der ASP.NET Anwendung ASP.NET-Anwendung 55

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 37/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.1 Die OPC XML-DA Schnittstelle

Die Data Access Schnittstellen des SIMATIC NET OPC-Servers In der folgenden Abbildung sehen Sie die im SIMATIC NET OPC-Server verfügbaren Data Access Schnittstellen. Die linke Hälfte stellt die "klassi-schen", auf COM basierenden Schnittstellen dar. In der rechten Hälfte se-hen Sie die neue, auf einem Webservice und SOAP basierende Schnittstel-le. Abbildung 3-1

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 38/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Was ist OPC XML-DA OPC XML-DA (Data Access auf einen OPC-Server über XML) ist, wie das „klassische“ OPC Data Access, eine Schnittstelle für den Zugriff auf Variab-len eines OPC-Servers. Diese ist jedoch vollständig plattformunabhängig (im Gegensatz zur bei OPC Data Access benutzten COM-Technologie) und wird auch von der Entwicklungsumgebung Visual Studio .NET unterstützt.

Der Datenzugriff mittels OPC XML-DA hat einen an OPC Data Access an-gelehnten Funktionsumfang, es stehen allerdings nur einfache Schreib– und Lesedienste zur Verfügung. Änderungsgesteuerte Rückmeldungen ü-ber Datenänderungen, wie bei den COM bzw. DCOM OPC DA-Schnitt-stellen, sind für OPC XML-DA aufgrund der losen Internet-Verbindung (sie-he 2.1 Internet-Informationsdienste (IIS)) nicht vorgesehen.

SOAP vs. DCOM In dieser Applikation steht die Nutzung der auf SOAP basierenden OPC XML-DA-Schnittstelle im Vordergrund. Da bei OPC bisher die COM-Technologie bzw. über Rechnergrenzen hinweg DCOM eingesetzt wurde, sollen an dieser Stelle einmal SOAP und DCOM gegenübergestellt werden. Tabelle 3-2

Vorteile Nachteile

SOAP • Plattformunabhängig (Client-seitig)

• Einfach zu administrieren, da auf HTTP und XML basierend

• Nicht geeignet zur Übertra-gung großer Datenmengen

• Ein Web-Server wird auf der Kopfstation benötigt

DCOM • Ermöglicht Rückmeldungen vom Server an den Client

• Höherer Datendurchsatz

• Windows-basiert • Wird nicht mehr direkt von

.NET unterstützt • Komplizierte Administration

Sicherheitseinstellungen des OPC XML-DA Webservices Neben dem in STEP 7 projektierbaren Zugriffsschutz auf den OPC-Server, können Sie für den OPC XML-DA Webservice einen zusätzlichen Zugriffs-schutz konfigurieren. Da der OPC XML-DA Webservice eine ASP.NET-Anwendung ist, besitzt dieser eine Konfigurationsdatei "web.config".

In der "web.config" können, wie im Kapitel 3.1 Die OPC XML-DA Schnitt-stelle beschrieben, die Authentifizierungs- und Autorisierungsmethoden für den Webservice festgelegt werden.

Die "web.config" des OPC XML-DA Webservices finden Sie unter:

"\[Siemens Installationsverzeichnis]\SIMATIC.NET\opc2\binXML\"

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 39/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die "web.config" des OPC XML-DA Webservices in dieser Applikation In der folgenden Abbildung sind die benutzerdefinierten Einstellungen der "web.config" des OPC XML-DA Webservices für diese Applikation darge-stellt. Das Element "authentication" wurde dabei auf dem Standardwert (mode="Windows") belassen. Das Element "authorization" mit seinen Un-terelementen wurde neu eingefügt (siehe Band "Demonstration" dieser Ap-plikation). Abbildung 3-2

Durch die "web.config" vergebene Zugriffsrechte Der oben gezeigte Ausschnitt der "web.config" des OPC XML-DA Webser-vices vergibt folgende Zugriffsrechte:

• Zugriff erlaubt für die Benutzer "OPC-Client" und "ASPNET" auf dem PC "Head-end" (Kopfstation).

• Zugriff verweigert für alle anderen Benutzer

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 40/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Wichtige Unterschiede zur DA 2.05 Schnittstelle des OPC-Servers Die OPC XML-DA Schnittstelle weist zur (klassischen) DA 2.05 Schnittstel-le des OPC-Servers folgende, wichtige Unterschiede auf:

• Der Zugriff auf die OPC-Items erfolgt nur über die Item-ID, es gibt kein spezielles OPC-Item Objekt. Es gibt keine Client- oder Serverhandles für die einzelnen OPC-Items.

• Die Organisation von OPC-Items erfolgt nicht in OPC-Groups. Den O-perationen (z.B. Lesen oder Schreiben) wird beim Aufruf eine sog. Item-Liste übergeben, welche die Item-IDs enthält.

• Es muss nicht auf das Resourcenhandling geachtet werden, so wie es bei der auf COM-Mechanismen basierenden DA-Schnittstelle erfolgen muss

• Mit Ausnahme von subscriptions erfolgen alle Lese- und Schreibe-Operationen direkt in die Steuerung (das DEVICE).

• Die subscription ping rate entspricht der UpdateRate bei OPC-Group-Objekten.

• Die XML-DA Schnittstelle besitzt keinen OnDataChange-Mechanismus, d.h. der Server kann den Client nicht automatisch benachrichtigen, falls sich ein Wert einer Prozessvariablen ändert. Hierfür werden Subscripti-ons verwendet, die nach einer vom OPC-Client festgelegten Zeit abge-fragt werden müssen.

• Ein Abmelden des OPC-Clients am OPC-Server ist nicht möglich. Beim Verbindungsaufbau wird einzig geprüft, ob der OPC-Server vorhanden ist. Bei einem Zugriff auf den OPC-Server wird dieser gestartet. Erfolgt innerhalb einer Time-out Zeit kein Zugriff auf den OPC-Server, wird die-ser wieder gestoppt.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 41/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.2 Synchrone und Asynchrone Methoden der OPC XML-DA Schnittstelle

Einleitung Die Methoden eines Webservice sind grundsätzlich asynchron. Das heißt, dass der Client eine Anforderung (SOAP Request) zur Bearbeitung einer Methode an den Webservice sendet. Nach beenden der Bearbeitung durch den Webservice sendet dieser das Ergebnis an den Client zurück (SOAP Response). Wann der Webservice das Ergebnis zurücksendet ist zeitlich unbestimmt. Nach Absetzen des SOAP Requests kann der Client mit der Programmbearbeitung fortfahren und muss nicht auf den SOAP Response warten (Asynchronität).

Wenn der Webservice jedoch nicht innerhalb einer festgelegten Zeit (Time-out) auf eine Anforderung antwortet, wird von der aufgerufenen Funktion ein Fehler zurückgegeben. Die Timeout Zeit kann vom Anwender festgelegt werden.

Die Methoden des OPC XML-DA Webservice sind asynchron als auch syn-chron (dabei sind Request und Response in einem Aufruf zusammenge-fasst) aufrufbar.

Datenflussdiagramm für synchrone und asynchrone Funktionen Das folgende Bild verdeutlicht den Unterschied zwischen einem asynchro-nen (2 - 5) und einem synchronen Aufruf (6 - 9) der gleichen Operation im Webservice. Dabei wird aus dem normalen Programmablauf (1) zuerst eine asynchrone und dann eine synchrone Funktion aufgerufen. Eine genaue Erläuterung der Vorgänge erfolgt direkt nach der Abbildung.

Unabhängig davon, ob eine synchrone oder asynchrone Funktion aufgeru-fen wird, SOAP-Requests und SOAP-Responses sind immer die gleichen für die gleiche Operation des Webservice (3 = 7, 4 = 8).

Die Darstellung gilt genauso auch für entfernte OPC-Clients.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 42/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Abbildung 3-3

Asynchrone Methoden Aus dem normalen Programmablauf (1) heraus wird zunächst die Methode zum Senden einer Anforderung aufgerufen (2). Die Methodennamen zum Senden einer Anforderung beginnen mit „Begin“ (z.B. „BeginRead()“). Dem Parameter „callback“ wird der Name der Funktion übergeben, die aufgeru-fen werden soll, wenn der Webservice die Anforderung bearbeitet hat. Die Methode generiert dann einen SOAP-Request und sendet diesen an den Webservice (3). Nach Senden des SOAP-Requests kann der Client mit der Programmbearbeitung fortfahren. Hat der Webservice die Bearbeitung der Anforderung beendet, sendet dieser einen SOAP-Response an den Client (4). Dadurch wird im Client die „callback“-Funktion aufgerufen. Das Ergeb-nis vom Webservice wird über eine End-Methode abgefragt, z.B. „EndRead()“ (5).

Grundsätzlich sind asynchrone Methodenaufrufe dafür geeignet, Operatio-nen mit einem hohen Datenvolumen und damit längerer Laufzeit auszufüh-ren. Damit läuft die Operation im Hintergrund und die Oberfläche bleibt be-dienbar.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 43/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Synchrone Methoden Diese Methoden bestehen nur aus einem Methodenaufruf (z.B. Read() ). Nachdem die Methode gestartet wurde (6), hält die Programmausführung zunächst an. Die Methode generiert zunächst einen SOAP-Request und sendet diesen an den Webservice (7). Sie wartet danach so lange bis vom Webservice die SOAP-Response zurück gesendet wird (8). Während die-ser Wartezeit wird das Programm angehalten. Nach Empfang des SOAP-Response wird das Programm wieder fortgesetzt (9). Erfolgt die Antwort des Webservice nicht innerhalb der Timeout-Zeit wird die Methode mit ei-nem Fehler beendet (es wird eine Exeption ausgelöst).

Da synchrone Methode den Programmablauf unterbrechen, ist das Pro-gramm während des Aufrufs nicht bedienbar. Daher sollten lange Ausfüh-rungszeiten von synchronen Methoden (z.B. bei einem hohen Datenvolu-men) vermieden oder auf asynchrone Methoden ausgewichen werden.

3.3 Verwendete Objekte und Methoden der XML-DA Schnittstelle

Einleitung In diesem Kapitel erhalten Sie einen Überblick über die in dieser Applikati-on benutzten Methoden bzw. Operationen des OPC XML-DA Webservices. Unabhängig von ihrer tatsächlichen Implementierung im Quellcode dieser Applikation werden diese Methoden in ihrer Ausführung als synchrone Me-thoden beschrieben.

Eine detaillierte Beschreibung der Funktionen finden Sie im kommentierten Quellcode sowie unter 4 Erläuterungen zum Beispielprogramm.

RequestOptions Dies sind Aufrufoptionen, die jeder Methode der XML-DA Schnittstelle ü-bergeben werden. Hier können Sie festlegen, ob die XML-DA Schnittstelle nach dem Ausführen der Operation bestimmte Werte für jedes der betrof-fenen OPC-Items zurückgibt. Dazu gehören z.B. Item-Name, Zeitstempel oder Diagnoseinformationen

GetStatus Eine GetStatus-Anfrage überprüft den Web-Service und ermittelt hersteller-spezifische Informationen, die anderen OPC-Methoden nicht zugänglich sind. Die wichtigste Information hierbei ist der Betriebszustand des OPC-Servers ("running", "failed", "noConfig" usw.)

Browse Die Browse-Methode wird zum Navigieren im hierarchischen Adressraum des OPC-Servers benutzt. Damit können alle im Adressraum des OPC-Servers vorhanden Prozessvariablen angezeigt werden.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 44/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Write (Read) Die Write-Methode führt einen Schreibauftrag für ein oder mehrere Items aus, wobei jedes Item eine Prozessvariable repräsentiert. Analog dazu führt die Read-Methode einen Leseauftrag für ein oder mehrere Items aus.

Weitere Methoden Außerdem werden die Methoden Subscirbe, SubscriptionPolledRefresh und SubscriptionCancel verwendet. Diese werden im folgenden Kapitel nä-her beleuchtet.

Gegenüberstellung der Methoden Read und SubscriptionPolledRefresh Die folgende Tabelle stellt die Methoden Read und SubscriptionPol-ledRefresh (als Bestandteil einer Subscription, siehe folgendes Kapitel) ge-genüber. Sie zeigt, welche Methode für zyklisches (also ständiges beob-bachten) und welche Methode für azyklisches Lesen von Prozessvariablen geeignet ist. Tabelle 3-3

Operation Read SubscriptionPolledRefresh

Zyklisches Lesen - + Azyklisches Lesen + -

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 45/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.4 Zyklisches Lesen von Prozesswerten (Subscriptions)

Einleitung Der OPC XML-DA Webservice bietet dem Client die Möglichkeit eine lose Verbindung zum OPC-Server über mehrere Methodenaufrufe hinweg auf-zubauen.

Der Client hat dabei die Möglichkeit eine sog. "Subscription" am Webservi-ce anzumelden. Beim Anmelden übergibt der Client eine Liste von Items (also Prozessvariablen), die in der Subscription enthalten sein sollen.

Die angemeldete Subscription kann der Client kontinuierlich abfragen (pol-led refresh). Mit jeder Abfrage vom Client liefert der Webservice die Items samt Wert zurück, deren Wert sich seit der letzten Abfrage verändert hat.

Mit diesem Mechanismus kann die Latenzzeit bis zum Feststellen der Wert-änderung einer Prozessvariable verringert werden, ebenso wird die Kom-munikationslast zwischen Client und Server verringert.

Übersicht Die nachfolgende Abbildung zeigt übersichtlich den Lebenszyklus einer Subscription. Die drei Phasen, Anmelden, Abfragen und Abmelden einer Subscription, werden im folgenden beschrieben. Abbildung 3-4

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 46/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Subscription anmelden (Methode "Subscribe") Die Subscribe-Methode dient dem Anmelden einer Subscription am Web-service. Dabei übergibt der Client neben verschiedenen Optionen eine sog. Itemlist an den Webservice. Diese Itemlist enthält alle Items, die der Web-service im Rahmen dieser Subscription auf Änderungen überwachen soll.

Der Parameter "SubscriptionPingRate" (in Millisekunden) gibt die Zeitspan-ne an, innerhalb welcher der Server die Existenz des Clients überprüft. Falls der Client innerhalb der angegebenen Zeitspanne nicht mit dem Ser-ver kommuniziert hat, kann der Server alle Ressourcen freigeben, die für den Subscription-Vorgang des Clients erforderlich waren.

Die Methode gibt das Serverhandle (Datentyp "string") für diese Subscripti-on zurück. Über dieses Serverhandle wird die eben angemeldete Subscrip-tion bei allen folgenden Aufrufen identifiziert. Falls angefordert, liefert die Methode auch die Aktualwerte der Items der Itemliste zurück.

Subscription abfragen (Methode "SubscriptionPolledRefresh") Mit dieser Methode fordert der Client beim Server (Webservice) eine Aktua-lisierung der Items an, die bei der Anmeldung der Subscription übergeben wurden. Dazu übergibt der Client dem Server das zuvor erhaltene Ser-verhandle.

Die Antwort vom Webservice beinhaltet eine Itemlist, die die Items enthält, die seit der letzten Abfrage der Subscription ihren Wert verändert haben. Je nachdem welche Optionen beim Anmelden der Subscription gewählt wur-den, liefert der Webservice zu jedem Item Zusatzinformationen, wie z.B. Zeitstempel, Itemname usw.

Subscription abmelden (Methode "SubscriptionCancel") Mit dieser Methode meldet der Client die Subscription mit dem angegebe-nen Serverhandle beim Webservice ab. Der Webservice kann danach die entsprechenden Ressourcen wieder freigeben.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 47/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.5 Datenflussmodell

Einleitung Dieses Kapitel erläutert das Datenflussmodell der XML-DA Schnittstelle des SIMATIC NET OPC-Servers. Sie erfahren hier, auf welchem Weg die einzelnen Methoden der XML-DA Schnittstelle Daten mit der Steuerung austauschen.

Übersicht Das folgende Bild zeigt Ihnen eine Übersicht über die drei Methoden der XML-DA Schnittstelle, die zum Austausch von Prozessvariablen genutzt werden. Diese sind:

• die Abfrage einer Subscription (Refresh, 1 + 2),

• das direkte Lesen von Prozesswerten aus der Steuerung (Read, 3)

• das Schreiben von Prozesswerten in die Steuerung (Write, 4). Abbildung 3-5

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 48/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Erläuterung In der nachfolgenden Tabelle wird der Datenfluss für die drei angesproche-nen Methoden näher erläutert. Tabelle 3-4

Nr. Erläuterung

1 Das Abfragen einer Subscription liefert immer Werte, die einem Zwischen-speicher des OPC-Servers (Cache) entnommen wurden. Diese Abfrage liefert damit immer den Wert einer Variablen, deren Wert sich bei der letz-ten Aktualisierung des Cache geändert hat.

2 Die Zykluszeit, mit der der Cache aktualisiert wird, wird in der Projektierung des OPC-Servers im STEP 7-Projekt festgelegt. Sobald eine Subscription angemeldet wird, beginnt der OPC-Server mit der zyklischen Aktualisierung des Cache.

3 Die Methode "Read" (unabhängig davon, ob synchron oder asynchron auf-

gerufen) liest immer den aktuellen Prozesswert. Jede Read-Anfrage an den OPC-Server veranlasst diesen, den Prozesswert aus der Steuerung zu lesen und den aktuellen Wert an den OPC-Client zurückzugeben. Hierbei ist zu beachten, dass ein häufiges Lesen einer großen Anzahl von Prozesswerten, eventuell auch von mehreren Clients aus, zu einer Zunah-me der Kommunikationslast der Steuerung und der Busbelastung führt. Für ein zyklisches Pollen von Prozesswerten sollte daher immer eine Subscrip-tion benutzt werden.

4 Das Schreiben von Prozesswerten erfolgt direkt in die Steuerung. Jede Write-Anfrage an den OPC-Server veranlasst diesen, den neuen Wert so-fort in die Steuerung zu schreiben (in Abhängigkeit von den in der Projek-tierung vergebenen Zugriffsrechten)

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 49/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.6 Logische Datenschnittstelle zwischen Steuerung und OPC-Client

Einleitung In diesem Kapitel erfahren Sie, auf welche Prozessvariablen der Steuerung im OPC-Client zugegriffen wird und wie die zugehörigen OPC-Items im OPC-Client strukturiert werden.

Visualisierte Prozessvariablen Die Schnittstelle zur Kopfstation wird auf Steuerungsseite über drei Daten-bausteine implementiert. Die darin enthaltenen Variablen stellen die Pro-zesswerte des simulierten Mischprozesses dar. Folgende Tabelle be-schreibt den Aufbau der Datenbausteine. Tabelle 3-5

DB Variable Datentyp Beschreibung

Act_Cooler BOOL Akt. Zustand Kühler Act_Heater BOOL Akt. Zustand Heizung Act_InValve1 BOOL Akt. Zustand Einlassventil 1 Act_InValve2 BOOL Akt. Zustand Einlassventil 2 Act_Mixer BOOL Akt. Zustand Mixer Act_Niveau REAL Aktuelle Füllhöhe im Tank Act_OutValve BOOL Akt. Zustand Auslassventil Act_Temp WORD Aktuelle Temperatur im Tank

Data_Act_Val

Act_Time DATE_AND_TIME

Akt. Systemzeit auf der S7

Data_Control Start_Auto BOOL Mischprozess starten Rat_Niveau1 REAL Sollwert Niveau 1 Rat_Niveau2 REAL Sollwert Niveau 2 Rat_Temp_Max WORD Sollwert Maximaltemperatur Rat_Temp_Out WORD Sollwert Auslasstemperatur

Data_Rat_Val

Temparature_In WORD Sollwert Einlasstemperatur

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 50/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zugriff des OPC-Servers auf die Prozessvariablen Der Zugriff des OPC-Servers auf die Prozessvariablen der S7-Steuerung erfolgt über eine projektierte S7-Verbindung. Diese Verbindung wurde mit dem Tool NetPro im zugehörigen STEP 7-Projekt bereits projektiert. Für die Nutzung der XML-DA Schnittstelle ist es dabei unerheblich, ob die S7-Verbindung als einseitige oder zweiseitige Verbindung ausgeführt ist (In dieser Applikation ist sie einseitig).

Ebenfalls im STEP 7-Projekt ist der symbolische Zugriff auf alle Prozessva-riablen konfiguriert (Im Eigenschaften-Dialog des OPC-Servers im Tool NetPro). Die Symbolik der Variablen im OPC-Server baut sich folgender-maßen auf:

[Stationsname].[CPU-Name].[DB-Name].[Variable]

z.B.: SIMATIC 300(1).CPU 315-2 DP.Data_Act_Val.Act_Temp

Verwaltung der OPC-Items Für den Zugriff auf die Prozessvariablen vom OPC-Client aus werden bei OPC XML-DA Schnittstelle so genannte Itemlisten verwendet.

Diese Itemlisten enthalten ein Array von Items. Diese Items haben ver-schiedene Eigenschaften, die je nach Anforderung unterschiedlich einge-stellt werden können. Zu diesen Eigenschaften gehören z.B. der Itemname (die symbolische oder absolute Adresse des OPC-Items), der Itemwert (entweder der zu schreibende oder der gelesene Wert) und der Zeitstempel (wird vom OPC-Server vergeben).

Damit ein OPC XML-DA-Client über den Webservice auf Prozessvariablen zugreifen kann, muss dieser die entsprechenden Itemlisten (die Request-ItemLists) an den Webservice übergeben. Die vom Webservice zurückge-meldeten OPC-Items werden von diesem ebenfalls in Itemlisten (die Reply-ItemLists) verpackt.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 51/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Verwendete Itemlisten In der hier vorgestellten Applikation werden die verwendeten Prozessvari-ablen in drei verschiedenen Itemlisten gehalten. Die folgende Tabelle zeigt die Itemliste sowie die enthaltenen OPC-Items. Tabelle 3-6

Itemlist Beschreibung Variablen

Act_Cooler Act_Heater Act_InValve1 Act_InValve2 Act_Mixer Act_Niveau Act_OutValve Act_Temp Act_Time Start_Auto Rat_Niveau1 Rat_Niveau2 Rat_Temp_Max Rat_Temp_Out

Subscription-List

Diese Liste enthält alle zu beobachtenden Prozessvariablen. Diese werden über eine Subscription am Webservice angemeldet. Damit werden bei der Abfrage der Subsc-ription (SubscriptionPolledRefresh) alle Änderungen der Prozesswerte an den Client gemeldet.

Temparature_In Rat_Niveau1 Rat_Niveau2 Rat_Temp_Max Rat_Temp_Out

WriteSetpoints Diese Liste enthält die für diese Applikation benötigten Sollwerte. Wird eine Schreibanforderung ausgelöst, so wird diese Liste der Write-Methode überge-ben. Damit werden pro Methodenaufruf alle Sollwerte in die Steuerung geschrieben. Temparature_In

WriteAuto Diese Liste enthält nur eine boolesche Va-riable.

Start_Auto

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 52/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.7 Verwaltung der OPC-Items im OPC-Client

In der Windwos-Anwendung umgesetzte Lösung Um eine nahezu beliebige Erweiterbarkeit zu erreichen, bietet es sich an, die Daten, die ein OPC-Item beschreiben, in einer eigenen Klasse zu kap-seln. Dies ist durch die Klasse „OPCItemExtender“ umgesetzt worden.

Alle OPCItemExtender-Objekte werden in einem Objekt der Klasse OPCI-temExtenderList gespeichert, welche wiederum eine Spezialisierung der System.Collections.ArrayList-Klasse des .NET-Frameworks darstellt.

Konventionen der OPCItemExtender und OPCItemExtenderList Objekte Damit nun die Client- und die Serverhandles nicht separat verwaltet werden müssen, wurden folgende Konventionen getroffen:

• Das Clienthandle eines OPC-Items ist der Index eines OPCItemExten-der-Objektes innerhalb eines OPCItemExtenderList-Objekts.

• Um ein OPCItemExtender-Objekt aus der OPCItemExtenderList zu er-halten, gibt es zwei Möglichkeiten:

– Indizierter Zugriff auf die Liste (Index entspricht dem Clienthandle)

– Angabe der ITEM_ID, die der Anwendung immer bekannt sein sollte (z.B. in Form von Konstanten, #define-Direktiven, ini-Dateien o.ä.)

Die Hashtable der OPCItemExtenderList Um den letzten Punkt (Zugriff auf ein OPCItemExtender-Objekt über des-sen ITEM_ID) auch bei mehreren 1000 Objekten mit annehmbarer Perfor-mance durchführen zu können, enthält die OPCItemExtenderList eine Hashtable, die als Keys die ITEM_ID und als Value eine Referenz auf das jeweilige OPCItemExtender-Objekt enthält. Somit kann auf ein beliebiges OPCItemExtender-Objekt in konstanter Zeit (O(1)-Komplexität) zugegriffen werden.

Zugriff auf ein bestimmtes OPCItemExtender-Objekt über die Hashtable Folgende Abbildung verdeutlicht schematisch das Gesagte. Hiermit sind al-so Code-Konstrukte möglich, die in den nächsten Blöcken besprochen werden. Abbildung 3-6

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 53/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.8 Aufbau der Windows-Anwendung

Klassenmodell Abbildung 3-7

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 54/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Hinweis Es sind lediglich die wichtigsten Beziehungen und Attribute dargestellt.

Beziehungen zu Standard-.NET-Controls oder Strukturen, die für diese Applikation noch nötig sind, werden hier nicht gezeigt. Hierzu sei auf den kommentierten Quellcode verwiesen.

Erläuterung der wichtigsten Klassen In der folgenden Tabelle werden die wichtigsten Klassen aus dem obigen Klassendiagramm erläutert. Tabelle 3-7

Klasse Beschreibung

MainForm Das Hauptfenster der Anwendung. Hier werden alle Pro-zessvariablen visualisiert und auf alle anderen Klassen verwiesen.

XMLOPCServer-Management

In dieser Klasse werden alle Zugriffe auf die XML-DA Schnittstelle des OPC-Server gekapselt. Dazu gehört das Verbinden zum OPC-Server, das Browsen des Adress-raums des OPC-Servers sowie die Überprüfung des aktuel-len Status

XMLOPCSubscrip-tionManagement

Diese Klasse kapselt alle Methoden für den Zugriff auf eine Subscription. Pro Subscription wird eine eigene Instanz der Klasse angelegt (in dieser Applikation wird nur einen Subscription verwendet). An diese Subscription-Klasse werden zunächst die Items übergeben, die in der Subscription enthalten sein sollen. Danach wird die Subscription angemeldet. Die zyklische Abfrage der Subscription erfolgt automatisch von der Klas-se. Die aktualisierten Werte werden über ein Event über-geben.

XMLOPCWrite-Management

Diese Klasse kapselt alle Methoden um Prozesswerte über die XML-DA Schnittstelle in die Steuerung zu schreiben. Schreiben erfolgt über die Write-Methode der Klasse. Die-ser Methode werden die zu schreibenden Items überge-ben. Wurde der Schreibbefehl erfolgreich ausgeführt, so werden die aktuellen Werte aus der Steuerung über einen Event an die aufrufende Klasse übergeben. Analog dazu realisiert die Klasse XMLOPCReadManage-ment alle Methoden zum Lesen von Prozesswerten.

OPCItemExtender Siehe 3.7 Verwaltung der OPC-Items im OPC-Client

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 55/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

3.9 Aufbau der ASP.NET Anwendung

Klassenmodell Abbildung 3-8

Hinweis Es sind lediglich die wichtigsten Beziehungen und Attribute dargestellt.

Beziehungen zu Standard-.NET-Controls oder Strukturen, die für diese Applikation noch nötig sind, werden hier nicht gezeigt. Hierzu sei auf den kommentierten Quellcode verwiesen.

Funktionsprinzipien und Programmstrukturen

Funktionsmechanismen dieser Applikation

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 56/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Erläuterung der wichtigsten Klassen In der folgenden Tabelle werden die wichtigsten Klassen aus dem obigen Klassendiagramm erläutert. Tabelle 3-8

Klasse Beschreibung

MainForm Die Bedienoberfläche der Anwendung im Web-Browser. Hier werden alle Prozessvariablen visualisiert und auf alle anderen Klassen verwiesen.

XMLOPCServer-Management

In dieser Klasse werden alle Zugriffe auf die XML-DA Schnittstelle des OPC-Server gekapselt. Dazu gehört das Verbinden zum OPC-Server sowie die Überprüfung des aktuellen Status

XMLOPCSubscrip-tionManagement

Diese Klasse kapselt alle Methoden für den Zugriff auf eine Subscription. An diese Subscription-Klasse werden zunächst die Items übergeben, die in der Subscription enthalten sein sollen. Danach wird die Subscription angemeldet. Die zyklische Abfrage der Subscription wird von einem Javascript auf dem Client angestoßen. Die aktualisierten Werte werden dann in die Bedienoberfläche geschrieben.

XMLOPCWrite-Management

Diese Klasse kapselt alle Methoden um Prozesswerte über die XML-DA Schnittstelle in die Steuerung zu schreiben. Schreiben erfolgt über die Write-Methode der Klasse. Die-ser Methode werden die zu schreibenden Items überge-ben. Wurde der Schreibbefehl erfolgreich ausgeführt, so werden die aktuellen Werte aus der Steuerung an die auf-rufende Instanz übergeben.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 57/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

4 Erläuterungen zum Beispielprogramm

Hier erfahren Sie… mehr über die konkrete Realisierung dieser Applikation. Nachfolgend wer-den Ihnen die Struktur des S7-Programms sowie die wichtigsten Pro-grammsequenzen der Windows-Anwendung aufgezeigt. Tabelle 4-1

Kap. Überschrift Relevanz Seite

4.1 Erläuterung zum Simulationsprogramm (S7-Programm)

Generell 57

4.2 Speicherung der Konfigurationsdaten Generell 58 4.3 Windows-Anwendung Windows-Anwendung 60 4.4 ASP.NET-Anwendung ASP.NET-Anwendung 72

4.1 Erläuterung zum Simulationsprogramm (S7-Programm)

Einleitung Da das S7-Programm nicht im Vordergrund dieser Applikation steht, soll an dieser Stelle nur eine kurze Beschreibung der Funktionalität des Simulati-onsprogramms erfolgen.

Prozessbeschreibung Das S7-Steuerungsprogramm simuliert einen Mischprozess. Dabei werden über zwei Einlassventile Flüssigkeiten in einen Tank eingelassen. Ist der Tank gefüllt, wird die Flüssigkeit gemischt und erhitzt. Wenn die Solltempe-ratur erreicht ist, wird die Flüssigkeit wieder abgekühlt und danach über ein Auslassventil abgelassen.

Die Prozessvariablen für den Datenaustausch mit dem OPC-Server werden in drei verschiedenen Bausteinen gespeichert.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 58/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Programmstruktur Die folgende Abbildung zeigt die Aufrufstruktur des S7-Programms. Abbildung 4-1

4.2 Speicherung der Konfigurationsdaten

Einleitung Die Konfigurationsdaten für diese Applikation werden in einer XML-Datei gespeichert. Damit sind alle wichtigen Einstellungen für den Datenaus-tausch über die OPC XML-DA Schnittstelle frei einstellbar.

Die Klasse "ConfigManager" In der Klasse "ConfigManager" sind die Funktionen für den Zugriff auf die Konfigurationsdaten in der XML-Datei implementiert. Dazu werden die .NET-Methoden "XmlSerializer.Serialize" und "XmlSerializer.Deserialize" benutzt. In der folgenden Tabelle werden beide Funktionen näher erläutert. Tabelle 4-2

Funktion Beschreibung

Serialize Serialisiert ein übergebenes Objekt (in unserem Fall die nachfol-gend beschriebene "ConfigData"-Klasse) automatisch in eine XML-Datei. Das Format dieser XML-Datei sehen Sie im Abschnitt "Die Konfigurationsdatei "Options.xml"".

Deserialize Liest die angegebene XML-Datei ein und erzeugt daraus das ange-gebene Objekt (hier: "ConfigData"-Klasse).

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 59/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die Klasse "ConfigData" In der folgenden Abbildung sehen Sie die Konfigurationsdaten, die in der Klasse "ConfigData" hinterlegt sind. Dazu gehören neben der Adresse des Webservice auch die symbolischen Namen der OPC-Items. Abbildung 4-2

Die Konfigurationsdatei "Options.xml" Nachfolgend sehen Sie die aus der Klasse "ConfigData" serialisierte XML-Datei "Option.xml". Diese finden Sie im Programmverzeichnis der Applika-tion (Installation der Anwendung: siehe Band "Demonstration" dieser Appli-kation). Im Element "Data" ist dabei die gesamte Information der Klasse "ConfigData" gespeichert und kann hier auch manuell geändert werden. Abbildung 4-3

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 60/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

4.3 Windows-Anwendung

4.3.1 Verbinden zum OPC-Server

Einleitung Die gesamte Funktionalität für das Server-Management (Verbinden und Trennen vom OPC-Server) ist in der Klasse "XMLOPCServerManagement" gekapselt. Nachfolgend sollen die wichtigsten Code-Abschnitte dieser Klasse näher betrachtet werden.

Die Klasse wird in der Windows-Anwendung und auch in der ASP.NET-Anwendung eingesetzt. Sie weist jedoch in beiden Anwendungen architek-turbedingt kleine Unterschiede auf. Diese Unterschiede betreffen aber nicht direkt die Nutzung der OPC XML-DA Schnittstelle und sollen an dieser Stelle auch nicht weiter beleuchtet werden (siehe Quellcode der Anwen-dungen).

Verfügbarkeit des Webservice prüfen Tabelle 4-3

Beschreibung

Position XMLOPCServerManagement.ServerConnect Codeauszug

Beschreibung Das Objekt "OPCRequest" stellt eine Verbindung zum Webservice her. Dazu

wird dem Objekt die Adresse des Webservice übergeben ("m_ServerName"). Mit der Funktion "GetResponse" wird eine Antwort vom Webservice angefor-dert. Die Antwort selbst ist belanglos. Kann eine Verbindung hergestellt wer-den so tritt kein Fehler auf und das Programm kann fortgesetzt werden. Im Fehlerfall wird eine Exception geworfen, die im nächsten Abschnitt be-handelt wird.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 61/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Credentials an den Webservice übergeben (Authentifizierung) Tabelle 4-4

Beschreibung

Position XMLOPCServerManagement.ServerConnect (ASP.NET-Anwendung) Codeauszug

Beschreibung Wird eine Authentifizierung vom Webservice verlangt, so wird von der im vorherigen Abschnitt beschriebenen Methode "GetResponse" eine Exception geworfen (dies bedeutet gleichzeitig, dass die Verbindung zum Webservice aufgebaut werden konnte). Diese Exception ist vom Typ "WebException" und hat den Status "ProtocolError". Die Authentifizierungs-Informationen werden in Form von Credentials, die sich in einem sog. CredentialCache befinden, übergeben. Mit der Funktion "Add" wird ein neues Credential im Cache angelegt. Über die Funktion "Cre-dentialsDlg().GetCredentials" wird ein Dialog angezeigt, der den Benutzer auffordert einen Benutzernamen und ein Passwort für dieses neue Credential anzugeben. Das Objekt "m_OPCDataAccess" ist vom Typ "OPCXML_DataAccess" und ist eine Instanz auf den Webservice. Die Eigenschaft "Credentials" vom Typ "System.Net.ICredentials" enthält die Authentifizierungs-Informationen für den Webservice. An diese Eigenschaft wird der CredentialCache übergeben.

Betriebszustand des OPC-Servers prüfen Tabelle 4-5

Beschreibung

Position XMLOPCServerManagement.ServerConnect Codeauszug

Beschreibung Nachdem die Erreichbarkeit des Webservice geprüft und eventuell benötigte Anmeldeinformationen an diesen übermittelt wurden, wird an dieser Stelle der Betriebszustand des OPC-Servers geprüft. Zunächst wird der "Url"-Eigenschaft des "m_OPCDataAccess"-Objekts die Adresse des Webservices übergeben. Die Methode "GetStatus" überprüft den Betriebszustand des OPC-Servers. "m_OPCReply" enthält dabei die Antwort des Webservice.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 62/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die "GetStatus"-Methode Tabelle 4-6

Parameter Wert Beschreibung

LocaleID As String "en" Ein optionales Attribut, mit dem der Client die Spra-che für bestimmte Rückgabedaten festlegt.

ClientRequest-Handle As String

"1" Optional und in diesem Beispiel beliebig. In kom-plexen Systemen hilft diese Angabe dem Client bei der Zuordnung von Anfragen und Antworten.

Status As Server-tatus

"m_OPCStatus" Enthält die Statusinformationen zum OPC-Server, wie z.B. Version, Hersteller usw.

4.3.2 Schreiben von Prozesswerten (analog dazu Lesen)

Einleitung Die gesamte Funktionalität zum Schreiben von Prozesswerten in die Steue-rung ist in der Klasse "XMLOPCWriteManagement" gekapselt. Diese Klas-se wird auch in beiden Anwendungen dieser Applikation genutzt. Die dabei vorhandenen Unterschiede in der Klasse sind im Quellcode der jeweiligen Anwendung dokumentiert.

Zusammenstellen der Itemliste Tabelle 4-7

Beschreibung

Position XMLOPCWriteManagement.Write Codeauszug

Beschreibung Der Methode "Write" wird ein Array ("theItems()") vom Typ "Item" mit Items und ihren Werten übergeben. "Item" ist dabei eine Struktur, die in dieser Klasse definiert wurde. Dabei müssen die Items des Item()-Arrays in die "m_ItemRequestList"-Liste vom Typ "WriteRequestItemList" übertragen werden.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 63/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Ausführen der Schreiboperation Tabelle 4-8

Beschreibung

Position XMLOPCWriteManagement.Write Codeauszug

Beschreibung Die "m_ItemRequestList"-Liste enthält die Items (Itemnames und die zu schreibenden Werte) und wird an die "Write"-Methode übergeben. "True" gibt an, dass die neuen Aktualwerte der Prozessvariablen nach dem Schreiben zurückgegeben werden sollen. "m_ItemReplyList" vom Typ "ReplyItemList" enthält die zurückgegebenen Items mit ihren neuen Werten.

Die "Write"-Methode Tabelle 4-9

Parameter Wert Beschreibung

Options As Request-Options

m_Request-Options

enthält spezifische Optionen für die "Write"-Methode

ItemList As Write-RequestItemList

m_ItemRequestList

enthält die zu schreibenden Items (Itemnames und die zu schreibenden Werte)

ReturnValuesOn-Reply As Boolean

True Die neuen Aktualwerte der Prozessvariablen sollen nach dem Schreiben zurückgegeben werden.

RItemList As Reply-ItemList

M_ItemReply-List

enthält die zurückgegebenen Items mit ihren neuen Werten.

Errors() As OPCEr-ror

m_OPCErrors Array mit den eventuell aufgetretenen Fehlern.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 64/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zurückgelieferte Werte übergeben Tabelle 4-10

Beschreibung

Position XMLOPCWriteManagement.ValueChanges Codeauszug

Beschreibung Die von der "Write"-Methode zurückgegebenen Items werden an die Funktion "ValueChanges" übergeben und dort ausgelesen. Die Übergabe der zurückgelesenen Werte erfolgt hier über das Event "Da-taUpdated". Diesem werden die Items im Argument "SubArgs" vom Typ "OPCCallbackEventArgs" übergeben. Die Klasse "OPCCallbackEventArgs" ist eine selbst angelegte Klasse. Diese leitet sich von der .NET-Klasse "EventArgs" ab und enthält zusätzlich ein Item-Array (siehe folgendes Bild). Dieses Item-Array enthält die vom OPC-Server zurückgegebenen Werte der Items.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 65/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zurückgelieferte Werte übernehmen Tabelle 4-11

Beschreibung

Position MainForm.m_XMLOPCWriteSetpoints_DataUpdated Codeauszug

Beschreibung Über das Schlüsselwort "Handles" ist die Sub "m_XMLOPCWriteSetpoints_-

DataUpdated" am "DataUpdated"-Event der "m_XMLOPCWriteSetpoints"-Klasse angemeldet. Wird das Event ausgelöst (siehe vorheriger Abschnitt), dann wird diese Sub aufgerufen. Das Argument "e" enthält die übergebenen Items.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 66/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

4.3.3 Nutzung von Subscriptions

Überblick Dieses Kapitel erläutert Ihnen, wie die Subscription in dieser Applikation genutzt wird. Die Nutzung der Subscription wird dabei komplett in der XMLOPCSubscriptionManagement-Klasse gekapselt.

Folgende Tabelle zeigt die Schritte für die Nutzung einer Subscription mit der genannten Klasse auf. Die nähere Erläuterung der Schritte erfolgt in den nächsten Abschnitten dieses Kapitels. Tabelle 4-12

Schritt Erläuterung

Itemliste zusammenstellen Die Prozessvariablen, die mit der Subscription zyklisch abgefragt werden sollen, werden in einer Itemliste zusammengefasst.

Anmelden einer Subscription Hier wird die Subscription am Webservice an-gemeldet. Dabei wird dem Webservice auch die Itemliste übergeben.

Auslesen der zurückgegebe-nen Werte

Nachdem die Subscription am Webservice an-gemeldet wurde, liefert dieser die aktuellen Wer-te der Prozesswerte der Subscription zurück.

Zyklisches Abfragen einer Subscription (Request)

Die zyklische Abfrage ist Timer-gesteuert. Nachdem eine Subscription angemeldet wurde, wird der Timer automatisch gestartet. Das Zeit-intervall des Timers wird im Optionsdialog der Windows-Anwendung festgelegt. Ist der Timer abgelaufen, wird dieser angehalten und die Abfrage der Subscription angestoßen (asynchron).

Zyklisches Abfragen einer Subscription (Response)

Wurde die Abfrage des Subscription beendet, werden die vom Webservice übermittelten Werte ausgelesen und über ein Event an die überge-ordnete Klasse übergeben. Gleichzeitig wird der Timer wieder gestartet.

Abmelden der Subscription Soll die zyklische Aktualisierung der Prozess-werte beendet werden, muss der Timer, der die zyklische Abfrage der Subscription anstößt ab-geschaltet und die Subscription am Webservice abgemeldet werden. Hinweis Wird die Subscription über einen bei der Anmel-dung festgelegten Zeitraum nicht abgefragt, meldet der Webservice die Subscription von allein ab. Der Client erhält dabei keine Benach-richtigung. Versucht der Client die Subscription erneut abzufragen, erhält er eine Fehlermel-dung.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 67/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Itemliste zusammenstellen Tabelle 4-13

Beschreibung

Position XMLOPCSubscriptionManagement.AddItems Codeauszug

Beschreibung Der Methode "AddItems" wird ein Array ("theItems()") vom Typ "Item" mit Items (enthalten nur die Itemname, d.h. die Symbolik der OPC-Items) über-geben. "Item" ist dabei eine Struktur, die in dieser Klasse definiert wurde. Zunächst müssen die Items des Item()-Arrays in die "m_ItemRequestList"-Liste vom Typ "SubscribeRequestItemList" übertragen werden.

Anmelden der Subscription Tabelle 4-14

Beschreibung

Position XMLOPCSubscriptionManagement.Subscribe Codeauszug

Beschreibung Mit der Methode "Subscribe" der Webservice-Referenz "m_OPCServer" (vom Typ "OPCXML_DataAccess") wird die Subscription im Webservice angemel-det. Nachdem die Subscription angemeldet wurde, wird ein Timer gestartet (nicht in der Abbildung dargestellt), nach dessen Ablauf die Subscription abgefragt wird.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 68/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die "Subscribe"-Methode Tabelle 4-15

Parameter Wert Beschreibung

Options As Request-Options

m_SubscriptionOptions

enthält zusätzliche Optionen für die Subscription (z.B. soll in dieser Applikation der Zeitstempel der OPC-Items vom Server zurückgemeldet werden).

ItemList As Subscri-beRequestItemList

m_ItemRequestList

enthält die symbolischen Namen der OPC-Items, die in dieser Subscription enthalten sein sollen.

ReturnValuesOn-Reply As Boolean

True Die aktuellen Werte der Prozessvariablen sollen bei diesem Aufruf zurückgeliefert werden.

SubscriptionPingRa-te As Integer

UpdateRate * 5 Timeout-Zeit für die Subscription. Wenn nicht in-nerhalb dieser Zeit eine Abfrage der Subscription erfolgt, schließt der Webservice die Subscription und gibt die reservierten Ressourcen frei. Der Client wird dabei nicht benachrichtigt. In dieser Applikation beträgt die Timeout-Zeit den fünffachen Wert der Aktualisierungszeit der Subsc-ription (wird im Optionsdialog der Anwendung fest-gelegt).

RItemList As Subsc-ribeReplyItemList

ItemReplyList Enthält die vom Webservice zurückgelieferten Items mit ihrem Aktualwerten.

Errors() As OPC-Error

m_OPCErrors ist ein Array, welches die eventuell aufgetretenen Fehler enthält.

ServerSubHandle As String

m_OPCServer-Handles(0)

Das vom Webservice zurückgegebene Serverhand-le über das diese Subscription identifiziert wird.

Auslesen der zurückgegebenen Werte Tabelle 4-16

Beschreibung

Position XMLOPCSubscriptionManagement.Subscribe Codeauszug

Beschreibung Die von der "Subscribe"-Methode zurückgegebenen Items in der "ItemReply-List" werden, wie in der "Write"-Methode der " XMLOPCWriteManagement"-Klasse auch, über ein Event übergeben.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 69/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zyklisches Abfragen einer Subscription (Request) Tabelle 4-17

Beschreibung

Position XMLOPCSubscriptionManagement.Refresh Codeauszug

Beschreibung Nach Ablauf des Timers "m_UpdateTimer" wird die Funktion "Refresh" aufge-

rufen. In dieser Funktion wird zunächst der Timer deaktiviert. Danach wird die Me-thode "BeginSubscriptionPolledRefresh" aufgerufen. Damit wird die asyn-chrone Abfrage der Subscription angestoßen.

Die "BeginSubscriptionPolledRefresh "-Methode Tabelle 4-18

Parameter Wert Beschreibung

Options As Request-Options

m_SubscriptionOptions

enthält zusätzliche Optionen für die Subscription (z.B. soll in dieser Applikation der Zeitstempel der OPC-Items vom Server zurückgemeldet werden).

ServerSubHandles() As String

m_OPCServer-Handles

String-Array, welches das Serverhandle der abzu-fragenden Subscription enthält. Damit können meh-rere Subscriptions gleichzeitig abgefragt werden.

HoldTime As Date CDate-("0:00:00")

Wird hier nicht benutzt. Siehe /3/

HoldTimeSpecified As Boolean

False Der Parameter "HoldTime" soll nicht benutzt wer-den.

WaitTime As Integer 0 Wird hier nicht benutzt. Siehe /3/ ReturnAllItems As Boolean

False Es sollen nur die Items zurückgegeben werden, deren Wert sich seit der letzten Abfrage verändert hat.

callback As Sys-tem.AsyncCallback

New AsyncCall-back(AddressOf Subscription-CallBack)

Übergabe der Adresse der Rücksprungfunktion (hier "SubscriptionCallBack "), die aufgerufen wird, wenn die asynchrone Abfrage der Subscription abgeschlossen wurde.

asyncState As Object

m_OPCServer Referenz auf das Webservice-Objekt, von dem aus die asynchrone Funktion aufgerufen wird. Dieses wird der Rücksprungfunktion übergeben.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 70/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zyklisches Abfragen einer Subscription (Response) Tabelle 4-19

Beschreibung

Position XMLOPCSubscriptionManagement.SubscriptionCallBack Codeauszug

Beschreibung Die Funktion "SubscriptionCallBack" wird aufgerufen nachdem die asynchro-ne Abfrage der Subscription abgeschlossen wurde. Das "ar"-Objekt enthält eine Referenz auf den Webservice, welche dem Objekt "OPCProxy" zuge-wiesen wird. Mit dem "OPCProxy"-Objekt kann dann die Abfrage der aktualisierten Werte der Subscription erfolgen. Die geschieht über die Funktion "EndSubscription-PolledRefresh()", welche nachfolgend beschrieben wird.

Die "EndSubscriptionPolledRefresh "-Methode Tabelle 4-20

Parameter Wert Beschreibung

asyncResult As Sys-tem.IAsyncResult

ar Stellt den Status eines asynchronen Vorgangs dar. Enthält die "AsyncState"-Eigenschaft, die wiederum eine Referenz auf das Webservice-Objekt enthält, welches mit der Funktion "BeginSubscriptionPolled-Refresh" übergeben wurde.

InvalidServerSub-Handles() As String

InvalidHandles Enthält die Serverhandles der Subscriptions, die vom Webservice nicht bearbeitet werden konnten.

RItemList() As Subscribe-PolledRefresh-ReplyItemList

ItemPol-ledRefreshList

Enthält die Item-Listen aller Subscriptions die abge-fragt wurden. In dieser Applikation wird nur eine Subscription abgefragt.

Errors() As OPCError

OPCErrors Sind bei der Abfrage der Subscriptions Fehler aufge-treten, so werden diese hier eingetragen.

DataBufferOverflow As Boolean

Overflow Ist der Wert diese Attributs TRUE, haben sich Ände-rungen für die Items ergeben, die aber wegen be-schränkter Ressourcen nicht gespeichert werden konnten. Die einzelnen Items zeigen an, ob sie von der Ressourcenbeschränkung betroffen sind oder nicht.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 71/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Abmelden der Subscription Tabelle 4-21

Beschreibung

Position XMLOPCSubscriptionManagement.CancelSubscription Codeauszug

Beschreibung Hier wird die angegebene Subscription abgemeldet. Der Webservice kann nun die für diese Subscription reservierten Ressourcen wieder freigeben. Das angegebene Serverhandle wird in dieser Applikation als Membervariable in der Instanz der Klasse gespeichert.

Die " SubscriptionCancel "-Methode Tabelle 4-22

Parameter Wert Beschreibung

ServerSubHandle As String

ServerHandle Dient der Identifizierung der Subscription im Server.

ClientRequestHand-le As String

m_SubscriptionOptions.Client-RequestHandle

Optionale Angabe des Clienthandles. Dient der Client-seitigen Identifikation der Subscription.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 72/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

4.4 ASP.NET-Anwendung

4.4.1 Verbinden zum OPC-Server

Einleitung Die gesamte Funktionalität für das Server-Management (Verbinden und Trennen vom OPC-Server) ist in der Klasse "XMLOPCServerManagement" gekapselt. Nachfolgend sollen die wichtigsten Code-Abschnitte dieser Klasse näher betrachtet werden.

Die Klasse wird in der Windows-Anwendung und auch in der ASP.NET-Anwendung eingesetzt. Sie weist jedoch in beiden Anwendungen kleine, architekturbedingte Unterschiede auf. Diese Unterschiede betreffen aber nicht direkt die Nutzung der OPC XML-DA Schnittstelle und sollen an die-ser Stelle auch nicht weiter beleuchtet werden (siehe Quellcode der An-wendungen).

Verfügbarkeit des Webservice prüfen Tabelle 4-23

Beschreibung

Position XMLOPCServerManagement.ServerConnect Codeauszug

Beschreibung Das Objekt "OPCRequest" stellt eine Verbindung zum Webservice her. Dazu

wird dem Objekt die Adresse des Webservice übergeben ("m_ServerName"). Mit der Funktion "GetResponse" wird eine Antwort vom Webservice angefor-dert. Die Antwort selbst ist belanglos. Kann eine Verbindung hergestellt wer-den, tritt kein Fehler auf und das Programm kann fortgesetzt werden. Im Fehlerfall wird eine Exception geworfen, die im nächsten Abschnitt be-handelt wird.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 73/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Credentials an den Webservice übergeben (Authentifizierung) Tabelle 4-24

Beschreibung

Position XMLOPCServerManagement.ServerConnect Codeauszug

Beschreibung Wird eine Authentifizierung vom Webservice verlangt, so wird von der im

vorherigen Abschnitt beschriebenen Methode "GetResponse" eine Exception geworfen (dies bedeutet gleichzeitig, dass die Verbindung zum Webservice aufgebaut werden konnte). Diese Exception ist vom Typ "WebException" und hat den Status "ProtocolError". Das Objekt "m_OPCDataAccess" ist vom Typ "OPCXML_DataAccess" und ist eine Instanz auf den Webservice. Die Eigenschaft "Credentials" vom Typ "System.Net.ICredentials" enthält die Authentifizierungs-Informationen für den Webservice. Die hier übergebenen "DefaultCredentials" sind die Anmeldeinformationen des Benutzers (Benutzername und Passwort) unter dem die ASP.NET-Anwendung auf der Kopfstation läuft. Dieser Benutzer muss berechtigt sein, auf den Webservice zuzugreifen (siehe 2.9 Sicherheitseinstellungen einer ASP.NET Anwendung)

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 74/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Betriebszustand des OPC-Servers prüfen Tabelle 4-25

Beschreibung

Position XMLOPCServerManagement.ServerConnect Codeauszug

Beschreibung Nachdem die Erreichbarkeit des Webservice geprüft und eventuell benötigte Anmeldeinformationen an diesen übermittelt wurden, wird an dieser Stelle der Betriebszustand des OPC-Servers geprüft. Zunächst wird der "Url"-Eigenschaft des "m_OPCDataAccess"-Objekts die Adresse des Webservices übergeben. Die Methode "GetStatus" überprüft den Betriebszustand des OPC-Servers. "m_OPCReply" enthält dabei die Antwort des Webservice.

Die "GetStatus"-Methode Tabelle 4-26

Parameter Wert Beschreibung

LocaleID As String "en" Ein optionales Attribut, mit dem der Client die Spra-che für bestimmte Rückgabedaten festlegt.

ClientRequest-Handle As String

"1" Optional und in diesem Beispiel beliebig. In kom-plexen Systemen hilft diese Angabe dem Client bei der Zuordnung von Anfragen und Antworten.

Status As Server-status

"m_OPCStatus" Enthält die Statusinformationen zum OPC-Server, wie z.B. Version, Hersteller usw.

4.4.2 Schreiben von Prozesswerten (analog dazu Lesen)

Einleitung Die gesamte Funktionalität zum Schreiben von Prozesswerten in die Steue-rung ist in der Klasse "XMLOPCWriteManagement" gekapselt. Diese Klas-se wird auch in beiden Anwendungen dieser Applikation genutzt. Die dabei vorhandenen Unterschiede in der Klasse sind im Quellcode der jeweiligen Anwendung dokumentiert.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 75/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zusammenstellen der Itemliste Tabelle 4-27

Beschreibung

Position XMLOPCWriteManagement.Write Codeauszug

Beschreibung Der Methode "Write" wird ein Array ("theItems()") vom Typ "Item" mit Items und ihren Werten übergeben. "Item" ist dabei eine Struktur, die in dieser Klasse definiert wurde. Zunächst müssen die Items des Item()-Arrays in die "m_ItemRequestList"-Liste vom Typ "WriteRequestItemList" übertragen werden.

Ausführen der Schreiboperation Tabelle 4-28

Beschreibung

Position XMLOPCWriteManagement.Write Codeauszug

Beschreibung Die "m_ItemRequestList"-Liste enthält die Items (Itemnames und die zu schreibenden Werte) und wird an die "Write"-Methode übergeben. "True" gibt an, dass die neuen Aktualwerte der Prozessvariablen nach dem Schreiben zurückgegeben werden sollen. "m_ItemReplyList" vom Typ "ReplyItemList" enthält die zurückgegebenen Items mit ihren neuen Werten.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 76/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die "Write"-Methode Tabelle 4-29

Parameter Wert Beschreibung

Options As Request-Options

m_Request-Options

enthält spezifische Optionen für die "Write"-Methode

ItemList As Write-RequestItemList

m_ItemRequestList

enthält die Items zu schreibenden Items (Itemna-mes und die zu schreibenden Werte)

ReturnValuesOn-Reply As Boolean

True Die neuen Aktualwerte der Prozessvariablen sollen nach dem Schreiben zurückgegeben werden.

RItemList As Reply-ItemList

m_ItemReply-List

enthält die zurückgegebenen Items mit ihren neuen Werten.

Errors() As OPCEr-ror

m_OPCErrors Array mit den eventuell aufgetretenen Fehlern.

Zurückgelieferte Werte übergeben Tabelle 4-30

Beschreibung

Position XMLOPCWriteManagement.Write Codeauszug

Beschreibung Die von der "Write"-Methode zurückgegebenen Items befinden sich in der "m_ItemReplyList". In der "For"-Schleife werden nun alle zurückgegebenen Items in ein Array von Items ("tempItems()") geschrieben und an den Aufrufer der "Write"-Methode zurückgegeben.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 77/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

4.4.3 Nutzung von Subscriptions

Überblick Dieses Kapitel erläutert Ihnen, wie die Subscription in dieser Applikation genutzt wird. Die Nutzung der Subscription wird dabei komplett in der XMLOPCSubscriptionManagement-Klasse gekapselt.

Folgende Tabelle zeigt die Schritte für die Nutzung einer Subscription mit der genannten Klasse auf. Die nähere Erläuterung der Schritte erfolgt in den nächsten Abschnitten dieses Kapitels. Tabelle 4-31

Schritt Erläuterung

Itemliste zusammenstellen Die Prozessvariablen die mit der Subscription zyklisch abgefragt werden sollen, werden in einer Itemliste zusammengefasst.

Anmelden einer Subscription Hier wird die Subscription am Webservice an-gemeldet. Dabei wird dem Webservice auch die Itemliste übergeben.

Auslesen der zurückgegebe-nen Werte

Nachdem die Subscription am Webservice an-gemeldet wurde, liefert dieser die aktuellen Wer-te der Prozesswerte der Subscription zurück.

Zyklisches Abfragen einer Subscription (Client-Seite)

Die zyklische Abfrage ist Timer-gesteuert. Nachdem eine Subscription angemeldet wurde, wird über ein Java-Script auf dem Client ein Timer gestartet. Das Zeitintervall des Timers wird auf der Bedienoberfläche der ASP.NET-Anwendung festgelegt. Ist der Timer abgelaufen, wird vom Java-Script eine Aktualisierung der Seite und damit eine Abfrage der Subscription angestoßen.

Zyklisches Abfragen einer Subscription (Server-Seite)

Wurde die Abfrage des Subscription beendet, werden die vom Webservice übermittelten Werte ausgelesen und in die Bedienoberfläche ge-schrieben.

Abmelden der Subscription Soll die zyklische Aktualisierung der Prozess-werte beendet werden, muss der Timer, der die zyklische Abfrage der Subscription anstößt, abgeschaltet und die Subscription am Webser-vice abgemeldet werden.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 78/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Itemliste zusammenstellen Tabelle 4-32

Beschreibung

Position XMLOPCSubscriptionManagement.AddItems Codeauszug

Beschreibung Der Methode "AddItems" wird ein Array ("theItems()") vom Typ "Item" mit Items (enthalten nur die Itemname, d.h. die Symbolik der OPC-Items) über-geben. "Item" ist dabei eine Struktur, die in dieser Klasse definiert wurde. Zunächst müssen die Items des Item()-Arrays in die "m_ItemRequestList"-Liste vom Typ "SubscribeRequestItemList" übertragen werden.

Anmelden einer Subscription Tabelle 4-33

Beschreibung

Position XMLOPCSubscriptionManagement.Subscribe Codeauszug

Beschreibung Mit der Methode "Subscribe" der Webservice-Referenz "m_OPCServer" (vom Typ "OPCXML_DataAccess") wird die Subscription im Webservice angemel-det. Das zurückgegebene Server-handle wird in dieser Applikation in einer Sessi-on-Variablen gespeichert: Session("ServerHandle"), dies ist im obigen Code nicht dargestellt.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 79/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Die "Subscribe"-Methode Tabelle 4-34

Parameter Wert Beschreibung

Options As Request-Options

m_SubscriptionOptions

enthält zusätzliche Optionen für die Subscription (z.B. soll in dieser Applikation der Zeitstempel der OPC-Items vom Server zurückgemeldet werden).

ItemList As Subscri-beRequestItemList

m_ItemRequestList

enthält die symbolischen Namen der OPC-Items, die in dieser Subscription enthalten sein sollen.

ReturnValuesOn-Reply As Boolean

False Die aktuellen Werte der Prozessvariablen sollen nicht bei diesem Aufruf zurückgeliefert werden.

SubscriptionPingRa-te As Integer

UpdateRate * 5 Timeout-Zeit für die Subscription. Wenn nicht in-nerhalb dieser Zeit eine Abfrage der Subscription erfolgt, kann der Webservice die Subscription schließen und die reservierten Ressourcen freige-ben.

RItemList As Subsc-ribeReplyItemList

ItemReplyList ist bei diesem Aufruf nicht von Bedeutung, da die Aktualwerte nicht zurückgeliefert werden sollen.

Errors() As OPC-Error

m_OPCErrors ist ein Array, welches die eventuell aufgetretenen Fehler enthält.

ServerSubHandle As String

m_OPCServer-Handles(0)

Das vom Webservice zurückgegebene Serverhand-le über das diese Subscription identifiziert wird.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 80/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zyklisches Abfragen einer Subscription (Client-Seite) Tabelle 4-35

Beschreibung

Position Java-Script auf der ASPX-Seite im Element: "<script language="javascript" id="clientEventHandlersJS">"

Codeauszug

Beschreibung Die Java-Script-Funktion "window_onload" wird bei jedem Laden oder Aktua-

lisieren der Seite aufgerufen. In der Funktion "enableInterval" wird abhängig vom Zustand der Checkbox "chkAutoRefresh" ein Timer gestartet bzw. angehalten. Die Checkbox wird beim Verbinden auf den OPC-Server aktiviert. Wird der Timer gestartet ("timer = window.setInterval..."), wird jeweils nach Ablauf der "interval"-Zeit die Funktion "clickIt" aufgerufen. Diese wiederum löst ein Klick-Ereignis auf den Button "btnRefresh" aus. Dieser Button besitzt zwar keinen Server-seitigen Code, löst aber die Ausführung der "Pa-ge_Load"-Sub und damit die Abfrage der Subscription aus.

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 81/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Zyklisches Abfragen einer Subscription (Server-Seite) Tabelle 4-36

Beschreibung

Position XMLOPCSubscriptionManagement.Refresh Codeauszug

Beschreibung Die Methode "Refresh" der "XMLOPCSubscriptionManagement"-Klasse wird

in der "Page_Load"-Methode der ASPX-Seite aufgerufen (Also bei jedem Aktualisieren der Seite). Mit der Funktion "SubscriptionPolledRefresh" wird eine Subscription abge-fragt.

Die "SubscriptionPolledRefresh"-Methode Tabelle 4-37

Parameter Wert Beschreibung

Options As Request-Options

m_SubscriptionOptions

enthält zusätzliche Optionen für die Subscription (z.B. soll in dieser Applikation der Zeitstempel der OPC-Items vom Server zurückgemeldet werden).

ServerSubHandles() As String

tempServer-Handles

String-Array, welches das Serverhandle der abzu-fragenden Subscription enthält. Damit können meh-rere Subscriptions gleichzeitig abgefragt werden. Das hier benutzte Serverhandle wurde vorher der Session-Variablen: Session("ServerHandle") ent-nommen.

HoldTime As Date CDate-("0:00:00")

Wird hier nicht benutzt. Siehe /3/

HoldTimeSpecified As Boolean

False Der Parameter "HoldTime" soll nicht benutzt wer-den.

WaitTime As Integer 0 Wird hier nicht benutzt. Siehe /3/ ReturnAllItems As Boolean

False Es sollen nur die Items zurückgegeben werden, deren Wert sich seit der letzten Abfrage verändert hat.

InvalidServerSub-Handles() As String

tempInvalidSH String-Array, in welches der Server ungültige Ser-verhandles einträgt.

RItemList() As SubscribePolled-RefreshReplyItem-List

ReplyList Array von ItemLists, die die vom Server zurückge-gebenen Items enthalten

Funktionsprinzipien und Programmstrukturen

Erläuterungen zum Beispielprogramm

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 82/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Parameter Wert Beschreibung

Errors() As OPCError

OPCErrors ist ein Array, welches die eventuell aufgetretenen Fehler enthält.

DataBufferOverflow As Boolean

Overflow Ist der Wert diese Attributs TRUE, haben sich Än-derungen für Items ergeben, die aber wegen be-schränkter Ressourcen nicht gespeichert werden konnten. Die einzelnen Items zeigen an, ob sie von der Ressourcenbeschränkung betroffen sind oder nicht.

Abmelden einer Subscription Tabelle 4-38

Beschreibung

Position XMLOPCSubscriptionManagement.CancelSubscription Codeauszug

Beschreibung Hier wird die angegebene Subscription abgemeldet. Der Webservice kann nun die für diese Subscription reservierten Ressourcen wieder freigeben.

Die "SubscriptionCancel"-Methode Tabelle 4-39

Parameter Wert Beschreibung

ServerSubHandle As String

ServerHandle Dient der Identifizierung der Subscription im Server.

ClientRequestHand-le As String

m_SubscriptionOptions.Client-RequestHandle

Optionale Angabe des Clienthandles. Dient der Client-seitigen Identifikation der Subscription.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 83/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

5 Konfiguration und Projektierung

Hier erfahren Sie… welche Konfigurationsschritte und -werkzeuge eingesetzt wurden, um diese Applikation zu erstellen. Die folgenden Beschreibungen dienen der näheren Erläuterung und müssen nicht unbedingt ausgeführt werden.

Die zur Demonstration der Applikation benötigten Konfigurationsschritte sind im Band "Demonstration" dieser Applikation ausführlich beschrieben.

5.1 Projektierung eines OPC-Servers mit STEP 7

Die Projektierung des OPC-Servers wird mit STEP 7 durchgeführt. Dazu gehört zum einen die Projektierung der S7-Kommunikation von der Kopf-station, auf der der OPC-Server läuft, zur Automatisierungsstation. Zum anderen wird in STEP 7 auch der Zugriffsschutz auf die einzelnen Prozess-variablen eingestellt.

Die Beispielprojektierung Die nachfolgenden Projektierungssequenzen wurden im mitgelieferten Bei-spiel-STEP 7-Projekt bereits ausgeführt (archiviert in der mitgelieferten Da-tei "21402169_OPC_XML-DA_STEP7_v10.zip"). Wenn Sie das Beispiel-projekt nutzen wollen, können Sie dieses Kapitel überspringen. Die folgen-den Projektierungsschritte werden nur in einem neuen STEP 7-Projekt be-nötigt.

Anlegen eines OPC-Servers in einer SIMATIC PC-Station Voraussetzung für die Ausführung der nachfolgenden Projektierungsschrit-te ist ein im SIMATIC Manager geöffnetes STEP 7-Projekt. In diesem Pro-jekt muss bereits eine S7-300 oder S7-400 Station projektiert sein. Diese S7-Station muss außerdem eine S7-Kommunikation-fähige Baugruppe (CPU oder CP, PROFIBUS oder Industrial Ethernet) enthalten.

Nachfolgend wird für die Kommunikation ein Industrial Ethernet Subnetz eingesetzt. Die Projektierung für PROFIBUS erfolgt analog.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 84/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Tabelle 5-1

Nr. Aktion Anmerkung 1. Legen Sie in dem STEP 7

Projekt eine SIMATIC PC-Station an und geben Sie Ihr einen eindeutigen Na-men. Diese PC-Station repräsen-tiert die Kopfstation, auf der der OPC-Server laufen wird.

2. Öffnen Sie die Konfiguration der PC-Station in HW-Konfig (Selektieren der PC-Station und Doppelklick auf Konfi-guration).

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 85/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 3. Fügen Sie aus dem Hard-

ware-Katalog einen OPC-Server in die PC-Station ein. Achten Sie dabei darauf, dass die Version des OPC-Servers mit der auf der Kopfstation installierten SI-MATIC NET Version über-einstimmt.

4. Fügen Sie aus dem Hard-ware-Katalog die in der Kopfstation verwendete Kommunikationsbaugruppe in die PC-Station ein. In Falle dieser Applikation wird die in der Kopfstation integrierte Ethernet-Schnittstelle benutzt. Des-wegen wird eine IE-Allgemein Baugruppe eingefügt. Achten Sie auch hierbei auf die richtige SI-MATIC NET Version.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 86/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 5. Im Eigenschaften-Dialog der

Ethernet-Schnittstelle stellen Sie zunächst die aktuelle IP-Adresse sowie die Subnetz-Maske ein. Wählen Sie im Feld Sub-netz das Netz aus, über das die Kopfstation mit der S7-Station verbunden ist. Hinweis Die IP-Adresse der Kopfsta-tion muss im gleichen Sub-netz liegen, wie die IP-Adresse der S7-Station.

6. Speichern und übersetzen Sie die Hardware-Konfiguration und beenden Sie den HW-Konfig Editor.

Projektierung einer S7-Verbindung zum OPC-Server Die Kommunikation zwischen dem OPC-Server und der S7-Station soll in dieser Applikation über eine S7-Verbindung erfolgen. Dazu muss diese Verbindung mit dem Tool "NetPro" projektiert werden.

Diese Projektierung wurde im beiliegenden Beispiel-STEP 7-Projekt "315_OPC" (archiviert in der mitgelieferten Datei "21402169_OPC_XML-DA_STEP7_v10.zip") bereits durchgeführt.

Tabelle 5-2

Nr. Aktion Anmerkung 1. Öffnen Sie das Tool "NetPro"

aus dem SIMATIC Manager heraus über den Button in der Symbolleiste.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 87/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 2. Selektieren Sie den OPC-

Server in der Kopfstation und fügen Sie über das Kon-textmenü eine neue Verbin-dung ein.

3. Wählen Sie im Neue Ver-bindung einfügen-Dialog die Ziel-CPU aus (im Bei-spiel ist dies die CPU 315-2 DP). Wählen Sie als Verbindungs-typ S7-Verbindung aus. Bestätigen Sie die Eingaben mit OK. Die Verbindungseigenschaf-ten, die im folgenden Dialog angezeigt werden, können Sie unverändert beibehalten.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 88/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 4. Um den symbolischen

Zugriff auf die Prozessvari-ablen der S7-Station zu akti-vieren, öffnen Sie die Ob-jekteigenschaften des OPC-Servers.

5. Wählen Sie im Eigenschaf-ten-Dialog das Register S7 (da das S7-Protokoll einge-setzt wird). Wählen Sie im Bereich Sym-bole verwenden Al-le aus, um auf alle Symbole des S7-Programms der Steuerung zugreifen zu kön-nen. Bestätigen Sie die Eingaben mit OK

Hinweis Im Feld Zykluszeit kön-nen die Aktualisierungsrate des OPC-Servers festlegen. Diese ist bei dieser Applika-tion gleichzeitig die maxima-le Aktualisierungszeit einer Subscription.

6. Speichern und übersetzen Sie die Konfiguration und Laden Sie diese in Ihre PC-Station und S7-Steuerung.

5.2 Konfiguration der Internet Informationsdienste

Anlegen eines virtuellen Verzeichnisses oder einer Anwendung Der Zugriff auf die Daten und Anwendungen eines IIS-Web-Servers erfolgt über die virtuellen Verzeichnisse (siehe 2.1 Internet-Informationsdienste

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 89/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

(IIS)). Zum Anlegen eines virtuellen Verzeichnisses oder einer Anwendung führen Sie bitte die folgenden Schritte aus.

Tabelle 5-3

Nr. Aktion Anmerkung 1. Öffnen Sie die „Internet Information Services“

über: Start Systemsteuerung Ver-waltung Internetdienste-Manager

Hinweis Sollte der Punkt Verwaltung nicht angeboten werden, dann gehen Sie über: Start Ausführen und geben den fol-genden String ein: %SystemRoot%\System32\Inetsrv\iis.msc

2. Wählen Sie im Kontextmenü des Zweiges Standardwebsite (rechter Mausklick auf diesen) Neu Virtuelles Ver-zeichnis

3. Klicken Sie im „Assistent zum Erstellen virtu-eller Verzeichnisse“ auf Weiter.

4. Tragen Sie im Feld Alias: einen Namen für das virtuelle Verzeichnis ein und klicken Sie auf Weiter >. Hinweis Achten Sie darauf, dass der Name keine Sonderzeichen oder Punkte enthält. Der Zugriff auf solche virtuellen Verzeichnisse wird später blockiert (durch das Tool "IIS-Lockdown").

5. Wählen Sie über den Button Durchsu-chen... ein Verzeichnis auf Ihrem PC aus, welches die Daten enthält, die das virtuelle Verzeichnis enthalten soll. Betätigen Sie den Button Weiter >.

6. Wählen Sie im Fenster Zugriffsberech-tigungen nur folgende Punkte aus: • Lesen • Skripts ausführen (z.B. ASP)

(wenn das virtuelle Verzeichnis eine An-wendung sein soll.)

Betätigen Sie den Button Weiter >.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 90/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 7. Betätigen Sie den Button Fertigstellen

um den Assistenten abzuschließen. Unter dem Eintrag Standardwebsite sollte nun das neue virtuelle Verzeichnis sichtbar sein.

8. Schließen Sie die Konfigurationskonsole.

Anpassen von Web-Berechtigungen und der Anwendungseinstellungen Zum Ändern von Web-Berechtigungen für eine Website, ein virtuelles Ver-zeichnis, eine Anwendung oder für eine einzelne Datei befolgen Sie bitte die nachfolgenden Schritte.

Tabelle 5-4

Nr. Aktion Anmerkung 1. Starten Sie den Internet-Informationsdienste Mana-

ger über: Start Einstellungen Systemsteue-rung Verwaltung Internetdienste-Manager

2. Navigieren Sie im linken Baum zum gewünschten Objekt (Website, virtuelles Verzeichnis usw.)

3. Öffnen Sie über das Kontextmenü des Eintrags (rechter Mausklick) und Auswahl von Eigenschaf-ten den Eigenschaften-Dialog.

4. Wechseln Sie dort in eines der folgenden Register, je nachdem welches Objekt Sie ausgewählt haben: • Basisverzeichnis für eine Website • (Virtuelles) Verzeichnis für ein virtuelles

Verzeichnis bzw. Anwendung • Datei für eine Datei

5. Legen Sie in diesem Register die entsprechenden Web-Berechtigungen und Anwendungseinstellungen für das ausgewählte Objekt fest.

Siehe 2.2 Sicherheitsaspekte der Internet-Informationsdienste

6. Bestätigen Sie die Eingaben mit OK und schließen Sie die Konfigurationskonsole.

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 91/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Deaktivieren des anonymen Zugriffs auf den Web-Server Der anonyme Zugriff auf den Web-Server, ein bestimmtes virtuelles Ver-zeichnis oder eine Datei, wird über den Internet-Informationsdienste Mana-ger gesteuert. Um den anonymen Zugriff für den gesamten Web-Server zu deaktivieren führen Sie folgende Schritte aus. Die Einstellungen für ein ein-zelnes Verzeichnis oder eine Datei erfolgen analog.

Hinweis Die Deaktivierung des anonymen Zugriffs auf den gesamten Web-Server wird auch automatisch vom Tool IISLockdown durchgeführt

Tabelle 5-5

Nr. Aktion Anmerkung 1. Starten Sie den Internet-Informationsdienste Mana-

ger über: Start Einstellungen Systemsteue-rung Verwaltung Internetdienste-Manager

2. Navigieren Sie im linken Baum zum Eintrag [PC-Name] (lokaler Computer) Websites.

Dieser Ordner enthält alle Websites des Web-Servers

3. Öffnen Sie über das Kontextmenü des Eintrags (rechter Mausklick) und Auswahl von Eigenschaf-ten den Eigenschaften-Dialog.

4. Wählen Sie das Register Verzeichnissicher-heit und wählen Sie im Bereich Steuerung des anonymen Zugriffs und der Authentifi-zierung den Button Bearbeiten...

5. Entfernen Sie den Haken bei Anonyme Anmeldung. Achten Sie darauf, dass im Bereich Authentifi-zierter Zugriff entweder Standardauthen-tifizierung oder Integrierte Windows-Authentifizierung ausgewählt ist, da sonst ü-berhaupt kein Zugriff auf den Web-Server zugelassen wird.

6. Schließen Sie alle Dialoge mit OK

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 92/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Einstellen die Authentifizierungsmethode Für die IIS können Sie unter Windows XP zwischen den Authentifizierungs-Methoden Standardauthentifizierung und integrierte Windows-Authentifizierung wählen (siehe 2.2 Sicherheitsaspekte der Internet-Informationsdienste). Zum Einstellen einer dieser Authentifizierungs-Methode führen Sie die folgenden Schritte aus.

Hinweis In dieser Applikation wird die integrierte Windows-Authentifizierung ein-gesetzt.

Tabelle 5-6

Nr. Aktion Anmerkung 1. Starten Sie den Internet-Informationsdienste Mana-

ger über: Start Einstellungen Systemsteue-rung Verwaltung Internetdienste-Manager

2. Navigieren Sie im linken Baum zum Eintrag [PC-Name] (lokaler Computer) Websites.

Dieser Ordner enthält alle Websites des Web-Servers

3. Öffnen Sie über das Kontextmenü des Eintrags (rechter Mausklick) und Auswahl von Eigenschaf-ten den Eigenschaften-Dialog.

4. Wählen Sie das Register Verzeichnissicher-heit und wählen Sie im Bereich Steuerung des anonymen Zugriffs und der Authentifi-zierung den Button Bearbeiten...

Funktionsprinzipien und Programmstrukturen

Konfiguration und Projektierung

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 93/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Nr. Aktion Anmerkung 5. Im Bereich Authentifizierter Zugriff können

Sie über die Auswahlhaken die zu benutzende Au-thentifizierungsmethode festlegen.

6. Schließen Sie alle Dialoge mit OK

Anhang und Literaturhinweise

Glossar

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 94/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Anhang und Literaturhinweise

6 Glossar

Die nachfolgenden Erläuterungen und Definitionen wurden der Internet En-zyklopädie "Wikipedia" entnommen, siehe \5\.

ACL Access Control List, Zugangskontrollliste. Wird von Betriebssystemen und Anwendungen verwendet, um zu kontrollieren, welcher Benutzer zu wel-chen Diensten (Dateien, Netzwerkdiensten) Zugang hat. ACLs sind sehr fein einstellbar.

Authentifizierung Die Authentifizierung (auch Authentifikation, engl. authentication) bezeich-net den Vorgang, die Identität einer Person oder eines Programms an Hand eines bestimmten Merkmals zu überprüfen. Dies kann zum Beispiel mit einem Fingerabdruck, einem Benutzernamen und Passwort oder einer beliebigen anderen Legitimation geschehen.

Autorisierung Bezeichnet die Zuweisung und Überprüfung von Zugriffsrechten auf Daten und Dienste eines Systems durch einen Benutzer. Der Autorisierung erfolgt meist nach einer erfolgreichen Authentifizierung.

Cookie Ein Cookie (eigentlich HTTP cookie) ist eine Textdatei und enthält Informa-tionen (z.B. Sitzungsinformationen), die ein Server zu einem Client (Web-Browser) sendet. Das Cookie wird jedes Mal, wenn der Client auf den Ser-ver zugreift, wieder an diesen zurück geschickt.

HTTP Das Hypertext Transfer Protocol (HTTP) ist ein zustandsloses Datenaus-tausch-Protokoll zur Übertragung von Daten. Es ist eines der Protokolle, die der TCP/IP-Protokollstapel bereitstellt. Primär wird es im Rahmen des World Wide Web zur Übertragung von Webseiten verwendet.

HTML Die Hypertext Markup Language (HTML) ist ein Dokumentenformat zur Auszeichnung von Hypertext im World Wide Web.

ISAPI-Filter ISAPI-Filter klinken sich in den Daten-Verkehr eines Webservers oder Pro-xys ein. Dadurch können sie alle übertragenen Daten lesen und verändern.

Anhang und Literaturhinweise

Glossar

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 95/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

Namespace Namensraum. Ein Name identifiziert ein Objekt. Zur eindeutigen Zuordnung des Objekts ist der entsprechende Kontext- bzw. Namensraum zu beach-ten.

NTFS NTFS steht für New Technology File System und ist das Dateisystem von Windows NT, einschließlich seiner Nachfolger Windows 2000 und Windows XP.

SSL SSL (Secure Sockets Layer) bezeichnet ein Übertragungsprotokoll, mit dem verschlüsselte Kommunikation mittels Tunneling möglich ist.

TCP/IP Transmission Control Protocol / Internet Protocol. Die Internet-Protokoll-Familie (engl: internet protocol suite) ist eine Familie von Netzwerkprotokol-len, die die Basis für die Netzwerkkommunikation im Internet bilden.

URL Als Uniform Resource Locator (URL) (engl. "einheitlicher Ortsangeber für Ressourcen") bezeichnet man ein standardisiertes Adressierungsformat für Ressourcen in Computernetzwerken.

WWW Das World Wide Web (kurz das Web oder WWW, wörtlich: Weltweites Ge-webe/Netz) ist ein über das Internet abrufbares Hypertext-System.

Anhang und Literaturhinweise

Literaturhinweise

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 96/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

7 Literaturhinweise

7.1 Literaturangaben

Diese Liste ist keinesfalls vollständig und spiegelt nur eine Auswahl an ge-eigneter Literatur wieder. Tabelle 7-1

Themengebiet Titel /1/ STEP 7 Automatisieren mit STEP 7 in AWL und SCL

Hans Berger Publicis MCD Verlag ISBN 3-89578-113-4

/2/ SIMATIC NET, Indus-trielle Kommunikation

SIMATIC NET, Industrielle Kommunikation mit PG/PC Band 1 – Grundlagen, Systemhandbuch (auf SIMATIC NET CD)

/3/ SIMATIC NET, Indus-trielle Kommunikation

SIMATIC NET, Industrielle Kommunikation mit PG/PC Band 2 – Schnittstellen, Systemhandbuch (auf SIMATIC NET CD)

/4/ ASP.NET ASP.NET Grundlagen und Profiwissen, Webser-verprogrammierung und XML Webservices im .NET Framework Patrick A. Lorenz Carl Hanser Verlag ISBN 3-446-22552-8

Anhang und Literaturhinweise

Literaturhinweise

Datenaustausch über XML-DA Beitrags-ID: 21402169

V1.0 26.04.05 97/97

Cop

yrig

ht ©

Sie

men

s A

G 2

005

All

right

s re

serv

ed

2140

2169

_OP

C_X

ML-

DA

_Ext

ensi

on_D

OK

U_

v10_

d.do

c

7.2 Internet-Link-Angaben

Diese Liste ist keinesfalls vollständig und spiegelt nur eine Auswahl an ge-eigneter Literatur wieder. Tabelle 7-2

Themengebiet Titel \1\ Referenz auf den

Beitrag http://support.automation.siemens.com/WW/view/de/21402169

\2\ Siemens A&D Cus-tomer Support

http://support.automation.siemens.com

\3\ Online Dokumenta-tion der IIS

http://www.microsoft.com/windows2000/en/server/iis/default.asp

\4\ IIS Authentifizie-rung

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsent7/html/vxconiisauthentication.asp

\5\ Online Enzyklopä-die

http://de.wikipedia.org/

\6\ XML Grundlagen http://www.w3c.de/Misc/XML-in-10-points.html \7\ Erläuterung Web-

service http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000120.html

\8\ Microsoft Sicher-heitsupdates

http://www.microsoft.com/technet/security/current.aspx

\9\ .NET Implementie-rung auf UNIX

http://www.mono-project.com/

\10\ Sicherheit für ASP.NET-An-wendungen

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/secnetlpMSDN.asp

\11\ Checkliste für si-chere Web-Server

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod104.asp

\12\ Einstieg in ASP.NET

http://www.galileocomputing.de/openbook/asp/