Entwicklung einer Schnittstellensoftware für die Erfassung und

Transcription

Entwicklung einer Schnittstellensoftware für die Erfassung und
Fachhochschul-Diplomstudiengang
SOFTWARE ENGINEERING
A-4232 Hagenberg, Austria
RM-Gateway:
Entwicklung einer Schnittstellensoftware für die
Erfassung und Auswertung von Prozessdaten einer
Bandverzinkungsanlage
Diplomarbeit
zur Erlangung des akademischen Grades
Diplom-Ingenieur (Fachhochschule)
Eingereicht von
Ing. Johannes Oppitz
Betreuer:
Begutachter:
Dipl.-Ing. Gerwich Emerstorfer, Tensor GmbH, Linz
FH-Prof. Dipl.-Ing. Dr. Herwig Mayr
Juni 2004
i
Eidesstattliche Erklärung
Ich erkläre an Eides statt, dass ich die Diplomarbeit selbstständig verfasst, keine anderen als die
angegebenen Quellen und Hilfsmittel verwendet und mich auch sonst keiner unerlaubten Hilfe
bedient habe. Ich versichere, dass ich diese Diplomarbeit bisher weder im In- noch im Ausland in
irgendeiner Form als Prüfungsarbeit vorgelegt habe.
Hagenberg, im Juni 2004
Johannes Oppitz
ii
Kurzfassung
Die Forderung nach lückenloser Aufzeichnung qualitätsrelevanter Daten von automatisierten
Produktionsanlagen erfordert die Integration der Prozessautomatisierung in die moderne Computertechnologie. Die besondere Herausforderung für die Integration dieser Systeme ergibt sich
durch die historische Entwicklung der Automatisierungstechnik und der teilweisen Verwendung
proprietärer Technik. Die Nutzungsdauer von Automatisierungskomponenten ist im Vergleich
zur Informationstechnologie um ein Vielfaches länger. Aus diesem Grund muss in vielen Fällen
vorhandene veraltete Automatisierungstechnik an neue Prozessdatenerfassungssysteme angebunden werden.
Das Unternehmen Tensor GmbH, Technisches Büro für Elektrotechnik und Informatik aus
Linz, ist seit 1992 im Bereich der Automatisierungs- und Prozessleittechnik für die Stahl- und
Aluminiumindustrie tätig und entwickelt seit 2003 ein Gateway-Konzept, das die Integration von
Automatisierungskomponenten erleichtert.
Die in der vorliegenden Diplomschrift beschriebene Arbeit beschäftigt sich mit der Entwicklung
einer speziellen Schnittstellensoftware, die in Zusammenarbeit mit der Firma Tensor entstanden
ist und bei einer Bandverzinkungsanlage der Firma Wuppermann Bandstahl GmbH eingesetzt
wird. Die Software wird als RM-Gateway bezeichnet und hat die Aufgabe, ein in der Anlage eingebautes radiometrisches Banddickenmessgerät des Herstellers Radiometrie/Thermo Electron
Corporation in die Automatisierungs- und IT-Struktur des Unternehmens zu integrieren. Bei der
entwickelten Lösung ist TCP/IP-Kommunikation mit dem Banddickenmessgerät und NetDDEKommunikation mit dem Prozessvisualisierungssystem Intouch realisiert. Weiters archiviert das
RM-Gateway die Informationen über das Längs- und Querprofil des verzinkten Stahlbandes in
der SQL-Datenbank des Betriebsdatenarchivs. Diese Daten werden mit dem Produktionsplanungssystem Sidero, das vom Wuppermann Datenservice GmbH entwickelt wurde, ausgewertet.
Mit der Installation des RM-Gateway konnte die Qualitätsdatenaufzeichnung der Bandverzinkungsanlage optimiert werden. Durch die Integration des Banddickenmessgerätes entfielen manuelle Dateneingaben durch das Bedienpersonal.
Die der Arbeit zu Grunde liegenden Technologien sind Microsoft .NET, C#.NET, ADO.NET,
asynchrone Socket-Kommunikation und eine eigenentwickelte COM-Komponente für die DDEKommunikation.
In Zukunft wird die Technologie der Prozessautomatisierung mit der Informationstechnologie
verschmelzen und damit auch Methoden und Systeme der Informationstechnologie verstärkt im
Bereich der Automatisierungstechnik Anwendung finden.
iii
Abstract
The demand for recording quality relevant data of automated manufacturing plants requires the
integration of process automation into modern information technology. Because of the historical
evolution of the automation and process control and the partial use of proprietary technique, the
integration of these systems is complex. The product cycle of automation components is considerably longer than the product cycle of the information technology. From this basis, available
obsolete automation equipment has to be connected in many cases to new process data acquisition systems.
The company Tensor GmbH, Technical Office for Electrical Engineering and Computer Science, located in Linz, has been active since 1992 in the area of automation and process control
for the steel and aluminum industry. The company has been developing a gateway concept for
facilitates integration of automation components since 2003.
The project described in this thesis deals with the development of specific interface software,
named RM-Gateway, in cooperation with Tensor GmbH. The task of the RM-Gateway is to integrate a radiometric strip thickness gauge of the manufacturer Radiometry/Thermo Electron
Corporation in the automation and IT structure of the galvanizing line. The system is used by the
company Wuppermann Bandstahl GmbH. This company supports a continuous galvanizing line
in the area of the Voest Alpine Stahl GmbH in Linz. The RM-Gateway uses TCP/IP to communicate to the strip thickness gauge and NetDDE to communicate to the process visualization
system Intouch. The RM-Gateway stores the length and cross profile data of the galvanized steel
strip in the SQL database of the process data archive. The data can be analyzed with the production planning system Sidero. This system has been developed by the company Wuppermann Datenservice GmbH.
The installation of the RM-Gateway has optimized the quality data recording of the galvanizing
line and has reduced manual data inputs.
The basic technologies used in this thesis project are Microsoft. NET Framework, C#.NET,
ADO.NET, Asynchronous Socket Communication, and a special COM component for the
DDE communication.
In future, the technology of the process automation will merge with the information technology.
For this reason methods and systems of the information technology will be intensely applied in
the field of the automation technology.
iv
Dank
Zuerst möchte ich mich bei meinen Eltern bedanken, die mich während meiner Ausbildung und
Studienzeit ständig unterstützt und damit die Basis für diese Arbeit und meine weitere Zukunft
geschaffen haben.
Meiner Frau Bianca und meiner Tochter Lena möchte ich für ihr Verständnis und ihre Geduld
danken, da während der Studienzeit unser Familienleben oft zu kurz gekommen ist.
Ein besonderes Dankeschön auch an die Mitarbeiter der Firma Wuppermann Bandstahl GmbH
und Wuppermann Engineering GmbH, insbesondere den Herrn Siegfried Killinger, Karl
Senegacnik und Wolfgang Nikodim, die diese Arbeit ermöglicht haben.
Weiters möchte ich den Betreuern dieser Arbeit, im Speziellen Herrn Gerwich Emerstorfer von
der Firma TENSOR Industrielle Elektrotechnik GmbH und Herrn Herwig Mayr von Seiten der
FH-Hagenberg einen herzlichen Dank für die Unterstützung und die Ratschläge bei der Erstellung dieser Diplomarbeit aussprechen.
Ebenfalls danke ich allen Mitarbeitern der Fachhochschule Hagenberg. Erst durch ihre Mithilfe
und ihren Einsatz wird die hervorragende Ausbildung an dieser Hochschule ermöglicht. Danken
möchte ich auch allen Studienkollegen für die gute Kameradschaft und die schöne Zeit an der
FH-Hagenberg.
An dieser Stelle möchte ich auch die Gelegenheit wahrnehmen, mich bei all meinen Freunden zu
bedanken, die mir in allen Lebenslagen stets hilfsbereit zur Seite gestanden sind.
Herzlichen Dank,
Johannes
v
Inhaltsverzeichnis
1 Einführung....................................................................................................................... 1
1.1
1.2
1.3
Motivation und Ziel des Projektes RM-Gateway ................................................................... 1
1.1.1
Projektanlass und Problemstellung ................................................................................. 1
1.1.2
Ziel des Projektes............................................................................................................... 1
Das Arbeitsumfeld ...................................................................................................................... 2
1.2.1
Das Unternehmen Wuppermann Bandstahl GmbH ................................................... 2
1.2.2
Das Unternehmen Tensor Industrielle Elektrotechnik GmbH.................................. 3
Kapitelübersicht........................................................................................................................... 3
2 Allgemeine Grundlagen ................................................................................................... 4
2.1
Technologie der Bandbehandlungsanlagen ............................................................................. 4
2.1.1
Aufgaben der Anlagen ...................................................................................................... 4
2.1.2
Grundlegender Aufbau ..................................................................................................... 4
2.1.3
Arten von Bandbehandlungsanlagen .............................................................................. 6
2.1.4
Spezielle Messgeräte in Bandbehandlungsanlagen........................................................ 6
2.2
Die Bandverzinkungsanlage II der Firma Wuppermann ...................................................... 8
2.3
Prozessautomatisierung ............................................................................................................ 10
2.3.1
Grundlagen der Prozessautomatisierung ..................................................................... 10
2.3.2
Entwicklung der Prozessautomatisierung .................................................................... 11
2.3.3
Zukunft der Automatisierungstechnik ......................................................................... 12
2.3.4
Automatisierungskonzepte............................................................................................. 12
2.3.5
Typisches Automatisierungskonzept einer Bandverzinkungsanlage........................ 14
2.3.6
Spezielle Anforderungen in der Stahlindustrie ............................................................ 14
2.4
Prozessvisualisierung ................................................................................................................ 14
2.5
Prozessdaten .............................................................................................................................. 16
2.6
Prozessdatenerfassung.............................................................................................................. 16
2.7
Prozessdatenanalyse.................................................................................................................. 17
3 Anforderungen an das RM-Gateway ..............................................................................18
3.1
Istzustand ................................................................................................................................... 18
3.1.1
Banddickenmessgerät...................................................................................................... 18
vi
3.1.2
Prozessvisualisierungssystem ......................................................................................... 18
3.1.3
Betriebsdatenarchiv ......................................................................................................... 19
3.1.4
Warenwirtschaftssystem ................................................................................................. 19
3.2
Automatisierungsumfeld .......................................................................................................... 19
3.3
Aufgabe des RM-Gateway ....................................................................................................... 19
3.4
Schnittstellen des RM-Gateway............................................................................................... 20
3.5
3.4.1
TCP/IP-Schnittstelle zum Banddickenmessgerät....................................................... 20
3.4.2
NetDDE-Schnittstelle zum Prozessvisualisierungssystem........................................ 23
3.4.3
SQL-Datenbankschnittstelle-Betriebsdatenarchiv...................................................... 23
Funktionen des RM-Gateway.................................................................................................. 24
3.5.1
Erfassung des Längsprofils ............................................................................................ 24
3.5.2
Erfassung des Querprofils.............................................................................................. 24
3.5.3
Parametrierung des Banddickenmessgerätes ............................................................... 24
3.5.4
Datenaustausch mit der Prozessvisualisierung............................................................ 25
3.5.5
Automatischer Verbindungsaufbau .............................................................................. 25
3.5.6
Historische Speicherung der Betriebszustände ........................................................... 25
4 Grundlegende Techniken .............................................................................................. 26
4.1
Microsoft .NET Framework ................................................................................................... 26
4.1.1
4.2
4.3
Datenbankschnittstelle ADO.NET .............................................................................. 27
TCP/IP-Kommunikation ........................................................................................................ 27
4.2.1
Grundlagen ....................................................................................................................... 27
4.2.2
Die Socket-Netzwerkschnittstelle ................................................................................. 28
4.2.3
Asynchrone Socket-Kommunikation mit C# ............................................................. 29
Windows DDE-Kommunikation ........................................................................................... 30
4.3.1
Interprozesskommunikation .......................................................................................... 30
4.3.2
Historische Entwicklung ................................................................................................ 31
4.3.3
Grundlegende Funktionen ............................................................................................. 31
4.3.4
Einsatz von DDE in der Automatisierungstechnik ................................................... 32
4.3.5
DDE-Kommunikation mit C# ..................................................................................... 33
5 Konzeption und Design................................................................................................. 34
5.1
Systemdesign .............................................................................................................................. 34
vii
5.2
5.3
5.1.1
Architektur........................................................................................................................ 34
5.1.2
Schnittstellen .................................................................................................................... 36
5.1.3
Datenhaltung .................................................................................................................... 37
Komponentendesign................................................................................................................. 38
5.2.1
Übersicht........................................................................................................................... 38
5.2.2
Die Klasse ConnectionManager.................................................................................... 39
5.2.3
Die Klasse GaugeInterface............................................................................................. 39
5.2.4
Die Klasse HMIInterface ............................................................................................... 39
Benutzerschnittstellen-Design................................................................................................. 41
5.3.1
Konfigurations- und Diagnosetool ............................................................................... 41
5.3.2
Prozessvisualisierungssystem ......................................................................................... 41
6 Implementierung ........................................................................................................... 44
6.1
Verwendete Entwicklungsumgebung..................................................................................... 44
6.2
Allgemeine Vorgehensweise .................................................................................................... 45
6.3
6.2.1
Auswahl des Betriebssystems für das RM-Gateway................................................... 45
6.2.2
Auswahl der Entwicklungsumgebung und der Programmiersprache...................... 45
6.2.3
Vorgehensmodell für die Entwicklung des RM-Gateway ......................................... 45
Komponentenentwicklung ...................................................................................................... 46
6.3.1
Die Klasse InterfaceManager......................................................................................... 46
6.3.2
Die Klasse UserInterface................................................................................................ 46
6.3.3
Die Klasse ConfigurationManager................................................................................ 46
6.3.4
Die Klasse ConfigFileInterface ..................................................................................... 47
6.3.5
Die Klasse ConnectionManager.................................................................................... 47
6.3.6
Die Klasse GaugeInterface............................................................................................. 47
6.3.7
Die Klasse GaugeRawTelegram .................................................................................... 48
6.3.8
Die Klasse HMIInterface ............................................................................................... 49
6.3.9
Die Klasse DDELib........................................................................................................ 50
6.3.10
Die Klasse DBInterface.................................................................................................. 51
7 Test und Inbetriebnahme.............................................................................................. 53
7.1.1
Das Testen im Umfeld der Prozessautomatisierung .................................................. 53
7.1.2
Die Inbetriebnahme im Umfeld der Prozessautomatisierung .................................. 53
viii
7.2
Integrationstest der Schnittstelle zum Banddickenmessgerät ............................................. 54
7.3
Integrationstest der Schnittstelle zur Prozessvisualisierung................................................ 55
7.4
Integrationstest der Datenbankanbindung ............................................................................ 55
7.5
Inbetriebnahme und Installation............................................................................................. 55
7.6
Erfahrungen ............................................................................................................................... 56
8 Zusammenfassung......................................................................................................... 57
8.1
Erreichte Ziele ........................................................................................................................... 57
8.2
Offene Punkte ........................................................................................................................... 57
8.3
Resümee und Ausblick ............................................................................................................. 57
ix
Abbildungsverzeichnis
Abbildung 1.1: RM-Gateway Schnittstellenübersicht................................................................2
Abbildung 1.2: Die Wuppermann Gruppe (Quelle: [Wuppermann, 2004]) ..............................2
Abbildung 2.1: Typische Bandbehandlungsanlage (Quelle: [VAI, 2004]) ................................5
Abbildung 2.2: Banddickenmessgerät (Quelle: [Volmer, 2004])...............................................7
Abbildung 2.3: Banddickenmessung - Radioaktive Messmethode (Quelle: [Volmer, 2004])...7
Abbildung 2.4: Bandverzinkungsanlage II - Wuppermann Bandstahl (Quelle: [VAI, 2004])...9
Abbildung 2.5: Bandlaufschema der Bandverzinkungsanlage II (Quelle: [VAI, 2004])...........9
Abbildung 2.6: Technischer Prozess - Prozessrechensystem (Quelle: [Bolch, 2004]..............10
Abbildung 2.7: Entwicklung der Prozessautomatisierung (Quelle: [Schröder, 2003])............13
Abbildung 2.8: Typisches Automatisierungskonzept einer Anlage (Quelle: [Bolch, 2004]) ..13
Abbildung 2.9: Automatisierungskonzept einer Verzinkungsanlage (Quelle: [VAI, 2004])...15
Abbildung 2.10: Bedienoberfläche einer Prozessvisualisierung (Quelle [VAI, 2004]) ...........16
Abbildung 3.1: Schnittstellen des RM-Gateway ......................................................................20
Abbildung 4.1: .NET Frameworkarchitektur (Quelle: [Heinzelreiter, 2003]) .........................26
Abbildung 4.2: .Architektur von ADO.NET (Quelle: [Heinzelreiter, 2003]) ..........................27
Abbildung 4.3: Gegenüberstellung TCP/IP-OSI (Quelle: [Plate, 2004a]) ...............................28
Abbildung 4.4: Datenaustausch Client-Server (Quelle: [Plate, 2004b]) ..................................29
Abbildung 4.5: Eigenschaftsdialog der DDE-Freigabe............................................................32
Abbildung 5.1: Architektur der RM-Gateway-Schnittstellensoftware.....................................34
Abbildung 5.2: Betriebsdatenarchiv – relevante Tabellen für das RM-Gateway.....................37
Abbildung 5.3: Übersichts-Klassendiagramm RM-Gateway...................................................38
Abbildung 5.4: Zustandsdiagramm der externen Schnittstellen...............................................39
Abbildung 5.5: Klassendiagramm GaugeInterface ..................................................................40
Abbildung 5.6: Klassendiagramm HMIInterface .....................................................................40
Abbildung 5.7: Benutzerschnittstelle Konfigurationstool ........................................................41
Abbildung 5.8: Benutzerschnittstelle Diagnosetool: General ..................................................42
Abbildung 5.9: Benutzerschnittstelle Diagnosetool: Log.........................................................42
Abbildung 5.10: Benutzerschnittstelle des Banddickenmessgerätes........................................43
Abbildung 5.11: Benutzerschnittstelle des Banddickenmessgerätes: Trend ............................43
x
Abbildung 6.1: RM-Gateway: Integrierte Test- und Entwicklungsumgebung ........................44
Abbildung 7.1: Testsoftware für TCP/IP-Schnittstelle Banddickenmessgerät ........................54
xi
Tabellenverzeichnis
Tabelle 2.1: Beispiele für Hersteller von Prozessvisualisierungssystemen..............................15
Tabelle 3.1: Daten des Banddickenmessgerätes.......................................................................18
Tabelle 3.2: Daten des Prozessvisualisierungssystems ............................................................19
Tabelle 3.3: Aufbau der Telegramme.......................................................................................21
Tabelle 3.4: Telegrammtypen...................................................................................................22
Tabelle 3.5: DDE-Daten an RM-Gateway ...............................................................................22
Tabelle 3.6: DDE-Daten von RM-Gateway .............................................................................22
Tabelle 3.7: DDE-Daten bidirektional......................................................................................23
Tabelle 4.1: Asynchrone .NET Socket-Methoden....................................................................30
1 Einführung
1
1.1
1.1.1
1
Einführung
Motivation und Ziel des Projektes RM-Gateway
Projektanlass und Problemstellung
Die Firma Wuppermann Bandstahl GmbH betreibt in Linz eine Bandverzinkungsanlage und
stellt mit dieser Anlage verzinktes Stahlband her. Die Anlage befindet sich im Gelände der Voest
Alpine Stahl GmbH.
In dieser Anlage ist ein radiometrisches Banddickenmessgerät installiert, welches kontinuierlich
das Längs- und Querprofil der Banddicke des produzierten verzinkten Stahlbandes misst. Diese
Messdaten können nicht automatisiert im Betriebsdatenerfassungssystem archiviert werden, da
die proprietäre TCP/IP-Schnittstelle des Banddickenmessgeräts nicht in die Automatisierungsstruktur der Anlage eingebunden ist. Die Bedienung und Parametrierung des Banddickenmessgerätes erfolgt manuell.
1.1.2
Ziel des Projektes
Ziel des Projektes war es, das Banddickenmessgerät in die Automatisierungs- und IT-Struktur der
Anlage einzubinden. Damit wurde die Qualitätsdatenaufzeichnung der Anlage optimiert und aus
der Analyse dieser Daten eine Verbesserung der Prozessführung ermöglicht.
Für diese Aufgabe war es notwendig eine spezielle Schnittstellensoftware, die als RM-Gateway
bezeichnet wird, zu entwickeln. Das RM-Gateway kommuniziert mit dem Banddickenmessgerät
über die vorhandene TCP/IP-Schnittstelle und berechnet aus den Messwerten statistische Daten,
die in der Datenbank des Betriebsdatenerfassungssystems gespeichert werden (siehe Abbildung
1.1).
Weiters besitzt das RM-Gateway eine NetDDE-Schnittstelle zur Kommunikation mit dem vorhandenen Prozessvisualisierungssystem. Über diese Schnittstelle werden aktuelle Messwerte, Sollwerte, Parameter und Befehle übertragen. Mit diesen Daten können die aktuellen Messwerte des
Banddickenmessgerätes den richtigen Produktdaten zugeordnet werden. Zusätzlich besteht die
Möglichkeit der automatischen Parametrierung des Banddickenmessgerätes.
Mit dieser Schnittstellensoftware ist es auch möglich, den aktuellen Zustand des Banddickenmessgerätes im Prozessvisualisierungssystem der Anlage zu visualisieren und das Messgerät im
Anlagenleitstand zu bedienen.
1 Einführung
2
Messrahmen
Stahlband
Prozessvisualisierung
(Intouch 7.1)
Prozessdaten
Setupdaten
Istwerte
Banddickemessgerät
(M100 Radiometrie)
Istwerte
Setupdaten
Produktdaten
Betriebsdatenarchiv
(MS SQL Server)
RM-Gateway-Schnittstellenrechner
mit Schnittstellensoftware
Abbildung 1.1: RM-Gateway Schnittstellenübersicht
1.2
1.2.1
Das Arbeitsumfeld
Das Unternehmen Wuppermann Bandstahl GmbH
Das Unternehmen Wuppermann Bandstahl GmbH ist Teil der Wuppermann Gruppe. Diese
wird geleitet und verwaltet von der Wuppermann AG als Unternehmensholding. Produktion und
Vertrieb erfolgen durch zehn rechtlich selbstständige Unternehmen (vgl. Abbildung 1.2). In den
drei Geschäftsbereichen Stahlflachprodukte, Technische Produkte sowie Engineering und Beratung wird eine breite Palette von Erzeugnissen und Leistungen auf der Basis von Stahl für viele
Branchen angeboten. Mit Produktionsstandorten in Europa sowie Vertriebsstützpunkten in Europa und den USA folgt Wuppermann seinen Kunden im stetig wachsenden Weltmarkt (vgl.
[Wuppermann, 2004]).
Abbildung 1.2: Die Wuppermann Gruppe (Quelle: [Wuppermann, 2004])
1 Einführung
1.2.2
3
Das Unternehmen Tensor Industrielle Elektrotechnik GmbH
Die Forderung nach immer besseren Qualitätssicherungsmaßnahmen, besonders seitens der Automobilindustrie, bedarf einer lückenlosen Archivierung der Produkt- und Betriebsdaten der Anlagen, welche durch dieses Projekt verbessert werden konnten. Als Projektpartner wurde das
Technische Büro Tensor Industrielle Elektrotechnik gewählt, das bereits seit langer Zeit mit der Firma
Wuppermann bei der Optimierung und Weiterentwicklung ihrer Produktionsanlagen zusammenarbeitet und auch diese Diplomarbeit betreute.
Die Firma Tensor beschäftigt sich seit mehr als 10 Jahren mit der Automatisierungs- und Prozessleittechnik im Bereich der Stahl- und Aluminiumindustrie. Hauptschwerpunkte sind die
Softwareentwicklung für Systeme der Antriebstechnik, Industrielle Regelungstechnik, Steuerungstechnik und Prozessleittechnik sowie das Engineering und Projektmanagement (vgl. [Tensor,
2004]).
1.3
Kapitelübersicht
Kapitel 1 gibt dem Leser einen kurzen Einblick in das Ziel und die Motivation des Projektes RMGateway. Weiters werden die am Projekt beteiligten Unternehmen vorgestellt.
Kapitel 2 beinhaltet Allgemeines zum Thema Bandbehandlung, Prozessautomatisierung und Prozessdatenanalyse. In diesem Zusammenhang werden wichtige Begriffe näher erläutert.
Kapitel 3 behandelt den Istzustand, die Ziele sowie die gestellten Anforderungen an das RMGateway. Weiters werden die Schnittstellen der Software detailliert spezifiziert.
Kapitel 4 vermittelt die Grundlagen der bei diesem Projekt eingesetzten Technologien im Bereich
der Softwareentwicklung. Hierzu zählen TCP/IP-Kommunikation und DDE-Kommunikation.
Kapitel 5 setzt sich mit dem Design und dem Konzept der erstellten Schnittstellensoftware auseinander. Klassendiagramme geben Einblick in das Design des Systems, die Realisierung der Benutzerschnittstellen wird ebenfalls gezeigt.
Kapitel 6 beschäftigt sich mit der Implementierung der entwickelten Software. Es werden allgemeine Punkte zur Realisierung behandelt und implementierungsspezifische Besonderheiten vorgestellt.
Kapitel 7 beinhaltet Erkenntnisse und Erfahrungen mit dem Test und der Inbetriebnahme der
Software und behandelt dabei die Besonderheiten in der Stahlindustrie.
Kapitel 8 stellt erreichte Ziele und ungelöste Probleme gegenüber. Hier wird auf den Stand der
Entwicklung und auf zukünftige Erweiterungen eingegangen.
2 Allgemeine Grundlagen
2
4
Allgemeine Grundlagen
2.1
Technologie der Bandbehandlungsanlagen
2.1.1
Aufgaben der Anlagen
Bandbehandlungsanlagen (engl. Strip Processing Lines) dienen dazu, warm oder kalt gewalztes Stahlband (engl. Strip) weiter zu verarbeiten, indem es gebeizt, geglüht, verzinkt oder beschichtet wird.
Das Vormaterial kommt normalerweise in Form von Blechrollen (engl. Coils) zu den Anlagen.
2.1.2
Grundlegender Aufbau
Der Transport des Bandes in den Anlagen erfolgt mittels speziell angeordneter, angetriebener
Rollen die als S-Block bezeichnet werden. Dazu kommen eine meist hohe Anzahl an Umlenk- und
Unterstützungsrollen. Für das Auf- und Abwickeln des Stahlbandes werden angetriebene Dorne,
die als Haspeln bezeichnet werden, verwendet. Das gesamte Band in der Anlage steht unter Spannung, dem so genannten Bandzug.
Bandbehandlungsanlagen werden in folgende grundlegende Abschnitte unterteilt:
•
Einlauf (engl. Entry Section),
•
Einlaufspeicher (engl. Entry Looper),
•
Prozessteil (engl. Process Section),
•
Auslaufspeicher (engl. Exit Looper),
•
Auslauf (engl. Exit Section).
Im Einlaufteil einer Anlage werden die Coils abgewickelt, das Band durchläuft den Prozessteil und
verlässt nach dem Aufhaspeln im Auslaufteil die Anlage wieder in Form von Coils. Der Prozessteil der Anlagen wird kontinuierlich betrieben und ist durch Bandspeicher vom Einlauf und Auslaufteil der Anlagen entkoppelt.
Ist im Einlauf ein Coil vollständig abgewickelt, stoppt der Einlauf und wechselt auf einen neuen
Coil. Dabei wird das Band des alten Coils mit dem Band des neuen Coils verschweißt. Während
dieser Zeit wird der Prozessteil vom Einlaufspeicher versorgt. Nachdem der Einlauf wieder gestartet hat, transportiert er das Band schneller in den Einlaufspeicher als der Prozessteil das Band
entnimmt. Dadurch wird der Speicher gefüllt. Der Auslaufspeicher hat im Prinzip die gleiche
Aufgabe wie der Einlaufspeicher. Im Auslauf werden die Coils aufgewickelt. Nachdem ein Coil
die erforderliche Bandlänge erreicht hat, stoppt der Auslauf und startet nach dem Abziehen des
Bundes vom Aufhaspel erneut.
2 Allgemeine Grundlagen
5
Der Prozessteil der Anlagen unterscheidet sich nach der Behandlungsart des Bandes. Weiters
befinden sich noch spezielle Maschinen und Aggregate in der Anlage, die das Band beispielsweise
reinigen, erwärmen, kühlen oder walzen.
In Abbildung 2.1 ist schematisch die Feuerverzinkungsanlage 3 der Voest Alpine Stahl GmbH
dargestellt: Im Einlaufbereich (engl. Entry Section) der Anlage wird das Stahlband alternierend von
zwei Abhaspeln abgewickelt und mit einer automatischen Schweißmaschine (engl. Welder) verschweißt. Dann durchläuft das Band den Reinigungsbereich (engl. Cleaning) in dem die Oberfläche gereinigt wird. Es folgt der Einlaufspeicher (engl. Entry Looper) bei dem es sich bei der Beispielanlage um einen vertikalen Schlingenspeicher handelt. Im Ofen (engl. Furnace) wird das Band
auf ca. 500 - 800ºC mit Gasbrennern und elektrischer Induktionserwärmung erhitzt. Im Ofen
befindet sich eine Schutzatmosphäre aus Stickstoff und Wasserstoff damit das Band bei den hohen Temperaturen nicht oxidiert. Direkt vom Ofen gelangt es in den Beschichtungsteil (engl.
Coating Section). Dort durchläuft es den Zinkpot, der mit flüssigem Zink gefüllt ist. Auf der Oberfläche des Bandes bildet hat sich dadurch eine Zinkschicht die mit Lüftdüsen auf die geforderte
Schichtdicke reduziert wird. Nun wird das Band im Kühlturm (engl. Cooling Tower) abgekühlt.
Dann durchläuft es das Dressiergerüst (engl. Skin Pass Mill) und den Streckrichter (engl. Tension
Leveller) in denen die Oberfläche und die mechanischen Eigenschaften des Bandes verbessert
werden. In der Chromatierung (engl. Chromating) wird das Band mittels einer Chrom-Lösung vollständig vor Oxidation geschützt. Nach dem Auslaufspeicher (engl. Exit Looper) wird das Band im
Auslaufbereich (engl. Exit Section) abwechselnd von zwei Aufhaspeln aufgewickelt.
Abbildung 2.1: Typische Bandbehandlungsanlage (Quelle: [VAI, 2004])
2 Allgemeine Grundlagen
2.1.3
6
Arten von Bandbehandlungsanlagen
Im folgenden Abschnitt werden wichtige Arten von kontinuierlichen Bandbehandlungsanlagen
kurz erklärt. Diese verschiedenen Anlagen werden bei Bedarf auch zu einer Gesamtanlage kombiniert und verarbeiten je nach Anlagentyp zwischen 200.000 – 2,000.000 Tonnen Stahlblech pro
Jahr.
Beizanlagen (engl. Continuous Pickling Lines)
In Beizanlangen wird warm gewalztes Stahlband mechanisch und mit Säuren von der Oxydschicht auf der Oberfläche (Zunder) befreit.
Verzinkungsanlagen (engl. Hot Dip Galvanizing Lines)
Verzinkungsanlagen dienen zum Beschichten von Stahlbändern mit Zink. Die Beschichtung erfolgt entweder mittels flüssigen Zinks oder durch elektrische Galvanisierung.
Bandbeschichtungsanlagen (engl. Colour Coating Lines)
Mit diesen Anlagen wird das Stahlband gereinigt, grundiert und lackiert.
Glühanlagen (engl. Continuous Annealing Lines)
Kontinuierliche Glühlinien dienen zum Glühen des Stahlbandes nach dem Kaltwalzen um die
mechanischen Eigenschaften des Bandes zu verändern.
2.1.4
Spezielle Messgeräte in Bandbehandlungsanlagen
Für die Stahlindustrie wurde eine Vielzahl von speziellen Messgeräten entwickelt um den Herstellungsprozess kontrollieren und analysieren zu können. Für besondere Einsatzfälle sind diese Geräte auch geeignet, in sehr rauer Umgebung oder bei sehr hohen Temperaturen zu arbeiten.
Folgende spezielle Messgeräte werden typischerweise in Bandbehandlungsanlagen eingesetzt:
Schichtdickenmessgeräte
Schichtdickenmessgeräte messen die Zink- oder Lackschichtdicke der Beschichtung von Stahlband. Das in der Stahlindustrie eingesetzte Messprinzip basiert auf radioaktiver Strahlung.
Banddickenmessgeräte
Diese Messgeräte messen, meist mittels einer radioaktiven Messmethode, die Banddicke kontinuierlich in der laufenden Anlage. In Abbildung 2.2 ist ein für Bandbehandlungsanlagen typischer
Messrahmen eines Banddickenmessgeräts dargestellt.
2 Allgemeine Grundlagen
7
Abbildung 2.2: Banddickenmessgerät (Quelle: [Volmer, 2004])
Da bei dem Projekt RM-Gateway ein Banddickenmessgerät als Kommunikationspartner vorhanden ist, wird nun kurz auf die verwendete radioaktive Messmethoden eingegangen.
Wie in Abbildung 2.3 dargestellt, wird unter dem Stahlband eine radioaktive Strahlungsquelle
(engl. Radiation Source) angebracht, die das Stahlband durchstrahlt. Das Stahlband absorbiert einen
Teil der radioaktiven Strahlung. Auf der Oberseite des Bandes befindet sich ein Strahlungsmessgerät (engl. Detector), das die eintreffende radioaktive Strahlung misst. Aus der Intensität der gemessenen Strahlung wird die Banddicke berechnet (vgl. [Volmer, 2004]).
Abbildung 2.3: Banddickenmessung - Radioaktive Messmethode (Quelle: [Volmer, 2004])
Abgesehen von der sehr robusten radioaktiven Messmethode kommen bei verschiedenen Anwendungen auch Messprinzipien wie die Laser-Dickenmessung (siehe [Tensor, 2004]) oder die
Banddickenmessung mit elektrischen Wirbelströmen (siehe [ABB, 2004]) zum Einsatz.
2 Allgemeine Grundlagen
8
Planheitsmessrollen
Mit Planheitsmessrollen kann die Spannungsverteilung des Stahlbandes in Querrichtung (Planheit)
kontinuierlich während des Produktionsprozesses gemessen werden.
Bandbreitenmessgeräte
Bandbreitenmessgeräte messen die Bandbreite des Stahlbandes in der laufenden Anlage. Es werden Laserscanner oder CCD-Zeilenkameras eingesetzt, die die Bandbreite unabhängig von der
Bandlage erfassen.
Bandlagemessgeräte
Bei Bandbehandlungsanlagen wird das Band mittels Lenkrollen und Bandlaufregelungen mittig in der
Anlage gehalten. Zur Erfassung der aktuellen Bandlage werden induktive, kapazitive oder optische Bandlagemessgeräte eingesetzt.
Bandzugmessgeräte
Für den Transport des Bandes in der Anlage ist ein definierter Bandzug zwischen den Rollen
erforderlich. Der Bandzug wird von angetrieben Rollen, die das Band transportieren, aufgebracht
und geregelt. Zur Messung des genauen Bandzuges werden Bandzugmessgeräte eingesetzt, die
meist mit Hilfe von Dehnungsmessstreifen die Messung des Bandzuges durchführen.
Temperaturmessgeräte
Diese Messgeräte messen die Temperatur des Bandes, in vielen Anwendungsfällen auch im Inneren von Öfen. Es werden Strahlungspyrometer eingesetzt, die mit Hilfe der Wellenlänge der emittierten Infrarotstrahlung des Stahlbandes die Temperatur berechnen.
2.2
Die Bandverzinkungsanlage II der Firma Wuppermann
Bei der in Abbildung 2.4 dargestellten Bandverzinkungsanlage II der Firma Wuppermann Bandstahl GmbH handelt es sich um eine spezielle Art einer Verzinkungsanlage. Üblicherweise verarbeiten Verzinkungsanlagen kalt gewalztes Stahlband. In dieser Anlage wird warm gewalztes, längs
geteiltes Stahlband verarbeitet. Damit kann in der Produktionskette das Kaltwalzen und Glühen
des Bandes entfallen. Eine weitere Besonderheit ist die Möglichkeit der Produktion von schmäleren Bändern deren Bandkanten auch verzinkt und damit korrosionsgeschützt sind.
Im Gegensatz zu den mit Gasbrennern beheizten Öfen erfolgt bei dieser Anlage die Erwärmung
des Bandes induktiv in einem sehr kompakten Ofen mit leistungsfähigen wassergekühlten Induktionsspulen. Damit kann der Dimensionswechsel des produzierten Stahlbandes sehr flexibel erfolgen, da die abgegebene Heizleistung bei der induktiven Erwärmung wesentlich rascher verändert werden kann als bei gasbeheizten Öfen.
2 Allgemeine Grundlagen
9
Abbildung 2.4: Bandverzinkungsanlage II - Wuppermann Bandstahl (Quelle: [VAI, 2004])
In Abbildung 2.5 ist das Bandlaufschema der Bandverzinkungsanlage II der Firma Wuppermann
dargestellt (vgl. Abbildung 2.1). Im Einlaufbereich (engl. Entry Section) der Anlage wird das Stahlband mit einem Abhaspel abgewickelt. Es folgt der Einlaufspeicher, der bei dieser Anlage als
Spiralspeicher (engl. Spiral Accumulator) ausgeführt ist.
Abbildung 2.5: Bandlaufschema der Bandverzinkungsanlage II (Quelle: [VAI, 2004])
2 Allgemeine Grundlagen
10
Die Vorteile des Spiralspeichers liegen in den geringen Abmessungen, der hohen Bandkapazität
und der besonderen Eignung für schmälere Bänder. Nach dem Speicher gelangt das Band in den
Reinigungs- bzw. Beizteil (engl. Pickling). Das Band wird danach im Ofen mittels elektrischer Induktionserwärmung (engl. Induction Heating) erhitzt und durchläuft dann den Zinkpot (engl. Zinc
Pot). Auf der Oberfläche des Bandes bildet sich eine Zinkschicht, die mit Lüftdüsen (engl. Air
Knife) auf die geforderte Zinkschichtdicke reduziert wird. Nun wird das Band mit Luftkühlung
(engl. Air Cooling) und in einem Wasserbecken (engl. Water Quench) abgekühlt. Dann durchläuft es
den Streckrichter (engl. Tension Leveller) und gelangt nach einer chemischen Passivierung (engl.
Passivation) in den horizontalen Auslaufspeicher (engl. Hoziontal Looper). Im Auslaufbereich (engl.
Exit/Delivery Section) wird das Band bei Bedarf geölt und von einem Aufhaspel aufgewickelt.
2.3
2.3.1
Prozessautomatisierung
Grundlagen der Prozessautomatisierung
Prozessautomatisierung ist jenes Teilgebiet der Informatik, das sich mit dem Einsatz von Rechensystemen für das Messen, Überwachen, Steuern, Regeln und auch Optimieren technischer Prozesse
befasst. Wie in Abbildung 2.6 dargestellt, ist die Hauptaufgabe der Prozessautomatisierung aus
Kenntnis der Istwerte von Messgrößen und vorgegebener Sollwerte auf Stellgeräte so einzuwirken und etwaiges Bedienpersonal so über Betriebszustände zu informieren, dass der technische
Prozess in der gewünschten Weise abläuft (vgl. [Bolch, 2004]).
Abbildung 2.6: Technischer Prozess - Prozessrechensystem (Quelle: [Bolch, 2004]
Ein technischer Prozess ist ein Prozess, dessen Zustandsgrößen mit technischen Mitteln gemessen,
gesteuert und geregelt werden können (vgl. [DIN, 1981]). Um die Automatisierung eines techni-
2 Allgemeine Grundlagen
11
schen Prozesses durchführen zu können, werden seine Ausgangsgrößen durch Sensoren (Messgrößen) gemessen und seine Eingangsgrößen mittels Aktoren (Stellgrößen) beeinflusst.
Ein Prozessrechensystem ist eine Datenverarbeitungsanlage, die direkt mit dem technischen Prozess
gekoppelt ist und die Steuerungs- und Regelungsaufgaben in Abhängigkeit der Messgrößen, den
Vorgaben des Bedienpersonals und den Vorgaben von anderen Rechensystemen durchführt.
Störungen können den Zustand eines Prozesses beeinflussen und werden im Normalfall vom Prozessrechensystem kompensiert (siehe Abbildung 2.6).
Bei einfacheren Anlagen werden als Prozessrechensysteme meistens Speicherprogrammierbare Steuerung (SPS), im englischen als Programmable Logic Controller (PLC) bezeichnet, eingesetzt. Dabei
handelt es sich um spezielle programmierbare Mikrorechner, die Automatisierungsaufgaben ausführen.
Die Prozessautomatisierung umfasst folgende Aufgaben:
•
Datenerfassung (Messwerte werden erfasst),
•
Auswertung der erfassten Messwerte,
•
Steuerung,
•
Regelung,
•
Überwachung (Protokolle, Störungen),
•
Führung (Eingriff in den Prozess, damit er in der gewünschten Weise abläuft),
•
Optimierung (Eingriff in den Prozess, damit er in optimaler Weise abläuft).
Nach [Bolch, 2004] wird die Prozessautomatisierung in folgende zwei Gruppen unterteilt:
1. Produktautomatisierung: Prozessautomatisierungssysteme, bei denen der technische Prozess in
einem Gerät oder einer einzelnen Maschine, meist zur Produktion von hohen Stückzahlen, abläuft.
2. Anlagenautomatisierung: Prozessautomatisierungssysteme, bei denen der technische Prozess aus
einzelnen Teilvorgängen (Teilprozessen) besteht, die auf größeren, zum Teil auch räumlich ausgedehnten technischen Anlagen ablaufen.
2.3.2
Entwicklung der Prozessautomatisierung
Die Entwicklung der Prozessautomatisierung wird in acht Stufen unterteilt (vgl. [Wilson, 1999],
[Bolch und Vollath, 1993]):
•
bis 1940: keine Automatisierung (die Betätigung der Stellorgane erfolgt per Hand),
•
1940-1950: Vorstufe der Automatisierung (einfacher Leitstand, mechanische Bedienung),
•
1950-1960: erste Stufe der Automatisierung (fernbedienbare Stellglieder und Messfühler),
•
1950-1960: zweite Stufe der Automatisierung (Regler werden eingeführt),
2 Allgemeine Grundlagen
•
1950-1960: dritte Stufe der Automatisierung (Einführung modularer Hardwarebausteine),
•
1950-1960: vierte Stufe der Automatisierung (Verknüpfung der modularen Bausteine),
•
ab 1960: fünfte Stufe der Automatisierung (Prozessrechner),
•
ab 1975: sechste Stufe der Automatisierung (Mikrorechner, SPS),
•
ab 1980: siebte Stufe der Automatisierung (Vernetzung der Mikrorechner, Bussysteme),
•
ab 1990: achte Stufe der Automatisierung (Embedded Systems, Ubiquitous Computing).
12
Die Vorläufer der heutigen Steuerungen waren Steuerungen, die aus den herkömmlichen Schützsteuerungen entstanden sind. Das erste Konzept einer SPS wurde 1968 von einer IngenieurGruppe der Hydromatik-Abteilung bei General Motors konzipiert (vgl. [Wilson, 1999]). Ihre Anwendung beschränkte sich anfangs auf großtechnische Anlagen wie Walzwerke, komplexe Förderanlagen oder chemische und petrochemische Produktionsprozesse. In der Folge wurden zunehmend kleinere Steuereinheiten angeboten, deren Einsatz auch für einfachere Maschinen technische und wirtschaftliche Vorteile brachte.
Ursprünglich noch in konventioneller Halbleiter-Technologie aufgebaut, führte der wachsende
Einsatz von Mikroprozessoren zum Durchbruch der SPS auf allen Gebieten der Automatisierungstechnik. Die Systeme wurden flexibler, leistungsfähiger, kostengünstiger und konnten somit
mehr und mehr die konventionellen Steuerungen der Relais- und Schütztechnik verdrängen.
2.3.3
Zukunft der Automatisierungstechnik
Auf Grund der kostengünstigen Computer- und Kommunikationshardware sowie der Möglichkeit der offenen Kommunikation werden die Automatisierungstechnik und Informationstechnologie immer weiter verschmelzen und Methoden wie beispielsweise Mobile-Computing, Webbasierte Systeme, Data-Warehouse, Data-Mining verstärkt in der Automatisierungstechnik eingesetzt.
In Zukunft wird Software eine zentrale Stelle in der Automatisierungstechnik übernehmen. Auch
die Forderung nach ausgereiften Manufacturing-Execution-Systems (MES), die das Interface zwischen
der Produktion und dem Management bilden, wird die Innovation in der Automatisierungstechnik vorantreiben (vgl. [Schröder, 2003]).
Die Prozessautomatisierung stellt einen wichtigen Wachstumsmarkt dar. Ein Überblick über den
prognostizierten Umsatz der Branche im Jahr 2010 ist in Abbildung 2.7 dargestellt.
2.3.4
Automatisierungskonzepte
Ein Automatisierungskonzept definiert, wie ein Prozessrechensystem aufgebaut ist, um damit
einen konkreten technischen Prozess zu kontrollieren
2 Allgemeine Grundlagen
13
Abbildung 2.7: Entwicklung der Prozessautomatisierung (Quelle: [Schröder, 2003])
Dabei wird das Prozessrechensystem in drei Kommunikationsebenen aufgeteilt (siehe Abbildung
2.8):
•
Ebene 1 - Feldebene: Prozessnahe Feldbussystem (Kommunikation SPS-Sensoren, -Aktoren),
•
Ebene 2 - Prozessebene: Anlagenbus (Kommunikation SPS-SPS, SPS-PC, SPS-Leitrechner),
•
Ebene 3 - Betriebsebene: Fabrikbus (Kommunikation Leitrechner-Produktionsplanung).
Abbildung 2.8: Typisches Automatisierungskonzept einer Anlage (Quelle: [Bolch, 2004])
In diesem Zusammenhang wird auch von Level 1-3 der Automation gesprochen:
2 Allgemeine Grundlagen
•
Level 1 Automation: Automatisierung auf SPS Ebene (Steuerung, Regelung),
•
Level 2 Automation: Prozessvisualisierung (Beobachten, Bedienen, Protokollieren),
•
Level 3 Automation: Produktionsplanungssysteme (Statistik, komplexe Modelle).
2.3.5
14
Typisches Automatisierungskonzept einer Bandverzinkungsanlage
Das Automatisierungskonzept einer größeren Anlage stellt ein verteiltes System dar, das aus verschiedenen, mit unterschiedlichen Bussystemen vernetzten Teilsystemen und Komponenten besteht.
In Abbildung 2.9 ist das vereinfache Automatisierungskonzept einer Feuerverzinkungsanlage
dargestellt. In der unteren Ebene befinden sich die Automationssysteme, Antriebssystem und
Feldbuskomponenten. In der oberen Ebene sieht man die Prozessvisualisierungs- und Produktionsplanungssysteme sowie die Engineering Stationen, die für die Instandhaltung und Programmierung der Anlagen verwendet werden. Die Vernetzung der einzelnen Komponenten erfolgt mit
Ethernet TCP/IP sowie mit speziellen Feldbus-Systemen wie dem Profibus [Profibus, 2004]. Auf
Grund der großen zu überbrückenden Entfernungen erfolgt die Übertragung der Daten auch mit
Lichtwellenleiter.
2.3.6
Spezielle Anforderungen in der Stahlindustrie
Bei Prozessen in der Stahlindustrie handelt es sich meist um sicherheitsrelevante technische Prozesse.
Automationssysteme in der Stahlindustrie haben spezielle Anforderungen in Bezug auf Verfügbarkeit, Sicherheit, Ausfallsicherheit und Geschwindigkeit, da die kontrollierten technischen Prozesse technologische Gefahren beinhalten. Das Automationssystem muss so konzipiert sein, dass
der Prozess mit hoher Wahrscheinlichkeit auch bei Störungen und Systemausfällen in einem sicheren Zustand bleibt oder übergeführt werden kann. Ansonsten kann eine Gefährdung von
Menschen und Umwelt oder die Zerstörung der Anlagen die Folge sein.
Für diese Anforderungen kommen spezielle Konzepte zum Einsatz, die auf redundanter Hardware
und Software basieren und in der Lage sind, Störungen von Teilsystemen zu egalisieren.
2.4
Prozessvisualisierung
Prozessvisualisierungssysteme, auch als Human-Machine-Interface (HMI) bezeichnet, bilden die
Schnittstelle zwischen dem Automatisierungssystem und dem Bedienpersonal. In Abbildung 2.10
ist eine typische Bedienoberfläche eines Prozessvisualisierungssystems für eine Bandverzinkungsanlage dargestellt.
2 Allgemeine Grundlagen
15
Abbildung 2.9: Automatisierungskonzept einer Verzinkungsanlage (Quelle: [VAI, 2004])
Moderne Prozessvisualisierungssysteme arbeiten auf einem Standard-PC mit einer speziellen Visualisierungssoftware. Für die Kommunikation mit den SPS-Systemen hat sich TCP/IP durchgesetzt. In Tabelle 2.1 sind einige Beispiele für Hersteller von Prozessvisualisierungssystemen aufgelistet.
Produkt
Hersteller
Verweis
Intouch
Wonderware
[Wonderware, 2004]
Factory Link
Technomatrix
[Technomatrix, 2004]
zenON
Copa-Data
[Copadata, 2004]
WinCC
Siemens
[Siemens, 2004]
Tabelle 2.1: Beispiele für Hersteller von Prozessvisualisierungssystemen
2 Allgemeine Grundlagen
16
Abbildung 2.10: Bedienoberfläche einer Prozessvisualisierung (Quelle [VAI, 2004])
2.5
Prozessdaten
Prozessdaten sind während der Produktion anfallende physikalische, gemessene Istwerte.
Es erfolgt eine Unterscheidung in:
•
direkt am Produkt gemessene Größen, so genannte Produktdaten (nach Produktionsende
noch am Produkt messbar),
•
der Produktionsanlage zugeordnete Daten, d.h. allgemein im Prozess anfallende Daten, die
nicht direkt einem Produkt zugeordnet werden können.
2.6
Prozessdatenerfassung
Bei der Prozessdatenerfassung werden die Soll- und Istwerte eines technischen Prozesses sowie
die Daten des Automatisierungssystems in einer Datenbank gespeichert. Für diese Aufgabe ist
eine Schnittstelle zum Automatisierungssystem der Anlage erforderlich.
2 Allgemeine Grundlagen
17
Auch Prozessvisualisierungssysteme wie in Tabelle 2.1 angeführt, können für diese Aufgaben
eingesetzt werden, da die Systeme bereits Schnittstellen zu Automatisierungssystemen besitzen
und zusätzlich die Möglichkeit bereitstellen, Daten zyklisch oder ereignisgesteuert in einer SQLDatenbank zu speichern.
2.7
Prozessdatenanalyse
Die Prozessdatenanalyse beschäftigt sich mit der Analyse der historischen Prozessdaten, die mittels Prozessdatenerfassung (siehe Kapitel 2.6 ) in einer Datenbank archiviert wurden.
Ziel ist es, einerseits qualitätsrelevante Daten für einen späteren Nachweis strukturiert zu speichern und andererseits aus der Analyse der Daten Erkenntnisse zu gewinnen, mit denen der Betrieb der Anlagen optimiert werden kann (Beispiele: vorbeugende Wartung der Anlage, Schwachstellenanalyse). Als Werkzeug wird unter anderem Data-Mining verwendet.
3 Anforderungen an das RM-Gateway
3
18
Anforderungen an das RM-Gateway
3.1
Istzustand
3.1.1
Banddickenmessgerät
Das in der Bandverzinkungsanlage installierte radiometrische Banddickenmessgerät besitzt eine
eingeschränkte Schnittstelle zum Prozessleitsystem bzw. Automatisierungssystem der Anlage.
Dabei werden folgende digitale Signale ausgetauscht:
•
der Längenimpuls, aus dem die Bandlänge und die Bandgeschwindigkeit abgeleitet werden
und
•
die Signalisierung des Bandwechsels (Schweißnaht).
Abgesehen von diesen digitalen Signalen ist der Betrieb des Gerätes autonom. Die aktuellen
Banddaten werden manuell über die Bedienkonsole des Banddickenmessgerätes eingegeben und
die qualitätsrelevanten Daten werden über einen Drucker, der direkt mit dem Banddickenmessgerät verbunden ist, ausgedruckt.
Bei dem Messgerät ist eine Ethernet TCP/IP-Schnittstelle für den Datenaustausch vorgesehen.
Die Schnittstelle wird aber derzeit nicht verwendet. Über diese Schnittstelle sollen in Zukunft
Setupdaten, Sollwerte, Istwerte und Befehle mit dem Gerät ausgetauscht werden. Das proprietäre
TCP/IP-Kommunikationsprotokoll ist vom Hersteller ausführlich dokumentiert. Die Details der
Kommunikation sind in [Radiometrie, 1999] spezifiziert.
Der Hersteller des Banddickenmessgerätes hat keine Softwarekomponente für die beschriebenen
Kommunikationsaufgaben im Lieferumfang, die in eine gängige Programmiersprache eingebunden werden kann. Allgemeine Daten des Banddickenmessgerätes sind in Tabelle 3.1 zusammengestellt.
Hersteller
Radiometrie Erlangen
Type
Dicken- und Flächenmess-System M100
Baujahr
1999
Tabelle 3.1: Daten des Banddickenmessgerätes
3.1.2
Prozessvisualisierungssystem
Das in der Anlage eingesetzte Prozessvisualisierungssystem wird für die Visualisierung, Bedienung und Diagnose der gesamten Bandverzinkungsanlage verwendet. Das System kommuniziert
3 Anforderungen an das RM-Gateway
19
mit dem Automatisierungssystem der Anlage (Reliance-Automax), mit dem Betriebsdatenarchiv
und mit dem Warenwirtschaftssystem (Sidero). Allgemeine Daten des Prozessvisualisierungssystems sind in Tabelle 3.2 zusammengestellt.
Hersteller
Wonderware
Type
Intouch Version 7.1
Tabelle 3.2: Daten des Prozessvisualisierungssystems
3.1.3
Betriebsdatenarchiv
Für die Produktionsdatenerfassung ist eine Microsoft SQL-Datenbank installiert. Vom Prozessvisualisierungssystem und vom RM-Gateway werden in dieser Datenbank die aktuellen Produktionsdaten archiviert.
3.1.4
Warenwirtschaftssystem
Das Warenwirtschafts- und Produktionsplanungssystem Sidero, bei dem es sich um eine Eigenentwicklung der Wuppermann Datenservice GmbH handelt, verwaltet alle produktionsrelevanten
Daten und stellt den Produktionsanlagen Sollwerte zur Verfügung. Eine weitere Aufgabe ist die
Verwaltung, Analyse und Präsentation der Produktionsdaten.
3.2
Automatisierungsumfeld
Das Automatisierungs- und Antriebssystem der Anlage basiert auf einem Reliance-Automax System (vgl. [Reliance, 2004]) das über ein Netzwerk mit dem Prozessvisualisierungssystem kommuniziert (siehe Kapitel 3.1.2). Die Signale der Sensoren und Aktoren werden zum Großteil über
dezentrale Ein-/Ausgangsmodule verarbeitet und sind über einen Feldbus an das RelianceAutomax System angebunden.
3.3
Aufgabe des RM-Gateway
Die Hauptaufgabe des RM-Gateway ist die Integration des Banddickenmessgerätes in die Automatisierungsstruktur der Anlage. Um das zu erreichen, muss das RM-Gateway mit dem Banddickenmessgerät, dem Prozessvisualisierungssystem und dem Betriebsdatenarchiv der
Bandverzinkungsanlage kommunizieren. Eine Schnittstellenübersicht ist in Abbildung 3.1 dargestellt. Die Details dieser Schnittstellen sind in Kapitel 3.4 spezifiziert. Zusätzlich besitzt das RMGateway spezielle Funktionen, die in Kapitel 3.5 definiert sind.
3 Anforderungen an das RM-Gateway
3.4
20
Schnittstellen des RM-Gateway
In Abbildung 3.1 sind die Schnittstellen des RM-Gateway dargestellt. Die Pfeile 1-4 stellen den
Datenaustausch dar.
Ethernet TCP/IP
Messrahmen
2
1
Stahlband
Prozessvisualisierung
(Intouch 7.1)
RM-GatewaySchnittstellenrechner
4
Banddickenmessgerät
(M100 Radiometrie)
3
Konfigurations- und
Diagnosetool
Betriebsdatenarchiv
(MS SQL Server)
Legende:
1 TCP/IP Schnittstelle Banddickenmessgerät
2 NetDDE Schnittstelle Prozessvisualisierung
3 ADO.NET SQL-Datenbankschnittstelle
4 TCP/IP Schnittstelle Konfigurations- und Diagnosetool
Abbildung 3.1: Schnittstellen des RM-Gateway
3.4.1
TCP/IP-Schnittstelle zum Banddickenmessgerät
Wie bereits in Kapitel 3.1.1 erwähnt, besitzt das Banddickenmessgerät eine Ethernet TCP/IPSchnittstelle. Dieses Kapitel betrachtet die für das RM-Gateway relevanten Telegramme. Die
vollständige Definition aller definierten Telegramme ist in [Radiometrie, 1999] spezifiziert. Weiterführende Informationen zur TCP/IP-Kommunikation sind in Kapitel 4.2 zu finden.
Grundlegender Aufbau der Telegramme
Der Aufbau der Telegramme ist in Tabelle 2.1 definiert.
Besonderheiten der Codierung
Für die Übertragung werden nur folgende ASCII Codes verwendet:
•
A-Z (0x41 – 0x5A)
für den Message Type,
•
0-9, A-F (0x30-0x39, 0x41-0x46)
für alle numerischen Werte (hexadezimal Code),
•
CR + LF
für Header und Trailer.
3 Anforderungen an das RM-Gateway
21
Die Integerwerte (2 Byte) werden als vier ASCII-Werte übertragen, die hexadezimal interpretiert
werden. Jedes einzelne ASCII-Zeichen (0-9, A-F) repräsentiert hexadezimal 4 Bit des Integerwertes. Die Floatwerte (4 Byte) werden als acht ASCII-Werte übertragen, die hexadezimal interpretiert werden, wobei die Darstellung der Floatwerte nach dem IEEE Standard 754 [IEEE, 2004]
erfolgt. Jedes einzelne ASCII-Zeichen (0-9, A-F) repräsentiert hexadezimal 4 Bit des Floatwertes.
Name
Charaters
Meaning
Value Range
Decoding
LF
x
Header
LF = 0x0A
1 Character
length
xxxxx
Data length
ASCII 0x30-0x39
5 digits
ASCII Number
Location
(Machine internal name)
ASCII 0x30-0x39
2 digits
ASCII Number
Range 0-99d
(set inside .MTX)
(0 = Broadcast)
loc
xx
Range 12-99999d
Length of data
overall excluding
Header, Trailer, and
Length
unit
xxxx
Unit
ASCII 4 digits
for M100 defined
as “M100”
4 Characters
(dummy Byte)
type
x
Message Type
ASCII 0x41-0x5F
capital letter
1 digit
1 Character
Range ‘A’ to ‘Z’
id
xxxx
Message ID
ASCII 0x30-0x39
and
0x41-0x46
4 digits
1 Integer (2 Byte)
Range 1 – 32767
Message identification number
gauge
x
Gauge #
ASCII 0x31
1 digit
for M100 defined
as “1”
1 Character
values
xxxx xxxx
(xxxx
xxxx,.)
Data Value(s)
ASCII 0x30-0x39
and
0x41-0x46
8 digits or x * 8
digits
1 – x Float (4 Byte)
or
1 – x Long (4 Byte)
refer to documentation
CR
x
Trailer
CR = 0x0d
1 Character
Tabelle 3.3: Aufbau der Telegramme
Telegrammtypen
Der Telegrammtyp wird mit dem Feld Message Type festgelegt. In Tabelle 3.4 sind alle verwendeten Telegrammtypen und deren Bedeutung definiert.
3 Anforderungen an das RM-Gateway
22
Message
Type
Bezeichnung
Bemerkung
A
Aktueller Parameter
Aktuell verwendete Parameter
N
Nächster Parameter
Vorbereitete Parameter für das nächste Band
M
Messwerte
Aktuelle Istwerte bzw. Messwerte
S
Status
Statusinformation über den aktuellen Betriebszustand
P
Profil
Quer- oder Längsprofil des Bandes
I
Befehl
Befehl an das Messgerät
W
Watchdog
Überwachung der Verbindung
Tabelle 3.4: Telegrammtypen
Daten vom Prozessvisualisierungssystem an das RM-Gateway
Bezeichnung
Format
Tag Name
Next auf Act.
Bool
BDM_CMD_NextAufAkt
Start Messung u. Quelle öffnen
Bool
BDM_CMD_Start
Stopp Messung u. Quelle
schließen
Bool
BDM_CMD_Stop
Ausblendung Bd. Anfang
INT
BDM_SOLL_AusblBdAnf
Störung Quit.
Bool
BDM_CMD_Quittieren
Tabelle 3.5: DDE-Daten an RM-Gateway
Daten vom RM-Gateway an das Prozessvisualisierungssystem
Bezeichnung
Format
Tag Name
Ist Dicke
INT 1/1000
BDM_IST_Dicke
Ist Länge
INT in Meter
BDM_IST_Laenge
Status Wort Frame
DINT
BDM_IST_StatusWort
Status Gauge
DINT
BDM_IST_StatusGauge
Dicke min
INT 1/1000 mm
BDM_IST_DickeMin
Dicke mittel
INT 1/1000 mm
BDM_IST_DickeMittel
Dicke max
INT 1/1000 mm
BDM_IST_DickeMax
Länge in 10er Schritten
INT
BDM_IST_LaengeTrig
Kom. TCP Radiometrie OK
Bool
BDM_STA_TcpOk
Kom. Visu - Schnittstellen PC
OK
Counter (INT) 010 in 100ms
BDM_SOLL_SsrOk
Tabelle 3.6: DDE-Daten von RM-Gateway
3 Anforderungen an das RM-Gateway
23
Bidirektionale Daten
Bezeichnung
Format
Tag Name in der Visu
Akt. Kennung ( AuftragsNr.)
DINT
BDM_AKT_Kennung
Akt. Rollennummer
DINT
BDM_AKT_RollenNr
Akt. Sollwert Dicke
INT 1/100 mm
BDM_AKT_SollDicke
Akt. Sorte
INT 1/1000
BDM_AKT_Sorte
Akt. + Tol
INT 1/100 mm
BDM_AKT_TolPlus
Akt. - Tol
INT 1/100 mm
BDM_AKT_TolMin
Akt. Schichtdicke
INT g/m²
BDM_AKT_Schichtdicke
Akt. Beschichtungsart
INT
BDM_AKT_BeschichtArt
Akt. Traversierprogramm
INT
BDM_AKT_TravProg
Next Kennung (AuftragsNr.)
DINT
BDM_NEXT_Kennung
Next Rollennummer
DINT
BDM_NEXT_RollenNr
Next Sollwert Dicke
INT 1/100 mm
BDM_NEXT_SollDicke
Next Sorte
INT 1/1000 mm
BDM_NEXT_Sorte
Next + Tol
INT 1/100 mm
BDM_NEXT_TolPlus
Next - Tol
INT 1/100 mm
BDM_NEXT_TolMin
Next Schichtdicke
INT g/m²
BDM_NEXT_Schichtdicke
Next Beschichtungsart
INT
BDM_NEXT_BeschichtArt
Next Traversierprogramm
INT
BDM_NEXT_TravProg
Tabelle 3.7: DDE-Daten bidirektional
3.4.2
NetDDE-Schnittstelle zum Prozessvisualisierungssystem
Das RM-Gateway kommuniziert über NetDDE mit dem Prozessvisualisierungssystem (Intouch).
Details zu Kommunikation mit NetDDE sind in Kapitel 4.3 zu finden.
Der Umfang des Datenaustausches ist in Tabelle 3.5, Tabelle 3.6 und Tabelle 3.7 definiert.
3.4.3
SQL-Datenbankschnittstelle-Betriebsdatenarchiv
Das RM-Gateway verbindet sich mittels ADO.NET (siehe Kapitel 4.1.1) mit der SQLDatenbank des Betriebsdatenarchivs und speichert dort statistisch Daten, die aus den vom Banddickenmessgerät empfangenen Prozessdaten berechnet werden (Details siehe Kapitel 3.5)
3 Anforderungen an das RM-Gateway
3.5
3.5.1
24
Funktionen des RM-Gateway
Erfassung des Längsprofils
Ziel dieser Funktion ist es, je 10 m Band einen Eintrag in die Datenbank des Betriebsdatenarchivs (Tabelle tDickeAuslaufEin) mit den aktuellen Minimum-, Maximum- und Mittelwerten aus
der Banddicke zu erstellen. Das Dickenmessgerät sendet bei jeder Änderung der gemessenen
Banddicken das Telegramm „M14“ und bei jeder Änderung der Bandlänge das Telegramm „M2“.
Ausblendung der Messungen von Bandanfang und Bandende
Der Bandanfang und das Bandende werden bei der Berechnung der Telgramme ausgeblendet.
Die Sollwerte dafür werden vom Prozessvisualisierungssystem zur Verfügung gestellt. Gemäß
Definition werden beim Ausblenden der Messwerte 0-Werte in die Datenbank für Minimum-,
Maximum- und Mittelwerte eingetragen.
Ausblenden von Messfehlern
Das Ausblenden von einzelnen Messwerten ist notwendig, um den negativen Einfluss der bei der
eingesetzten radiometrischen Messmethode auftretenden Messfehler zu minimieren. Messwerte
werden dann ausgeblendet, wenn die Abweichung vom Sollwert +/- 0.3 mm übersteigt. Der
Schwellwerte „Messwert Ausblendung“ kann konfiguriert werden.
3.5.2
Erfassung des Querprofils
Die Querprofilmessung wird vom Banddickenmessgerät selbstständig durchgeführt. Es sendet
bei einem Produktwechsel das Telegramm „P6“. Das Telegramm enthält das aufsummierte
Querprofil eines Bandes mit 50 Messwerten. Je nach Bandbreite sind nicht alle 50 Messwerte mit
gültigen Werten belegt.
Der Inhalt dieses Telegramms wird in die Datenbank des Betriebsdatenarchivs (Tabelle tDickeAuslaufQuerProfil) eingetragen.
3.5.3
Parametrierung des Banddickenmessgerätes
Durch die automatische Parametrierung des Messgerätes soll die manuelle Bedienung des Dickenmessgerätes entfallen. Dazu werden vom Prozessvisualisierungssystem die Banddaten für
den nächsten Bund bzw. den aktuellen Bund als DDE-Variablen übertragen und bei Änderung
als Telegramm an das Dickenmessgerät gesendet.
3 Anforderungen an das RM-Gateway
3.5.4
25
Datenaustausch mit der Prozessvisualisierung
Mit Hilfe des RM-Gateway werden alle benötigten Daten des Banddickenmessgerätes an die Prozessvisualisierung gesendet. Der Messvorgang des Dickenmessgerätes kann über die Prozessvisualisierung gestartet und gestoppt werden.
3.5.5
Automatischer Verbindungsaufbau
Das RM-Gateway überwacht den Zustand aller Verbindungen der Schnittstellen. Fällt eine Verbindung aus, versucht es zyklisch die Verbindung wieder aufzubauen. Damit ist bei Ausfall eines
Kommunikationspartners (z.B. bei einem Rechnerneustart oder einem Netzwerkfehler) gewährleistet, dass das RM-Gateway seine Aufgaben ohne manuellen Eingriff wieder aufnimmt.
3.5.6
Historische Speicherung der Betriebszustände
In einer Logdatei werden alle relevanten Betriebszustände des RM-Gateway, wie beispielsweise
ein Verbindungsaufbau oder ein Neustart, für Diagnosezwecke gespeichert.
4 Grundlegende Techniken
4
4.1
26
Grundlegende Techniken
Microsoft .NET Framework
Das .NET Framework ist eine Programmierplattform zum Erstellen, Bereitstellen und Ausführen
von Windows-Programmen, Webanwendungen, Smart Client-Anwendungen und XML-Webdiensten.
(vgl. [Microsoft, 2004c]).
Motiviert durch die starke Konkurrenz von Java führte Microsoft im Jänner 2002 mit .NET ein
neuartiges Konzept der Windows Programmierung ein. Dazu wurden eine neue Laufzeitumgebung Common Language Runtime (CLR), ein einheitliches Typsystem, das Common Type System (CTS)
und neue Bibliotheken entwickelt (siehe Abbildung 4.1). Gleichzeitig entwarf Microsoft die Programmiersprache C#, die Merkmale von Java und C++ vereint und neue Möglichkeiten wie zum
Beispiel Atttribute und Properties zur Verfügung stellt.
VB
C++
C#
….
JScript
Common Type System
ASP.NET
Windows Forms
Web Services
ADO.Net and XML
Base Class Library
Common Language Runtime
Windows
Abbildung 4.1: .NET Frameworkarchitektur (Quelle: [Heinzelreiter, 2003])
Im Gegensatz zu Java, bei der eine Programmiersprache auf verschiedenen Betriebssystemen
läuft, bietet .NET die Möglichkeit mit verschiedenen Programmiersprachen zu entwickeln, die
aber nur auf Windows-Betriebssystemen ausgeführt werden können. In Zukunft wird es auch
möglich sein, Anwendungen mit .NET zu erstellen, die auf anderen Plattformen und Betriebssystemen lauffähig sind. Die Firma Novell sponsert das Open Source-Projekt Mono, das sich die Entwicklung einer freien Implementierung des .NET Frameworks zum Ziel gesetzt hat (siehe
[Mono, 2004]).
Das .NET Framework kann von Microsoft kostenlos bezogen werden und enthält bereits einfache Werkzeuge zur Erstellung von Applikationen. Zur professionellen Softwareentwicklung bietet Microsoft die Entwicklungsumgebung Visual Studio .NET an.
4 Grundlegende Techniken
4.1.1
27
Datenbankschnittstelle ADO.NET
Wie in Abbildung 4.2 dargestellt, ist ADO.NET ein Bestandteil des .NET Frameworks.
ADO.NET ist der Nachfolger von ActiveX Data Objects (ADO) und wird für den Datenaustausch
zwischen .NET Programmen und Datenbanken verwendet. In Abbildung 4.2 ist die Architektur
von ADO.NET dargestellt.
DataSet
Data Provider
DataTableCollection
Connection
DataAdapter
SelectCommand
Command
InsertCommand
UpdateCommand
DataReader
DeleteCommand
DataTable
DataRowCollection
DataColumnCollection
ConstraintCollection
DataRelationCollection
DB
XML
Abbildung 4.2: .Architektur von ADO.NET (Quelle: [Heinzelreiter, 2003])
Die Vorteile von ADO.NET liegen in der Integration der Extensible Markup Language (XML), der
hohen Performance, der ausgereiften Klassenbibliothek und der ausgezeichneten Integration in
die Entwicklungsumgebung Visual Studio .NET. Damit ist es mit sehr geringem Aufwand möglich, eine leistungsfähige Datenbankverbindung zu implementieren, da Visual Studio .NET den
erforderlichen Programmcode großteils toolunterstützt generiert.
4.2
4.2.1
TCP/IP-Kommunikation
Grundlagen
Die TCP/IP-Protokolle, auf denen auch das Internet basiert, wurden in den 70-er Jahren für den
Datenaustausch in heterogenen Rechnernetzen entwickelt.
In Abbildung 4.3 ist eine Gegenüberstellung von TCP/IP mit den Kommunikationsschichten
nach dem ISO-OSI-Referenzmodell dargestellt (vgl. [Tanenbaum, 2000]).
Die Schichten 5 - 7 des OSI-Modells werden bei TCP/IP in eine Anwendungsschicht zusammengefasst, die direkt mit der Transportschicht kommuniziert. In Schicht 4 befindet sich das
4 Grundlegende Techniken
28
Transmission Control Protocol (TCP) das einen verbindungsorientierten, gesicherten Datentransport
mit Flusskontrolle realisiert, sowie das User Datagram Protocol (UDP), in welchem ein verbindungsloser und ungesicherter Transport erfolgt. In Schicht 3 ist das verbindungslose Internet-Protokoll
(IP) angesiedelt. Die Schichten 1 und 2 sind gegenüber Schicht 3 protokolltransparent. Sie werden
durch standardisierte Protokolle wie beispielsweise Ethernet realisiert.
Abbildung 4.3: Gegenüberstellung TCP/IP-OSI (Quelle: [Plate, 2004a])
4.2.2
Die Socket-Netzwerkschnittstelle
Anfang der 80er Jahre wurde in UNIX-Systemen die so genannte Socket-Schnittstelle, welche eine
Schnittstelle zum Betriebssystem darstellt, für die Kommunikation zwischen Prozessen eingeführt (Interprozesskommunikation, vgl. Kapitel 4.3.1). Ein Socket ist dabei der Name für einen Endpunkt einer Kommunikationsverbindung (vgl. [Plate, 2004b]). Die Socket-Schnittstelle ist im wesentlichem konzipiert für:
•
verbindungsorientierte Kommunikation, aufsetzend auf TCP,
•
verbindungslose Kommunikation, aufsetzend auf UDP,
•
direkten Zugriff auf die IP-Schicht,
•
Kommunikation zwischen lokalen Prozessen,
•
Kommunikation zwischen in TCP/IP-Netzwerken verteilten Prozessen.
Dabei nehmen Server-Programme (Socket-Server) Anfragen von anderen Programmen (SocketClients) entgegen und beantworten diese. Dieses Konzept ist auch als Client-ServerProgrammierung bekannt und wird bei Webserver bzw. Webbrowser eingesetzt (siehe Abbildung
4.4).
4 Grundlegende Techniken
29
Die Socket-Schnittstelle ist von keiner Institution genormt, stellt aber den Industriestandard dar.
Es handelt sich um ein gut verständliches, leicht handhab- und programmierbares Konzept, das
in den meisten Betriebssystemen verfügbar ist (vgl. [Plate, 2004b]).
In Abbildung 4.4 sind die wesentlichen Methoden einer Socket-Schnittstelle am Beispiel der
Client-Server Kommunikation dargestellt.
Abbildung 4.4: Datenaustausch Client-Server (Quelle: [Plate, 2004b])
4.2.3
Asynchrone Socket-Kommunikation mit C#
Bei der synchronen Kommunikation wird der Sender einer Nachricht bis zur Auslieferung blockiert, bei der asynchronen Kommunikation kann der Sender sofort weiterarbeiten. Die klassische
Socket-Kommunikation, wie in Abbildung 4.4 dargestellt, arbeitet synchron, d.h. mit teilweise
blockierenden Methodenaufrufen. Dieses blockierende Verhalten ist in der Regel unerwünscht
und wird mit mehreren Threads bzw. Prozessen oder mit speziellen nicht blockierenden SocketMethoden wie poll und select gelöst.
Das .NET Framework stellt zwei Namensbereiche für die Netzwerkprogrammierung zur Verfügung:
•
System.Net,
•
System.Net.Sockets.
Es werden synchrone und asynchrone Kommunikation unterstützt. Bei der asynchronen Kommunikation werden die Methodenaufrufe sofort beendet, auch wenn die gewünschte Funktion
4 Grundlegende Techniken
30
noch nicht durchgeführt wurde. Der Methodenaufrufer wird durch Callback-Methoden benachrichtigt wenn die gewünschte Funktion abgeschlossen ist. Das .NET Framework erstellt dafür
automatisch im Hintergrund Threads, die nach dem Aufruf der Callback-Methode terminieren.
In Tabelle 4.1 sind die wichtigsten asynchronen Socket-Methoden aufgelistet. Für weiterführende
Informationen zur Netzwerkprogrammierung mit C#.NET sei auf [Blum, 2003] verwiesen.
Beschreibung
Methode
Callback
Verarbeiten einer eintreffenden Verbindung
BeginAccept()
EndAccept()
Verbindung herstellen
BeginConnect()
EndConnect()
Empfang von Daten
BeginReceive()
EndReceive()
Empfang von Daten einer definierten Quelle
BeginReceiveFrom()
EndReceiveFrom()
Senden von Daten
BeginSend()
EndSend()
Senden von Daten an ein definiertes Ziel
BeginSendTo()
EndSendTo()
Tabelle 4.1: Asynchrone .NET Socket-Methoden
4.3
Windows DDE-Kommunikation
Dynamic Data Exchange (DDE) wird primär in Windows-Systemen zur einfachen Kommunikation
zwischen unterschiedlichen Anwendungen verwendet. Auch im Unix/Linux Bereich ist DDEKommunikation umgesetzt, wie die Office-Suite OpenOffice zeigt [OpenOffice, 2004].
DDE-Kommunikation kann auch für verteilte Anwendungen verwendet werden. In diesem Fall
spricht man von Network Dynamic Data Exchange (NetDDE), bei dem es sich um eine Erweiterung
des DDE-Mechanismus handelt.
DDE und NetDDE haben heute nur mehr geringe Bedeutung, da sie durch weiter reichende
Kommunikationsmechanismen wie Object Linking and Embedding (OLE) ersetzt wurden.
4.3.1
Interprozesskommunikation
Interprozesskommunikation bezeichnet die Kommunikation zwischen unterschiedlichen Prozessen bzw. Threads. Dabei werden definierte Nachrichten bzw. Informationen ausgetauscht (vgl.
[Rechenberg und Pomberger, 1999]). Die Art der Kommunikation kann wie folgt klassifiziert
werden:
•
Bei der synchronen Kommunikation wird der Sender einer Nachricht bis zur Auslieferung blockiert, bei der asynchronen Kommunikation kann der Sender sofort weiterarbeiten.
•
Im Gegensatz zur verbindungslosen Kommunikation ist bei der verbindungsorientierten Kommunikation ein expliziter Verbindungsaufbau vor der eigentlichen Kommunikation erforderlich.
4 Grundlegende Techniken
•
31
Die Kommunikationsart kann nachrichtenbasiert (Beispiele: Signale, DDE, Socket, RPC, RMI,
Corba, COM) oder speicherbasiert (Beispiel: Shared Memory) sein.
4.3.2
Historische Entwicklung
Die Konzepte der DDE-Kommunikation entstanden im Laufe der historischen Entwicklung von
Microsoft-Windows (vgl. [Rathjen, 2004]).
In Windows 1.0 konnten Daten über die Zwischenablage („Cut and Paste“) transferiert werden.
Seit Windows 2.0 und 3.0 besteht die Möglichkeit, Daten nicht nur statisch über die Zwischenablage, sondern auch über eine dynamische Verbindung zwischen zwei oder mehreren Anwendungen über DDE auszutauschen.
Das DDE-Protokoll ist seit der Entwicklung um 1990 unverändert und wird auch von den aktuellen Versionen der Windows-Betriebssysteme und von Microsoft Office-Produkten unterstützt.
Insbesondere bietet Excel eine sehr einfache Möglichkeit über DDE bzw. NetDDE dynamische
Daten einzubinden (siehe [Microsoft, 2004a]).
Mit Visual Basic bis zur Version 6.0 kann DDE-Kommunikation sehr einfach anwendet werden,
da es vollständig integriert ist. Mit der Entwicklung der Microsoft .NET Plattform wurde die
Unterstützung für DDE eingestellt (vgl. [Microsoft, 2004b]). Daher ist es beispielsweise in den
Programmiersprachen C#.net oder VB.NET schwierig, diese Art der Kommunikation zu verwenden. Eine mögliche Lösung dieses Problems ist die Verwendung von externen DDEKommunikationskomponenten (siehe auch Kapitel 4.3.5).
4.3.3
Grundlegende Funktionen
Bei einer DDE-Kommunikation sind zwei Programme beteiligt, die als Quellanwendung (von dort
kommen die Daten) und als Zielanwendung (dort wandern die Daten hin) bezeichnet werden.
Quellanwendungen werden oft auch als DDE-Client und Zielanwendungen als DDE-Server bezeichnet. Ein Programm kann gleichzeitig mit mehreren Programmen DDE-Verbindungen herstellen und dabei die Rolle einer Quell- als auch einer Zielanwendung besitzen (vgl. [Monadjemi,
1993]).
Für die Namensauflösung verwendet DDE eine Hierarchie von drei Namensebenen:
•
Service,
•
Topic,
•
Item.
Für den Verbindungsaufbau werden Service und Topic gemeinsam zur Identifikation des Kommunikationspartners verwendet. Das Item definiert die konkreten Daten oder einen Befehl. Der Verbindungsaufbau erfolgt immer durch einen DDE-Client, der nach dem Verbindungsaufbau folgende Aktionen ausführen kann:
4 Grundlegende Techniken
•
Request (Daten anfordern),
•
Execute (Befehl senden),
•
Poke (Daten senden).
32
Weiters besteht die Möglichkeit, dass ein DDE-Client automatisch über geänderte Daten des
DDE-Servers benachrichtigt wird. Diese Datenaktualisierung erfolgt durch Notify-Ereignisse, die
der Server an registrierte Clients versendet.
Mit NetDDE kann die DDE-Kommunikation auch bei verteilten Systemen verwendet werden.
Für den Verbindungsaufbau werden Service und Topic mit dem Rechnernamen ergänzt. NetDDE
verwendet für die Kommunikation das NETBIOS-Protokoll, das über TCP/IP transportiert
werden kann. Damit eine solche Verbindung aufgebaut werden kann, muss auf beiden Kommunikationspartnern der NETDDE.EXE-Service laufen, der ab Windows NT automatisch bei Bedarf
gestartet wird. Die Vergabe von DDE-Zugriffsrechten kann mit dem Programm DDESHARE.EXE definiert werden, welches bereits in den Windows-Betriebssystemen inkludiert ist (siehe
Abbildung 4.5)
Abbildung 4.5: Eigenschaftsdialog der DDE-Freigabe
4.3.4
Einsatz von DDE in der Automatisierungstechnik
Bedingt durch die historische Entwicklung und der einfachen Anwendbarkeit hat sich DDE in
der Automatisierungstechnik etabliert. DDE stellt ein Gateway zwischen sich dynamisch ändernden Prozessdaten und der Office-Welt dar. Prozessvisualisierungssysteme wie zum Beispiel Intouch der Firma Wonderware [Wonderware, 2004] verwenden DDE-Kommunikation als externe
Schnittstelle. Auch im Bereich der Prozessdatenerfassung und -analyse wird DDE verwendet. So
4 Grundlegende Techniken
33
bietet National Instrumens für das Produkt LabView [Labview, 2004] eine DDE-Schnittstelle an,
um mit anderen Programmen oder auch Messgeräten Daten auszutauschen.
Ein großer Vorteil von DDE für die Automatisierungstechnik ist die Möglichkeit, dass Daten nur
bei einer Änderung übertragen werden. Im Gegensatz zum zyklischen Datenaustausch (Polling)
werden die Datenmengen über die Kommunikationskanäle reduziert und kurze Reaktionszeiten
bleiben gewährleistet.
4.3.5
DDE-Kommunikation mit C#
Wie bereits in Kapitel 4.3.2 erwähnt, wird im Microsoft .NET Framework die DDEKommunikation nicht mehr unterstützt. Da das Projekt RM-Gateway mit C#.NET entwickelt
wurde, war es erforderlich, eine Lösung für dieses Problem zu finden.
Aus diesem Grund wurde vom Autor die COM-Komponente DDELib in C++ entwickelt. Diese
Komponente kapselt die DDE-Kommunikationsaufrufe und stellt nach außen Zugriffsfunktionen zur Verfügung. COM-Komponenten können in C# sehr einfach eingebunden werden, da es
mit Hilfe des Utility tlbimp möglich ist, automatisch eine .NET Hüllenklasse zu generieren (siehe
[Moses und Novak, 2002], [Lau, 2004]).
5 Konzeption und Design
5
5.1
34
Konzeption und Design
Systemdesign
Das Systemdesign gibt einen Überblick über die Softwarearchitektur, das Design der Schnittstellen und der Datenhaltung (vgl. [Mayr, 2001]). Eine detaillierte Beschreibung der Komponenten
folgt in Kapitel 5.1.1.
5.1.1
Architektur
In Abbildung 5.1 ist die Architektur der RM-Gateway-Schnittstellensoftware dargestellt. Das System besteht übergeordnet aus zwei Komponenten, dem InterfaceManager und dem UserInterface.
Diese konzeptionelle Trennung erfolgt, um die Schnittstellensoftware auch komplett ohne Benutzerinterface als Service betreiben zu können, der im Hintergrund läuft. Das Benutzerinterface
dient nur zur Konfiguration bzw. Diagnose und kann optional weggelassen werden. Für den laufenden Betrieb der Schnittstellensoftware ist keine Benutzerinteraktion erforderlich.
InterfaceManager
UserInterface
ConfigurationManager
ConfigFileInterface
ConnectionManager
GaugeInterface
HMIInterface
GaugeRaw
Telegram
DDELib
Ethernet TCP/IP
Banddickenmessgerät
(M100 Radiometrie)
DBInterface
ADO.NET
NetDDE
Prozessvisualisierung
(Intouch 7.1)
Betriebsdatenarchiv
(MS SQL Server)
Abbildung 5.1: Architektur der RM-Gateway-Schnittstellensoftware
5 Konzeption und Design
35
Im folgenden Abschnitt werden die Aufgaben der modellierten Komponenten übersichtsweise
erklärt.
InterfaceManager
Die Komponente InterfaceManager kapselt die gesamte Schnittstellensoftware mit den erforderlichen Komponenten und ist für übergeordnete Aufgaben vorgesehen. Die Komponente ist auch
für die Erstellung der Logdatei zuständig, in der relevante Zustandsänderungen des Gesamtsystems protokolliert werden.
UserInterface
Wie bereits erwähnt, realisiert das UserInterface eine grafische Oberfläche, die zur Konfiguration
und Diagnose der Schnittstellensoftware verwendet wird und tauscht dazu mit dem InferfaceManager die erforderlichen Daten aus (siehe Kapitel 5.3).
ConfigurationManager
Der ConfigurationManager ist für die gesamte Konfiguration der Schnittstellensoftware zuständig.
Die Komponente bezieht die Konfigurationsdaten von ConfigFileInterface und UserInterface und
sendet die Daten an die zu konfigurierenden Schnittstellen-Komponenten weiter.
ConfigFileInterface
Diese Komponente kapselt den Dateizugriff auf die Konfigurationsdateien.
ConnectionManager
Der ConnectionManager ist für den Auf- und Abbau sowie die Überwachung der externen Datenverbindungen zuständig. Er koordiniert dabei die Schnittstellen-Komponenten GaugeInterface, HMIInterface und DBInterface. Im Falle einer Verbindungsunterbrechung werden die beteiligten Komponenten benachrichtigt. Der ConnectionManger versucht laufend die Verbindung wieder herzustellen. Aus Sicht des RM-Gateway kann es betriebsmäßig vorkommen, dass ein externes System neu gestartet wird oder kurz ausfällt. In diesem Fall müssen sämtliche Komponenten
des RM-Gateway ohne Benutzerinteraktion ihre Tätigkeit so rasch wie möglich wieder aufnehmen.
GaugeInterface
Das GaugeInterface realisiert mit Hilfe der asynchronen Socket-Kommunikation (siehe Kapitel
4.2.3) die Ethernet TCP/IP-Schnittstelle mit dem Banddickenmessgerät. Die empfangenen Telegramm-Rohdaten werden der Komponente GaugeRawTelegram zur Weiterverarbeitung übergeben.
5 Konzeption und Design
36
GaugeRawTelegram
Diese Komponente wandelt einerseits die Telegramm-Rohdaten (Byte-Array) in typisierte Datenstrukturen um und prüft dabei die Konsistenz der Daten. Andererseits generiert die Komponente
auch neue Telegramme, die in Form von Telegramm-Rohdaten an das GaugeInterface zum Versand an das Banddickenmessgerät übergeben werden.
HMIInterface
Das HMIInterface koordiniert die NetDDE-Kommunikation mit dem Prozessvisualisierungssystem. Die Kommunikation selbst wird von der Komponente DDELib durchgeführt.
DDELib
Diese Komponente realisiert die NetDDE-Kommunikation. DDELib erstellt lokal ein aktuelles
Abbild der DDE-Kommunikationsvariablen und versendet bei Bedarf Änderungstelegramme an
den Kommunikationspartner. Da das .NET-Framework die DDE-Kommunikation nicht direkt
unterstützt, erfolgte die Realisierung als COM-Objekt in C++ (siehe auch Kapitel 4.3.5).
DBInterface
DBInterface ist für den Datenaustausch mit der Datenbank des Betriebsdatenarchivs zuständig.
Dabei kommt ADO.NET zum Einsatz (siehe Kapitel 4.1.1).
5.1.2
Schnittstellen
Interne Schnittstellen
Die internen Schnittstellen werden im Kaptitel 6 ausführlich behandelt.
Externe Schnittstellen
Das System besitzt drei externe Schnittstellen:
•
TCP/IP-Schnittstelle zum Banddickenmessgerät (GaugeInterface),
•
NetDDE-Schnittstelle zum Prozessvisualisierungssystem (HMIInterface),
•
SQL-Datenbank-Schnittstelle – Betriebsdatenarchiv (DBInterface).
Die genaue Spezifikation der externen Schnittstellen wurde bereits in Kapitel 3.4 bei den Anforderungen an das RM-Gateway festgelegt.
5 Konzeption und Design
5.1.3
37
Datenhaltung
Qualitätsdaten
Die Persistierung von Qualitätsdaten erfolgt über die externe Schnittstelle zur Datenbank des
Betriebsdatenarchivs. Bandlängengetriggert werden neue Datensätze in die, in Abbildung 5.2
dargestellten, Tabellen eingetragen.
tDickeAuslaufEin
PK
ID
CoilNr
Bandposition
DickeAuslaufMin
DickeAuslaufMax
DickeAuslaufMittel
tDickeAuslaufQuerProfil
PK
ID
CoilNr
Bandposition
DickeAuslaufProfil_1
DickeAuslaufProfil_2
DickeAuslaufProfil_3
....
DickeAuslaufProfil_48
DickeAuslaufProfil_49
DickeAuslaufProfil_50
Abbildung 5.2: Betriebsdatenarchiv – relevante Tabellen für das RM-Gateway
Konfigurationsdaten
Die Konfigurationsdaten des RM-Gateway werden in lokalen Konfigurationsdateien persistiert.
Als Beispiel ist das Konfigurationsfile hmi.config aufgelistet, mit dem die NetDDE-Schnittstelle
zum Prozessvisualisierungssystem konfiguriert werden kann. Hervorzuheben ist, dass nicht nur
die allgemeinen Kommunikationsparameter sondern auch sämtliche Namen der Kommunikationsvariablen definiert werden können (tag1 – tagxx).
App = \\Acerbook\VIEW
Topic = TAGNAME
refreshTime = 1000
numberOfTags = 34
tag1 = BDM_AKT_Kennung
tag2 = BDM_AKT_RollenNr
tag30 = BDM_IST_DickeMittel
……..
tag32 = BDM_IST_LaengeTrig
tag33 = BDM_STA_TcpOk
tag34 = BDM_SOLL_SsrOk
5 Konzeption und Design
38
Betriebszustand
Für die Diagnose wichtiger Daten werden vom System in einer Logdatei fortlaufende Daten mit
einem Zeitstempel gespeichert:
•
Zustand des Gesamtsystems,
•
Zustand der Schnittstellen und der Information über den Verbindungsstatus.
Optional besteht auch die Möglichkeit erweiterte Informationen über den Datenaustausch in der
Logdatei zu archivieren. Diese Daten können bei Bedarf zur genauen Analyse des Systems verwendet werden.
5.2
5.2.1
Komponentendesign
Übersicht
Eine einleitende Übersicht über die Komponenten erfolgte bereits in Kapitel 5.1. Im folgenden
Abschnitt werden die Funktionen und die Interaktionen ausgewählter Komponenten genauer
definiert. In Abbildung 5.3 ist das Übersichts-Klassendiagramm mit eingetragenen Beziehungen
zwischen den Klassen dargestellt.
Abbildung 5.3: Übersichts-Klassendiagramm RM-Gateway
5 Konzeption und Design
5.2.2
39
Die Klasse ConnectionManager
Wie bereits in Kapitel 5.1 erwähnt, koordiniert der ConnectionManager den Verbindungszustand
der drei externen Schnittstellen. Die möglichen Zustände einer Verbindung sind in Abbildung 5.4
dargestellt. Für den ordnungsgemäßen Betrieb des Gesamtsystems ist es erforderlich, dass sich
alle drei externen Schnittstellen im Zustand „Verbunden“ befinden.
Damit der Zustand der Schnittstellen zuverlässig festgestellt werden kann, erfolgt unabhängig
von den übertragenen Telegrammen zeitgetriggert ein definierter Datenaustausch in Form von
Watchdog-Telegrammen bei der TCP/IP-Verbindung und in Form einer zyklisch inkrementierten
Variablen bei der DDE-Kommunikation. Die Prüfung der Verbindung mit der Datenbank erfolgt beim Systemstart sowie beim jedem Zugriff auf die Datenbank.
Nicht Verbunden
Verbindungsaufbau
Verbunden
Verbindungsfehler
Verbindungsabbau
Abbildung 5.4: Zustandsdiagramm der externen Schnittstellen
5.2.3
Die Klasse GaugeInterface
Die Klassen GaugeInterface und GaugeRawTelegram sind für die TCP/IP-Kommunikation mit
dem Banddickenmessgerät verantwortlich. Das in Abbildung 5.5 dargestellte Klassendiagramm
gibt einen Überblick über die realisierten Methoden und Properties.
5.2.4
Die Klasse HMIInterface
Das HMIInterface realisiert die NetDDE-Kommunikation mit dem Prozessvisualisierungssystem
mit Hilfe der Klassen DDELIb und PokeThread (siehe Kaptile 5.1.1). Die Klasse PokeTread ist für
die Pufferung von Änderungsdaten verantwortlich, da die DDE-Kommunikation nicht synchron
mit dem Empfang der Daten vom Banddickenmessgerät erfolgen kann. Das in Abbildung 5.6
dargestellte Klassendiagramm stellt die drei beteiligen Klassen mit den öffentlichen Methoden
dar.
5 Konzeption und Design
Abbildung 5.5: Klassendiagramm GaugeInterface
Abbildung 5.6: Klassendiagramm HMIInterface
40
5 Konzeption und Design
5.3
41
Benutzerschnittstellen-Design
Bei dem Konzept der RM-Gateway-Schnittstellensoftware besitzt die Benutzerschnittstelle eine
untergeordnete Rolle und hat zum Teil rudimentären Charakter (vgl. Kapitel 5.1.1).
5.3.1
Konfigurations- und Diagnosetool
Primär wird das Konfigurations- und Diagnosetool von der Klasse UserInterface realisiert.
Das Konfigurationstool dient dazu, die Schnittstellensoftware zu konfigurieren. Folgende Konfigurationsmöglichkeiten sind vorgesehen:
•
Banddickenmessgerät: IP Adresse, Port und Kommunikationsparameter,
•
Datenbank: Datenbankname, User und Passwort,
•
Prozessvisualisierung: Rechnername, Kommunikationsparameter.
In Abbildung 5.7 ist die prototypische Bedienoberfläche des Konfigurationstools dargestellt.
Abbildung 5.7: Benutzerschnittstelle Konfigurationstool
Das in Abbildung 5.8 und Abbildung 5.9 dargestellte Diagnosetool dient in erster Linie zur Inbetriebnahme der Schnittstellensoftware und zur Fehlersuche. Das Diagnosetool verbindet sich mit
der Schnittstellensoftware und kann so den aktuellen Status der Systems abfragen.
5.3.2
Prozessvisualisierungssystem
In Abbildung 5.10 und Abbildung 5.11 ist die Benutzerschnittstelle des Banddickenmessgerätes
im Prozessvisualisierungssystem Intouch dargestellt, die über das RM-Gateway mit Daten versorgt wird.
5 Konzeption und Design
Abbildung 5.8: Benutzerschnittstelle Diagnosetool: General
Abbildung 5.9: Benutzerschnittstelle Diagnosetool: Log
42
5 Konzeption und Design
Abbildung 5.10: Benutzerschnittstelle des Banddickenmessgerätes
Abbildung 5.11: Benutzerschnittstelle des Banddickenmessgerätes: Trend
43
6 Implementierung
6
44
Implementierung
Dieses Kapitel stellt wesentliche Faktoren der Realisierung vor. Es folgt eine Beschreibung der
Entwicklungsumgebung, die Erläuterungen von allgemeinen Punkten und von implementierungsspezifischen Details der Komponentenentwicklung.
6.1
Verwendete Entwicklungsumgebung
Für die Implementierung der RM-Gateway-Schnittstellensoftware wurde eine integrierte Testund Entwicklungsumgebung, wie in Abbildung 6.1 dargestellt, verwendet. Damit ist es möglich,
die Software im Zuge der Implementierung effizient zu testen (Whitebox -Testen des Implementierers, [Mayr, 2001]).
Ethernet TCP/IP
3
Testinstallation
Prozessvisualisierung
(Intouch)
2
Simulationssoftware
Banddickenmessgerät
(TCP-Server)
+
Testinstallation
Betriebsdatenarchiv
(MS-SQL-Server)
4
1
Entwicklungsumgebung
(MS-Visual-Studio.NET)
Protokollanalysator
Ethereal
Abbildung 6.1: RM-Gateway: Integrierte Test- und Entwicklungsumgebung
Alle in Abbildung 6.1 dargestellten Rechner weisen folgende gemeinsame Charakteristiken auf:
•
Prozessor Pentium/Athlon >= 1400 MHz, >= 512 MB RAM,
•
Betriebssystem Microsoft Windows XP Professional.
Der Rechner Nr. 1 stellt den eigentlichen Entwicklungsrechner dar, auf dem die Software implementiert und getestet wird. Als Entwicklungsumgebung kommt Microsoft Visual Studio .NET
2003 zum Einsatz. Auf dem Rechner Nr. 2 ist eine vom Autor selbst implementierte Simulationssoftware installiert, die sich wie das Banddickenmessgerät als TCP-Server verhält, sowie eine
Testinstallation des MS-SQL-Servers für das Betriebsdatenarchiv. Auf dem Rechner Nr. 3 befindet sicht eine Testinstallation des Prozessvisualisierungssystems Intouch mit einer für diesen
Zweck von Wuppermann Bandstahl erstellten Applikation (siehe Abbildung 5.10). Der Rechner
Nr. 4 ist für die Analyse der TCP/IP-Telegramme zuständig. Für diese Aufgabe kommt der Ethernet-Protokollanalysator Ethereal [Ethereal, 2004] zum Einsatz.
6 Implementierung
6.2
45
Allgemeine Vorgehensweise
6.2.1
Auswahl des Betriebssystems für das RM-Gateway
Die RM-Gateway-Schnittstellensoftware wurde nur für den Einsatz in Windows Betriebssystemen ausgelegt, da die IT-Infrastruktur beim Auftraggeber von Microsoft geprägt ist und die gewählte Entwicklungsumgebung derzeit kein anderes Betriebssystem unterstützt (siehe Kapitel
4.1).
6.2.2
Auswahl der Entwicklungsumgebung und der Programmiersprache
Auf Grund der Zukunftssicherheit und der technischen Möglichkeiten wurde das .NETFramework mit Microsoft Visual Studio .NET 2003 als Entwicklungswerkzeug gewählt. Die
Implementierung erfolgte in der Programmiersprache C#. Einzig die Implementierung der COMKomponente DDELib erfolgte in C++ mit Hilfe der ATL-Template-Library (siehe Kapitel 4.3.5).
Wesentliche Vorteile von C#.NET für die Realisierung des RM-Gateway sind:
•
effiziente und einfache Möglichkeit der Netzwerkprogrammierung,
•
toolunterstützter und leistungsfähiger Datenbankzugriff,
•
der Garbage-Collektor der .NET Laufzeitumgebung minimiert das Risiko von Memoryleaks und erleichtert damit den Dauerbetrieb des RM-Gateway ohne Rechnerneustart,
•
zukunftssicheres Konzept,
•
einfache Installation der Software,
•
hohe Geschwindigkeit der .NET Laufzeitumgebung.
Als Nachteil von C#.NET für die Realisierung des RM-Gateway kann die fehlende Unterstützung der DDE-Kommunikation angesehen werden.
6.2.3
Vorgehensmodell für die Entwicklung des RM-Gateway
Als Vorgehensmodell für das Projekt wurde das Spiralmodell gewählt. Der Spiralzyklus beginnt
mit der Definition der Anforderungen und Ziele des Projektes. Das Spiralmodell arbeitet mit
einem evolutionären Prototyp, der mehrmals der Validierung und Risikoanalyse unterzogen wird,
bis das Design vollständig ist und die ordentliche Implementierung erfolgen kann (vgl. [Mayr,
2001]).
Der Grund für das gewählte Vorgehensmodell liegt in den technischen Risiken des Projektes, die
teilweise auch in der Verantwortung der Betreiber und Hersteller der in diesem Projekt beteiligten Kommunikationspartner liegt. Durch dieses Vorgehensmodell werden die Risiken minimiert,
da mögliche technische Schwierigkeiten schon in der Projektanfangsphase festgestellt werden
6 Implementierung
46
können und dadurch ausreichend Zeit für eine Fehlerbehebung oder Designänderung vorhanden
ist.
Bei diesem Projekt wurden schon in der Projektanfangsphase die Kommunikationskomponenten
erstellt und getestet. Damit konnte die Realisierbarkeit überprüft und das technische Risiko minimiert werden (siehe Kapitel 7).
6.3
Komponentenentwicklung
In diesem Kapitel werden wichtige Klassen und daraus wesentliche Teile des Source-Codes erläutert. Dabei ist zu beachten, dass keine Fehlerbehandlung dargestellt wird und nur kurze Ausschnitte aus Methoden gezeigt werden.
6.3.1
Die Klasse InterfaceManager
Die Klasse InterfaceManager ist die Hauptklasse der Schnittstellensoftware. Diese Klasse entspricht dem Entwurfsmuster Singleton und wird nur einmal durch das Hauptprogramm, einem
Windows-Service, instanziert. Dabei erzeugt das InterfaceManager Objekt alle erforderlichen Instanzen der Klassen ConfigurationManager, ConnectionManager, GaugeInterface, HMIInterface und
DBInterface.
Eine weitere Aufgabe des InterfaceManager ist es, bei Bedarf ein Objekt der Klasse UserInterface
zu instanzieren und darzustellen und mit diesem Daten über eine definierte Schnittstelle auszutauschen.
6.3.2
Die Klasse UserInterface
Die Klasse UserInterface ist von der Basisklasse System.Windows.Forms.Form abgeleitet und
dient zur grafischen Darstellung der Benutzeroberfläche, die für die Konfiguration und Diagnose
des Systems verwendet wird.
6.3.3
Die Klasse ConfigurationManager
Der ConfigurationManager ist eine Klasse, die für die Konfiguration der Schnittstellensoftware
zuständig ist. Die Konfigurationsdaten werden an die Instanzen der Klassen GaugeInterface,
HMIInterface und DBInterface gesendet und enthalten die Schnittstellen und Verbindungsdaten
sowie Daten, die das Verhalten der Schnittstellen definieren. Für den Zugriff auf die Konfigurationsdateien wird eine Instanz der Klasse ConfigFileInterface verwendet.
6 Implementierung
6.3.4
47
Die Klasse ConfigFileInterface
Diese Hilfsklasse ist für den Dateizugriff auf die Konfigurationsdateien zuständig und wird von
der Klasse ConfigurationManager verwendet.
6.3.5
Die Klasse ConnectionManager
Die Klasse ConnectionManager koordiniert die Verbindungen der externen Schnittstellen, die von
den Klassen GaugeInterface, HMIInterface und DBInterface realisiert werden. Wesentlich dabei
sind die definierte Reihenfolge des Verbindungsaufbaus sowie die zyklische Überwachung des
Status der Verbindung und das Verhalten im Fehlerfall.
6.3.6
Die Klasse GaugeInterface
Das Klasse GaugeInterface ist für die TCP/IP-Verbindung mit dem Banddickenmessgerät zuständig. Dabei verhält sie sich als TCP-Client (siehe Kapitel 4.2.3). Eine Instanz der Klasse GaugeRawTelegram analysiert die empfangenen Daten und generiert die zu sendenden Telegramme.
Das folgende Listing enthält die wesentlichen Methodenaufrufe der asynchronen SocketKommunikation:
// Connect to the TCP Server
public void Connect()
{
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(ip), int.Parse(port));
newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);
}
// Callback method - called if connect ended
private void Connected(IAsyncResult iar)
{
client = (Socket)iar.AsyncState;
client.EndConnect(iar);
client.BeginReceive(data, 0, size, SocketFlags.None,
new AsyncCallback(ReceiveData), client);
}
// Callback method - called if data received
private void ReceiveData(IAsyncResult iar)
{
Socket remote = (Socket)iar.AsyncState;
recv = remote.EndReceive(iar);
AnalyseReceivedData(data);
remote.BeginReceive(data, 0, size, SocketFlags.None,
new AsyncCallback(ReceiveData), remote);
}
// Send new telegram
private void sendNewTel (IAsyncResult iar)
{
6 Implementierung
48
byte[] message = gtSend.convertToByte();
client.BeginSend(message, 0, message.Length, SocketFlags.None,
new AsyncCallback(SendData), client);
}
// Callback Method - called if data sent
private void SendData(IAsyncResult iar)
{
Socket remote = (Socket)iar.AsyncState;
int sent = remote.EndSend(iar);
remote.BeginReceive(data, 0, size, SocketFlags.None,
new AsyncCallback(ReceiveData), remote);
}
Die Methode AnalyseReceivedData übergibt die empfangen Daten einer Instanz der Klasse GaugeRawTelegram zur Analyse.
6.3.7
Die Klasse GaugeRawTelegram
Diese Klasse analysiert die empfangen Daten in Form eines Byte-Arrays und führt die erforderlichen Typkonvertierungen durch. Die konvertierten Daten stehen über Zugriffsmethoden zur
Verfügung.
Im folgenden Listing wird ein Ausschnitt aus dem Programm der Klasse GaugeRawTelegramg
gezeigt, das den empfangenen Bytestrom in Stringkomponenten zerlegt:
// Reads the raw byte stream and transfers it to the telegram structure
public void readByteStream(byte[] bytes)
{
//bytes convert to string
char[] c = new char[bytes.Length];
System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(bytes, 0, bytes.Length, c, 0);
string s = new string(c);
int lenDataValues;
lenDataValues = charLen - 12 - 7;
//string divide to telegram
Header = s.Substring(0,1);
DataLength =s.Substring(1,5);
Location = s.Substring(6,2);
Unit = s.Substring(8,4);
MessageType = s.Substring(12,1);
MessageID = s.Substring(13,4);
Gauge = s.Substring(17,1);
DataValues = s.Substring(18,lenDataValues);
Trailer = s.Substring(18+lenDataValues,1);
}
Die relativ komplexe Codierung der Telegramme erfordert viele Hilfsmethoden zur Typkonvertierung, die auszugsweise in den folgenden Listings ersichtlich sind:
//Auxiliary method – Convert a byte array to hex string
private string ToHexString(byte[] bytes)
{
6 Implementierung
49
char[] chars = new char[bytes.Length * 2];
for (int i = 0; i < bytes.Length; i++)
{
int b = bytes[i];
chars[i * 2 + 0] = hexDigits[b >> 4];
chars[i * 2 + 1] = hexDigits[b & 0xF];
}
return new string(chars);
}
//Auxiliary method - Convert 2 Chars in hex code to a byte
private byte ToByte(char h, char l)
{
int ih = System.Array.IndexOf(hexDigits,h);
int il = System.Array.IndexOf(hexDigits,l);
int ib = il + 16 * ih;
System.Convert.ToByte(ib);
return System.Convert.ToByte(ib);
}
//Auxiliary method - Convert a string in hex code to a float
private float convertStringToFloatSingle(string s)
{
if(s.Length == 8)
{
char[] ca = new char[8];
ca = s.ToCharArray();
byte[] ba = new byte[4];
ba[0] = ToByte(ca[6], ca[7]);
ba[1] = ToByte(ca[4], ca[5]);
ba[2] = ToByte(ca[2], ca[3]);
ba[3] = ToByte(ca[0], ca[1]);
float f = BitConverter.ToSingle(ba,0);
return f;
}
}
6.3.8
Die Klasse HMIInterface
Das Klasse HMIInterface ist für die NetDDE-Kommunikation mit dem Prozessvisualisierungssystem zuständig und verwendet dafür eine Instanz der Klasse DDELib. Das HMIInterface registriert
die erforderlichen DDE-Varibalen beim DDELib-Objekt und erhält die aktuellen Werte der
Variablen mittels Polling.
Da der Versand der Daten an den DDE-Kommunikationspartner nicht synchron mit dem Empfang der zu sendenden Daten erfolgen kann, wurde ein Sendepuffer mittels Threads realisiert, der
die Daten mit der Methode dde.Poke über das DDELib-Objekt versendet. Eine Semaphore (readyForPoke) ist für die Koordination der PokeThreads zuständig und garantiert, dass die Methode
dde.Poke zur gleichen Zeit nur von einem Thread aufgerufen wird.
6 Implementierung
50
// Poke thread for buffering the dde.poke method calls
class PokeThread
{
private HMIInterface hmi;
private DDELib.CDDEClass dde;
private string Item;
private string val;
public PokeThread(HMIInterface hmi, DDELib.CDDEClass dde, string
Item, string val)
{
this.dde = dde;
this.Item = Item;
this.val = val;
this.hmi = hmi;
}
public void poke()
{
//Waiting for free poke method
while(!hmi.readyForPoke)
{
Thread.Sleep(100);
}
hmi.readyForPoke = false;
dde.Poke(ref Item, ref val);
hmi.threadCount--;
hmi.readyForPoke = true;
}
}
}
6.3.9
Die Klasse DDELib
Diese Klasse wurde als allgemein verwendbare Klasse für die NetDDE-Kommunikation entwickelt. Da das .NET-Framework die DDE-Kommunikation direkt nicht unterstützt und die Implementierung in C# über die Windows-API zu komplex ist, erfolgte die Implementierung als
COM-Objekt in C++ unter Verwendung der ATL-Template-Library und der DDE-ManagementLibrary ddeml.dll.
Als Beispiel ist die Methode Request aufgelistet, die den aktuellen Wert einer Variablen vom
Kommunikationspartner anfordert.
// Request for Data "Item"
STDMETHODIMP CDDE::Request(BSTR* Item, BSTR* Result)
{
_bstr_t i = _bstr_t(*Item);
char szItem1[32];
strcpy(szItem1,i);
HSZ hszItem = DdeCreateStringHandle(idInst, szItem1, 0);
HDDEDATA hData = DdeClientTransaction(NULL,0,hConv,
hszItem,CF_TEXT,XTYP_REQUEST ,TIMEOUT_ASYNC, NULL);
DdeFreeStringHandle(idInst, hszItem);
DdeGetData(hData, (unsigned char *)szResult, 32, 0);
_bstr_t s = _bstr_t(szResult);
*Result = s.copy();
return S_OK;
6 Implementierung
51
}
Eine weitere Möglichkeit ist die Registrierung von Variablen nach dem Observer-Designpattern. Die
Methode AdvStart registriert Variablen beim Kommunikationspartner, der bei Änderungen der
Variablen Telegramme sendet, die durch den Aufruf der Callback-Methode DdeCallback empfangen
werden.
//Register a DDE item on the server to receive the changes (Listener)
STDMETHODIMP CDDE::AdvStart(BSTR* Item)
{
_bstr_t i = _bstr_t(*Item);
char szItem1[32];
strcpy(szItem1,i);
hszItem1 = DdeCreateStringHandle(idInst, szItem1, 0);
HDDEDATA hData = DdeClientTransaction(NULL,0,hConv,
hszItem1, CF_TEXT,XTYP_ADVSTART ,TIMEOUT_ASYNC, NULL);
hszMap[hszItem1] = szItem1;
itemMap[szItem1] = hszItem1;
}
// DDECallback – called if new DDE messages (data) received
HDDEDATA CALLBACK DdeCallback(
UINT uType, // Transaction type
UINT uFmt, // Clipboard data format
HCONV hconv, // Handle to the conversation
HSZ hsz1, // Handle to a string
HSZ hsz2, // Handle to a string
HDDEDATA hdata, // Handle to a global memory object
DWORD dwData1, // Transaction-specific data
DWORD dwData2 // Transaction-specific data
){
switch (uType)
{
case XTYP_ADVDATA:
ihsz = hszMap.find(hsz2);
DdeGetData(hdata, (unsigned char *)szReceived, 32, 0);
valueMap[hsz2] = szReceived;
return (HDDEDATA) DDE_FACK;
default:
return (HDDEDATA) NULL;
}
}
6.3.10
Die Klasse DBInterface
Die Klasse DBInterface realisiert den Datenaustausch mit der Datenbank mittels ADO.NET. Im
Folgenden ist die Methode AddLengthProfile aufgelistet, die in die Tabelle tAuslaufDicke einen
neuen Datensatz einfügt. Es werden der SQL-Datenadapter sqlDataAdapter1 und das Dataset stripProfile1 verwendet.
private System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
private DBInterface.StripProfile stripProfile1;
// Add a new LengthProfile entry in the table tDickeAuslaufEin
6 Implementierung
52
private void AddLengthProfile(string id, string coilNumber, int stripPos,int ThicknessMin,
int ThicknessMax, int ThicknessAvg)
{
DataRow row = stripProfile1.tDickeAuslaufEin.NewRow();
row["ID"] = id;
row["COILNR"] =coilNumber;
row["BANDPOSITION"] = stripPos.ToString();
row["DICKEAUSLAUFMIN"] = ThicknessMin.ToString();
row["DICKEAUSLAUFMAX"] = ThicknessMax.ToString();
row["DICKEAUSLAUFMITTEL"] = ThicknessAvg.ToString();
stripProfile1.tDickeAuslaufEin.Rows.Add(row);
sqlDataAdapter1.Update(stripProfile1);
stripProfile1.tDickeAuslaufEin.Rows.Clear();
}
Die erforderlichen parametrisierten SQL-Aufrufe werden von der Microsoft Visual Studio .NET
Entwicklungsumgebung automatisch generiert und können über Dialoge konfiguriert werden:
sqlInsertCommand1.CommandText = @"INSERT INTO tDickeAuslaufEin(ID, CoilNr, Band
position, DickeAuslaufMin, DickeAuslaufMax, DickeAuslaufMittel) VALUES (@ID,
@CoilNr, @Bandposition, @DickeAuslaufMin, @DickeAuslaufMax,
@DickeAuslaufMittel); SELECT ID, CoilNr, Bandposition, DickeAuslaufMin, DickeAus
laufMax, DickeAuslaufMittel FROM tDickeAuslaufEin";
sqlInsertCommand1.Connection = sqlConnection1;
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ID",
System.Data.SqlDbType.Int, 4, "ID"));
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CoilNr",
System.Data.SqlDbType.VarChar, 8, "CoilNr"));
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter
("@Bandposition",System.Data.SqlDbType.Int, 4, "Bandposition"));
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter
("@DickeAuslaufMin", System.Data.SqlDbType.Real, 4, "DickeAuslaufMin"));
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter
("@DickeAuslaufMax", System.Data.SqlDbType.Real, 4, "DickeAuslaufMax"));
sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter
("@DickeAuslaufMittel", System.Data.SqlDbType.Real, 4, "DickeAuslaufMittel"));
sqlConnection1.ConnectionString = "workstation id=BIG;packet size=4096;integrated
security=SSPI;data source=oppix;pe" +"rsist security info=False;initial catalog=plant";
Bei ADO.NET ist zusammenfassend festzuhalten, dass der Datenaustausch mit Datenbanken
sehr einfach zu implementieren ist. Auf Grund der guten Unterstützung durch die Entwicklungsumgebung ist der Umfang des selbst zu implementierenden Programmcodes sehr gering.
7 Test und Inbetriebnahme
7
7.1.1
53
Test und Inbetriebnahme
Das Testen im Umfeld der Prozessautomatisierung
Das Ziel des Testens eines Softwaresystems besteht darin, die Wechselwirkungen der Systemkomponenten unter realen Bedingungen zu prüfen, möglichst viele Fehler aufzudecken und so
sicherzustellen, dass die Systemimplementierung die Systemspezifikation erfüllt, oder kurz, das
Finden von möglichst vielen Design- und Implementierungsfehlern am Gesamtsystem
([Pomberger und Blaschek, 1996], [Mayr, 2001]).
Bei kontinuierlichen Prozessen wie bei einer Bandverzinkungsanlage, die in der Regel rund um
die Uhr betrieben werden, müssen viele Arbeiten während der laufenden Produktion durchgeführt werden. Nur für größere Wartungs- und Instandhaltungsarbeiten werden so genannte Wartungsschichten eingelegt und die Produktion gestoppt. In machen technischen Prozessen kann der
Prozess bzw. die Produktion nur mit sehr hohem Aufwand gestoppt werden (z.B.: bei Hochöfen
zur Stahlerzeugung oder bei Kraftwerken).
Aus diesen Gründen hat das Testen in der Prozessautomatisierung einen besonders hohen Stellenwert. Oft wird der Softwaretest auch direkt in oder mit der produzierenden Anlage durchgeführt um möglichst reale Bedingungen zu erreichen. Dabei wird eine neue Software oder ein neues System mit echten Daten versorgt, die Ausgänge des Systems wirken aber nicht auf den Prozess sondern werden nur validiert. In SPS-Systemen gibt es dafür auch besondere Vorkehrungen,
die es erlauben, das Steuerungsprogramm online, d.h. während des laufenden Betriebes, zu verändern.
7.1.2
Die Inbetriebnahme im Umfeld der Prozessautomatisierung
Inbetriebnahmen von Softwarepaketen im Bereich der Prozessautomatisierung, insbesondere von
SPS-Steuerungssoftware, stellen eine Herausforderung an das Projektmanagement dar, da bei
größeren Anlagen viele Gewerke beteiligt sind, die untereinander koordiniert werden müssen.
Solche Gewerke sind unter anderem der Maschinenbau, die Medientechnik (z.B.: Hydraulik,
Kühlung), Elektrotechnik sowie die Betriebstechnik.
Ebenfalls schwierig gestaltet sich der Nachweis von Fehlern, da die Software meist erst in Verbindung mit der Anlage ihre volle Funktionalität entfaltet und der Grund eines Fehler oft nicht in
der Software sondern in den nachgeschalteten Sensoren und Aktoren zu finden ist. In der Praxis
muss der Inbetriebnahmetechniker der Automatisierungssysteme die Fehler der anderen Gewerke nachweisen und deren Behebung veranlassen. Das erfordert ein Gesamtverständnis der Anlage sowie Kenntnisse in mehreren Fachbereichen. Dieser Anforderungen werden durch die
Mechatronik abgedeckt.
Die Mechatronik ist eine interdisziplinäre Ingenieurwissenschaft, die mechanische, elektronische
und Daten verarbeitende Komponenten verknüpft, um die Leistungsfähigkeit klassischer Systeme zu verbessern und vollständig neue Funktionen zu realisieren. Neben den klassischen Ingeni-
7 Test und Inbetriebnahme
54
eursdisziplinen rückt die Informationstechnologie in den Vordergrund, ohne die viele technische
Systeme heute nicht mehr realisierbar wären (vgl. [Mechatronik, 2004]).
7.2
Integrationstest der Schnittstelle zum Banddickenmessgerät
Schon in der Anfangsphase des Projektes wurde der Integrationstest der Schnittstelle mit dem
Banddickenmessgerät durchgeführt, da diese Schnittstelle das größte technische Risiko im Projekt
RM-Gateway darstellte.
Für diesen Test wurde der Teil der RM-Gateway Schnittstellensoftware implementiert, der die
TCP/IP-Kommunikation realisiert, kombiniert mit einer GUI für die Datenanalyse und der Möglichkeit manuell Telegramme zu versenden (siehe Abbildung 7.1). Diese Software war als TestKommunikationspartner des Banddickenmessgerätes im Einsatz.
Das Banddickenmessgerät verwendet für die interne Steuerung einen Industrie-PC auf DOSEbene mit einer speziellen Anwendersoftware. Zur Konfiguration des Messgerätes und der externen Schnittstellen werden komplexe Konfigurationsdateien verwendet, deren Dokumentation
vom Hersteller aber nicht veröffentlicht wird. Aus diesem Grund war es erforderlich, die Konfiguration der TCP/IP-Schnittstelle des Banddickenmessgerätes gemeinsam mit einem Servicetechniker der Herstellerfirma aus Erlagen durchzuführen. Die Konfiguration, Inbetriebnahme
und der Integrationstest der Schnittstelle wurde nach zwei Tagen erfolgreich abgeschlossen.
Abbildung 7.1: Testsoftware für TCP/IP-Schnittstelle Banddickenmessgerät
7 Test und Inbetriebnahme
7.3
55
Integrationstest der Schnittstelle zur Prozessvisualisierung
Wie bereits in Kapitel 5 beschrieben, stellte die Realisierung einer DDE-Schnittstelle mit C#.NET
eine besondere Herausforderung dar. Insbesondere ist auch die Geschwindigkeit dieser Schnittstelle ein wichtiges Kriterium.
Der Integrationstest erfolgte mit einer Testinstallation des Prozessvisualisierungssystems Intouch
7.1 und einer für diesen Test vorbereiteten Version der RM-Gateway-Schnittstellensoftware.
Beim ersten Integrationstest konnte die ordnungsgemäße Funktion der Schnittstelle nachgewiesen werden, jedoch traten schwerwiegende Geschwindigkeitsprobleme auf. Bei einem
Belastungstest der DDE-Schnittstelle wurde festgestellt, dass die Übertragung einer Variablen
vom RM-Gateway zum Prozessvisualisierungssystem statt den geplanten 10 ms bis zu einer Sekunde dauerte. Eine Analyse bestätige, dass das Verschulden auf der Seite des RM-Gateway lag.
Die genaue Fehlersuche ergab, dass die Parameter von Methodenaufrufen für die DDEKommunikation im RM-Gateway nicht korrekt waren. Beim zweiten Termin des Integrationstests konnte auch die erforderliche Geschwindigkeit der Schnittstellensoftware nachgewiesen
werden. Erstmals wurden auch aktuelle Daten des Banddickenmessgerätes an das Prozessvisualisierungssystem gesendet und Daten an das Messgerät vorgegeben. Bei diesem Test wurde ein
Designfehler der Schnittstellendefinition der DDE-Schnittstelle (siehe Kapitel 3.4.2) entdeckt.
Durch DDE-Kommunikaionsvariablen, die bidirektional verwendet wurden, entstanden unter
gewissen Umständen endlose Telegrammschleifen (zyklische Telegramme) zwischen Banddickenmessgerät und Prozessvisualisierungssystem, die den Zweck der Aktualisierung von Daten
haben sollten. Durch Auftrennung der Kommunikationsvariablen in jede Kommunikationsrichtung konnte das Problem behoben werden.
7.4
Integrationstest der Datenbankanbindung
Wie in Kapitel 3.4.3 spezifiziert, ist für das Betriebsdatenarchiv eine Microsoft SQL-Datenbank
im Einsatz. Auf Grund der guten Unterstützung durch das Microsoft Visual Studio .NET Entwicklungswerkzeug konnte der Test sehr rasch abgeschlossen werden.
7.5
Inbetriebnahme und Installation
Da die Funktion der einzelnen Schnittstellen und zum Teil deren Zusammenspiel bereits bei den
Integrationstests überprüft wurde, traten bei der Inbetriebnahme der Gesamtsoftware keine besonderen Schwierigkeiten auf.
7 Test und Inbetriebnahme
7.6
56
Erfahrungen
Der Einsatz von C#.NET für die Implementierung der RM-Gateway-Schnittstellensoftware hat
sich bewährt. Üblicherweise werden solche Systeme in C oder C++ implementiert und auf Embedded-Systemen betrieben.
Das Projektumfeld war für den Autor bereits gut bekannt, da er im Rahmen seiner langjährigen
Tätigkeit bei der Firma VOEST-ALPINE Industrieanlagenbau ([VAI, 2004]) im Bereich der Prozessautomatisierung beschäftigt war und auch bei der Planung und Inbetriebnahme von Bandverzinkungsanlagen mitarbeitete. Aus diesem Grund erfolgte die Zusammenarbeit mit den Projektpartnern effizient und ohne besondere Schwierigkeiten.
Wie in vielen Softwareprojekten wurde der Aufwand für die Erstellung der RM-Gateway Schnittstellensoftware unterschätzt. Das lag unter anderem an der Konzeption, Implementierung und
Test der DDE-Kommunikation, die von Microsoft .NET nicht mehr unterstützt wird und den
dafür erforderlichen Work-Around sowie an den erhöhten Anforderungen, die während der Projektphase entstanden sind. Ebenfalls unterschätzt wurde der Aufwand für die Einarbeitung in die
Netzwerkprogrammierung mit C# sowie die Erstellung von Testsoftware für die Simulation der
Kommunikationspartner, damit Tests während der Implementierung durchgeführt werden konnten.
Die Entwicklung der Schnittstellensoftware erfolgte hauptsächliche im Home-Office der familiären
Umgebung. Die damit verbundenen Vor- und Nachteile waren für den Implementierer eine
wertvolle Erfahrung, besonders in Bezug auf Disziplin und Zeiteinteilung. Die örtliche Entfernung zu den Projektpartnern stellte kein Problem dar, da mit modernen Kommunikationsmedien
und den regelmäßigen stattfindenden Besprechungen der Informationsaustausch problemlos
funktionierte.
8 Zusammenfassung
8
57
Zusammenfassung
Durch die Einführung dieses Systems erreicht man einerseits die geforderte Aufzeichnung qualitätsrelevanter Daten im Betriebsdatenarchiv, andererseits die Integration des Banddickenmessgerätes in die Automationsstruktur der Anlage und die Einsparung von manuellen Dateneingaben
durch das Bedienpersonal.
8.1
Erreichte Ziele
Die Implementierung der RM-Gateway-Schnittstellensoftware ist abgeschlossen und das System
ist in der Bandverzinkungsanlage im Einsatz. Die gestellten Anforderungen konnten mit den
eingesetzten Technologien erfüllt werden.
Folgende Ziele konnten erreicht werden:
•
Konzeption und Design des Systems,
•
Realisierung einer lauffähigen Software,
•
Schaffung einer fundierten Basis für die Entwicklung vergleichbarer Systeme.
8.2
Offene Punkte
Wie oben erwähnt, ist die Implementierung des RM-Gateway grundsätzlich abgeschlossen und
entspricht den in Kapitel 3 spezifizierten Anforderungen. In folgenden Punkten kann das System
im Fall der Erstellung einer neuen Version verbessert werden:
8.3
•
Konfigurationsmöglichkeiten: Der Konfigurationsmöglichkeiten sollen wesentlich erhöht
werden.
•
Benutzerschnittstelle: Das Diagnose- und Konfigurationstool besitzt nur minimale Funktionalität und soll erweitert werden.
•
Webbasierte Benutzerschnittstelle: Die Entwicklung eines webbasierten Diagnose- und Konfigurationssystems soll durchgeführt werden.
•
Schnittstellen: Zusätzliche externe Schnittstellen sollen vorgesehen werden.
Resümee und Ausblick
Es ist geplant, das RM-Gateway auch bei anderen Anlagen zu verwenden, die ebenfalls Banddickenmessgeräte der Fa. Radiometrie im Einsatz haben. Da es sich um andere Gerätetypen handelt, ist die Telegrammstruktur der TCP/IP-Schnittstelle unterschiedlich. Das Konzept der
8 Zusammenfassung
58
Schnittstellensoftware erlaubt es mit geringem Programmieraufwand Anpassungen bei der Telegrammstruktur des Banddickenmessgerätes sowie Änderungen bei den anderen Kommunikationsschnittstellen durchzuführen.
Weiters ist vorgesehen, die RM-Gateway-Schnittstellensoftware mit einer webbasierten Konfigurations- und Diagnosemöglichkeit zu versehen, die ähnlich der von handelsüblichen Netzwerkkomponenten aufgebaut ist. Damit kann die Inbetriebnahme und Wartung des Systems flexibel
und ortunabhängig erfolgen. Die Firma Tensor arbeitet auch an einer modularen industrietauglichen Hardwareplattform, auf der das RM-Gateway kostengünstig betrieben werden kann.
Die Aufgabe, Prozessdaten in einer Datenbank zu speichern, erfordert normalerweise einen hohen Aufwand an Individualprogrammierung. Das bei diesem Projekt entwickelte Konzept kann
erweitert und flexibel für diese Aufgaben eingesetzt werden, indem es Daten von verschiedenen
Quellen über Bussysteme bezieht und konfigurierbar in eine Datenbank speichert.
Auch in anderen Disziplinen der Automatisierungstechnik wie beispielsweise in der Gebäudeautomation besteht vermehrt der Wunsch, Gebäudedaten zu erfassen und in Datenbanken zur weitern Analyse, beispielsweise zur Energieoptimierung, zu archivieren. Auch für diese Anwendung
ist der Einsatz eines ähnlichen Konzeptes wie in diesem Projekt erarbeiteten denkbar.
59
Literaturverzeichnis
[ABB, 2004]
ABB. Pulsed Eddy Current Technology. http://www.abb.com/global/abbzh/
abbzh251.nsf!OpenDatabase&db=/global/seapr/seapr035.nsf&v=6312A&e=us&m
=9F2&c=5A9849F2669EAC5CC1256AB5004038BE, Zugriff: 22.04.2004.
[Andritz, 2004]
Andritz. Strip Processing Lines. http://www.andritz.com/de/ANONIDZ64C22099
A91CAD28/rmsp/rmsp-products/rmsp-process-lines.htm, Zugriff: 22.04.2004.
[Beckhoff, 2004]
Beckhoff. New Automation Technology. http://www.beckhoff.at/, Zugriff: 04.05.2004.
[Bolch, 2004]
Gunther Bolch. Universität Erlangen-Nürnberg, Skript zur Prozessautomatisierung.
http://www4.informatik.uni-erlangen.de/Lehre/SS02/V_PA/skript/,
Zugriff:
04.05.2004.
[Bolch und Vollath, 1993]
Bolch, Gunter und Vollath, Martina-Maria. Prozessautomatisierung. 2., überarbeitete und
erweiterte Auflage, B.G. Teubner Stuttgart, Deutschland, 1993.
[Blum, 2003]
Richard Blum. C# Network Programming, Sybex Verlag , Köln, Deutschland, 2003.
[Copadata, 2004]
Copadata. Software for industrial Application. http://www.copadata.de/, Zugriff:
18.05.2004.
[DIN, 1972]
Norm DIN 19233. Automat, Begriffe, Deutsches Institut für Normung e.V., Berlin,
Deutschland, 1972.
[DIN, 1981]
Norm DIN 66201. Prozessrechensysteme, Begriffe, Deutsches Institut für Normung e.V.,
Berlin, Deutschland, 1981.
[Ethereal, 2004]
Ethereal Homepage. http://www.ethereal.com/, Zugriff: 17.05.2004.
60
[Heinzelreiter, 2003]
Johann Heinzelreiter. .NET Architektur. Vorlesungsskriptum, Fachhochschule
Hagenberg, Studiengang "Software Engineering", Hagenberg, Österreich, 2003.
[IEEE, 2004]
IEEE. IEEE Std 754-1985 IEEE Standard for Binary Floating-Point Arithmetic –
Description. http://standards.ieee.org/reading/ieee/std_public/description/busarch/
754-1985_desc.html, Zugriff: 03.06.2004.
[Labview, 2004]
National Instruments. LabView, http://www.labview.net/, Zugriff: 03.06.2004.
[Lau, 2004]
Oliver Lau. Rückwärtsgang COM-Interop-COM aus der .NET-Perspektive. c’t Magazin für
Computertechnik, pp. 208-211, Nr. 10, 2004.
[Mayr, 2001]
Herwig Mayr. Projekt Engineering – Ingenieurmäßige Softwareentwicklung in Projektgruppen,
Carl Hanser Verlag, München Wien, Deutschland, 2001.
[Mechatronik, 2004]
Mechatronik Portal. http://www.mechatronik-portal.de/ Zugriff: 10.05.2004.
[Microsoft, 2004a]
Microsoft. Creating a NetDDE Link in Excel on Windows NT. http://support.microsoft
.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q12
8/4/91.asp&NoWebContent=1, Zugriff: 22.04.2004.
[Microsoft, 2004b]
Microsoft. Dynamic Data Exchange Changes in Visual Basic .NET. http://msdn.
microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbcondynamic
dataexchangechangesinvisualbasicnet.asp, Zugriff: 22.04.2004.
[Microsoft, 2004c]
Microsoft. Das .Windows .NET Framework, http://net.microsoft.at/story.aspx
?id=6775, Zugriff: 06.05.2004.
[Monadjemi, 1993]
Peter Monadjemi. Visual Basic 3.0 für Windows. Markt&Technik Verlag, München,
Deutschland, 1993.
61
[Mono, 2004]
Mono Homepage. http://www.go-mono.com/, Zugriff: 06.05.2004.
[Moses und Novak, 2002]
Daniel Moses und Johannes Novak. C# Programmieren unter .NET. Franzis Verlag,
München, Deutschland, 2002.
[OpenOffice, 2004]
OpenOffice Homepage. http://de.openoffice.org/, Zugriff: 01.06.2004.
[Plate, 2004a]
Jürgen Plate. Grundlagen Computernetze.
netze/netz8.html, Zugriff: 06.05.2004.
http://www.netzmafia.de/skripten/
[Plate, 2004b]
Jürgen
Plate.
Netzwerkprogrammierung,
server/server3.html, Zugriff: 06.05.2004.
http://www.netzmafia.de/skripten/
[Pomberger und Blaschek, 1996]
Pomberger Gustav und Blaschek Günther. Software Engineering. Carl Hanser Verlag
München Wien, Deutschland, 1996.
[Profibus, 2004]
Pofibus Nutzerorganisation. http://www.profibus.com/, Zugriff: 03.06.2004.
[Radiometrie, 1999]
Radiometrie. M100k Connecting. Internes Dokument, Erlangen, Deuschland 1999.
[Rathjen, 2004]
Gerald Rathjen. Austausch von Daten mit DDE und OLE. http://members.aol.com/
gerrathjen/EDV-Verlag/DDEundOLE.htm#Geschichte, Zugriff: 22.04.2004.
[Rechenberg und Pomberger, 1999]
Rechenberg Peter und Pomberger Gustav. Informatik-Handbuch. Carl Hanser Verlag
München Wien, Deutschland, 1999.
[Reliance, 2004]
Reliance Electric Hompage. http://www.reliance.com/, Zugriff: 22.04.2004.
62
[Schröder, 2003]
Norbert Schröder, Intechno Consulting. Process Automation Market 2010,
http://www.intechnoconsulting.com/pdfs/E%20PA2010%20Presse.pdf,
Basel,
Schweiz, 2003
[Siemens, 2004]
Siemens Automation and Drives. http://www.ad.siemens.de/, Zugriff: 18.05.2004.
[Tanenbaum, 2000]
Andrew S. Tanenbaum. Computernetzwerke. Prentice Hall, München, Deutschland,
2000.
[Technomatrix, 2004]
Technomatrix Homepage. http://www.tecnomatix.com/, Zugriff: 18.05.2004.
[Tensor, 2004]
Tensor. Industrielle Elektrotechnik. http://www.tensor.at/, Zugriff: 22.04.2004.
[VAI, 2004]
VOEST-ALPINE Industrieanlagenbau Homepage. http://www.vai.at/, Zugriff:
10.05.2004.
[Volmer, 2004]
Volmer Gauge Homepage. http://www.vollmer-gauge.com/brochures/brochures/Xray%20Gauge%20Brochure-u10.pdf, Zugriff: 11.05.2004.
[Wilson, 1999]
Tom Wilson. PLC based substation automation and SCADA Systems, and selecting a control
system integrator. http://www.pcsutilidata.com/White%20Papers/WEPI%201999
%20Paper.pdf, Zugriff: 22.04.2004.
[Wonderware, 2004]
Invensys-Wonderware Homepage. http://www.wonderware.at/, Zugriff: 18.05.2004.
[Wuppermann, 2004]
Wuppermann. Die Gruppe. http://www.wuppermann.at/gruppe.html, Zugriff:
22.04.2004.