• Keine Ergebnisse gefunden

engineering mannesmann Rexroth OPC-Server Funktionsbeschreibung Rexroth Indramat DOK-CONTRL-OPC*SERVER*-FK01-DE-P

N/A
N/A
Protected

Academic year: 2022

Aktie "engineering mannesmann Rexroth OPC-Server Funktionsbeschreibung Rexroth Indramat DOK-CONTRL-OPC*SERVER*-FK01-DE-P"

Copied!
54
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

OPC-Server

Funktionsbeschreibung Rexroth

Indramat

Rexroth

(2)

OPC-Server

Funktionsbeschreibung

DOK-CONTRL-OPC*SERVER*-FK01-DE-P

• Zeichnungsnummer: 120-0400-B337-01/DE

Diese Dokumentation dient ....

• zum Vermitteln von Grundkenntnissen

• zum Beschreiben von Eigenschaften und Installation

• als Hilfe zur Programmierung und Inbetriebnahme von OPC Clients

Dokukennzeichnung bisheriger Ausgaben

Stand Bemerkung

120-0400-B337-01/DE 06/00 Erstausgabe

 Rexroth Indramat GmbH, 2000

Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertung und Mitteilung ihres Inhalts wird nicht gestattet, soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen verpflichten zum Schadenersatz. Alle Rechte für den Fall der Patenterteilung oder Gebrauchsmuster- Eintragung vorbehalten. (DIN 34-1)

Änderungen im Inhalt der Dokumentation und Liefermöglichkeiten der Produkte sind vorbehalten.

Rexroth Indramat GmbH

Bgm.-Dr.-Nebel-Str. 2 • D-97816 Lohr a. Main

Telefon 09352/40-0 • Tx 689421 • Fax 09352/40-4885 http://www.rexroth.com/indramat

Abt. ECS2 (TB/CV)

Diese Dokumentation ist auf chlorfrei gebleichtem Papier gedruckt.

Titel

Art der Dokumentation

Dokumentations-Type

interner Ablagevermerk

Zweck der Dokumentation?

Änderungsverlauf

Schutzvermerk

Verbindlichkeit

Herausgeber

Hinweis

(3)

Inhaltsverzeichnis

1 Einführung 1-1

1.1 Benutzung dieser Dokumentation ... 1-1 1.2 Grundlagen von OPC... 1-1 Zielsetzung von OPC ... 1-2 OPC DataAccess Server ... 1-3 Custom and Automation Interface ... 1-4 Local and Remote Servers ... 1-5

2 Eigenschaften des Indramat OPC Servers 2-1

2.1 Allgemein... 2-1 2.2 Data Access Custom Interface Standard... 2-2 Interfaces des OPCServer-Objekts ... 2-2 Interfaces von OPCGroup... 2-3 2.3 IOPCServer : GetErrorString... 2-4 2.4 IOPCItemMgt : AddItems ... 2-4 2.5 Installation ... 2-6 Systemvoraussetzungen... 2-6 Dateien und Verzeichnisse ... 2-6 Registrierungen... 2-6 Manuelle Registrierungen ... 2-7 2.6 Kommunikationsarchitektur... 2-8 2.7 Der Indramat Test OPC-Client ... 2-9 Dialog Server List... 2-10 Dialog IOPCServer ... 2-11 Dialog IOPCItemMgt ... 2-12 Dialog IOPCSyncIO ... 2-13 Dialog IOPCAsyncIO2 ... 2-14 Dialog IOPCAsyncIO2 Read Write ... 2-15 Dialog IOPCBrowseServerAddressSpace... 2-16 Dialog IOPCGroupStateMgt... 2-17 2.8 OPC Server Oberfläche ... 2-18 Hauptfenster... 2-18 Fenster mit den Clientverbindungen ... 2-19 Infofenster ... 2-19

(4)

3 Entwicklung eines OPC Clients 3-1

3.1 Fehlerbehandlung ... 3-1 HRESULT Fehler ... 3-1 3.2 DCOM-Konfiguration... 3-2 COM Sicherheitsmodell ... 3-2 Deklarative Sicherheit ... 3-2 Standardsicherheit ... 3-3 Komponentenbezogene Sicherheitseinstellungen ... 3-6 Programmgesteuerte Sicherheit ... 3-9 Konfigurationsvorschlag... 3-10 3.3 Testprogramm der OPC-Foundation ... 3-12

4 Literatur 4-1

5 Abbildungsverzeichnis 5-1

6 Index 6-1

7 Kundenbetreuungsstellen - Sales & Service Facilities 7-1

(5)

1 Einführung

1.1 Benutzung dieser Dokumentation

Die vorliegende Dokumentation soll folgende Kenntnisse vermitteln:

• Grundkenntnisse über OPC-Schnittstellen (Kapitel 1)

• Spezielle Eigenschaften und Installation des Rexroth Indramat OPC- Servers (Kapitel 2)

• Hinweise für die Programmierung und Inbetriebnahme von OPC- Clients.

Bei Anwendern, deren Ziel es ist , einen OPC-Client selbst zu entwickeln, werden folgende Kenntnisse vorausgesetzt:

• Allgemeine Programmiererfahrung in Visual C++ bzw. Visual Basic.

• Kenntnisse der COM- bzw. DCOM-Programmierung.

• Für die Inbetriebnahme von Remote-Clients ist zusätzliches Know- how über

• DCOM-Sicherheitseinstellungen und die

• Netzwerkkonfiguration des Endanwenders (Maschinenbetreibers) erforderlich.

1.2 Grundlagen von OPC

Die in diesem Kapitel aufgeführten Informationen wurden teilweise den Veröffentlichungen und technischen Spezifikationen der OPC Foundation entnommen. Rexroth Indramat ist Mitglied der OPC Foundation. Aktuelle Informationen über die OPC Foundation sind auf der Web-Seite http://www.opcfoundation.org zu finden.

OPCTM steht für OLE for Process Control. OLE (Object Linking and Em- bedding) wurde von Microsoft zunächst für die Kommunikation zwischen Softwarekomponenten eingeführt. Heute spricht man von COM (Compo- nent Object Model) bzw. DCOM.

DCOM (Distributed Component Object Model) ist ein Mechanismus zur Kommunikation zwischen Prozessen, die auf verschiedenen Rechnern laufen. DCOM ist bei den Betriebssystemen Windows98TM, WindowsNTTM und Windows2000TM (teilweise auch WindowsCETM) verfügbar und nutzt das TCP/IP-Protokoll.

Vorausgesetzte Kenntnisse

Die Abkürzungen

(6)

Zielsetzung von OPC

Die Zielsetzung von OPC ist es, eine einheitliche Kommunikationsschnitt- stelle für Prozessdaten aus beliebigen Quellen, wie z.B. SPS- und NC- Steuerungen zu schaffen.

...

OPC Server B OPC Server

A

OPC Server C

Application X

OPC Interface

Application Y OPC Interface

Abb. 1-1: Anwendungen arbeiten mit OPC-Servern verschiedener Hersteller zusammen

Version 1 und 2 der OPC Spezifikation konzentrieren sich auf folgende Daten:

• Online Daten Zugriffe, d.h. leistungsfähiges und flexibles Lesen und Schreiben von Daten zwischen einer Anwendung und einer Prozess- steuerungseinheit.

• Handling von Alarmen und Events, z. B. ein Mechanismus mit dem OPC Clients bei bestimmten Ereignissen und Alarmbedingungen be- nachrichtigt werden.

• Zugriffe auf historische Daten, wie z.B. das Lesen, Verarbeiten und Editieren von Daten einer Logbuchdatenbank.

Funktionalitäten, wie Sicherheitsmechanismen, Alarme und Events sowie historische Daten werden in zukünftigen Versionen der OPC Spezifikation behandelt. Die OPC-Architektur nutzt die Vorteile der COM-Schnittstelle, die einen bequemen Mechanismus liefern, um die Funktionalität von OPC zu erweitern.

Der Anwender (Entwickler von OPC-Client-Anwendungen) erfährt folgen- de Vorteile:

• Um die Kommunikation zur Steuerung zu realisieren ist nur noch ein Minimum an steuerungsspezifischem Knowhow erforderlich.

• Falls eine Anwendung mit unterschiedlichen Steuerungsfabrikaten kommunizieren muss, entfällt der Anpassungsaufwand.

OPC Spezifikationen

Anwendernutzen

(7)

OPC DataAccess Server

Vereinfacht dargestellt enthält ein OPC DataAccess Server folgende Ob- jekte:

• den Server,

• die Gruppe, und

• den Item.

Die OPC-Server Objekte beinhalten Informationen über den Server und dienen als Container für OPC-Gruppenobjekte. Die OPC-Gruppenobjekte beinhalten Informationen über sich selbst und stellen Mechanismen für die Verwaltung von OPC Items zur Verfügung.

Die OPC-Gruppen stellen für Clients eine Möglichkeit dar, Daten zu orga- nisieren. Z.B. kann die Gruppe mehrere Items in einer bestimmter Bedie- neranzeige repräsentieren. Daten können gelesen und geschrieben wer- den. Ein OPC-Client kann für jede Gruppe die Datenaktualisierungsrate definieren.

Es gibt zwei Arten von Gruppen:

• Öffentliche (public) Gruppen werden von mehreren Clients genutzt.

• Lokale oder private Gruppen werden nur von einem Client genutzt.

Siehe hierzu die entsprechenden Kapitel in der OPC-Spezifikation.

