-
Die
Erfindung betrifft ein Verfahren zum Übertragen von Datenpaketen
auf einer Datenübertragungsstrecke
zwischen zwei Kommunikationsteilnehmern und ein Automatisierungssystem
mit zwei über
eine Datenübertragungsstrecke
verbundenen Kommunikationsteilnehmer, die jeweils eine Anschalteinheit
aufweisen.
-
In
Automatisierungssystemen zum Steuern von Maschinen muss sichergestellt
sein, dass auch dann, wenn das Automatisierungssystem ausfällt, keine
Gefahr für
Mensch und Umwelt besteht. Automatisierungssysteme arbeiten deshalb
in der Regel nach dem sog. Fail-Safe-Prinzip, gemäß dem das Automatisierungssystem
beim Ausfall wichtiger Komponenten in einen sicheren Zustand übergeht.
Wesentliche Anforderungen an das Automatisierungssystem beim Ausführen von
sicherheitsrelevanten Steuerfunktionen nach dem Fail-Safe-Prinzip
sind dabei, dass die Prozessdaten der Maschinensensoren beim Ausführen der
Sicherheitssteuerfunktionen aktuell und nicht verfälscht verarbeitet
werden und den Maschinenaktoren immer ein sicherer Prozesszustand
angezeigt wird.
-
Bei
Automatisierungssystemen ist die Anzahl der sicherheitsrelevanten
Steuerfunktionen in der Regel jedoch wesentlich geringer als die
Anzahl der nicht-sicherheitsrelevanten Steuerfunktionen, die zum
Aufrechterhalten des Normalbetriebs im Automatisierungssystem dienen.
Um zu gewährleisten, dass
die Funktionalität
von sicherheitsrelevanten Steuerfunktionen nicht durch nicht-sicherheitsrelevante
Steuerfunktionen im Automatisierungssystem beeinflusst wird, sind
die sicherheitsrelevanten Steuerfunktionen herkömmlicherweise in einem eigenständigen,
gegen die nicht-sicherheitsrelevanten Steuer funktionen abgeschotteten
Sicherheitsprogramm zusammengefasst.
-
Eine
vollständige
Trennung von sicherheitsrelevanten und nicht-sicherheitsrelevanten
Steuerfunktionen wird erreicht, wenn das Sicherheitsprogramm auf
einem eigenständigen
Automatisierungsrechner ausgeführt
wird, der oft auch mit einer eigenen Verdrahtung mit den Not-Aus-Schaltern,
Lichtschranken und weiteren Komponenten, die die Maschinensicherheit
gewährleisten,
verbunden ist. Um diesen zusätzlichen
Hardware-Aufwand
durch einen zusätzlichen
Automatisierungsrechner im Automatisierungssystem zu reduzieren,
sind bereits Automatisierungssysteme bekannt, bei denen ein Sicherheitsprogramm
und ein nicht-sicherheitsrelevantes Steuerprogramm auf denselben
Hardware-Komponenten durch Erweiterung des nicht-sicherheitsrelevanten Steuerprogramms
um einen sogenannten Sicherheitslayer realisiert werden.
-
Moderne
Automatisierungssysteme sind in der Regel dezentral ausgelegt, wobei
die Prozessperipherie, d. h. die Sensor- bzw. Aktorebene mit den Steuerungsrechnern über lokale
Netzwerke, vorzugsweise ein Feldbussystem kommunizieren. Zur Maschinensteuerung
werden von den Steuerungsrechnern die Eingangssignale der Steuerprogramme über den
Feldbus von der Prozessperipherie eingelesen und nach Echtzeitverarbeitung
durch den Steuerungsrechner die Ausgangssignale über den Feldbus an die Prozessperipherie
ausgegeben. Um über
den Feldbus des Automatisierungssystems gleichzeitig auch Prozesssignale
eines Sicherheitsprogramms übertragen
zu können,
ist das Feldbussystem um einen sogenannten Sicherheitslayer erweitert,
der die Wahrscheinlichkeit, dass durch eine Störung die Übertragung der Daten zwischen
der Prozessperipherie und den Steuerungsrechnern so verfälscht wird,
dass diese Verfälschung
nicht mehr erkannt wird, auf ein zulässiges Mindestmaß minimiert,
so dass der Feldbus auch zur Übertragung
von sicherheitsrelevanten Daten genutzt werden kann.
-
Solche
zusätzlichen
Sicherheitslayer bei Feldbussystemen beinhalten in der Regel eine
zusätzliche
Adressbeziehung zwischen den beiden Kommunikationsteilnehmern am
Feldbus, um eine eindeutige Zuordnung zu ermöglichen. Weiterhin ist das
zwischen den Kommunikationsteilnehmern übertragene sicherheitsrelevante
Datenpaket mit einem zusätzlichen
Prüfzeichen
versehen, dass aus den übertragenen
Prozessdaten bzw. Adressen berechnet wird, um eine Datenverfälschung
zuverlässig
erkennen zu können.
Um die korrekte Reihenfolge der zu übertragenen sicherheitsrelevanten
Prozessdaten und deren rechzeitiges Eintreffen bei den Kommunikationsteilnehmern überprüfen zu können, ist
das sicherheitsrelevante Datenpaket außerdem in der Regel mit einer
fortlaufenden Sequenznummer versehen. Die Sequenznummer wird dabei
in der Regel einem vorgegebenen Nummernblock entnommen, der nach
dem vollständigen
Durchlauf dann wieder zurückgesetzt
wird.
-
Ein
bekanntes Automatisierungssystem, bei dem das Steuerprogramm und
das Sicherheitsprogramm auf denselben Hardware-Komponenten realisiert werden können, ist
das Simatic-System der Firma Siemens. Als Feldbussystem wird dabei
das Profibus-System
eingesetzt, das um ein sogenanntes Profisafe-Protokoll zur Übertragung
von sicherheitsrelevanten Datenpaketen erweitert ist. Die Erweiterung
des Automatisierungssystems mit dem Sicherheitsprogramm ist jedoch
nur im Rahmen dieser genau festgelegten Konfigurations- und Datenverarbeitungsumgebung
möglich.
-
In
Automatisierungssystemen wird jedoch neben den bekannten proprietären Feldbusprotokollen
zunehmend das Ethernet-Protokoll
zur Übertragung
von Prozesssignalen genutzt. Das Ethernet-Protokoll stellt in der
Bürokommunikation
die am weitesten verbreitete Technologie dar, mit der in lokalen
Kommunikationsnetzen Daten mit hohen Geschwindigkeiten übertragen
werden. Aufgrund der Vorteile des Ethernet-Konzept bei der Nutzung
von Standard-Hardware- und -Software-Komponenten sowie die Möglichkeit
bei einfacher Vernetzungstechnologie hohe Datenübertragungsraten zu erreichen, werden
Ethernet-Feldbussysteme
zunehmend auch in der industriellen Fertigung zum Datenaustausch zwischen
der Aktor-Sensor-Ebene und den Steuerungsrechnern eingesetzt.
-
Wünschenswert
wäre es
deshalb auch Ethernet-Feldbussysteme mit einem Sicherheitslayer ausstatten
zu können,
um so neben herkömmlichen Steuerprogrammen
auch Sicherheitsprogramme auf dem Ethernet-Feldbus ausführen zu
können.
Ethernet-Netzwerke sind aber in der Regel mithilfe sogenannter Switches
strukturiert, um Datenkollisionen auf dem Netzwerk zu vermeiden.
Switches sind Datenpaketvermittlungsknoten mit mehreren Ein- und Ausgängen, wobei
das auf einem Eingang ankommende Datenpaket ausschließlich auf
den Ausgang durchgeschaltet wird, welcher die Empfängerstation kennt.
Bei der Datenpaketvermittlung über
Switches in Ethernet-Netzwerk treten jedoch Zeitverzögerungen
auf, da das vom Switch auf dem einen Eingang empfangene Datenpaket
zwischengespeichert und dann erst auf den gewünschten Ausgang durchgeschaltet
wird.
-
Durch
die verzögerte
Weitergabe der Datenpakete in mit Switches ausgestatteten Ethernet
besteht bei den herkömmlichen
Sicherheitslayern, wie dem Profisafe-Protokoll aber die Gefahr,
dass ein fehlerhafter Prozesszustand auftritt. Da die Sicherheits-Datenpakete
mit einer fortlaufenden Sequenznummer aus einem Nummernblock mit
einer vorgegebenen Anzahl von Nummern versehen sind, kann durch
die Zwischenspeicherung der Datenpakete im Switch die Sequenznummer überlaufen,
was dann dazu führen
kann, dass falsche Sicherheitsdaten übertragen werden. Beim Profisafe-Protokoll
z. B. werden die Sicherheitsdatenpakete mit einer 8-Bit-Sequenz-Nummer übertragen,
d. h. ein Datenpaket, bei dem sich die Prozessdaten nicht ändern, wiederholt
sich alle 255 Zyklen bei der Datenübertragung im Automatisierungssystem,
da dann die Sequenznummer überläuft, wobei
0 eine nicht erlaubte Sequenznummer ist. In der Konsequenz kann
dann z. B. ein Not-Aus-Schalter nicht rechtzeitig erkannt oder ein
Maschinenschutz nicht rechtzei tig abgeschaltet und somit kein sicherer
Prozesszustand der Maschinen im Automatisierungssystem gewährleistet
werden.
-
Aus
der WO 99/49373 ist weiter ein Verfahren zum Betreiben eines Automatisierungssystems bekannt,
bei dem fehlersichere Informationen zyklisch mit einem Sicherheitsprotokoll
ausgetauscht werden. Um Daten, die bei mehrfacher Übertragung unverändert bleiben,
nur einmal übertragen
zu müssen,
sind die Datenpakete in einen statischen und einen dynamischen Teil
aufgeteilt worden, wobei das statische Datenpaketteil nur in einer
Initialisierungsphase zwischen den Kommunikationsteilnehmern am
Feldbussystem übertragen
wird. Der statische Datenpaketteil bildet dabei den Startwert zur
Prüfzeichenberechnung
des dynamischen Datenpaketteils. Das Ausbleiben eines neuen Datenpakets
innerhalb einer vorgegebenen Toleranzzeit wird dabei als Fehlersituation
gewertet. Bei dem Einsatz eines solchen Sicherheitslayers mit zyklischer
Datenpaketübertragung
auf einem Ethernet-Netzwerk mit Switches besteht weiterhin die Gefahr
eines fehlerhaften Prozesszustands durch die verzögerte Weitergabe
der Datenpakete durch den Switch. Außerdem muss auf eine genaue
Einhaltung der zeitlichen Rahmenbedingungen geachtet werden.
-
Aufgabe
der vorliegenden Erfindung ist es, ein Verfahren zum Übertragen
von Datenpaketen auf einer Datenübertragungsstrecke
zwischen zwei Kommunikationsteilnehmern und ein zugehöriges Automatisierungssystem
bereitzustellen, die gewährleistet,
dass Prozesssignale zum Ausführen
von sicherheitsrelevanten Steuerfunktionen aktuell und nicht verfälscht verarbeitet
werden und den Aktoren des Automatisierungssystems immer ein sicherer Prozesszustand
angezeigt wird.
-
Diese
Aufgabe wird erfindungsgemäß mit einem
Verfahren gemäß Anspruch
1 und einem Automatisierungssystem gemäß Anspruch 12 gelöst. Bevorzugte
Weiterbildungen sind in den abhängigen Ansprüchen angegeben.
-
Gemäß der Erfindung
wird zum Übertragen von
Datenpaketen auf einer Datenübertragungsstrecke
zwischen zwei Kommunikationsteilnehmern in einem Automatisierungssystem
jedes Datenpaket mit einem Prüfzeichen
versehen, das aus den weiteren Daten des Datenpakets berechnet wird,
wobei als Startwert zur Berechnung des Prüfzeichens für ein an den anderen Kommunikationsteilnehmer
zu sendendes Datenpaket das Prüfzeichen
des letzten von dem anderen Kommunikationsteilnehmer empfangenen Datenpakets
verwendet wird.
-
Mit
der erfindungsgemäßen Vorgehensweise besteht
die Möglichkeit,
auch bei Automatisierungssystemen deren Datenübertragung über einen Ethernet-Feldbus
ausgeführt
wird, der zudem Switches als Datenpaketvermittlungsknoten enthalten
kann, Steuerungsprogramme mit einem Sicherheitslayer zu erweitern,
der die Übertragung
von sicherheitsrelevanten Daten gewährleistet. Durch das Übernehmen
des Prüfzeichens,
das im letzten empfangenen Datenpaket enthalten ist, als Startwert
zur Berechnung des Prüfzeichens
des nächsten
zu sendenden Datenpakets wird nämlich
verhindert, dass wie beim Profisafe-Protokoll in einer Datenpaketfolge sich
die Datenpakete identisch wiederholen können. Es besteht somit keine
Gefahr, dass dann, wenn bei der Datenübertragung die Datenpakete
z. B. im Ethernet-Netzwerk durch Switches zwischengespeichert werden, aufgrund
von Vertauschungen Datenpakete nicht richtig erkannt werden. Durch
die erfindungsgemäße fortlaufende
dynamische Erzeugung der Prüfzeichen treten
innerhalb einer Datenpaketfolge keine identischen Datenpakete auf.
-
Gemäß einer
ersten bevorzugten Ausführungsform
wird die Korrektheit eines von einem Kommunikationsteilnehmer empfangenes
Datenpaket überprüft, indem
das Prüfzeichen
des empfangenen Datenpakets berechnet und mit dem in dem empfangenen
Datenpaket enthaltenen Prüfzeichen
verglichen wird, wobei zur Berechnung das Prüfzeichen des letzten gesandten
Datenpakets als Startwert genommen wird. Mit dieser Auslegung des
Sicherheitslayers kann auf die Verwendung von Sequenznummern in den
Sicherheitsdatenpaketen, wie sie beim Profisafe-Protokoll notwendig
sind, um eine korrekte Datenpaketabfolge zu erkennen, verzichtet
werden. Die korrekte Datenpaketabfolge kann nämlich vom erfindungsgemäßen Kommunikationsteilnehmer
direkt aus den übermittelten
Prüfzeichen
abgeleitet werden, in dem der Startwert des Prüfzeichens bestimmt wird, der
wiederum dem empfangenden Kommunikationsteilnehmer vorliegt.
-
Gemäß einer
weiteren bevorzugten Ausführungsform
wird die Datenkommunikation im erfindungsgemäßen Sicherheitslayer so ausgelegt,
dass ein Kommunikationsteilnehmer als Initiator der Datenübertragung
auftritt und zu Beginn einer Datenübertragung zwischen den beiden
Kommunikationsteilnehmern ein Identifizierungsdatenpaket zum anderen
Kommunikationsteilnehmer überträgt, wobei vorzugsweise
als Startwert des Prüfzeichens
für das Identifikationsdatenpaket
ein fester Wert oder eine Kennung des anderen Kommunikationsteilnehmers verwendet
wird. Mit dieser Vorgehensweise kann zuverlässig ein Datenaustausch von
sicherheitsrelevanten Daten im Automatisierungssystem nach einer Kommunikationsunterbrechung
gewährleistet
werden. Bevorzugt ist es dabei weiterhin als Kennung im versandten
Identifizierungsdatenpaket ein Datum zur Identifizierung des anderen
Kommunikationsteilnehmers zu verwenden, wodurch eine zuverlässige und einfache
Initialisierung der Kommunikationsverbindung möglich ist.
-
Gemäß einer
weiteren bevorzugten Ausführungsform
wird zu Beginn einer Datenübertragung zwischen
den Kommunikationsteilnehmern ein weiteres Datum, vorzugsweise vom
als Initiator der Datenübertragung
auftretenden Kommunikationsteilnehmer an das Identifizierungsdatenpaket
anschließend, in
einem weiteren Datenpaket zum anderen Kommunikationsteilnehmer übertragen.
Dieses weitere Datum ist eine zufällige oder eine sich nach einem
vorgegebenen Algorithmus verändernde
Session-Kennung.
Die Session-Kennung sorgt dafür,
dass auch nach einer Unterbrechung der Kommunikationsverbindung
und einer Wie derinitialisierung keine sich wiederholenden Datenpakete
austreten.
-
Gemäß einer
weiteren bevorzugten Ausführungsform
werden zu Beginn einer Datenübertragung
zwischen den Kommunikationsteilnehmern vorzugsweise vom als Initiator
der Datenübertragung auftreten
Kommunikationsteilnehmer Parameterdaten mit einem sich an das Identifizierungsdatenpaket und
das Session-Datenpakte
anschließenden
Parameterdatenpaket zum anderen Kommunikationsteilnehmer übertragen.
Hierdurch wird gewährleistet, dass
im Rahmen des Sicherheitslayers auch die für die Gerätefunktionalität relevanten
Betriebsparameter sicher übertragen
werden.
-
Bevorzugt
ist es dabei weiterhin, dass Datenpaket mit einem Klassifizierungsdatum
zu versehen, das die im Datenpaket übertragenen Daten kennzeichnet.
-
Die
Erfindung wird anhand der beigefügten Zeichnungen
näher erläutert. Es
zeigen:
-
1 die
Grundstruktur eines Ethernet-gestützten Automatisierungssystems;
-
2 einen
prinzipiellen Datenfluss und Abarbeitungsplan für einen erfindungsgemäßen Sicherheitslayer
mit einer ersten Datenpaketform; und
-
3A bis 3C einen
erweiterten Datenfluss und Abarbeitungsplan für einen erfindungsgemäßen Sicherheitslayer
mit einer zweiten Datenpaketform, wobei 3A eine
Initialisierungsdatenübertragung, 3B eine
Parameterdatenübertragung
und 3C eine Prozessdatenübertragung zeigt.
-
Mit
Kommunikationsnetzwerken lassen sich auf einfache Weise Daten und/oder
Ressourcen zwischen Arbeitsstationen, im Weiteren auch Kommunikationsteilnehmer
bezeichet, austauschen und gemeinsam nutzen. Das Ethernet-Konzept
ist dabei der am weitesten verbreitete Kommunikationsstandard in lokal
be grenzten Kommunikationsnetzwerken. Beim Ethernet sind eine Mehrzahl
von Kommunikationsteilnehmern über
ein gemeinsames Übertragungsmedium
miteinander verbunden, wobei die Verkapselung der zu übermittelnden
Daten in sog. Datenpaketen, im Weiteren auch als Telegramme bezeichnet, mit
einem vorbestimmten Format vorgenommen wird. Das Ethernet besteht
dabei aus drei Bereichen, der Hardware, d. h. im Übertragungsmedium
und den Netzwerkschnittstellen der Kommunikationsteilnehmer, der
Menge von Protokollen, die den Zugriff über das Übertragungsmedium steuern,
und der Ethernet-Paketform. Zur Verbindung der Kommunikationsteilnehmer
können
dabei beliebige Netzwerktopologien genutzt werden.
-
1 zeigt
eine bevorzugte Netzwerktopologie für ein Ethernet. Hier sind die
Kommunikationsteilnehmer 1 sternförmig über Punkt-zu-Punkt-Verbindungen 2 mit
einer zentralen Vermittlungsstelle 3, dem sog. Switch,
verbunden. Der Switch 3 sorgt dafür, dass ankommende Datentelegramme
ausschließlich
auf den Ausgang durchgeschaltet werden, an den der Kommunikationsteilnehmer
angeschlossen ist, der das Telegramm empfangen soll. Die Datentelegramme
werden dabei im Switch kurz zwischengespeichert, um auf den richtigen
Ausgang ausgegeben werden zu können.
-
Jeder
Kommunikationsteilnehmer 1 weist, wie 1 zeigt,
eine Netzwerkanschalteinheit 11 auf. Die Netzwerkanschalteinheit 11 nimmt
die Kodierung der zu sendenden Daten und die Dekodierung der empfangenen
Daten vor. Weiterhin werden in der Anschalteinheit 11 auch
alle zum Betrieb des Netzwerkes notwendigen Steuermaßnahmen
verwaltet, d. h. die Anschalteinheit 11 führt das
Management und die Datenpaketbildung durch.
-
Beim
Einsatz eines Ethernet-Netzwerkes, wie es in 1 gezeigt
ist, im Rahmen eines Automatisierungssystems, bei dem die Kommunikationsteilnehmer
Steuerungsrechner und Sensor-Aktor-Maschinensysteme
sind, ist es eine wichtige Anforderung neben der Echtzeitfähigkeit,
d. h. der Notwendigkeit, dass die Steuerungsrechner die Prozesssignale
an die Aktoren aufgrund der von den Sensoren erfassten Prozesssignale
innerhalb festgelegter Prozesszeiten ausgeben, sicherzustellen, dass
beim Ausfall des Automatisierungssystems bzw. einer wichtigen Komponente
keine Gefahr für Mensch
und Umwelt droht. Die Steuerungsrechner im Automatisierungssystem
müssen
deshalb neben normalen Steuerfunktionen noch Sicherheitsfunktionen
ausführen,
die gewährleisten,
dass beim Ausfall einer wichtigen Komponente des Automatisierungssystems
dafür gesorgt
ist, dass das Automatisierungssystem nach dem sogenannten Fail-Safe-Prinzip automatisch
in einen sicheren Zustand übergeht, d.
h. z. B. eine Not-Aus-Schaltung der angeschlossenen Maschinen vorgenommen
wird.
-
Die
Anzahl der Sicherheitsfunktionen in einem auf einem Automatisierungssystem
ablaufenden Steuerprogramm sind in der Regel geringer als die Anzahl
der nicht kritischen Steuerfunktionen. Bei der Ausführung der
Sicherheitsfunktionen muss aber zuverlässig ein fehlerfreier Ablauf
der Datenübertragung
gewährt
werden. Insbesondere muss sichergestellt werden, dass bei der Übertragung
von sicherheitsrelevanten Daten zwischen den Kommunikationsteilnehmern
im Automatisierungssystem die Wahrscheinlichkeit, dass durch eine
Störung
der Übertragung
die Daten so verfälscht
werden, dass diese Verfälschung
nicht mehr erkannt wird, minimiert ist.
-
Um
zu gewährleisten,
dass die Funktionalität von
sicherheitsrelevanten Steuerfunktionen nicht durch nicht-sicherheitsrelevante
Steuerfunktionen im Automatisierungsrechner beeinflusst wird, ist
das auf der Datenübertragungsstrecke
verwendete Netzwerkprotokoll mit einem zusätzlichen Sicherheitslayer zu
versehen, der im Automatisierungssystem den Datenaustausch von Sicherheitsdaten
zwischen den Kommunikationsteilnehmern steuert. Um eine sichere Übertragung
von Datenpaketen auf einer Datenübertragungsstrecke
zwischen zwei Kommunikationsteilnehmern im Rahmen des Sicherheitslayers
in dem Automatisierungssystem zu gewährleisten, wird erfindungs gemäß jedes
Datenpaket mit einem Prüfzeichen
versehen, das aus den weiteren Daten des Datenpakets berechnet wird,
wobei die Anschalteinheit 11 des Kommunikationsteilnehmers 1 das
Prüfzeichen
des letzten vom anderen Kommunikationsteilnehmer empfangenen Datenpakets
als Startwert zur Berechnung des Prüfzeichens für ein an den anderen Kommunikationsteilnehmer
zu sendendes nächstes
Datenpaket nutzt.
-
Durch
die erfindungsgemäße Vorgehensweise,
bei der das Prüfzeichen
in einem Datenpaket mit einem dynamischen Startwert berechnet wird,
indem als Startwert immer das Prüfzeichen
des vorher eingehenden Telegramms genutzt wird, kann gewährleistet
werden, dass in einem Datenübertragungszyklus
keine identischen Datenpakete, die zu einer Datenverfälschung
führen
könnten,
auftreten. Identische Datenpakete stellen insbesondere beim Einsatz einer
Ethernet-Topologie mit einem Switch, wie sie in 1 gezeigt
ist, eine Gefahr dar, da hier die zwischen den Kommunikationsteilnehmern
ausgetauschten Datentelegramme zwischengespeichert und erst zu einem
späteren
Zeitpunkt dann an den Adressaten weitergegeben werden können.
-
Bei
dem erfindungsgemäßen Verfahren
zur Datenübertragung
kann der ein Datenpaket empfangende Kommunikationsteilnehmer weiterhin
leicht prüfen,
ob das Datenpaket korrekt ist, indem das Prüfzeichen des empfangenen Datenpakets
berechnet und mit dem in dem empfangenen Datenpaket enthaltenen
Prüfzeichen
verglichen wird, wobei zur Berechnung das Prüfzeichen des letzten gesandten Datenpakets
als Startwert genommen wird. Dies wird vorzugsweise von der Anschalteinheit 11 des
Kommunikationsteilnehmers 1 durchgeführt. Falls eine Übereinstimmung
des berechneten Prüfzeichens
mit dem im empfangenen Datenpaket enthaltenen Prüfzeichen besteht, kann das
empfangene Datenpaket als korrekt gewertet werden.
-
2 zeigt
einen Datenfluss und Abarbeitungsplan des erfindungsgemäßen Verfahrens
zur Datenübertragung
zwischen zwei Kommunikationsteilnehmern. Der eine Kommunikationsteilnehmer der
Datenübertragung,
bei Automatisierungssystemen ein Steuerungsrechner tritt dabei als
Initiator der Datenübertragung
auf. Eine ein Aktor-Sensor-System enthaltene Maschine im Automatisierungssystem
stellt bei der erfindungsgemäßen Datenübertragung
den Responder dar. 2 zeigt zwei Telegrammsequenzen
beim Datenaustausch zwischen dem Initiator und dem Responder, wobei
in jeder Telgrammsequenz jeweils ein Datenpaket vom Initiator zum
Responder und vom Responder zurück
zum Initiator übertragen
wird. Die Datenpakete setzt sich dabei aus einem Nutzdatenbereich,
der die sicheren Daten, d. h. die im Rahmen der Sicherheitssteuerung notwendigen
Prozesssignale enthält
und einem Steuerdatenbereich, der hier optional eine Sequenznummer
und zwingend ein Prüfzeichen
umfasst, zusammen.
-
Die
Sequenznummer zeigt an, um welche Telegrammsequenz es sich bei der
Datenübertragung
im Rahmen der Sicherheitsprogrammausführung handelt. Der Initiator
gibt dabei in seinem an den Responder gesandten Datenpaket die Sequenznummer
vor, worauf der Responder die Sequenznummer in dem rückgesendeten
Datenpaket wieder mit zurück überträgt. In der
nächsten
Telegrammsequenz wird dann die Sequenznummer vom Initiator im versandten
Datenpaket um eins erhöht.
-
Auf
die Übermittlung
einer Sequenznummer kann jedoch im Rahmen der erfindungsgemäßen Datenübertragung
grundsätzlich
verzichtet werden. Um festzustellen, dass eine unverfälschte Datenübertragung
stattgefunden hat, ist sowohl im Initiator, als auch im Responder
nämlich
ausreichend, das Prüfzeichen
des empfangenen Datenpaketes auszuwerten. Das Prüfzeichen ist vorzugsweise ein
Blocksicherungszeichen CRC (cyclic redundancy check), mit dem Fehler
im Datenpaket mit sehr hoher Sicherheit erkannt werden können. Der
CRC-Wert wird dabei aus den Nutzdaten und ggf. auch aus der Sequenznummer
im Datenpaket berechnet, wobei erfindungsgemäß als Startwert der CRC-Berechnung der CRC-Wert
des letzten empfangenen Datenpakets verwendet wird.
-
Bei
dem in 2 dargestellten, vom Initiator an den Responder
versendeten Datenpaket der Telegrammsequenz i wird der CRC-Wert
des zu versendenden Datenpakets mit dem CRC-Wert des letzten vom
Responder erhaltenen CRC-Wertes CRC_A i-1 berechnet. Der sich dann
ergebenen CRC-Wert im versandten Datenpaket ist CRC_A i. Diesen CRC-Wert
nutzt dann der Responder wieder als Startwert bei der CRC-Berechnung
des vom Responder an den Initiator zurückgesandten Datenpakets, wobei
sich als CRC-Wert dann CRC_B i ergibt. Dieser CRC-Wert wird dann
in der nächsten
Telegrammsequenz i+1 als Startwert zur CRC-Berechnung durch den
Initiator für
das nächste
an den Responder zu versendende Datenpaket benutzt. Der CRC-Wert CRC_A
i+1 wird dann wiederum zur CRC-Berechnung des vom Responder zurückgesandten
Datenpakets eingesetzt, wobei sich als CRC-Wert CRC_B i+1 ergibt.
Der korrekte Empfang eines Datenpakets kann vom empfangenen Kommunikationsteilnehmer auf
einfachen Weise immer dadurch festgestellt werden, dass der CRC-Wert
des empfangenen Datenpakets mit einem auf der Basis des gespeicherten
Startwertes berechneten CRC-Wertes verglichen wird.
-
Um
erfindungsgemäß weiter
zu gewährleisten,
dass ein Sicherheitsprogramm zwischen den richtigen Kommunikationsteilnehmern
am Netz gestartet wird, wird beim Neustart des Sicherheitsprogramms
oder bei der Wiederaufnahme nach einer Kommunikationsunterbrechung
eine Initialisierungsphase durchgeführt, wie sie in 3A gezeigt
ist. Das in 3A gezeigte Datenpaket enthält dabei
ein Kommando-Datenfeld, das die Bedeutung der Nutzdaten im Datenpaket
angibt, z. B. ob es sich bei den Nutzdaten um Identifizierungsdaten
oder Prozessdaten handelt. Alternativ kann jedoch die Bedeutung der
Nutzdaten in den Datenpaketen einer Datenpaketfolge zur Ausführung eines
Sicherheitsprogramms auch von der Reihenfolge der Datenpakete abhängig gemacht
werden. So kann z. B. festgelegt sein, dass die ersten beiden vom
Initiator zum Responder gesandten Daten immer Initialisierungsdaten
enthalten, die wei teren Datenpakte dann sichere Daten. Gleichzeitig
kann auch festgelegt sein, dass der Responder immer nur Prozessdaten
an den Initiator überträgt. Die
Länge der
Datenpakete kann grundsätzlich
fest oder variabel gestaltet sein. Neben dem Kommandodatenfeld kann
das Datenpaket auch noch weitere Datenfelder, z. B. ein Kontroll-/Status-Feld,
wie in 3A dargestellt, enthalten.
-
Wie
in 3A weiter gezeigt ist, führt der Initiator beim Neustart
des Steuerungsprogramms, um eine sichere Datenkommunikation aufzubauen,
eine Initialisierung durch, indem er in der ersten Telegrammsequenz
ein Datenpaket mit dem Kommando-Datenfeld
Identifizierung und sicheren Daten, die eine Identifizierung ermöglichen,
an den Responder sendet. Das Identifizierungsdatenpaket ist dabei
mit einem CRC-Wert als Prüfzeichen
geschützt,
dessen Startwert ein fest vorgegebener Wert, z. B. die Gerätekennung
des Resonders, ist. Die Identifizierungsdaten können dabei von außen eingestellte
Adressdaten, die die beiden Kommunikationsteilnehmer oder auch nur
den Responder kennzeichnen sein. Es kann sich dabei auch um Gerätekennungen
und/oder Seriennummern des Initiators bzw. Responders handeln.
-
Der
Responder, der den Startwert der CRC-Berechnung des empfangenen
ersten Datenpakets kennt, überprüft den CRC-Wert
CRC_A 1 des empfangenen ersten Datenpakets vom Initiator, um festzustellen,
ob eine korrekte Datenübertragung stattgefunden
hat. Anschließend
nimmt der Responder dann den CRC-Wert CRC_A 1 aus dem ersten Datenpaket
des Initiators als Startwert zur CRC-Berechnung CRC_B 1 des Datenpakets,
das an den Initiator zurück
geschickt werden soll. Dieses rückgesandte
Datenpaket verwendet als Kommando vorzugsweise dieselbe Kennung,
wie sie im Kommando-Datenteil des vom Initiator übertragenen Identifizierungsdatenpakets
enthalten ist, um anzuzeigen, dass es sich um das rückgesandte
Datenpaket der ersten Telegrammsequenz handelt. Das vom Responder
an den Initiator zurückgesandte
Datenpaket der ersten Telegrammsequenz wird dann vom Initiator durch
Berechnung der zu erwartenden CRC-Summe auf der Basis des bekannten
Startwertes CRC_A 1 und Vergleich mit der CRC-Summe CRC_B 1 des
empfangenen Datenpakets auf die korrekte Datenübertragung hin überprüft.
-
In
einer zweiten Telegrammsequenz sendet der Initiator dann ein weiteres
Initialisierungsdatenpaket an den Responder, das als Kommando-Session
und als sichere Daten eine Session-Nummer enthält. Der CRC-Wert CRC_A 2 dieses
zweiten Datenpakets wird dabei mit dem CRC-Wert CRC_B 1 des vom
Responder zurückgesandten
Datenpakets berechnet. Die übertragene
Session-Nummer kann dabei zufällig
oder nach einem vorgegebenen Algorithmus generiert werden und soll
gewährleisten,
dass nach einer Unterbrechung der Kommunikationsverbindung keine
Datenpakete aus der vorausgegangenen Datenübertragung mehr übertragen
bzw. diese erkannt werden.
-
Der
Responder, der den Startwert CRC_B 1 zur CRC-Berechnung des vom
Initiator gesandten Datenpakets kennt, überprüft das empfangene Session-Datenpaket
durch Berechnen des zu erwartenden CRC-Wertes auf der Basis des
bekannten Startwertes und nimmt den CRC-Wert CRC_A 2 dann wiederum
als Startwert für
ein zweites an den Initiator zu sendendes Datenpaket, mit dem optional
sichere Daten übertragen
werden können.
Bei diesem zweiten zurückgesandten
Datenpaket wird als Kommando vorzugsweise das Kommando Session aus
dem empfangenen Datenpaket des Initiators verwendet.
-
Nach
dem Aufbau der sicheren Kommunikationsverbindung können dann
optional vom Initiator noch sichere Parameterdaten, die zum Betrieb
des Responders notwendig sind, vom Initiator zum Responder übertragen
werden. In 3B sind zwei solche Telegrammsequenzen,
Telegrammsequenz 3, die sich an die Übertragung des Session-Datenpakets
anschließt,
und die letzte ausgeführte
Telegrammsequenz mit Parameterdaten gezeigt.
-
Zum Übertragen
der Datenpakete mit den Parameterdaten nimmt der Initiator den zuletzt
empfangenen CRC-Wert CRC_B 2 als Startwert zur CRC-Berechnung des
ersten Parameterdatenpakets, das er weiter mit den Kommando Parameterdaten
und sicheren Daten Parameter 1 versieht. Der Responder überprüft den CRC-Wert CRC_A 3 des empfangenen
Datenpakets und nimmt diesen CRC-Wert als Startwert für eine CRC-Berechnung des
Response-Datenpakets
an den Initiator. Es können
so beliebig viele sichere Parameterdaten an den Responder übertragen
werden. Im in 3B gezeigten Beispiel werden
Telegrammsequenzen mit sicheren Parameterdaten vom Initiator auf
den Responder übertragen.
Der Responder überträgt in den
Antwortdatenpaketen immer optional sichere Daten, wobei als Kommando
in den Antwortdatenpaketen Parameterdaten verwendet wird.
-
Nach
Abschluss der Parameterübertragung führt der
Initiator dann, wie in 3C gezeigt ist, eine Prozessdatenübertragung
durch. Dazu werden die Datenpakete vom Initiator mit dem Kommando
Prozessdaten und mit den sicheren Daten Prozessdaten versehen und
mit einer CRC-Summe CRC_A n+3 geschützt, die mit dem CRC-Wert CRC_B
n+2 als Startwert berechnet wird, der in der letzten Parameterdaten-Response
vom Responder zum Initiator übertragen
wurde. Der Responder wiederum versendet die Prozessdaten in seinem
Antwortdatenpaket geschützt
mit der CRC-Summe CRC_B n+3, die mit dem vom Initiator übergebenen
CRC-Summe CRC_A n+3 als Startwert berechnet ist.
-
Mit
der erfindungsgemäßen Vorgehensweise,
beim Übertragen
von Datenpaketen die Datenpakete mit Prüfzeichen zu versehen, die mit
dem Prüfzeichen
des letzten vom anderen Kommunikationsteilnehmer empfangenen Datenpakets
als Startwert berechnet sind, besteht die Möglichkeit auf einfache Weise
zuverlässig
eine sichere Datenübertragung, wie
sie im Rahmen eines Sicherheitslayers in einem Automatisierungssystem
gefordert wird, zu erreichen. Insbesondere besteht dann die Möglichkeit
als Netzwerkprotokoll das Ethernetprotokoll einzusetzen und eine
Netzwerkstruktur mit Switches, die die Datenpakete zwi schenspeichert,
zu verwenden, da erfindungsgemäß verhindert
wird, dass sich innerhalb des Ablaufs eines Sicherheitsprogramms
Datenpakete wiederholen.
-
Erfindungsgemäß wird weiterhin
die Datenübertragung
so durchgeführt,
dass zunächst
eine Initialisierung mit einer Identifikationsnummer-Übertragung
und einer Sessionnummer-Übertragung
durchgeführt
wird, wodurch verhindert wird, dass bei einem Neustart eine Datenpaketwiederholung
auftreten kann. Darüber
hinaus besteht die Möglichkeit
im Rahmen der erfindungsgemäßen Datenübertragung auch
Betriebsparameter, die für
die Gerätefunktionalität des Responders
im Automatisierungssystem benötigt
werden, zu übertragen.
-
- 1
- Kommunikationsteilnehmer
- 2
- Punkt-zu-Punkt-Verbindung
- 3
- Datenvermittlungsknoten/Switch
- 11
- Anschalteinheit