-
Die
vorliegende Erfindung betrifft ein Automatisierungsgerät, das direkt
mit einem TCP/IP-Netzwerk verbunden ist.
-
Das
Standardprotokoll IP (Internet Protocol) definiert ein Verbindungsprotokoll
von Netzwerken auf der Ebene der Netzschicht. Das Standardprotokoll
TCP (Transport Control Protocol) definiert einen Datentransportmechanismus,
der eine Beförderung von
Endgerät
zu Endgerät
garantiert. Diese beiden Protokolle, die in globalen Netzwerken
vom Typ Internet, Intranet oder Extranet weit verbreitet sind, sind
in der vorliegenden Beschreibung unter dem Begriff "TCP/IP-Netzwerk" zusammengefasst.
-
Ein
Automatisierungsgerät
bezeichnet nachfolgend eine programmierbare Steuerung, eine Überwachungs-
und Steuerstation, eine numerische Steuerung oder jedes Gerät, das ein
Anwendungsprogramm enthalten und ausführen kann mit dem Ziel, eine
ganze oder einen Teil einer Automatisierungsanwendung zu überwachen
und/oder zu steuern, die zum Beispiel zum Gebiet der Prozessautomatisierungen,
der Bauautomatisierungen oder der Überwachung/Steuerung der elektrischen
Verteilernetzwerke gehört.
Ein Automatisierungsgerät
kann ebenfalls Metier-Module aufweisen, die auch mit einer Verarbeitungseinheit
versehen sind, um besondere Funktionen zu gewährleisten, die mit einem Automatisierungs-Metier
verbunden sind (wie Wiegen, Regelung, Positionierung, ...), sowie
andere Module wie Eingangs-/Ausgangs-Module. Die Module eines Automatisierungsgeräts sind
miteinander verbunden und synchronisiert über einen internen Kommunikationsbus,
allgemein Rückwandplatinenbus
genannt, der ein optimiertes proprietäres Protokoll für die Eingangs-/Ausgangs-Austauschvorgänge in Echtzeit verwendet.
-
Bei
einem Automatisierungsgerät
ist es bekannt, über
ein Kommunikationsmodul zu verfügen, das
einerseits an den internen Kommunikationsbus des Automatisierungsgeräts angeschlossen
und andererseits mit einem TCP/IP-Netzwerk verbunden ist. Dieses Kommunikationsmodul
stellt ein Gateway zwischen einerseits den internen und proprietären Kommunikationsdiensten
und andererseits dem TCP/IP-Netzwerk her, siehe insbesondere die
Druckschrift
WO99/13388 .
-
Unter
diesen Bedingungen stellt es sich aber als sehr komplex heraus,
die Eigenschaften einer Kommunikation gemäß dem TCP/IP-Protokoll von Endgerät zu Endgerät zwischen
zwei miteinander kommunizierenden Einheiten aufrechtzuerhalten. Das
Gateway eines Netzwerkmoduls unterbricht nämlich den TCP-Datenfluss und
gewährleistet
auch nicht die Transparenz von IP. Man verliert so die Vorteile
bei der Leistung, der Zuverlässigkeit
und der Transparenz, die das TCP/IP-Protokoll verschafft.
-
Außerdem ist
ein Kommunikationssystem in einen Automatisierungsgerät bekannt,
das es ermöglicht,
auf dem Rückwandplatinenbus
der internen Kommunikation Informationsaustauschvorgänge gemäß dem TCP/IP-Kommunikationsprotokoll
durchzuführen.
Um solche Informationen gemäß dem TCP/IP-Kommunikationsprotokoll
untereinander auszutauschen, weisen die Module des Automatisierungsgeräts eine
eigene IP-Adresse und einen TCP/IP-Stapelspeicher auf, der von der
Verarbeitungseinheit dieser Module ausgeführt werden kann. Außerdem weist
das Automatisierungsgerät
ein Netzwerkmodul auf, das an ein externes TCP/IP-Netzwerk und an
den internen Rückwandplatinenbus
angeschlossen ist und es den Modulen des Automatisierungsgeräts ermöglicht,
direkt im TCP/IP-Netzwerk Informationsaustauschvorgänge gemäß dem TCP/IP-Informationsprotokoll über den internen
Rückwandplatinenbus
durchzuführen.
-
Diese
Lösung
verwendet aber den internen Rückwandplatinenbus
des Automatisierungsgeräts, um
die TCP/IP-Kommunikation
weiterzuleiten, was manchmal für
die Leistungen der Echtzeitkommunikationen schädlich sein kann, die mit der
Automatisierungsanwendung verbunden sind, und außerdem die Verwendung eines
dedizierten Netzwerkkopplers erfordert.
-
Es
ist das Ziel der Erfindung, ein Automatisierungsgerät vorzuschlagen,
das einen direkten Zugriff zum TCP/IP-Protokoll für Austauschvorgänge in einem
TCP/IP-Netzwerk
hat, ohne auf ein Gateway auf der Ebene der Anwendungsschicht zurückzugreifen,
das sich als teuer erweisen kann. Dank des TCP/IP-Protokolls kann
das Automatisierungsgerät sich
direkt mit Firmeninformationssystemen (ERP Enterprise Resource Planning,
MES Manufacturing Execution System) verbinden und kann die Protokolle
und die Architekturen des Web nutzen, wie zum Beispiel die Standards
UDP, HTTP, XML, WAP, FTP, SMTP, SNMP, DHCP, DNS, usw. .... Außerdem schlägt die Erfindung
vor, die TCP/IP-Kommunikation direkt in der Zentraleinheit des Automatisierungsgeräts zu verwalten,
ohne über
den Rückwandplatinenbus
zu gehen, und dabei die Beherrschung der verschiedenen Zuordnungen
der Zentraleinheit beizubehalten, damit die Kommunikationen über das TCP/IP-Netzwerk
nicht den Echtzeitbetrieb des Anwendungsprogramms stören, das
die Überwachung/Steuerung
der Automatisierungsanwendung durchführt. Außerdem kann der Rückwandplatinenbus
vorteilhafterweise für
die Austauschvorgänge vom
Typ Eingänge/Ausgänge oder
vom Typ Echtzeitmitteilungen (zum Beispiel Reflex-Mitteilungen)
des Automatisierungsgeräts
reserviert sein.
-
Hierzu
beschreibt die Erfindung ein Automatisierungsgerät mit einer Zentraleinheit,
die mindestens einen Speicher besitzt, der ein Echtzeit-Betriebssystem
und ein Anwendungsprogramm enthält, das
die Aufgabe hat, Überwachungs-
oder Steuerfunktionen in einer Automatisierungsanwendung durchzuführen. Das
Automatisierungsgerät
weist einen TCP/IP-Netzwerk-Treiber
auf, der direkt in die Zentraleinheit integriert ist, ohne über einen
Rückwandplatinenbus
zu gehen, wobei das Betriebssystem der Zentraleinheit ein Kommunikationsverwaltungsmodul über das
TCP/IP-Netzwerk und eine Regelungstask aufweist, die die Aufgabe
hat, die Ausführung
des Kommunikationsverwaltungsmoduls den Eigenschaften der Automatisierungsanwendung
unterzuordnen, um den Betrieb des Anwendungsprogramms nicht zu stören.
-
Gemäß einer
Besonderheit, wenn die Ausführung
des Anwendungsprogramms im periodischen Modus ist, weist die Regelungstask
Validierungsmittel auf, die es ermöglichen, den Betrieb des Kommunikationsverwaltungsmoduls
zwischen dem Ende eines Zyklus des Anwendungsprogramms und dem Beginn
des folgenden Zyklus zu autorisieren. Außerdem weist die Regelungstask,
wenn die Ausführung
des Anwendungsprogramms im zyklischen Modus ist, Validierungsmittel
auf, um am Ende eines Zyklus des Anwendungsprogramms den Betrieb
des Kommunikationsverwaltungsmoduls während einer von einem Benutzer
parametrierbaren Dauer zu autorisieren.
-
Gemäß einer
weiteren Besonderheit weist das Kommunikationsverwaltungsmodul ein
erstes Untermodul auf, das eine Speicherzone nutzt, um übertragene
oder für
das Anwendungsprogramm bestimmte Daten zu speichern. Das Kommunikationsverwaltungsmodul
weist auch ein zweites Untermodul auf, das eine Speicherzone nutzt,
um übertragene
oder für
das TCP/IP-Netzwerk bestimmte Daten zu speichern.
-
Gemäß einer
weiteren Besonderheit überträgt das erste
Untermodul des Kommunikationsverwaltungsmoduls die vom Automatisierungs-Anwendungsprogramm
kommenden Daten zum zweiten Untermodul des Kommunikationsverwaltungsmoduls, um
eine über
das TCP/IP-Netzwerk übertragene
Mitteilung zu erstellen.
-
Gemäß einer
weiteren Besonderheit überträgt das zweite
Untermodul des Kommunikationsverwaltungsmoduls die für die vom
TCP/IP-Netzwerk kommenden Mitteilungen repräsentativen Informationen zum
ersten Untermodul des Kommunikationsverwaltungsmoduls, um vom Anwendungsprogramm ausgewertet
zu werden.
-
Die
für die
vom TCP/IP-Netzwerk empfangenen Mitteilungen repräsentativen
Informationen sind insbesondere Aktualisierungsbefehle des Anwendungsprogramms,
Befehle zur Veränderung
der Ausführungsparameter
des Anwendungsprogramms, dessen Kohärenzverwaltung vom Benutzer
gewährleistet
werden muss. In gleicher Weise sind die vom ersten Untermodul gespeicherten
Daten, die vom Anwendungsprogramm kommen, insbesondere Zustandsangaben
des Betriebs der Automatisierung, deren Kohärenzverwaltung durch den Benutzer
gewährleistet
werden muss.
-
Gemäß einer
weiteren Besonderheit führt der
TCP/IP-Netzwerk-Treiber
eine Routingprozedur der vom TCP/IP-Netzwerk empfangenen Mitteilungen durch,
die auf Prioritätsebenen
basiert, die in der IP-Adressierung enthalten sind.
-
Die
Erfindung mit ihren Merkmalen und Vorteilen wird nun ausführlich unter
Bezugnahme auf die beiliegenden Zeichnungen beschrieben. Es zeigen:
-
1 das
Schaltbild einer Kommunikationsarchitektur eines Automatisierungsgeräts gemäß dem Prinzip
der Erfindung,
-
2 schematisch
eine Architektur eines solchen Automatisierungsgeräts.
-
Das
erfindungsgemäße Automatisierungsgerät enthält eine
von einem Treiber (40) (englisch: driver) überwachte
Netzverbindung, die das TCP/IP-Protokoll unterstützt. Das Automatisierungsgerät weist
in bekannter Weise eine Zentraleinheit (1) auf, die mindestens
einen Prozessor (5) und einen Speicherbus (101)
für den
Austausch mit einem Arbeitsspeicher (3) und mit einem Festspeicher
(2) enthält.
Das Automatisierungsgerät
weist ebenfalls einen internen Kommunikationsbus (100),
in der vorliegenden Beschreibung Rückwandplatinenbus genannt,
ein Eingangs-/Ausgangs-Verwaltungsprogramm (21), sowie
ein Echtzeit-Mitteilungverarbeitung-Verwaltungsprogramm (23)
auf, wobei diese Verwaltungsprogramme an den Rückwandplatinenbus (100)
des Automatisierungsgeräts
angeschlossen sind. Der Festspeicher (2) enthält das Herstellungsprogramm
(10) oder Betriebssystem des Automatisierungsgeräts, das
die Aufgabe hat, die Ausführung
eines Anwendungsprogramms (20) oder Benutzerprogramms zu überwachen
und zu steuern, das üblicherweise
im Arbeitsspeicher (3) des Automatisierungsgeräts gespeichert
ist. Es wird daran erinnert, dass zur Überwachung und/oder Steuerung
einer Automatisierungsanwendung das Anwendungsprogramm (20)
Eingangs-/Ausgangsdaten verarbeitet, deren Übertragung vom Eingangs-/Ausgangs-Verwaltungsprogramm
(21) durchgeführt
wird, und Kopplungsdaten mehrerer Geräte verwaltet, deren Übertragung
durch das Echtzeit-Mitteilungsverarbeitung-Verwaltungsprogramm
(23) durchgeführt wird.
Erfindungsgemäß weist
das Automatisierungsgerät
einen TCP/IP-Netzwerk-Treiber (40) auf, der direkt über einen
spezifischen Softwarebus (102) in die Zentraleinheit (1)
integriert ist, ohne Verwendung des Rückwandplatinenbusses (100),
und der es ermöglicht,
das Automatisierungsgerät
mit dem TCP/IP-Netzwerk (4) zu verbinden.
-
Das
Betriebssystem (10) des Automatisierungsgeräts weist
ebenfalls einen Scan-Manager (11) auf, der die Aufgabe
hat, das Senden von Zyklusanfangssignalen (111) und Zyklusendesignalen (110)
des Anwendungsprogramms (20) zu erzeugen. Diese Signale
werden an das Eingangs-/Ausgangs-Verwaltungsprogramm
(21) und an das Echtzeit-Mitteilungsverarbeitung-Verwaltungsprogramm (23)
gesendet, um sie mit dem Ablauf des Anwendungsprogramms (20)
zu synchronisieren.
-
Erfindungsgemäß weist
das Betriebssystem (10) des Automatisierungsgeräts ebenfalls
ein Verwaltungsmodul (30) der Kommunikationen mit dem TCP/IP-Netzwerk
(4) und eine Regelungstask (12) dieses Moduls
(30) auf.
-
Das
Kommunikationsverwaltungsmodul (30) stellt die Schnittstelle
zwischen einerseits dem Anwendungsprogramm (20), das die
Funktionen der Automatisierungs-Überwachung/Steuerung
ausführt, und
andererseits dem TCP/IP-Netzwerk (4) her. Diese Software
besteht aus zwei Untermodulen (31, 32).
-
Ein
erstes Untermodul (31) enthält Daten, die leicht vom Anwendungsprogramm
(20) ausgewertet werden können, da sie kohärent und
mit dem Format der Objekte kompatibel sind, die vom Anwendungsprogramm
verwendet werden. Ihre Auswertung impliziert also keine zusätzliche
Verarbeitung, die die Echtzeitleistungen des Systems verschlechtern könnte. Außerdem teilen
sich das Anwendungsprogramm (20) und das Untermodul (31)
die gleichen Speicherzonen im Arbeitsspeicher (3). Diese
Daten sind zum Beispiel Verarbeitungsergebnisse des Anwendungsprogramms,
wie Statusdateien, Sollwerte, Diagnoseinformationen usw.
-
Ein
zweites Untermodul (32) empfängt die Nachrichten vom Netzwerk
(4), die nicht für
das Echtzeit-Mitteilungsverarbeitung-Verwaltungsprogrammmodul
(23) bestimmt sind. So wird eine Routingprozedur vom Treiber
(40) durchgeführt,
um die Echtzeitmitteilungen, die für das Verwaltungsprogramm (23)
bestimmt sind, und die anderen Kommunikationsmitteilungen zu unterscheiden, die
für das
Modul (30) bestimmt sind. Gemäß einer Ausführungsform basiert
diese Routingprozedur auf der Verwendung eines gegebenen proprietären Ports,
der für
die Echtzeitnachrichtenübermittlung
reserviert ist, die auf dem TCP/IP zirkuliert. Gemäß einer
anderen Ausführungsform
basiert diese Routingprozedur auf Prioritätsebenen, die in der IP-Adressierung
enthalten sind und die gerade auf der IETF-Ebene (Internet Engineering
Task Force) standardisiert werden, zum Beispiel im Protokoll IPv6.
Zum Beispiel könnte
die Umleitung auch ausgehend vom verwendeten Anwendungsprotokoll
ausgeführt
werden; die Protokolle des Web würden
dann zum Untermodul (32) für den Empfang der Mitteilungen
vom Netzwerk (4) geleitet.
-
Das
Untermodul (32) stellt über
einen Arbeitsspeicher (36) die Daten, die es empfängt, in
einem für
das Untermodul (31) verständlichen Format dar, das sie
in Daten umsetzt, die vom Anwendungsprogramm (20) auswertbar
sind. Wenn eine Mitteilung für
das Kommunikationsverwaltungsmodul (30) bestimmt ist, wird
sie über
die Verbindung (35) zum zweiten Untermodul (32)
geschickt. Die Mitteilung wird zuerst im Speicher (36)
gespeichert. Das zweite Untermodul (32) entnimmt anschließend die
Informationen aus der Mitteilung und überträgt sie an das erste Untermodul
(31) zur Verarbeitung. Gegebenenfalls können diese Informationen in
einem Zwischenpufferspeicher (33) gespeichert werden, um
nicht verloren zu gehen, wenn die Ausführung des Kommunikationsverwaltungsmoduls
(30) unterbrochen wird. Das erste Untermodul (31)
führt anschließend die
Befehle aus, die für
die aus der eingehenden Mitteilung entnommenen Informationen repräsentativ sind.
Zum Senden einer Mitteilung oder für die Antwort auf eine eingehende
Mitteilung, sendet das erste Untermodul (31) umgekehrt
die Informationen, die es empfangen hat, wie durch den Pfeil (34)
dargestellt, zum zweiten Untermodul (32). Das zweite Untermodul
(32) erstellt dann ausgehend von den vom Modul (31)
empfangenen und in seinem Speicher (36) gespeicherten Informationen
eine Mitteilung gemäß dem TCP/IP-Protokoll.
-
Erfindungsgemäß ist das
Kommunikationsverwaltungsmodul (30) eine Hintergrundanwendung, d.h.
dass seine Ausführung
einer niedrigere Priorität hat
als die Priorität
des Anwendungsprogramms bezüglich
der Verwendung der Ressourcen des Automatisierungsgeräts.
-
Hierzu
weist das Betriebssystem (10) eine Regelungstask (12)
des Kommunikationsverwaltungsmoduls (30) auf. Diese Regelungstask
(12) verwaltet über
eine Verbindung (120) die Zuweisungszeit der Zentraleinheit
und die Zuteilung der Speicherressourcen, die dem Kommunikationsverwaltungsmodul
(30) dediziert sind, damit die Ausführung des Anwendungsprogramms
(20) nicht durch die Hintergrundausführung des Kommunikationsverwaltungsmoduls
(30) gestört
wird. Erfindungsgemäß schickt
die Regelungstask (12) Signale über die Verbindung (120)
zum Kommunikationsverwaltungsmodul (30), um einerseits
seine Ausführung
zu validieren oder zu sperren, und um andererseits die Speicherressourcen
und die Zuweisungszeit der Zentraleinheit (1) der Ausführung der
Anweisungen des Kommunikationsverwaltungsmoduls (30) zuzuteilen.
-
Wenn
der Betrieb des Anwendungsprogramms (20) periodisch ist,
wird jeder Zyklusbeginn des Anwendungsprogramms erst nach einer
bestimmten Zeitperiode ausgelöst.
Diese Periode des Zyklus des Anwendungsprogramms (20) wird
allgemein vom Benutzer in Abhängigkeit
vom Typ der zu überwachenden
Automatisierungsanwendung gewählt.
Bei einem periodischen Betrieb validiert die Regelungstask (12)
die Ausführung
des Kommunikationsverwaltungsmoduls (30) durch ein erstes
Signal eines bestimmten Pegels, das auf der Verbindung (120)
geliefert wird, zwischen einerseits dem Signal des Endes eines Zyklus
(110) und andererseits dem Signal (111) des Beginns
des folgenden Zyklus des Anwendungsprogramms (20), die
vom Scan-Manager
(11) erzeugt und an das Eingangs-/Ausgangs-Verwaltungsprogramm
(21) und das Echtzeit-Mitteilungsverarbeitung-Verwaltungsprogramm (23)
geschickt werden. Während
der Ausführung
eines Zyklus des Anwendungsprogramms (20) sperrt die Regelungstask
(12) die Ausführung
des Kommunikationsverwaltungsmoduls (30) durch einen zweiten
Signalpegel, der auf der Verbindung (120) übertragen
wird. Die Sperrung besteht aus einem Versetzen der Ausführung der
Kommunikationsverwaltung in den Bereitschaftszustand, so dass, wenn
der erste Validierungssignalpegel erneut auf der Verbindung (120)
vom Kommunikationsverwaltungsmodul (30) empfangen wird,
die Ausführung
des Kommunikationsverwaltungsmoduls (30) dort wieder einsetzt,
wo sie unterbrochen wurde. So ist die Task (12) immer mit
den Eingangs-/Ausgangs-Austauschvorgängen des Automatisierungsgeräts synchronisiert.
-
Wenn
die Ausführung
des Anwendungsprogramms (20) nicht periodisch sondern zyklisch
ist, d.h. wenn der Beginn eines Zyklus des Anwendungsprogramms nicht
mit dem Auslösen
einer bestimmten Periode verbunden ist, sondern vom Ende des vorhergehenden
Zyklus abhängt,
validiert die Regelungstask (12) die Ausführung des
Kommunikationsverwaltungsmoduls (30) durch ein Signal auf
der Verbindung (120) während
einer bestimmten Zeitspanne am Ende eines Zyklus des Anwendungsprogramms. Diese
dem Modul (30) dedizierte Zeitspanne wird ursprünglich standardmäßig festgelegt,
der Benutzer hat aber vorteilhafterweise die Möglichkeit, sie zu parametrieren,
um sie zu optimieren, und gleichzeitig dafür zu sorgen, dass die Ausführung des
Anwendungsprogramms (20) nicht durch die Ausführung des
Kommunikationsverwaltungsmoduls (30) gestört wird.
Der Beginn des nächsten
Zyklus des Anwendungsprogramms (20) wird dann erst ausgelöst, wenn
die dem Modul (30) dedizierte Dauer abgelaufen ist oder
wenn das Modul (30) keine Task mehr auszuführen hat.
-
Der
Parametrierungswert dieser Dauer wird vom Benutzer zum Beispiel
in Abhängigkeit
von den Bedürfnissen
der Automatisierungsanwendung bestimmt.
-
Es
ist klar, dass das Kommunikationsverwaltungsmodul (30)
und die entsprechende Regelungstask (12) es ermöglichen,
das Automatisierungsgerät mit
einer Kommunikationsfunktion mit einem TCP/IP-Netzwerk (4)
zu versehen, ohne die Echtzeitausführung des Anwendungsprogramms
der Automatisierung zu stören
und ohne den Rückwandplatinenbus
des Automatisierungsgeräts
zu verwenden. So kann ein mit dem TCP/IP-Netzwerk (4) des
Automatisierungsgeräts
gemäß der Erfindung
verbundenes Informationssystem direkt auf Informationen des Automatisierungsgeräts zugreifen,
ohne es zu stören,
zum Beispiel mittels eines Browsers vom Typ Internet, sofern das
Kommunikationsverwaltungsmodul (30) das entsprechende Protokoll
unterstützt.
-
Es
muss den Fachleuten klar sein, dass die vorliegende Erfindung Ausführungsmodi
in vielen anderen spezifischen Formen erlaubt, ohne sich vom beanspruchten
Anwendungsgebiet der Erfindung zu entfernen. Folglich müssen die
vorliegenden Anwendungsmodi als Veranschaulichung angesehen werden,
können
aber auf dem durch den Schutzbereich der beiliegenden Ansprüche definierten
Gebiet verändert
werden, und die Erfindung darf nicht auf die oben angegebenen Einzelheiten
beschränkt
werden.