Innerhalb jeder Gruppe kann der Client ein oder mehr OPC-Items definie- ren. Die OPC-Items stellen die Verbindung zu den Datenquellen innerhalb des Servers her. Ein OPC-Item ist nicht unmittelbar als Objekt durch ei- nen OPC-Client zugänglich. Folglich gibt es keine externe Schnittstelle, die für ein OPC-Item definiert ist. Jeder Zugriff auf OPC-Items läuft über ein OPC-Gruppenobjekt, das die OPC-Items "enthält".

,WHP

*URXS

,WHP ,WHP

Abb. 1-2: Zuordnung von OPC Items zur OPC Group

Mit jedem Item verbunden, ist ein Wert, ein Qualitätsattribut und ein Zeit- stempel. Der Wert ist vom Typ VARIANT, das Qualitätsattribut ist in ähn- licher Form bei Feldbussen bekannt.

Zu baechten ist, dass Items keine Datenquellen sind - sie sind nur Ver- bindungen zu ihnen. Z.B. existieren die Variablen einer PLC-Steuerung unabhängig davon ob ein OPC-Client aktuell darauf zugreift. Ein OPC- Item gibt nur eine Datenadresse an und ist nicht mit der tatsächlichen physischen Datenquelle gleichzusetzen.

OPC Server Objekt

OPC Gruppe

OPC Item

(8)

Custom and Automation Interface

OPC Spezifikationen enthalten immer zwei Schnittstellensätze; Custom Interfaces and Automation interface. Dies wird in der nachfolgenden Ab- bildung gezeigt:

&$SSOLFDWLRQ

9%$SSOLFDWLRQ

23&&XVWRP,)

23&$XWRPDWLRQ,)

23&6HUYHU ,Q3URF/RFDO5HPRWH

+DQGOHU 9HQGRU6SHFLILF/RJLF

Abb. 1-3: Custom Schnittstelle und Automation Schnittstelle

Die OPC-Spezifikation legt COM-Schnittstellen fest, nicht deren Imple- mentierung (nicht das "Wie" einer Implementierung). Sie spezifiziert das Schnittstellenverhalten, das Client Anwendungen erwarten.

Sie umfaßt eine Beschreibungen der Architektur und der für diese Archi- tektur geeigneten Schnittstellen. Wie bei allen COM-Anwendungen ist die Architektur von OPC ein Client-Server Modell, in dem die OPC-Server Komponente die OPC-Objekte verwaltet und eine Schnittstelle zu ihnen zur Verfügung stellt.

Eine OPC-Client Anwendung steht mit einem OPC-Server über die spezi- fizierten Custom oder Automation Schnittstelle in Verbindung. OPC- Server müssen die Custom Schnittstelle implementieren. Die Automation Schnittstelle kann wahlweise implementiert werden.

OPC Custom Interface

Local or Remote OPC Server (Shared by many clients)

Local or Remote OPC Server (Shared by many clients)

Server Data Cache Server Data Cache

Physical Device/

DataBase Physical Device/

DataBase DataData OPC Automation

Wrapper OPC Automation

Wrapper VB

Application VB Application

C++

Application C++

Application

Abb. 1-4: Custom Schnittstelle und Automation Schnittstelle

(9)

Local and Remote Servers

Man unterscheidet zwischen

lokalen Servern, die nur den Zugriff lokaler Clients zulassen, und

remote Servern, auf die auch Clients von entfernten Rechnern über DCOM zugreifen können.

Lokale Server können als prozessinterner Server (sogenannter InProc- oder DLL-Server) oder als prozessexterner Server (sogenannter OutProc- , Lokal- oder Exe-Server) realisiert werden.

Der Out-Proc Server ist eine ausführbare Anwendung. Verbindet sich ein Client mit dem Indramat OPC Server, so wird über den COM Mechanis- mus OPCIndramat.exe automatisch gestartet. Sobald alle Schnittstellen von allen Clients wieder freigeben sind, wird der OPC Server automatisch beendet. Remote Server sind stets Out-Proc Server.

Es können sich mehrere OPC Clients anmelden, jeder Client bekommt eine unabhängige OPC Server Instanz.

Der Out-Proc Server gliedert sich in zwei Teile, erstens die Funktionalität des OPC Server und zweitens die visuelle Darstellung als Programm.

Der Vorteil von Inproc Servern liegt darin, dass für die Datenübergabe zwischen Client und Server keine Prozessgrenzen überwunden werden.

Der Nachteil liegt darin, dass der Server ein Bestandteil des Client ist und bei fehlerhafter Ausführung den Client abstürzen lässt und umgekehrt.

InProc Server besitzen keine Bildschirmausgabe.

Out-Proc Server

InProc Server

(10)
(11)

2 Eigenschaften des Indramat OPC Servers

2.1 Allgemein

Der Rexroth Indramat OPC Server unterstützt

• Data Access Custom Interface Standard Version 2.03 (July 27, 1999)

• ab Release-Stand 01V01 auch das Data Access Automation Interface Standard Version 2.02 (February 4, 1999).

Das heißt Visual C++ Clients und Visual Basic (ab Release 01V01) kön- nen Prozeßdaten lesen und schreiben.

Eine detaillierte Auflistung, welche optionalen Schnittstellenobjekte unter- stützt werden, finden Sie in Kap.2.2 Data Access Custom Interface Stan- dard.

Hinweis: Bitte beachten Sie, daß die Version 1.0 der OPC-Spezifikation des Data Access Interface in einigen Punkten inkompatibel zur Spezifikation Version 2.0 ist.

Die Interfaces

• Alarms and Events sowie

• Historical Data Access werden vorerst nicht unterstützt.

Rexroth Indramat stellt alle Servertypen zur Verfügung:

• Local InProc Server

• Local OutProc Server

• Remote Server.

Die OPC-Standardfunktionalität umfaßt das Lesen und Schreiben von SPS-Variablen. Der Rexroth Indramat OPC Server bietet darüber hinaus

• Zugriff auf CNC-Variable, CNC-Parameter und Werkzeugdaten,

• Zugriff auf ausgewählte Antriebsdaten und

• Kommandos zum Starten, Stoppen und Download von NC- Programmen.

Eine detaillierte Beschreibung aller verfügbaren Kommandos ist der Do- kumentation des Rexroth Indramat Funktions Interface [3] zu entnehmen.

Der Rexroth Indramat OPC Server wird mit einem Test Client ausgelie- fert, so daß die Kommunikation zur Steuerung jederzeit überprüft werden kann.

Die Datenausgabe des OutProc Servers informiert den Benutzer über den Zustand des OPC Servers.

Unterstützte Interfaces

Verfügbare Servertypen

Sonderfunktionen

Test- und Inbetriebnahmeunterstützung

(12)

2.2 Data Access Custom Interface Standard

Die nachfolgenden Tabellen geben an, welche Interfaces der Indramat OPC Server unterstützt. Eine detaillierte Beschreibung ist der OPC- Spezifikation [1] zu entnehmen. Wenn zur Anwendung des Indramat OPC Servers Erläuterungen erforderlich sind, wird in den Tabellen auf die ent- sprechenden Kapitel verwiesen.

Falls die Spalte "optional" keinen Eintrag enthält ist das Interface nicht optional und wird vom Indramat OPC Server unterstützt.

Interfaces des OPCServer-Objekts

Interface Methode optio-

nal

unter- stützt

Bemerkung

AddGroup ja

GetErrorString ja siehe Kap. 2.3

GetGroupByName ja

GetStatus ja

RemoveGroup ja

IOPCServer

CreateGroupEnumerator ja IOPCServer

PublicGroups

ja nein

ja teil- weise

Bei diesem Interface wird nur Eigenschaft „FLAT Space“ unterstützt

QueryOrganization ja

ChangeBrowsePosition wird nicht unterstützt, da nur Eigenschaft FLAT unter- stützt wird.

BrowseOPCItemIDs ja

IOPCBrowseServer AddressSpace

GetItemID BrowseAc- cessPaths

wird nicht unterstützt, da keine AccessPaths unterstützt werden, siehe hier IOPCItemMgt.

Neu in Version 2.0 der OPC Spezifikation QueryAvailableProperties ja

GetItemProperties ja

IOPCItemProperties

LookupItemIDs ja

SetLocaleID Neu in Version 2.0 der OPC Spezifikation

GetLocaleID ja

QueryAvailableLocaleIDs ja

GetErrorString ja siehe Kap. 2.3

IOPCCommon

SetClientName ja

Neu in Version 2.0 der OPC Spezifikation

ConnectPointContainer für die Schnittstelle IOPCShut- down. [1, Kapitel 4.6.2]

EnumConnectionPoints ja IConnectionPoin Con-

tainer

FindConnectionPoint ja

IPersistFile ja nein

Abb. 2-1: Interfaces und Methoden von OPCServer

(13)

Interfaces von OPCGroup

Interface Methode optional unter-

stützt

Bemerkung

GetState ja

SetState ja

SetName ja

IOPCGroupStateMgt

CloneGroup ja

IOPCPublicGroup StateMgt

ja nein

Read

Write ja

Refresh2 ja

Cancel2 ja

SetEnable ja

IOPCASyncIO2 Neu in Version 2.0 (der OPC Spezifikati- on)

GetEnable ja

IOPCAsyncIO ja nein Nur in Version 1.0 der OPC Spezifikation

AddItems ja siehe Kap. 2.4

ValidateItems ja

RemoveItems ja

SetActiveState ja

SetClientHandles ja

SetDatatypes ja

IOPCItemMgt

CreateEnumerator ja

IConnectionPoint Container

Neu in Version 2.0 der OPC Spezifikation ConnectPointContainer für die Schnittstelle I- OPCDataCallback. [1, Kapitel 4.6.1]

EnumConnection- Points

ja

FindConnectionPoint ja

Read ja

IOPCSyncIO

Write ja

IDataObject ja nein Nur in Version 1.0 der OPC Spezifikation IEnumOPCItem

Attributes

Next ja

Skip ja

Reset ja

Clone ja

Abb. 2-2: Interfaces und Methoden von OPCGroup

(14)

2.3 IOPCServer : GetErrorString

Die Methode GetErrorString ermöglicht das Lesen von COM-, OPC- und Indramat Fehlertexten. Sie wandelt einen HRESULT-Wert in einen Feh- lertext. Die Methode GetErrorString ist auch im Interface IOPCCommon enthalten

HRESULT Werte, die von COM erzeugt werden, werden mit Hilfe der WINAPI Funktion FormatMessage zurückgeliefert. Die Landessprache der Fehlertexte wird von der WindowsNT-Installation vorgegeben.

Fehlertexte von OPC HRESULT Werten werden nur englischsprachig ausgegeben, siehe hier die Konstantendefinitionen in [1] Appendix A.

Indramat Fehlertexte werden mit einem Standardfehlertext zurückgelie- fert.

Für sogenannten Custom Fehlernummern schreibt OPC HRESULT Werte mit dem ITF_FACILITY Flag und Codebereich 0x8000 – 0xFFFF vor.

Indramat Funktions-Interface Fehlernummern [3] werden in diesen Be- reich kodiert. Mit Hilfe von GetErrorString ist es nun möglich diesen HRESULT Wert wieder als Fehlertext zu dekodieren.

2.4 IOPCItemMgt : AddItems

Mit dieser Methode erfolgt die Verknüpfung zwischen Funktions-Interface Befehlen und OPC Server. Im Nachfolgendem werden die Parametern beschrieben, die ein OPC Client übergeben muss.

Ein sogenanntes OPC Item wird mit Hilfe der Struktur OPCITEMDEF definiert:

• szAccessPath wird nicht unterstützt

• szItemID erforderlich, Funktions-Interface Befehl, siehe weiter unten

• bActive erforderlich.

• hClient erforderlich

• dwBlobSize wird nicht unterstützt

• pBlob wird nicht unterstützt

• vtRequestedDataType erforderlich, folgende VARTYPE werden un- terstützt:

VT_EMPTY VT_UI1 VT_I2 VT_I4 VT_R4 VT_R8

VT_BSTR (Basistype „canonical datatype“) COM-Fehler

OPC-Fehler

Fehler des Indramat Funktions Interface

Struktur OPCITEMDEF

(15)

Wird VT_EMPTY als Wert für vtRequestedDataType übergeben so wird für die SPS Variabelenanforderung (FI-Befehl PVF) der entsprechende Typ aus der SPS ermittelt und in einen COM Typ umgesetzt (siehe Ta- belle). Falls kein entsprechender Typ vorliegt so wird VT_BSTR zurück- geliefert. Es werden nur eindimensionale Arrays unterstützt. Strukturen können nicht umgesetzt werden, da es hier keinen entsprechenden COM Typ existiert.

SPS Typ COM Typ Array

CHAR VT_UI1 VT_ARRAY | VT_UI1

USINT VT_UI1 VT_ARRAY | VT_UI1

BYTE VT_UI1 VT_ARRAY | VT_UI1

SINT VT_I2 VT_ARRAY | VT_I2

INT VT_I2 VT_ARRAY | VT_I2

WORD VT_I2 VT_ARRAY | VT_I2

UINT VT_I4 VT_ARRAY | VT_I4

DWORD VT_I4 VT_ARRAY | VT_I4

DINT VT_I4 VT_ARRAY | VT_I4

UDINT VT_I4 VT_ARRAY | VT_I4

BOOL VT_BOOL VT_ARRAY | VT_BOOL

REAL VT_R4 VT_ARRAY | VT_R4

Sonst VT_BSTR VT_ARRAY | VT_BSTR

Abb. 2-3: Umsetzung der SPS-Datentypen in der OPC-Schnittstelle

Der zentrale Parameter der Struktur OPCITEMDEF ist szItemID und ent- spricht hier einem Funktions-Interface Befehl, z. B. szItemID =

„00_CC_PVF_int0“, Lesen einer SPS-Variablen mit Namen int0. Es sind folgende Besonderheiten hier zu berücksichtigen:

1. Im Funktions-Interface wird zwischen einem Einzellesebefehl (00_CR_..., 00_BR_..) und einem zyklischen Lesebefehl (00_CC_.., 00__BC_..) unterschieden, diese Unterscheidung entfällt beim OPC Server, d. h. Lesebefehle können mit 00_CR_.., 00_BR.. oder mit 00_CC_..; 00_BC_.. angemeldet werden, hier sollte man sich auf eine Schreibweise entscheiden.

2. Schreibbefehle müssen mit 00_CW_.., 00_BW_.. angemeldet wer- den, da nicht jede Schreibbefehl gleichzeitig auch als Lesebefehl de- finiert ist.

3. Ein Funktions-Interface Befehl kann mehrere Ergebnisse liefern (sie- he z. B. 00_CC_APO_0_1_1 Rückgabewert 1 = Achsbezeichnung, Wert 2 = Positionswert und Wert 3 = Einheit).

Das Ergebnis wird standardmäßig als ein Wert interpretiert und wei- terverarbeitet. Um Wandlungsfehler zu meiden, sollte man als Stan- dard-Item-Typ VT_BSTR verwenden.

4. Bei Befehlen mit mehreren Ergebnissen kann der Rückgabewert in Tabellenform mit Zeilen und Spalten strukturiert sein. Diese Tabelle wird 1:1 umgesetzt, wenn der Client als vtRequestedDataType = VT_ARRAY | VT_BSTR anfordert. Es wird ein zweidimensionales SAFEARRAY erzeugt mit Dimension = 1 als Zeile und Dimension = 2 als Spalte.

5. Einzelwerte von Ergebnissen können mit einer Kommando- erweiterung gezielt ausgelesen werden. Dazu fügt man nach einem Funktions-Interface Befehl die Angabe {Zeile, Spalte} hinzu.

Beispiel: V],WHP,' ÄB&&B$32B^`³

Für die Parametrierung von {Zeile,Spalte} siehe [3], Kapitel ReadGroupItem]

(16)

2.5 Installation

Die Installation erfolgt durch Aufruf des Programmes SETUP.EXE auf der Installationsdiskette.

Systemvoraussetzungen

Betriebssystem: NT 4.0 SP5 oder höher. Nur falls keine Zugriffe über DCOM erfolgen, ist NT 4.0 SP3 ausreichend.

Indramat Benutzeroberfläche Version 18V06 SP 1 oder höher.

Dateien und Verzeichnisse

Folgende Dateien und Verzeichnisse werden bei der Installation angelegt:

Verzeichnis Dateiname Bemerkung

OPCIndramat.dll InProc Server

OPCIndramat.exe OutProc bzw. Remote Server

LW:]\winnt\system32 OPCProxy.dll Proxy/Stub DLL für das Marshaling der benutzer- definierten Schnittstellen

LW:]\winnt\system32 OPCComn_ps.dll Proxy/Stub DLL für das Marshaling der benutzer- definierten Schnittstellen

Abb. 2-4: Installierte Dateien

Registrierungen

Die Indramat OPC Server sind selbstregistrierende COM Server. Die Re- gistrierung wird vom Installationsprogramm durchgeführt. Die Indramat OPC Registrierung wird nach der OPC Spezifikation durchgeführt, siehe hier [1, 5] „Installation Issues“. Nach der Installation enthält die System Registry folgende Einträge:

Key Value Bemerkung

+.(<B&/$66(6B5227?23&,QGUDPDW Versionsunabhängige ProgID

+.(<B&/$66(6B5227?23&,QGUDPDW Versionsabhängige ProgID

+.(<B&/$66(6B5227?&/6,'?

^%%)''$')'(&()$'` &/6,'B23&,QGUDPDW

^%%)''$')' (&()$'`

CLSID des OPC Indramat Servers

+.(<B&/$66(6B5227?$SS,'?

^(%&('%)&&)%`

+.(<B&/$66(6B5227?$SS,'?

23&,QGUDPDWH[H

Konfiguration- und Si- cherheitseinstellungen für verteilte COM-Objekte

Abb. 2-5: Einträge in der System Registry

Ein OPC Client kann mit Hilfe der CLSID eine Verbindung zum Server erstellen, OPC schlägt hier eine Clientverbindung über die Komponenten- registrierung vor, siehe dazu [4, Kapitel 7] „OPC Common Definitions and Interfaces“.

(17)

Manuelle Registrierungen

Im Service Fall können einzelne Registrierungen manuell erzeugt bzw.

gelöscht werden.

Der InProc Server (hier OPCIndramat.dll) wird mit dem Hilfsprogramm regsvr32.exe registriert. Regsvr32.exe liegt jeder NT-Installation bei und befindet sich im Verzeichnis [LW:]\winnt\system32:

5HJVYURSFLQGUDPDWGOO Löschen der COM Server Registrierung:

5HJVYUXRSFLQGUDPDWGOO

Die Registrierung des OPCIndramat.exe Servers wird durchgeführt, in- dem man den Server mit folgendem Kommandozeilenparameter aufruft::

2SFLQGUDPDW±UHJVHUYHU oder RSFLQGUDPDWUHJVHUYHU

Falls der Server nicht registriert werden kann, so wird ein entsprechender Fehlertext ausgegeben.

Löschen der COM Server Registrierung:

2SFLQGUDPDW±XQUHJVHUYHU oder RSFLQGUDPDWXQUHJVHUYHU Für das Marshaling der benutzerdefinierten Schnittstellen werden zwei Proxy/Stub DLLs (OPCProxy.dll, OPCComn_ps.dll) in das Verzeichnis [LW:]\winnt\system32 installiert und dort registriert.

Diese zwei DLLs sollten folgende Version mindestens haben.

• OPCProxy.dll Version 2,0,0,1

• OPCComn_ps.dll Version 1,0,0,2 Die Version kann wie folgt ausgelesen werden:

1. DLL mit dem Windows Explorer auswählen, 2. Rechte Maustaste

3. Menü Eigenschaften.

4. Dialog Auswahlfeld „Version“

OPC [1, Kapitel 5.1] schlägt vor den OPC Server unter einer Komponen- tenkategorie zu registrieren. Diese Registrierung wird mit Hilfe der COM- CAT.DLL [LW:]\winnt\system32 durchgeführt.

InProc Server

Out-Proc Server

Proxy/Stub Server

Komponentenkategorien

(18)

2.6 Kommunikationsarchitektur

Die Kommunikation zur Steuerung erfolgt über das Indramat Funktions- Interface (siehe Abb. 2-6: Indramat Kommunikationsarchitektur). Der OPC Server meldet sich beim Funktions-Interface an, dies kann einige Sekunden dauern. Beim Beenden des Servers wird die Verbindung zum Funktions-Interface wieder geschlossen.

WinHMI

'SRJMKYVEXMSR XSSPW

;-2

GYWXSQIV

VH TEVX] GYWXSQIV

VH TEVX]

1YPXM 4VSXSGSP -RXIVJEGI

34' 7IVZIV (() 7IVZIV

14- 'SQ HVMZIV

*YRGXMSR-RXIVJEGI

&IXVMIFWW]WXIQ ,EVH[EVI

Abb. 2-6: Indramat Kommunikationsarchitektur

Einige Funktionsaufrufe der Indramat-Benutzeroberfläche (z.B. NC- Parameter-Download oder SPS-Programm-Download) erfordern eine exklusive Nutzung der Kommunikationsverbindung zur Steuerung. Wäh- rend der Ausführung dieser Funktionen; wird der OPC Server in Status OPC_STATUS_SUSPENDED gesetzt und die Gruppenkommunikation unterbrochen. Nach Downloadende wird der Server in vorgehenden Zu- stand zurückgesetzt und die Gruppenkommunikation wird wieder erneu- ert.

Hierzu verarbeitet der OPC Server folgende Systemmeldungen: [3; Kapi- tel 3.5]:

• MSG_PCLUPDBEG

• MSG_PCLUPDEND

• MSG_PARUPDBEG

• MSG_PARUPDEND

(19)

2.7 Der Indramat Test OPC-Client

Der Indramat OPC Client unterstützt die Funktionen nach der Spezifikati- on [1] und kann zum Test der Kommunikation zur Steuerung verwendet werden. Der Indramat OPC Client ist nur mit englischer Benutzeroberflä- che verfügbar.

Abb. 2-7: Indramat OPC-Client

Der Indramat OPC Client ist so aufgebaut, dass die über die Register- karten aufrufbaren Dialogseiten die Interfaceklassen eines OPC Servers wiedergeben. Die Schaltflächen des Hauptfenster haben folgende Funkti- on:

Schließt den Dialog. Falls noch eine Verbindung mit einem OPC Server besteht, ist dieser Button in einem nicht aktivem Zustand.

Schließt den Dialog, ohne auf eine bestehende Verbindung zu achten.

Dies sollte nur im Notfall durchgeführt werden.

Feste Positionierung des Fenster auf dem Desktop.

Ausgabe von Informationen und Fehlermeldungen während der Pro- grammausführung. HRESULT Fehlermeldungen können über die Metho- de IOPCServer :: GetErrorString (siehe Registerkarte OPCServer) aus- gelesen werden.

OK

Abbrechen

Calibrate Statuszeile Ausgabe aller OPC Servern, die die Spezifikation 2 unterstützen

Einzelne Methoden eins OPC Servers gegliedert nach Schnittstellennamen Unterstützte Ser- verschnittstellen

Auswahl als InProc-, EXE- oder Remote- server

Verbindung zu einem Server

Serverver- bindung trennen

Aktuelle Clientkonfiguration kann geladen oder gesichert werden

Statuszeile

(20)

Nach dem Start des Indramat OPC Clients werden in dem Listfeld „Server List Version 2“ alle registrierten OPC Server aufgelistet

Der Anwender kann in diesem Auswahlfeld den Typ des Server auswäh- len:

• InProc DLL-Server

• Local Exe-Server

• Remote Zugriff auf einen OPC Server über DCOM

Falls ein Remote Server ausgewählt wird, wird ein Eingabedialog geöff- net. In diesem Dialog können dann Angaben gemacht werden, hinsicht- lich Remoterechnername (TCP/IP Nummer), Domänename, Benutzer und Passwort.

Nach getroffener Serverauswahl wird mit Connect eine Verbindung zum Server aufgebaut.

Schließt eine bestehende Verbindung. Es ist darauf zu achten, dass alle Gruppenverbindungen vorher beendet wurden (Fehlermeldung).

Hiermit kann man eine Clientkonfiguration abspeichern. Es werden Grup- pen- und Item-Informationen gesichert.

Die unter OPC Save gesicherten Daten werden eingelesen.

Nach Connect werden alle Schnittstellen angezeigt, die der ausgewählte OPC Servers unterstützt.

Server List Version 2

Server Type

Connect

Disconnect

OPC Save

OPC Load

Server Interface

(21)

Dialog IOPCServer

Dieser Dialog liefert die Funktionen für die OPC Gruppenverwaltung, die Schaltflächen entsprechen den Methoden der OPC Schnittstellenklasse IOPCServer.

Abb. 2-8: Statusanzeige auf der Registerkarte IOPCServer

Erstellt mit Hilfe des in Abb. 2-9: Dialog Add Group dargestellten Dialogs eine neue Gruppe. Die Aktualisierungsrate wird im Feld "Requested Up- date Rate" in msec eingegeben. Um die Daten zu übernehmen, muß die Schaltfläche AddGroup betätigt werden. Mit der Schaltfläche OK kann zurück zur Statusübersicht gewechselt werden.

Abb. 2-9: Dialog Add Group AddGroup

Methoden von IOPCServer

OPC Server Sta- tusinformationen

(22)

Fehlercodes auszulesen.

Zeigt für die angegebene Gruppe die unterstützten Interfaces an.

Aktualisiert die Werte in der Statusanzeige.

Gruppen könne über Mehrfachselektion gelöscht werden. Grüner Zustand zeigt an, dass diese Gruppe löschbar ist, bei rotem Zustand sind noch Items dieser Gruppe angemeldet.

Erzeugt eine tabellarische Übersicht der Eigenschaften aller Gruppen.

Dialog IOPCItemMgt

Abb. 2-10: Dialog zur Verwaltung von OPC-Items

Auflistung aller angemeldeten Gruppen. Um die Methoden von IOPC- ItemMgt ausführen zu können, ist zunächst eine Gruppe mit der Maus über Doppelklick oder Button Select auszuwählen.

Nach einer Auswahl werden in dem Listfeld, hier „Group1“, die Items mit ihren Attributen ausgegeben.

Auswahl einer Gruppe aus der Liste.

Fügt zur ausgewählten Gruppe neue Items hinzu.

Wird nicht unterstützt.

Löscht das in der Itemliste ausgewählte Item.

Wird nicht unterstützt.

Verändert den Datentyp, des in der Item-Liste ausgewählten Items.

GetGroupByName GetStatus RemoveGroup

CreateGroupEnumerator

Group DClick

Listfeld „Gruppennamen“

Select AddItems ValidateItems RemoveItems SetActiveState SetDataTypes Liste aller

angemelde- ten Gruppen

Liste alle angemel- deten Items mit ihren Attributen. Mehr- fachselektion ist möglich.

Beispiel für Methode AddItems

(23)

Dialog IOPCSyncIO

Abb. 2-11: Dialog IOPCSyncIO

Auswahl einer Gruppe.

Nach der Auswahl der Items wird die Lesefunktion ausgeführt, das Er- gebnis wird in dem unteren Listfeld angezeigt.

Für jeden selektierten Schreibwert wird ein Eingabedialog geöffnet. Nach der Eingabe werden die Daten zur Steuerung übertragen.

Lesedaten aus dem Server Cache Lesedaten direkt aus der Steuerung Select

Read

Write

OPC_DS_CACHE OPC_DS_DEVICE

Mehrfachauswahl der Items

Ergebnis eines Methodenaufrufes, hier „Read“

Auswahl Cache Daten oder direkte Steuerungsdaten

(24)

Dialog IOPCAsyncIO2

Wegen der Komplexität der asynchronen Datenanforderung werden die einzelnen Methoden der Schnittstelle IOPCAsyncIO2 auf mehrere Dialog- seiten verteilt.

Abb. 2-12: Dialog IOPCAsyncIO2

Auswahl einer Gruppe. Nach der Auswahl wird eine Verbindung zum Ser- ver über IOPCDataCallback erstellt bzw. eine bestehende Verbindung visualisiert.

Eine bestehende Verbindung über die Schnittstelle IOPCDataCallback wird hiermit aufgehoben.

Select

Unadvise

Ergebnisdaten einer zyklischen Verbindung

(25)

Dialog IOPCAsyncIO2 Read Write

Abb. 2-13: Dialog IOPCAsyncIO2 Read Write Auswahl einer Gruppe.

Nach einer Itemselektion wird die Lesefunktion der Schnittstellenklasse IOPCAsyncIO2 ausgeführt.

Das asynchrone Lesen wird damit abgebrochen.

Nach einer Itemselektion wird die Schreibfunktion der Schnittstellenklasse IOPCAsyncIO2 ausgeführt. Diese Schreibfunktion öffnet für jeden Schreibwert ein Eingabefeld.

Das asynchrone Schreiben wird damit abgebrochen.

Eine bestehende Verbindung über die Schnittstelle IOPCDataCallback wird hiermit beendet.

Select Read

Cancel2 Read Write

Cancel2 Write Unadvise

(26)

Dialog IOPCBrowseServerAddressSpace

Abb. 2-14: Dialog IOPCBrowseServerAddressSpace

Dieser Dialog dient zum Suchen von ItemIDs. Das Ergebnis setzt sich aus der UND-Verknüpfung aller Kriterien zusammen.

Data Type: Suche nach einem bestimmten Datentyp. Beispiel VT_BOOL. Defaultwert = VT_EMPTY

Filter Criteria: Textsuche; Unterscheidung Groß- und Kleinschreibung wird nicht unterstützt. Defaultwert = „*“ oder „“.

Access Rights Filter: Suche nach entsprechenden Zugriffsrechten.

Defaultwert = Readable

Filter Types: Auswahl der Browse Arten. Defaultwert = Flat Startet eine Suchanfrage.

Filterkriterien

BrowseOPCItemIDs

Ergebnis der Suche

Filterkriterium Datentyp Filterkriterium für ItemID

Filterkriterium Zugriffs- rechte

Filterkriterium Browse

(27)

Dialog IOPCGroupStateMgt

Abb. 2-15: Dialog IOPCGroupStateMgt

Gruppeneigenschaften können hier geändert werden.

Auswahl einer Gruppe.

Folgende Eigenschaften können mit dieser Funktion verändert werden:

• RequestedUpdateRate

• Active

• TimeBias

• PercentDeadband

• LCID

• ClientGroup

Abänderung des Gruppennamens, es muss darauf geachtet werden, dass der Gruppennamen nicht mehrfach vergeben wurde.

Select SetState

SetName

Group Name wird mit SetName geändert.

SetState ändert diese Eigenschaften

(28)

2.8 OPC Server Oberfläche

Die Programmoberfläche gliedert sich in drei Teile,

• dem Hauptfenster mit Menü, Toolbar und Statuszeile,

• Fenster mit allen Clientverbindungen als Baumansicht

• das Infofenster.

Abb. 2-16: OPC Server Oberfläche

Hauptfenster

• Exit: Dieser Menüpunkt sollte nur im Notfall aufgerufen werden, z. B.

Client stürzt ab bevor er die Verbindung schließt.

• Toolbar: Anzeigen bzw. ausblenden der Toolbar.

• Status Bar: Anzeigen bzw. ausblenden der Statuszeile

• Trace Output: Öffnet ein Listfeld im unteren Teil des Infofensters. In diesem Listenfeld werden Traceausgaben protokuliert. Um die Tra- ceausgaben zu minimieren, ist eine Gruppe bzw. Client mit der Maus auszuwählen. Die Auswahl ist durch ein blauen Bitmap gekennzeich- net. Es werden nur 100 Ausgaben ins Listfelde abgelegt, danach wird das Feld gelöscht.

• Trace File: Hier gilt das Gleiche wie unter Trace Output, nur die Daten werden in ein File „OPCInfo.txt“ ausgegeben.

• About OPCIndramat: Programm und Copyright Informationen Entspricht hier den Menüpunkten Menü Tool und Menü ?.

Informationsausgaben des Servers Menü File

Menü View

Menü Tool

Menü ? Toolbar Statuszeile

Toolbar Menü

Statuszeile Hauptfenster Baumansicht

aller Clientver- bindungen

Infofenster Client Namen Gruppen

Namen

(29)

Fenster mit den Clientverbindungen

Alle Clientdaten werden in einer Baumstruktur ausgegeben, wobei ein Zweig einem OPC Client entspricht. Die Gruppen werden als Blätter un- terhalb des Zweiges angezeigt. In dem obigen Bild sieht man zwei Clients, die sich mit „Indramat OPC Client“ und „OPCTestClient“ ange- meldet haben, der erste Client besitzt drei Gruppen mit den Gruppenna- men „Group1“, „Group2“ und „Group3“.

Die Bitmaps dienen als Zustandsanzeige:

• Grün, aktiver Zustand

• Rot, nichtaktiver Zustand

• Blau, ausgewählter Zweig, mit Doppelklick der Maus

• Gelb mit Ausrufezeichen, suspendierter Zustand, z. B. über Funkti- ons-Interface Systemmeldung SPS-Download.

Infofenster

Das Infofenster gliedert sich in zwei Teilbereiche, die Statusinformation des ausgewählten Servers oder der Gruppe und ein Listfeld für die Tra- ceausgaben. Dieses Listfeld wird nur sichtbar, wenn Menü Trace Output ausgewählt wurde.

(30)
(31)

3 Entwicklung eines OPC Clients

3.1 Fehlerbehandlung

HRESULT Fehler

OPC Fehler werden als sogenannte HRESULT – Werte vom Server an den Client übergeben. Ein HRESULT – Wert hat folgenden Aufbau:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

Sev C R Facility

Abb. 3-1: Aufbau der HRESULT-Werte

Sev: Severity Code (00 Erfolgreich, 01 Information, 10 Warnung, 11 Fehler)

C Flag Kundenfehler

R Reserviert

Facility Facility Code, hier gibt es einige Konstanten (siehe [5])

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Code

Abb. 3-2: Aufbau der HRESULT-Werte (Fortsetzung) Code Facility Status Code

Der OPC Server benutzt als Facility Code die Konstante FACILITY_ITF um Fehler anzuzeigen.

Der „Code“ wird in mehrere Bereiche aufgeteilt:

0x0000 – 0x0200 Reservierte Microsoft Codes, OPC 1.0 Fehlercodes 0x0200 – 0x7FFF Reservierte OPC Foundation 0x8000 – 0xFFFF Fehlercodes des OPC Servers Abb. 3-3: Aufteilung der Facility Codes

Der Indramat OPC Server benutzt als Kommunikationsmittel das Indra- mat Funktions Interface, diese Fehler werden nun im OPC Server in HRESULT – Werte konvertiert.

Das Indramat Funktions Interface selbst hat nun das Problem, Fehler eingesetzter Komponenten weiterzuleiten, dies erfolgt an Hand eines er- weiterten Fehlersystems.

Da diese Fehlernummern abhängig von den eingesetzten Komponenten sind, wird ein HRESULT Fehlercode im Indramat OPC Server dynamisch vergeben, dieser liegt im Bereich 0xEEEE – 0xFFFF.

Der eigentliche Fehler kann mit diesem HRESULT – Wert und der Me- thode GetErrorString dann ermittelt werden.

(32)

Wenn man sich mit Remote - Verbindung zwischen Client und Server auseinandersetzt, dann muss man sich auch über die Sicherheit einer Verbindung Gedanken machen, da Client und Server auf verschiedenen Rechner zur Ausführung kommen.

Es gibt zwei Sicherheitsmodelle für Client-Server Verbindungen. Der Grund für diese zwei Modelle liegt darin, dass z. B. COM auch auf Sys- temen laufen muss, wo keine entsprechende Sicherheit nach NT existie- ren, z. B. Windows 95 und Windows 98.

COM Sicherheitsmodell

Die Sicherheit unter COM wird in verschiedene Anwendungsbereiche unterteilt:

• Die Aktivierungskontrolle bestimmt, wer die Ausführung von Kompo- nenten starten darf.

• Die Zugriffskontrolle dient nach dem Start einer Komponente zur Steuerung des Zugriffs auf die Objekte der Komponente.

• Die Authentifizierungskontrolle wird verwendet, um die Berechtigun- gen zu einer Netzwerkübertragung sicherzustellen und die Daten vor unautorisierten Betrachtern zu schützen.

• Die Identitätskontrolle legt die Sicherheitsreferenzen fest, unter deren Kontrolle die Komponente ausgeführt werden soll.

Die Sicherheitseinstellungen einer COM – Komponente wird auf zweierlei Weise konfiguriert:

• als deklarative Sicherheitseinstellungen

• als programmgesteuerte Sicherheitseinstellungen.

Deklarative Sicherheit

Deklarative Sicherheitseinstellungen werden in der Registrierung, unab- hängig vom Code der Komponente konfiguriert (Systemadministrator).

Diese Einstellungen werden mit Hilfe eines DCOM – Konfigurationspro- gramm (dcomcnfg.exe) durchgeführt. Der Benutzer muß dafür System- administrator-Rechte besitzen. Folgende Sicherheitseinstellungen können konfiguriert werden: Aktivierung, den Zugriff, die Authentifizierung und den Identitätswechsel.

Hinweis: Aktivierungs- und Identitätssicherheitseinstellungen lassen sich nicht programmgesteuert festlegen, da diese Einstellun- gen vor dem Start der betreffenden Komponente definiert sein müssen.

Diese Informationen lassen sich in zwei Kategorien zuordnen:

• Standardsicherheit betrifft die Sicherheitseinstellungen für alle auf dem lokalen Computer ausführbaren Komponenten.

• Komponentenbezogene Sicherheitseinstellungen gelten nur für eine bestimmte Komponente und die Standardsicherheitseinstellungen werden überschrieben.

Sowohl die Standardsicherheitseinstellungen als auch die komponenten- bezogenen Sicherheitseinstellungen können durch Programmgesteuerte

(33)

Standardsicherheit

Mit Start / Ausführen und dcomcnfg.exe wird das DCOM – Konfigurati- onsprogramm gestartet. Nach dem Start wird das Dialogfenster mit der Auflistung aller konfigurierbaren Komponenten dargestellt (siehe Abb. 3- 4: DCOM-Konfigurator: Komponentenliste).

Abb. 3-4: DCOM-Konfigurator: Komponentenliste

(34)

Standardeigenschaften

Mit Hilfe der Standardeigenschaften (siehe Abb. 3-5: DCOM-Konfiguartor:

Standardeigenschaften) kann der Administrator die Einstellungen für Au- thentifizierung und Identitätswechsel rechnerweit festlegen.

Abb. 3-5: DCOM-Konfiguartor: Standardeigenschaften

Die Option DCOM (Distributed COM) auf diesem Computer aktivieren ist der Hauptschalter für die DCOM – Einstellungen. Wenn diese Kontroll- kätschen nicht aktiviert ist, werden alle ein- und ausgehenden Fernaufrufe des Computer zurückgewiesen. Bei der Erstinstallation des Systems wird diese Option aktiviert.

Die Standard – Authentifizierungsebene legt die grundlegende Authentifi- zierungsebene dieses Systems fest. Jede Komponente kann diesen Wert überschreiben.

Authentifizierungsebene Beschreibung

Standard Entspricht gegenwärtig der Authentifizierung auf Verbindungsebene

Keine Keine Authentifizierung

Verbinden Der Client wird nur einmal authentifiziert, nämlich wenn er zum ersten mal eine Verbin- dung zum Server erstellt

Anrufen Der Client wird zu Anfang eines jeden Fernaufrufs authentifiziert.

Paket Authentifiziert wird, dass alle empfangenen Daten von dem Client kommen, von dem sie erwartet werden.

Paketintegrität Es werden alle Daten authentifiziert und es wird gewährleistet, dass die Daten während der Übertragung zwischen Client und Server nicht geändert worden sind.

Paket Privacy Sämtliche Parameter, die in Fernaufrufen übergeben werden, werden authentifiziert, ü- berprüft und verschlüsselt

Option DCOM (Distributed COM) auf diesem Computer aktivieren

Authentifizierungsebene

(35)

Die Option Standard – Identitätswechselebene legt die grundlegende I- dentitätswechsel – Ebene fest, die Clients auf diesem System ihren Ser- vern gewähren, wobei wiederum vorausgesetzt wird, dass keine Kompo- nente diesen Wert überschreibt.

Aus der Sicht des Clients ist die Identitätsebne Anonym die sicherste Ein- stellung, da die Komponente hier keine Information über den Client erlan- gen kann.

Die Ebene Identifizieren ist als Defaultwert eingestellt.

Standard - Identi- tätswechselebene

Beschreibung

Anonym Der Client ist dem Server gegenüber anonym. Der Server ist nicht in der Lage, die Identifizie- rungsdaten des Clients zu ermitteln und er kann sich deshalb auch nicht für den Client aus- geben.

Identifizieren Der Server kann die Identifizierungsdaten des Clients ermitteln und sich zum Zweck der ACL- Übertragung als Client ausgeben, aber kann nicht als Client auf Systemobjekte zugreifen Darstellen Der Server kann den Sicherheitskontext des Client simulieren, während er stellvertretend für

den Client agiert.

Delegieren Der Server kann den Sicherheitskontext des Client simulieren, während er stellvertretend für den Client andere Server aufruft.

Abb. 3-7: DCOM-Konfigurator - Standardeigenschaften: Identitätswechselebenen

Standardsicherheit

Mit dem Dialog Standardsicherheit werden die Standardzugriffs- und Standardstartberechtigungen rechnerweit konfiguriert.

Abb. 3-8: DCOM-Konfigurator: Dialog Standardsicherheit Identitätswechselebene

(36)

genen Einstellungen bereitstellen. Mit Schaltfläche Standard ändern unter Standard – Zugriffsberechtigungen wird eine Liste der Benutzer und Be- nutzergruppen angezeigt, denen explizit eine Berechtigung gewährt oder verweigert werden kann.

Alle Einträge sind in der Systemregistrierung unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole zu finden. Hier sind folgende Werte von Interesse.

HKEY_LM\SOFTWARE\Microsoft\Ole Beschreibung

DefaultLaunchPermission Definiert, wer Komponenten starten darf. Default darf Administrator, Sys- temkonto und der interaktive Benutzer Komponente starten.

DefaultAccessPermission Definiert, wer auf Komponente zugreifen darf. Der Defaultwert ist leer.

LegacyAuthenticationLevel Legt die Standard – Authentifizierungsstufe fest. (Standard oder Verbinden) LegacyImpersonationLevel Legt die Standard – Imitationsstufe fest. Defaultwert ist Identifizieren.

Abb. 3-9: Standard-Sicherheitseinstellungewn in der Systemregistrierungen

Hinweis: Werden Standardeinstellungen verändert, so treten diese erst nach einem Neubooten des Rechners in Kraft.

Komponentenbezogene Sicherheitseinstellungen

Diese Komponentenbezogenen Sicherheitseinstellungen überschreiben die rechnerweiten Standardeinstellungen. Alle diese Eintragungen werden in der Systemregistrierung unter der AppID der Komponenten hinterlegt.

HKEY_CLASS_ROOT\AppID\{AppID-der Komponente}.

Die nachfolgenden vier Werte entsprechen exakt den vier Bereichen des COM – Sicherheitsmodells (Start-, Zugriffs-, Authentifizierungs- und Iden- titätskontrolle).

AppID Werte Beschreibung

LaunchPermission Definiert, wer die Komponente starten darf

AccessPermission Definiert, wer auf die Komponente zugreifen darf.

AuthenticationLevel Legt die Authentifizierungsstufe für die Komponente fest

RunAs Legt Benutzerkonto fest, unter dessen Kontrolle die Kom-

ponente ausgeführt wird.

Abb. 3-10: Komponentenbezogene Sicherheitseinstellungen

Zu den Komponentenbezogenen Sicherheitseinstellungen gelangt man, indem man in der Komponentenliste (aufgerufen über die Registerkarte Anwendungen - siehe Abb. 3-4: DCOM-Konfigurator: Komponentenliste) die Komponente auswählt und die Schaltfläche Eigenschaft drückt. Ein anschließender Klick auf die Registerkarte Sicherheit zeigt den in Abb. 3- 11: DCOM-Konfigurator: Komponentenbezogene Sicherheitseinstellungen dargestellten Dialog.

(37)

Abb. 3-11: DCOM-Konfigurator: Komponentenbezogene Sicherheitseinstellungen

Diese Optionen betreffen die Werte AccessPermission und LaunchPer- mission. Die Defaultwerte werden von den Standardberechtigungen über- nommen. Daher dürfen nach einer Erstinstallation nur Administrator, das Systemkonto und der interaktive Benutzer zugreifen.

Für eine anonyme Aktivierung und einen anonymen Zugriff sind fol- gende Werte Benutzer (Jeder) für die Start- und Zugriffsberechtigung und die Authentifizierungsstufe auf die Einstellung Keine (RPC_C_AUTH_LEVEL_NONE) festzulegen.

Unter Identität wird festgelegt, unter wessen Kontrolle die Komponente ausgeführt werden soll.

Auf der Registerkarte Identität stehen drei Optionen zur Definition des Benutzerskontos zur Verfügung: Interaktiver Benutzer, Benutzer, der die Anwendung startet und Dieser Benutzer. Änderungen, die vorgenommen werden, betreffen den Wert RunAs der AppID.

Identität

(38)

einstellung der Komponenten eingestellt und dieser Wert wird nicht als RunAs bei der AppID eingetragen. Diese Einstellung bedeutet, dass wäh- rend der Ausführung der Komponente die Sicherheitsreferenzen des Client – Prozesses verwendet werden. Komponenten mit dieser Identität erhalten nicht ganz vollständigen Sicherheitsreferenzen, z. B. können Fernaufrufe zu anderen Computern nicht durchgeführt werden oder der Zugriff auf gemeinsame Dateien im Netzwerk.

Bei der Identitätseinstellung Interaktiver Benutzer wird die Komponente unter der Kontrolle des aktuellen angemeldeten Benutzers ausgeführt.

Drei Probleme ergeben sich, mit dieser Einstellung:

• Ein Benutzer muss sich angemeldet haben, damit die Komponente ausgeführt werden kann.

• Es ist nicht vorweg bekannt, wer sich angemeldet hat.

• Die Komponente „stirbt“, wenn sich der Benutzer während der Aus- führung abmeldet.

Die Option Dieser Benutzer legt fest, dass die Komponente unter der Kontrolle eines speziellen Benutzerskontos ausgeführt werden soll.

Benutzerkonten, die von COM für Anmeldezwecke verwendet werden, muss die spezielle Berechtigung Anmelden als Stapelverarbeitungsauf- trag zugewiesen werden, denn COM ist sonst nicht in der Lage, eine er- folgreiche Anmeldung unter Verwendung des Kontos durchzuführen.

Diese Berechtigung Anmelde als Stapelverarbeitungsauftrag wird mit Hilfe des Benutzermanagers vergeben: Benutzermanager / Richtlinien / Benutzerrechte und aktivieren Weitere Benutzerrechte anzeigen

Abb. 3-12: DCOM-Konfigurator: Komponentenbezogene Identitätseinstellungen

(39)

Programmgesteuerte Sicherheit

Programmgesteuerte Sicherheitseinstellungen werden vom Entwickler in eine Komponente integriert.

Das Konfigurieren von Sicherheitseinstellungen in der Registrierung bietet bestimmte Vorteile: Es erfordert keine besonderen Vorkehrungen auf Seiten des Komponentenentwicklers, und es ermöglicht dem Administra- tor größere Flexibilität bei der Konfiguration der Sicherheits-einstellungen.

Für die meisten Komponenten ist ein kombinierter Ansatz die beste Wahl.

CoInitializeSecurity definiert die Standardsicherheitswerte für einen gege- benen Prozess. Falls ein Prozess diese Funktion nicht selbst aufruft, ver- anlasst COM den Aufruf dieser Funktion automatisch, dabei ermittelt COM die Sicherheitseinstellungen aus der Registrierung.

Von der obigen Funktion sind die Parametern dwAuthnLevel und dwImpLevel die zwei wichtigsten Übergabeparametern.

Der Client deklariert im Aufruf von CoInitializeSecurity mit dem Parameter dwAuthnLevel die Standard – Authentifizierungsebne, die er für ausge- hende Aufrufe verwenden möchte. Die von der Komponente im Aufruf von CoInitializeSecurity mit dem Parameter dwAuthnLevel festgelegten Einstellungen definiert die unterste Ebene, auf der Client Aufrufe akzep- tiert werden.

In jeder Verbindung zwischen einem Client und einer Komponente ermit- telt COM die Authentifizierungseinstellung der Parteien und legt die Au- thentifizierungsebene automatisch die höhere der beiden Einstellungen fest, daraus folgt nun: dwAuthnLevel Client >= dwAuthnLevel Server, für ConnectioPoints gelten folgende Einstellungen dwAuthnLevel Client ==

dwAuthnLevel Server.

Ein anonymer Zugriff wird mit folgenden Einstellungen erlaubt: erster Pa- rameter von CoInitializeSecurity wird mit NULL initialisiert und dwAuthnLevel wird auf Flag RPC_C_AUTHN_LEVEL_NONE gesetzt.

Der Client definiert im Aufruf von CoInitializeSecurity mit dem Parameter dwImpLevel die Standard – Identitätswechsel – Ebene, die der Client den Komponenten gewähren möchte. Dieser Wert wird auf Server – Seite nicht verwendet.

Funktion CoInitializeSecurity

(40)

aufrufe vom Client zum Server verifiziert werden, sonder auch umgekehrt.

Mit den Interface – Klassen IConnectionPoint und IOPCAsyncIO2 ruft der Server Funktionen des Clients auf.

Wegen dieser Wechselbeziehung, verwendet der Indramat OPC Server CoInitializeSecurity mit folgenden Parametern und toleriert jeden OPC Client Aufruf.

CoInitializeSecurity (NULL, //pVoid

-1, //cAuthSvc

NULL, //asAuthSvc

NULL, //pReserved1

RPC_C_AUTHN_LEVEL_NONE, //dwAuthnLevel

RPC_C_IMP_LEVEL_IMPERSONATE, //dwImpLevel

NULL, //pAuthInfo

EOAC_NONE, //dwCapabilities

NULL); //pvReserved2

Konfigurationsvorschlag

Wie aus den vorangehenden Kapitel ersichtlich ist, ist eine DCOM Konfi- guration sehr komplex, weil man mit der deklarativen und programmge- steuerten Einstellungen, die Sicherheit und damit auch die Kommunikati- on von Client / Server beeinflussen kann.

Hinzukommt, dass eine Diagnose an Hand der COM - HRESULT Wert erschwert wird, denn eine COM - Fehlermeldung kann mehrere Ursachen haben. Aus diesem Grund sollte man sich an die nachfolgende Konfigu- rationsschritten halten, um eine Fehlerdiagnose zu erleichtern.

Windows NT 4.0 und SP 5 oder größer sollte installiert sein. Mit SP 3 können einige Einstellungen nicht durchgeführt werden.

Der Client - und Server - Rechner soll in eine gemeinsame Domäne ein- getragen werden. Auf beiden Rechner ist ein gemeinsamer Benutzer mit dem selben Passwort einzutragen und unter diesem Benutzer soll die Oberfläche Version bzw. der OPC – Server installiert werden.

Auf der Seite des Client ist das Standardübertragungsprotokoll auszutau- schen. Der Standardwert ist UDP/IP und soll auf TCP/IP vertauscht wer- den, in der angezeigten Liste einfach nach oben verschieben (SP 5 oder grö0er). Der Grund für diese Tausch liegt in einem Fehler von Microsoft zwischen DCOM und UDP/IP. Konfigurationsprogramm DCOMCNFG.EXE ist hier zu verwenden.

Diese Einstellungen sind auf der Seite des Clients und des Servers durchzuführen. Nach der Ausführung von DCOMCNFG.EXE ist der OPC Server „OPC Indramat Server Version 1.0“ unter Anwendungen auszu- wählen und auf die Seite Sicherheit zu wechseln. Vorkonfigurierter Benut- zer und Benutzer „Jeder“ sind sowohl bei Benutzerdefinierte – Zugriffsbe- rechtigungen verwenden, als auch unter Benutzerdefinierte Startberechti- gungen verwenden, Benutzerdefinierte Konfigurationsberechtigungen verwenden einzufügen.

im Indramat OPC Server

Windows NT Servicepacks (SP)

Netzwerkkonfiguration

Deklarative Einstellung

(41)

Der Indramat OPC Server hat eine tolerante Sicherheitseinstellung ge- genüber einem OPC Client, diese Einstellung muss dann auch im Client bei den ConnectionPoints IOPCDataCallback bzw. IOPCShutdown be- rücksichtigt werden, da sonst eine Schnittstellenverbindung Server / Client über Advise nicht möglich ist, daher sollte der Client CoInitializeSe- curity mit den obigen beschriebenen Einstellungen aufrufen.

Zusammenfassung DCOM Einstellungen

Server Client

Allgemein Domäne Gleiche Domäne Gleiche Domäne

Benutzer manager

Gleicher Benutzer und Passwort eintragen und einloggen

Gleicher Benutzer und Passwort eintragen und einloggen

Benutzer manager

Gast Konto aktivieren Gast Konto aktivieren

Nur Deklarativ dcomcnfg.exe 1 Anwendungen OPC Indramat Server Ver- sion 1 auswählen

2 Allgemein Authentifizieungs stufe auf Kein setzen.

3 Sicherheit Benutzerdefinierte Startbereich- tigungen vewenden: Jeder und eingeloggter Benutzer eintragen

4 Sicherheit Benutzerdefinierte Zugriffsbe- reichtigungen vewenden: Benutzer Jeder und eingeloggter Benutzer eintragen

Deklarativ und Pro- grammgesteuerert

1 Anwendungen OPC Indramat Server Ver- sion 1 auswählen

2 Sicherheit Benutzerdefinierte Startbereich- tigungen vewenden: Benutzer Jeder und eingeloggter Benutzer eintragen

3 Sicherheit Benutzerdefinierte Zugriffsbe- reichtigungen vewenden: Benutzer Jeder und eingeloggter Benutzer eintragen

4 Programmierung:

CoInitializeSecurity(

NULL, -1, NULL, NULL,

RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, NULL,

EOAC_NONE, NULL)

1 Programmierung: Für IOPCDataCallbak und I- OPCShutdown

CoInitializeSecurity(

NULL, -1, NULL, NULL,

RPC_C_AUTHN_LEVEL_N ONE,

RPC_C_IMP_LEVEL_IMPE RSONATE,

NULL, EOAC_NONE, NULL);

2 Programmierung: ver- besserte Anmeldung CoCreateInstanceEx und COSERVERINFO, COAUTHINFO,

COAUTHIDENTITY Struktu- ren

Abb. 3-13: Zusammenfassung der DCOM Einstellungen Programmgesteuerte

Einstellungen

(42)

3.3 Testprogramm der OPC-Foundation

Die OPC Foundation liefert ein Programmwerkzeug, um ein bestehende OPC Installation lokal, sowie auch Remote zu überprüfen.

Für diesen Test sind folgende Programme zu installieren bzw. anzuwen- den.

ActxPrxy.dll: [LW]:\winnt\system32, falls diese DLL nicht existiert ist Installationsprogramm Aprxdist.exe aufzurufen.

OPCEnum.exe: [LW]:\winnt\system32 zu installieren und registrieren mit opcenum /regserver.

Enumtest.exe: Konsole Testprogramm für eine bestehende OPC Installation zu überprüfen. An Hand eines Beispiels wird die Anwendung erklärt.

Abb. 3-14: Hauptfenster des Tracemonitors

Versionsabhän- gige Programm Lokaler Test und Ergeb-

Remote Server

Remote Test und Ergeb-

(43)

4 Literatur

[1] Data Access Custom Interface Standard Version 2.03 (July 27, 1999); http://www.opcfoundation.org.

[2] Data Access Automation Interface Standard Version 2.02 (Febru- ary 4, 1999); http://www.opcfoundation.org.

[3] System200 Funktions-Interface 04VRS Anwendungsbeschrei- bung,

Rexroth Indramat DOK-CONTRL-FUN*INT*V04-AW01-DE-P [4] OPC Common Definitions and Interfaces;

http://www.opcfoundation.org.

[5] Inside Distributed COM, Microsoft Press ISBN 3-86063-459-3

(44)
(45)

5 Abbildungsverzeichnis

Abb. 1-1: Anwendungen arbeiten mit OPC-Servern verschiedener Hersteller zusammen 1-2

Abb. 1-2: Zuordnung von OPC Items zur OPC Group 1-3 Abb. 1-3: Custom Schnittstelle und Automation Schnittstelle 1-4 Abb. 1-4: Custom Schnittstelle und Automation Schnittstelle 1-4 Abb. 2-1: Interfaces und Methoden von OPCServer 2-2

Abb. 2-2: Interfaces und Methoden von OPCGroup 2-3

Abb. 2-3: Umsetzung der SPS-Datentypen in der OPC-Schnittstelle 2-5 Abb. 2-4: Installierte Dateien 2-6

Abb. 2-5: Einträge in der System Registry 2-6 Abb. 2-6: Indramat Kommunikationsarchitektur 2-8 Abb. 2-7: Indramat OPC-Client 2-9

Abb. 2-8: Statusanzeige auf der Registerkarte IOPCServer 2-11 Abb. 2-9: Dialog Add Group 2-11

Abb. 2-10: Dialog zur Verwaltung von OPC-Items 2-12 Abb. 2-11: Dialog IOPCSyncIO 2-13

Abb. 2-12: Dialog IOPCAsyncIO2 2-14

Abb. 2-13: Dialog IOPCAsyncIO2 Read Write 2-15 Abb. 2-14: Dialog IOPCBrowseServerAddressSpace 2-16 Abb. 2-15: Dialog IOPCGroupStateMgt 2-17

Abb. 2-16: OPC Server Oberfläche 2-18 Abb. 3-1: Aufbau der HRESULT-Werte 3-1

Abb. 3-2: Aufbau der HRESULT-Werte (Fortsetzung) 3-1 Abb. 3-3: Aufteilung der Facility Codes 3-1

Abb. 3-4: DCOM-Konfigurator: Komponentenliste 3-3 Abb. 3-5: DCOM-Konfiguartor: Standardeigenschaften 3-4 Abb. 3-6: DCOM-Konfigurator - Standardeigenschaften: Mögliche

Authentifizierungsebenen 3-4

Abb. 3-7: DCOM-Konfigurator - Standardeigenschaften:

Identitätswechselebenen 3-5

Abb. 3-8: DCOM-Konfigurator: Dialog Standardsicherheit 3-5 Abb. 3-9: Standard-Sicherheitseinstellungewn in der

Systemregistrierungen 3-6

Abb. 3-10: Komponentenbezogene Sicherheitseinstellungen 3-6 Abb. 3-11: DCOM-Konfigurator: Komponentenbezogene

Sicherheitseinstellungen 3-7

Abb. 3-12: DCOM-Konfigurator: Komponentenbezogene Identitätseinstellungen 3-8

Abb. 3-13: Zusammenfassung der DCOM Einstellungen 3-11 Abb. 3-14: Hauptfenster des Tracemonitors 3-12

(46)
(47)

6 Index

A

AddItems 2-4

D

Data Access Custom Interface 2-1, 2-2 DCOM 1-1

DCOM-Konfiguration 3-2

F

Fehlerbehandlung 3-1 Funktions-Interface 2-8

G

GetErrorString 2-4

I

Inproc Servern 1-5

K

Kunden- und Automationsschnittstellen 1-4

L

Lokale Server 1-5

O

OPC 1-1

OPC Server 2-18 OPC-Gruppe 1-3 OPC-Item 1-3 OPCITEMDEF 2-4 OPC-Server Objekt 1-3 Out-Proc Server 1-5

R

Remote Server 1-5

T

Test OPC Client 2-9

(48)
(49)

7 Kundenbetreuungsstellen - Sales & Service Facilities

Deutschland – Germany

vom Ausland: (x) nach Landeskennziffer weglassen!!

from abroad: don’t dial (x) after country code!

Vertriebsgebiet Mitte SALES

Germany Centre Service

Rexroth Indramat GmbH Bgm.-Dr.-Nebel-Str. 2 97816 Lohr am Main Telefon: +49 (0)9352/40-0 Telefax: +49 (0)9352/40-4885

Kompetenz- Zentrum Europa

S E R V I C E

C A L L E N T R Y C E N T E R MO – FR von / from 7 – 18 Tel. +49 (0) 9352 40 50 60

service@indramat.de

S E R V I C E H O T L I N E

MO – FR von / from 17 - 07 + SA / SO Tel.: +49 (0)172 660 04 06

o d e r / o r Tel.: +49 (0)171 333 88 26

S E R V I C E

ERSATZTEILE / SPARES verlängerte Ansprechzeit:

- extended office time -

♦ nur an Werktagen - only on working days -

♦ von 15 -18 Uhr - from 15-18 o'clock - Tel. +49 (0) 93 52/40 42 22

Vertriebsgebiet Süd SALES

Germany South Service

Rexroth Indramat GmbH Ridlerstraße 75 80339 München

Telefon: +49 (0)89/540138-30 Telefax: +49 (0)89/540138-10 indramat.mue@t-online.de

Gebiet Südwest SALES

Germany South-West Service

Mannesmann Rexroth AG Vertrieb Deutschland – VD-BI Geschäftsbereich Rexroth Indramat Regionalzentrum Südwest Ringstrasse 70 / Postfach 1144 70736 Fellbach / 70701 Fellbach Tel.: +49 (0)711/57 61–100 Fax: +49 (0)711/57 61–125

Vertriebsgebiet Ost SALES

Germany East Service

Rexroth Indramat GmbH Beckerstraße 31 09120 Chemnitz

Telefon: +49 (0)371/35 55-0 Telefax: +49 (0)371/35 55-333

Vertriebsgebiet Nord SALES

Germany North Service

Mannesmann Rexroth AG Vertriebsniederlassung Region Nord Gesch.ber. Rexroth Indramat Walsroder Str. 93

30853 Langenhagen

Telefon: +49 (0) 511/72 66 57-0 Telefax: +49 (0) 511/72 66 57-93

Vertriebsgebiet West SALES

Germany West Service

Mannesmann Rexroth AG Vertrieb Deutschland Regionalzentrum West Borsigstrasse 15 D - 40880 Ratingen Telefon: +49 (0)2102/409-0 Telefax: +49 (0)2102/409-406

Vertriebsgebiet Mitte SALES

Germany Centre Service

Mannesmann Rexroth AG Gesch.ber. Rexroth Indramat Lilistraße 14-18

63067 Offenbach

Telefon: +49 (0) 69/82 00 90-0 Telefax: +49 (0) 69/82 00 90-80

Vertriebsgebiet Ost SALES

Germany East Service

Mannesmann Rexroth AG GB Rexroth Indramat GmbH Holzhäuser Str. 122 04299 Leipzig

Telefon: +49 (0)341/86 77-0 Telefax: +49 (0)341/86 77-219

Vertriebsgebiet Nord SALES

Germany North Service

Rexroth Indramat GmbH Kieler Straße 212 22525 Hamburg

Telefon: +49 (0)40/85 31 57-0 Telefax: +49 (0)40/85 31 57-15

Kundendienstniederlassungen in Deutschland - Service agencies in Germany

Referenzen

ÄHNLICHE DOKUMENTE

public static void main(String[] argv) { Socket socket;.

 A typical transaction server consists of multiple processes accessing data in shared memory.. 

Wenn Sie über das Netzwerk mit einem anderen Client auf den FSM-5000-OPC Server zugreifen, können Sie die Namen und ein Kennwort auf der Serverseite nach Belieben auswählen, solange

Wenn eine OPC UA Client Smart-Komponente mit einem OPC UA-Server verbunden wird, muss ein Serversicherheitszertifikat automatisch akzeptiert werden. Dieser Prozess stellt eine

Zone 11– umfaßt Bereiche, in denen damit zu rechnen ist, daß gefährliche explosionsfähige Atmosphäre gelegentlich durch Aufwirbeln ab- gelagerten Staubes kurzzeitig auftritt3. Für

Eine Lagemessung in bezug auf einen Referenz- punkt wird durch Anfahren des Referenzpunktes nach dem Einschalten der Versorgungsspannung und ständige richtungsdekodierte Zählung

Für jeden Parameter sind 7 verschiedene Datenblockelemente vorhanden, die über eine Bedarfsdatenschnittstelle von einer übergeordneten Steuerung bzw.Parametrieroberfläche gelesen

Freier Win32 Telnet/SSH Client mit umfangreichen Konfigurationsmöglichkeiten Website: http://www.chiark.greenend.org.uk/~sgtatham/putty/. Franz Kohnle Seite 1 von