Beschreibung
Betriebsverfahren und Anlagensteuerung
Die vorliegende Erfindung betri f ft ein Verfahren zum Betreiben einer Anlagensteuerung sowie eine Anlagensteuerung und ein Computerprogrammprodukt .
Anlagen, zum Beispiel Maschinen oder auch Fahrzeuge , umfassen üblicherweise eine Viel zahl von miteinander wechselwirkenden Komponenten . Einige dieser Komponenten erzeugen Daten, zum Beispiel bei der Erfassung von Betriebsparametern oder der Prozessüberwachung, während andere Komponenten auf Grundlage dieser Daten bestimmte Aktionen aus führen . Um eine Kommunikation zwischen den Komponenten zu ermöglichen, hat es sich bewährt , die Anlagen mit einem (Kommunikations- ) Net zwerk aus zustatten .
Besonders bei komplexen Anlagen wird oft ein modularer Anlagenaufbau bevorzugt . Zur Kommunikation in einer solchen modularen Anlage hat sich die Implementierung einer sogenannten Publish-Subscribe-Kommunikation über das Netzwerk als vorteilhaft herausgestellt . Eine von einem Netzwerkteilnehmer gesendete Nachricht ist dabei prinzipiell für alle anderen Netzwerkteilnehmer verfügbar ; empfangen wird sie j edoch nur von solchen Netzwerkteilnehmern, die Nachrichten des versendenden Netzwerkteilnehmers abonniert haben - den sog . „Sub- scribern" .
Dadurch kann beispielsweise eine Steuerungsvorrichtung der Anlage gezielt Daten von ausgewählten Sensoren empfangen und auf Grundlage dieser Sensordaten Steuerungssignale ausgeben . Die Steuerungssignale können wiederum von ausgewählten Aktoren empfangen werden .
Um eine hohe Verfügbarkeit einer solchen Anlage sicherstellen zu können, werden diese Steuerungsvorrichtungen häufig redundant vorgesehen . Eine redundante Steuerungsvorrichtung kann
bei Aus fall der aktiven Steuerungsvorrichtung dann deren Aufgabe übernehmen . Dies wird als Redundanzumschaltung bezeichnet .
Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren anzugeben, mit dem die Redundanzumschaltung verbessert , insbesondere ohne die mehrfache Verarbeitung von empfangenen Daten durchgeführt , werden kann .
Diese Aufgabe wird gelöst durch ein Verfahren gemäß Anspruch 1 .
Es ist eine weitere Aufgabe der vorliegenden Erfindung, eine Anlagensteuerung anzugeben, die eine verbesserte Redundanzumschaltung ermöglicht , insbesondere unter Vermeidung von mehrfacher Verarbeitung empfangener Daten .
Diese Aufgabe wird gelöst durch eine Anlagensteuerung gemäß Anspruch 14 .
Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Computerprogrammprodukt anzugeben, das eine verbesserte Redundanzumschaltung ermöglicht , insbesondere unter Vermeidung von mehrfacher Verarbeitung empfangener Daten .
Diese Aufgabe wird gelöst durch ein Computerprogrammprodukt gemäß Anspruch 15 .
Bevorzugte Aus führungs formen sind Gegenstand der Unteransprüche und der folgenden Beschreibung .
Ein erster Aspekt der Erfindung betri f ft ein, insbesondere computerimplementiertes , Verfahren zum Betreiben einer Anlagensteuerung, insbesondere für ein Schienenfahrzeug, aufweisend : ( i ) Empfangen von in einem Netzwerk verschickten Prozesseingangsdatenpaketen mithil fe einer ersten Steuerungsvorrichtung und wenigstens einer weiteren Steuerungsvorrichtung; ( ii ) Verarbeiten zumindest eines Teils der empfangenen Pro-
zesseingangsdatenpakete zu Prozessausgangsdaten mithil fe der ersten Steuerungsvorrichtung; und ( iii ) Senden einer Nachricht über das Netzwerk von der ersten Steuerungsvorrichtung an die wenigstens eine weitere Steuerungsvorrichtung, wobei die Nachricht eine Verarbeitungsinformation enthält , welche die von der ersten Steuerungsvorrichtung zuletzt verarbeiteten Prozesseingangsdatenpakete kennzeichnet .
Ein Aspekt der Erfindung basiert auf dem Ansatz , eine Nachricht von einer ersten datenverarbeitenden Steuerungsvorrichtung an wenigstens eine weitere , redundante Steuerungsvorrichtung zu senden, wobei mithil fe der Nachricht die zuletzt von der ersten Steuerungsvorrichtung verarbeiteten Daten identi fi zierbar sind . Anders gesagt wird der wenigstens einen weiteren Steuerungsvorrichtung mitgeteilt , welche Daten die erste Steuerungsvorrichtung zuletzt verarbeitet hat . Dazu kann die Nachricht beispielsweise eine Verarbeitungsinformation enthalten, welche die von der ersten Steuerungsvorrichtung zuletzt verarbeiteten Daten kennzeichnet . Fällt die datenverarbeitende , d . h . aktive , erste Steuerungsvorrichtung aus , kann die wenigstens eine weitere Steuerungsvorrichtung auf Grundlage der Nachricht im Wesentlichen nahtlos die Funktion der ausgefallenen Steuerungsvorrichtung übernehmen . Dadurch, dass der wenigstens einen weiteren Steuerungsvorrichtung die zuletzt verarbeiteten Daten zur Kenntnis gebracht werden, kann vermieden werden, dass diese von der wenigstens einen weiteren Steuerungsvorrichtung nachteilig erneut verarbeitet werden . Andererseits lässt sich mit der Verarbeitungsinformation auch sicherstellen, dass alle empfangenen Daten verarbeitet , d . h . keine Daten übersprungen, werden .
Dabei ist es zweckmäßig, wenn sowohl die Steuerungsvorrichtung als auch die wenigstens eine weitere Steuerungsvorrichtung dieselben Daten, zum Beispiel in Form von Prozesseingangsdatenpaketen, empfangen . Besonders aufwandsarm kann dies realisiert werden, indem die Steuerungsvorrichtungen in ein Netzwerk eingebunden sind, welches zur Publish-Subscribe-
Kommunikation eingerichtet ist . Die Steuerungsvorrichtungen können dadurch Nachrichten, d . h . Prozesseingangsdatenpakete , derselben datenerzeugenden Netzwerkteilnehmer abonnieren .
Nachfolgend werden bevorzugte Aus führungs formen der Erfindung und deren Weiterbildungen beschrieben, die j eweils , soweit dies nicht ausdrücklich ausgeschlossen wird, beliebig miteinander sowie mit den im Weiteren beschriebenen Aspekten der Erfindung kombiniert werden können .
In einer bevorzugten Aus führungs form enthalten die Prozesseingangsdatenpakete eine Identi fikationsinformation, welche das j eweilige Prozesseingangsdatenpaket kennzeichnet . Die Identi fikationsinformation kann beispielsweise den Ursprung des j eweiligen Prozesseingangsdatenpakets , etwa den j eweiligen versendenden datenerzeugenden Netzwerkteilnehmer, und/oder den Erzeugungs zeitpunkt , etwa einen Iterationsschritt eines Arbeits zyklus des Netzwerkteilnehmers oder der Anlage , betref fen . Dadurch sind die Prozesseingangsdatenpakete eindeutig zuordenbar .
Um die Identi fikation der zuletzt von der ersten Steuerungsvorrichtung verarbeiteten Datenpakete beispielsweise durch die wenigstens eine weitere Steuerungsvorrichtung zu erleichtern, basiert die Verarbeitungsinformation zweckmäßigerweise auf der Identi fikationsinformation der zuletzt von der ersten Steuerungsvorrichtung verarbeiteten Prozesseingangsdatenpakete .
Das Zuordnen einer Identi fikationsinformation zu den Datenpaketen ist besonders vorteilhaft , wenn mithil fe der ersten Steuerungsvorrichtung und der wenigstens einen weiteren Steuerungsvorrichtung in dem Netzwerk zyklisch verschickte Prozesseingangsdatenpakete empfangen werden . Zweckmäßigerweise enthält die Identi fikationsinformation dann eine Zyklusinfor- mation, welche den Iterationsschritt des Zyklus kennzeichnet , in welchem das j eweilige Prozesseingangsdatenpaket verschickt wird . Anhand der Zyklusinf ormation kann zum Beispiel schnell
ermittelt werden, welche der auf die zuletzt verarbeiteten Prozesseingangsdatenpakete folgenden Prozesseingangsdatenpakete zur Verarbeitung durch die wenigstens eine weitere Steuerungsvorrichtung vorgesehen sind . Durch die Zyklusinf ormati- on kann so insbesondere verhindert werden, dass bei einer Redundanzumschaltung ein Datenverlust auftritt , d . h . nach Ausfall der ersten Steuerungsvorrichtung von der wenigstens einen weiteren Steuerungsvorrichtung empfangene Prozessdateneingangspakete bei der Verarbeitung ausgelassen werden . Andererseits kann mit der Zyklusinf ormation auch verhindert werden, dass Prozesseingangsdatenpakete unnötig mehrfach - nämlich zunächst von der ersten Steuerungsvorrichtung und nach einer Redundanzumschaltung erneut von der wenigstens einen weiteren Steuerungsvorrichtung - verarbeitet werden .
Die Zyklusinf ormation kann beispielsweise einen Zähler enthalten . Bevorzugt wird entsprechend der Zählerstand der durch die erste Steuerungsvorrichtung zuletzt verarbeiteten Datenpakete mit der Nachricht an die wenigstens eine weitere Steuerungsvorrichtung übermittelt . Zweckmäßigerweise wird der Zähler in j edem Iterationsschritt des Zyklus inkrementiert . Bei dem Zyklus kann es sich dabei um einen Arbeits zyklus des entsprechenden Netzwerkteilnehmers handeln . Alternativ kann der Zyklus aber auch ein Arbeits zyklus der Steuerungsvorrichtung ( en) oder gleich der ganzen Anlage sein .
Eine ef fektive und datensparende Identi fikation des Erzeugungs zeitpunkts eines Datenpakets kann erzielt werden, indem der Zähler durch ein Feld eines Sicherheitsprotokolls realisiert wird . Beispielsweise kann hierfür der sogenannte Safe Sequence Counter ( SSC ) im Sicherheitsprotokolls SDTv2 , wie es etwa in der Norm IEC 61375-2-3 definiert ist , verwendet werden .
Für den Fall , dass die Prozesseingangsdatenpakete von mehreren datenerzeugenden Netzwerkteilnehmern verschickt werden, ist es vorteilhaft , wenn die Identi fikationsinformation eine Teilnehmerinformation enthält , welche den j eweiligen, ein
Prozessdatenpaket verschickenden datenerzeugenden Netzwerkteilnehmer kennzeichnet . Anders gesagt kann die Teilnehmerinformation den Ursprung des j eweiligen Datenpakets betref fen . Die Teilnehmerinformation ermöglicht eine zuverlässige Zuordnung der Identi fikationsinformation, insbesondere der Zyklus- information, zu den datenerzeugenden Netzwerkteilnehmern . Eingegangene Datenpakete können so nach datenerzeugendem Netzwerkteilnehmer sortiert werden . Nach einer Redundanzumschaltung kann für j eden datenerzeugenden Netzwerkteilnehmer genau ein von der wenigstens einen weiteren Steuerungsvorrichtung als nächstes zu verarbeitendes Datenpaket identi fiziert werden .
In einer weiteren bevorzugten Aus führungs form wird die Nachricht übermittelt , nachdem die Prozessausgangsdaten über das Netzwerk an wenigstens einen datenempfangenden Netzwerkteilnehmer gesendet werden . Dadurch kann sichergestellt werden, dass bei einem darauf folgenden Aus fall der ersten Steuerungsvorrichtung die bereits verarbeiteten Datenpakete erneut verarbeitet werden .
In einer weiteren bevorzugten Aus führungs form werden die von der ersten und der wenigstens einen weiteren Steuerungsvorrichtung empfangenen Prozesseingangsdatenpakete j eweils in wenigstens einem Puf ferspeicher gespeichert . So können auch während einer Totzeit zwischen dem Aus fall der ersten Steuerungsvorrichtung und der Übernahme durch die wenigstens eine weitere Steuerungsvorrichtung eingehende Datenpakete zur anschließenden Verarbeitung durch die wenigstens eine weitere Steuerungsvorrichtung vorgehalten werden .
Es ist bevorzugt , dass der Puf ferspeicher als Ringspeicher ausgebildet ist . Dadurch kann sichergestellt werden, dass zumindest die aktuellsten Prozesseingangsdatenpakete zur Verarbeitung durch die Steuerungsvorrichtungen vorliegen . Zugleich lässt sich ein Überlauf des Puf ferspeichers vermeiden . Dies ist besonders vorteilhaft im Hinblick auf einen Puf ferspeicher, welcher der wenigstens einen weiteren Steuerungsvor-
richtung zugeordnet ist . Denn zweckmäßigerweise verarbeitet die wenigstens eine weitere Steuerungsvorrichtung während der Datenverarbeitung durch die erste Steuerungsvorrichtung keine der empfangenen Prozesseingangsdatenpakete .
Es ist zudem zweckmäßig, dass Prozesseingangsdatenpakete nach der Verarbeitung aus dem Ringspeicher gelöscht werden . Es kann so sichergestellt werden, dass von einer Steuerungsvorrichtung bereits verarbeitete Prozesseingangsdatenpakete fälschlicherweise erneut verarbeitet werden . Insofern kann ein der ersten Steuerungsvorrichtung zugeordneter Puf ferspeicher - oder nach einer Redundanzumschaltung ein der wenigstens einen weiteren Steuerungsvorrichtung zugeordneter Pufferspeicher - ef fektiv am Überlaufen gehindert werden .
Um einen fehlerfreien Betrieb der Anlage zu ermöglichen, werden die im Puf ferspeicher gespeicherten Prozesseingangsdatenpakete , insbesondere für j eden der datenerzeugenden Netzwerkteilnehmer, vorzugsweise in Abhängigkeit der Reihenfolge ihres Empfangs zur Verarbeitung durch die Steuerungsvorrichtungen vorgemerkt . Anders gesagt können die Prozesseingangsdatenpakete gemäß dem First- In, First-Out-Prinzip zur Verarbeitung vorgemerkt werden . Alternativ oder zusätzlich zu dem First- In, First-Out-Prinzip können die Prozesseingangsdatenpakete auch auf Grundlage der Zyklusinf ormation zur Verarbeitung vorgemerkt , d . h . beispielsweise entsprechend sortiert , werden . Dadurch lassen sich in j edem Puf ferspeicher ef fektiv „Warteschlangen" generieren, die zweckmäßigerweise durch die j eweils aktive , d . h . zunächst durch die erste und nach einer Redundanzumschaltung durch die wenigstens eine weitere Steuerungsvorrichtung abgearbeitet werden . Bei der Redundanzumschaltung kann die wenigstens eine weitere Steuerungsvorrichtung - falls mehrere weitere Steuerungsvorrichtungen vorgesehen sind : eine der mehreren Steuerungsvorrichtungen - auf Grundlage der in der Nachricht enthaltenen Verarbeitungsinformation direkt mit der Datenverarbeitung an der passenden Stelle in der Warteschlange fortfahren . Die Auswahl der über-
nehmenden Steuerungsvorrichtung kann auf Basis einer vorher festgelegten Reihenfolge erfolgen .
Für den bereits erwähnten Fall , dass die Prozesseingangsdatenpakete von mehreren datenerzeugenden Netzwerkteilnehmern verschickt werden, ist es bevorzugt , dass die von der ersten und der wenigstens einen weiteren Steuerungsvorrichtung empfangenen Prozesseingangsdatenpakete derart gespeichert werden, dass die Prozesseingangsdatenpakete dem j eweils verschickenden datenerzeugenden Netzwerkteilnehmer zuordenbar sind . Insbesondere ist es bevorzugt , dass die empfangenen Prozesseingangsdatenpakete für j eden der datenerzeugenden Netzwerkteilnehmer in Abhängigkeit der Reihenfolge ihres Empfangs durch die Steuerungsvorrichtungen gespeichert werden . Anders gesagt wird in bevorzugter Weise für j eden datenerzeugenden Netzwerkteilnehmer, zum Beispiel im zuvor genannten Puf feroder Ringspeicher, eine „Warteschlange" angelegt . Beispielsweise kann etwa mithil fe der Teilnehmerinformation in j edem Puf fer- oder Ringspeicher eine Datenbank angelegt werden, aus der die Prozesseingangsdatenpakete nach datenerzeugendem Netzwerkteilnehmer und/oder nach Zeitpunkt ihres Empfangs oder ihrer Erzeugung zur Verarbeitung extrahiert werden können . Durch eine derartige Speicherung der Prozesseingangsdatenpakete lässt sich eine reibungslose und fehlerfreie Datenverarbeitung insbesondere bei einer Redundanzumschaltung sicherstellen .
In einer weiteren bevorzugten Aus führungs form enthält die Nachricht eine Systemzeit der ersten Steuerungsvorrichtung . Dadurch wird eine Zeitsynchronisierung der Steuerungsvorrichtungen möglich . Insbesondere ist es auch denkbar, dass anhand der übermittelten Systemzeit ein Aus fall der ersten Steuerungsvorrichtung durch die wenigstens eine weitere Steuerungsvorrichtung detektiert wird . Insbesondere kann die wenigstens eine weitere Steuerungsvorrichtung die Funktion der ersten Steuerungsvorrichtung übernehmen, wenn eine vorgegebene Totzeit - während der keine weitere Nachricht empfangen wird - nach Erhalt der letzten Nachricht verstrichen ist .
Alternativ oder zusätzlich kann die Nachricht eine die erste Steuerungsvorrichtung betref fende Aus fallinformation enthalten . Beispielsweise ist es denkbar, dass die erste Steuerungsvorrichtung ihren eigenen kontrollierten Aus fall durch eine entsprechende Kennzeichnung in der Nachricht bekannt gibt . Die wenigstens eine weitere Steuerungsvorrichtung kann dann die Funktion der ersten Steuerungsvorrichtung im Wesentlichen direkt übernehmen . Dadurch lässt sich ein besonders reibungsloser Betrieb der Anlage sicherstellen .
Insofern ist es bevorzugt , dass die wenigstens eine weitere Steuerungsvorrichtung einen Aus fall der ersten Steuerungsvorrichtung erkennt , beispielsweise auf Grundlage der in der Nachricht enthaltenen Systemzeit oder durch die in der Nachricht enthaltene Aus fallinformation . Zweckmäßigerweise verarbeitet die wenigstens eine weitere Steuerungsvorrichtung daraufhin auf Grundlage der Verarbeitungsinformation von ihr empfangene Prozesseingangsdatenpakete zu Prozessausgangsdaten, die beispielsweise an datenempfangende Netzwerkteilnehmer versandt werden können . Eine Redundanzumschaltung kann so automatisch und insbesondere unmittelbar nach Aus fall der ersten Steuerungsvorrichtung voll zogen werden .
Um eine ef fi ziente Daten- bzw . Speicherverwaltung realisieren zu können, werden vorzugsweise auf Grundlage der Verarbeitungsinformation in einem der wenigstens einen weiteren Steuerungsvorrichtung zugordneten Puf ferspeicher gespeicherte Eingangsdatenpakete , die von der ersten Steuerungsvorrichtung bereits verarbeitet wurden, gelöscht . Anders gesagt ist es vorteilhaft , den insbesondere der wenigstens einen weiteren Steuerungsvorrichtung zugeordneten Puf fer- oder Ringspeicher bei der Redundanzumschaltung soweit wie möglich zu leeren oder „auf zuräumen" . Dadurch kann Platz für weitere Prozesseingangsdatenpakete geschaf fen werden, die beispielsweise während der Abarbeitung von noch im Speicher vorgehaltenen Prozesseingangsdatenpaketen eintref fen . Insofern lässt sich durch die Löschung der bereits verarbeiteten Prozesseingangs-
datenpakete bei der Redundanzumschaltung ein Datenverlust vermeiden .
Zur Datenverarbeitung der „korrekten" Prozesseingangsdatenpakete , d . h . zur fehlerfreien Datenverarbeitung, werden vorzugsweise auf Grundlage der Verarbeitungsinformation in einem der wenigstens einen weiteren Steuerungsvorrichtung zugeordneten Puf ferspeicher gespeicherte Prozesseingangsdatenpakete identi fi ziert . Dabei werden zweckmäßigerweise Prozesseingangsdatenpakete identi fi ziert , die unmittelbar nach denj enigen Prozesseingangsdatenpaketen empfangen wurden, die zuletzt von der ersten Steuerungsvorrichtung verarbeitet wurden . Anders gesagt werden zweckmäßigerweise diej enigen Prozesseingangsdatenpakete identi fi ziert , die gemäß der Reihenfolge ihres Empfangs von den Steuerungsvorrichtungen als nächstes zu verarbeiten sind . Die identi fi zierten Prozesseingangsdatenpakete können dann von der wenigstens einen weiteren Steuerungsvorrichtung verarbeitet werden . Durch die Identi fikation der Prozesseingangsdatenpakete kann so die korrekte Verarbeitungsabfolge sichergestellt werden .
Ein zweiter Aspekt der Erfindung betri f ft eine Anlagensteuerung, insbesondere für ein Schienenfahrzeug, mit einer ersten Steuerungsvorrichtung und wenigstens einer weiteren Steuerungsvorrichtung, die j eweils zum Empfangen von in einem Netzwerk verschickten Prozesseingangsdaten und zum Verarbeiten zumindest eines Teils der empfangenen Prozesseingangsdaten zu Prozessausgangsdaten eingerichtet sind . Die erste Steuerungsvorrichtung ist dabei zudem dazu eingerichtet , über das Netzwerk eine Nachricht an die wenigstens eine weitere Steuerungsvorrichtung zu senden . Die Nachricht enthält eine Verarbeitungsinformation, welche die von der ersten Steuerungsvorrichtung zuletzt verarbeiteten Prozesseingangsdatenpakete kennzeichnet .
Eine Steuerungsvorrichtung im Sinne der vorliegenden Erfindung kann eine , vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw . signalverbundene , Verarbeitungseinheit
sein oder eine solche zumindest umfassen . Eine Steuerungsvorrichtung kann insbesondere eine Mikroprozessoreinheit ( CPU) oder ein Modul einer solchen aufweisen . Die Steuerungsvorrichtung kann dazu ausgebildet sein, Befehle , die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus , insbesondere einem Netzwerk, zu erfassen und/oder Ausgangssignale an einen Datenbus , insbesondere ein Netzwerk, abzugeben . Ein Speichersystem kann ein oder mehrere , insbesondere verschiedene , Speichermedien, insbesondere optische , magnetische , Festkörper- und/oder andere nicht- flüchtige Medien, aufweisen . Das Programm kann derart beschaf fen sein, dass es das Verfahren gemäß dem ersten Aspekt der Erfindung verkörpert bzw . aus zuführen imstande ist , sodass die Steuerungsvorrichtung die Schritte dieses Verfahrens aus führen und damit eine Anlage , insbesondere ein Schienenfahrzeug, betreiben kann .
Eine derartige Anlagensteuerung kann hardwareseitig kostengünstig und mit Standardkomponenten, zum Beispiel entsprechenden Verarbeitungseinheiten, Speichersystemen und/oder dergleichen, realisiert werden . Zugleich lässt sich mit einer solchen Anlagensteuerung zumindest das Risiko verringern, dass Prozesseingangsdatenpakete bei einer Redundanzumschaltung verloren gehen oder mehrfach verarbeitet werden .
Ein dritter Aspekt der Erfindung betri f ft ein Computerprogrammprodukt , welches Anweisungen enthält , die eine Anlagensteuerung gemäß dem zweiten Aspekt der Erfindung dazu veranlassen, das Verfahren gemäß dem ersten Aspekt der Erfindung aus zuführen . Ein solches Computerprogrammprodukt wird zweckmäßigerweise von den Steuerungsvorrichtungen der Anlagensteuerung ausgeführt .
Ein weiterer Aspekt der Erfindung betri f ft ein computerlesbares Speichermedium, auf dem das Computerprogrammprodukt gemäß dem dritten Aspekt der Erfindung gespeichert ist .
Die voranstehend beschriebenen Eigenschaften, Merkmale und Vorteile der Erfindung sowie die Art und Weise , wie diese erreicht werden, werden im Zusammenhang mit den Figuren in der folgenden Beschreibung von Aus führungsbeispielen der Erfindung näher erläutert . Soweit zweckdienlich, werden in den Figuren dieselben Bezugs zeichen für dieselben oder einander entsprechende Elemente der Erfindung verwendet . Die Aus führungsbeispiele dienen der Erläuterung der Erfindung und beschränken die Erfindung nicht auf die darin angegebenen Kombinationen von Merkmalen, auch nicht in Bezug auf funktionale Merkmale . Zudem können alle in den Aus führungsbeispielen angegebenen Merkmale isoliert betrachtet und in geeigneter Weise mit den Merkmalen eines Verfahrens gemäß dem ersten Aspekt der Erfindung, eine Anlagensteuerung gemäß dem zweiten Aspekt der Erfindung oder einen Computerprogrammprodukt gemäß dem dritten Aspekt der Erfindung kombiniert werden .
Es zeigen :
FIG 1 ein Beispiel einer Anlagensteuerung; und
FIG 2 ein Beispiel eines Verfahrens zum Betrieb einer Anlagensteuerung .
FIG 1 zeigt ein Beispiel einer Anlagensteuerung 10 , insbesondere für ein Schienenfahrzeug . Die Anlagensteuerung 10 weist eine erste Steuerungsvorrichtung 20 und wenigstens eine weitere Steuerungsvorrichtung 30 auf . Die Steuerungsvorrichtungen 20 , 30 sind zweckmäßigerweise an ein Netzwerk 90 angeschlossen, über das sie mit datenerzeugenden Netzwerkteilnehmern 40 und datenempfangenden Netzwerkteilnehmern 50 kommunizieren können . Vorzugsweise ist j eder Steuerungsvorrichtung 20 , 30 ein Puf ferspeicher 21 , 31 zugeordnet . Die erste Steuerungsvorrichtung 20 ist bevorzugt dazu eingerichtet , eine Nachricht 80 , welche von der ersten Steuerungsvorrichtung 20 verarbeitete Prozesseingangsdatenpakete 60 betri f ft , über das Netzwerk 90 an die wenigstens eine weitere Steuerungsvorrichtung 30 zu senden . Dies ist zweckdienlich für die eine
Funktionsübernahme durch die wenigstens eine weitere Steuerungsvorrichtung 30 , sollte die erste Steuerungsvorrichtung 20 aus fallen .
Die Steuerungsvorrichtungen 20 , 30 sind dabei grundsätzlich alle dazu eingerichtet , im Netzwerk 90 verschickte Prozesseingangsdatenpakete 60 zu empfangen und - zweckmäßigerweise deterministisch, d . h . bei gleichen Prozesseingangsdaten mit gleichem Ergebnis - zu Prozessausgangsdaten 70 zu verarbeiten . Empfangene und in den Puf ferspeichern 21 , 31 gespeicherte Prozesseingangsdatenpakete 60 sind in FIG 1 durch - teilweise schraf fiert dargestellte - Rechtecke mit durchgezogenen Linien angedeutet . Aus Gründen der Übersichtlichkeit ist nur eines der Prozesseingangsdatenpakete 60 mit einem entsprechenden Bezugs zeichen versehen . Freier Speicherplatz in den Puf ferspeichern 21 , 31 ist durch gestrichelte Linien angedeutet .
Das Netzwerk 90 ist vorzugsweise zur Publish-Subscribe- Kommunikation eingerichtet . D . h . , dass das Netzwerk 90 vorzugsweise Multicast unterstützt . Dadurch kann j eder datenerzeugende Netzwerkteilnehmer 40 , insbesondere zyklisch, erzeugte Prozesseingangsdatenpakete 60 im Netzwerk 90 grundsätzlich für alle anderen Netzwerkteilnehmer bereitstellen . Zweckmäßigerweise sind sowohl die erste als auch die wenigstens eine weitere Steuerungsvorrichtung 20 , 30 „Subscriber" , d . h . Abonnenten, der datenerzeugenden Netzwerkteilnehmer 40 . Somit können die derart verschickten Prozesseingangsdatenpakete 60 von j eder Steuerungsvorrichtung 20 , 30 empfangen werden .
Zweckmäßigerweise können die Steuerungsvorrichtungen 20 , 30 die erzeugten Prozessausgangsdaten 70 über das Netzwerk 90 versenden, beispielsweise an die datenempfangenden Netzwerkteilnehmer 50 . Zu diesem Zweck können die Steuerungsvorrichtungen 20 , 30 dazu eingerichtet sein, die Prozessausgangsdaten 70 per Multicast im Netzwerk 90 bereitzustellen . Die da-
tenempf angenden Netzwerkteilnehmer 50 können diese als Subscriber der Steuerungsvorrichtungen 20 , 30 dann empfangen .
Bei den datenerzeugenden Netzwerkteilnehmern 40 kann es sich beispielsweise um Sensoren handeln, die zu Überwachung eines Prozesses oder zur Ermittlung von Randbedingungen zur Durchführung des Prozesses eingerichtet sind . Die Prozesseingangsdatenpakete 60 entsprechenden diesem Fall Sensordaten .
Bei den datenempfangenden Netzwerkteilnehmern 50 kann es sich beispielsweise um Aktoren handeln, die zur Aus führung des Prozesses eingerichtet sind . Die Prozessausgangsdaten 70 sind in diesem Fall zweckmäßigerweise Steuersignale zur Ansteuerung dieser Aktoren .
Die Prozesseingangsdatenpakete 60 enthalten zweckmäßigerweise eine Identi fikationsinformation, mit der sich das j eweilige Prozesseingangsdatenpaket 60 eindeutig identi fi zieren und/oder zuordnen lässt , zum Beispiel zu einem der datenerzeugenden Netzwerkteilnehmer 40 oder einen Zeitpunkt , an dem das j eweilige Prozesseingangsdatenpaket 60 erzeugt wurde . Die Identi fikationsinformation kann dazu beispielsweise eine Teilnehmerinformation umfassen, welche den das j eweilige Prozesseingangsdatenpaket 60 erzeugenden Netzwerkteilnehmer 40 angibt . Alternativ oder zusätzlich kann die Identi fikationsinformation eine Zyklusinf ormation umfassen, welche den Iterationsschritt eines Zyklus angibt , in dem das j eweilige Prozesseingangsdatenpaket 60 erzeugt wurde . Die Zyklusinfor- mation kann beispielsweise auf einem Zähler basieren, dessen Wert den Iterationsschritt angibt . Zweckmäßigerweise wird der Zähler mit j edem Iterationsschritt inkrementiert .
Anhand der Identi fikationsinformation lassen sich die Prozesseingangsdatenpakete 60 in den Puf ferspeichern 21 , 31 strukturiert speichern . Insbesondere ist es zweckmäßig, wenn in den Puf ferspeichern 21 , 31 für j eden der datenerzeugenden Netzwerkteilnehmer 40 eine Warteschlange 22a, 22b, 22c bzw . 32a, 32b, 32c angelegt ist . In j eder der Warteschlangen 22a-
22c, 32a-32c können die Datenpakete 60 entsprechend der Reihenfolge ihrer Erzeugung, d . h . zum Beispiel aufsteigend geordnet nach Iterationsschritt des Zyklus , gespeichert werden, und zwar für den entsprechenden datenerzeugenden Netzwerkteilnehmer 40 , dem die Warteschlange 22a-22c, 32a-32c zugeordnet ist .
Die Puf ferspeicher 21 , 31 sind zweckmäßigerweise als Ringspeicher ausgebildet . Dabei hat j ede Warteschlange 22a-22c, 32a-32c in bevorzugter Weise eine vorgegebene Größe . Anders gesagt kann j eder Puf ferspeicher 21 , 31 für j eden datenerzeugenden Netzwerkteilnehmer 40 eine vorgegebene Anzahl an Prozesseingangsdatenpaketen 60 speichern . Die Größe der Warteschlange 22a-22c, 32a-32c, und damit letztlich auch die Größe bzw . Speicherkapazität der Puf ferspeicher 21 , 31 , ist dabei bevorzugt derart gewählt , dass bei einem Aus fall der ersten Speichervorrichtung 20 alle im Folgenden von der wenigstens einen weiteren Steuerungsvorrichtung 30 bis zu deren Funktionsübernahme empfangenen Prozesseingangsdatenpakete 60 im entsprechenden Puf ferspeicher 31 gespeichert werden können, ohne dass es zu einem Datenverlust kommt .
Insbesondere können die Puf ferspeicher 21 , 31 derart ausgebildet sein, dass sich die Warteschlangen 22a-22c, 32a-32c bei einem Überlauf j eweils wie ein Ringspeicher verhalten . D . h . beispielsweise , dass bei einem Überlauf einer Warteschlange 22a-22c, 32a-32c vorzugsweise das älteste empfangene bzw . gespeicherte Prozesseingangsdatenpaket 60 in dieser Warteschlange 22a-22c, 32a-32c gelöscht oder von einem neu empfangenen Prozesseingangsdatenpaket 60 überschrieben wird .
In bevorzugter Weise sind die Steuerungsvorrichtungen 20 , 30 dazu eingerichtet , die Prozesseingangsdatenpakete 60 für j eden der datenerzeugenden Netzwerkteilnehmer 40 gemäß der Reihenfolge ihres Empfangs zu verarbeiten . Anders gesagt arbeiten die Steuerungsvorrichtungen 20 , 30 die Datenpakete 60 aus den Puf ferspeichern 21 , 31 in bevorzugter Weise grundsätzlich gemäß dem „First in, First Out"-Prinzip ab . Die erste Steue-
rungsvorrichtung 20 ist dabei zweckmäßigerweise dazu eingerichtet , die in den Warteschlangen 22a-22c an erster Stelle stehenden, d . h . die als erstes empfangenen, Prozesseingangsdatenpakete 60 zu verarbeiten . Diese Datenpakete 60 sind schraf fiert dargestellt .
Die an erster Stelle in den Warteschlangen 22a-22c stehenden Datenpakete 60 bilden zweckmäßigerweise den Zustand des Prozesses ab . Anders gesagt bilden die an erster Stelle stehenden Prozesseingangsdatenpakete 60 ein Prozessabbild 61 . Die Identi fikationsinformation der das Prozessabbild 61 bildenden Prozesseingangsdatenpakete 60 beschreibt zweckmäßigerweise die Zusammensetzung des Prozessabbilds 61 . Diese Zusammensetzung kann auch als Eingangsdatenkonfiguration bezeichnet werden . Zweckmäßigerweise wird das Prozessabbild 61 der Erzeugung der Prozessausgangsdaten 70 , zum Beispiel der Steuerung der datenempfangenden Netzwerkteilnehmer 50 , zugrunde gelegt .
Vorzugsweise ist die erste Steuerungsvorrichtung 20 dazu eingerichtet , die Eingangsdatenkonfiguration, d . h . diej enigen Prozesseingangsdatenpakete 60 , auf denen die ausgegebenen Prozessausgangsdaten 70 basieren, durch die Nachricht 80 der wenigstens einen weiteren Steuerungsvorrichtung 30 mitzuteilen . Die Nachricht 80 enthält dazu zweckmäßigerweise eine Verarbeitungsinformation, welche die zuletzt von der ersten Steuerungsvorrichtung 20 verarbeiteten Prozesseingangsdatenpakete 60 - d . h . gerade die Eingangsdatenkonfiguration bzw . das Prozessabbild 61 - kennzeichnet . Die Nachricht 80 kann zu diesem Zweck beispielsweise auf die Identi fikationsinformation, insbesondere die Teilnehmerinformation und/oder die Zyk- lusinf ormation, der verarbeiteten Prozesseingangsdatenpakete 60 Bezug nehmen oder diese enthalten .
Die wenigstens eine weitere Steuerungsvorrichtung 30 ist vorzugsweise dazu eingerichtet , ausgehend von der in der Nachricht 80 enthaltenen Verarbeitungsinformation die Verarbeitung der Prozesseingangsdatenpakete 60 fortzusetzen, sollte die erste Steuerungsvorrichtung 20 aus fallen . Dazu kann die
wenigstens eine weitere Steuerungsvorrichtung 30 diej enigen Prozesseingangsdatenpakete 60 , welche das zuletzt von der ersten Steuerungsvorrichtung 20 berücksichtigte Prozessabbild 61 bilden, im ihr zugeordneten Puf ferspeicher 31 und/oder die entsprechenden Speicherplätze im Puf ferspeicher 31 identi fi zieren .
Diese entsprechenden Prozesseingangsdatenpakete 60 sind auch im Puf ferspeicher 31 durch eine Schraf fur hervorgehoben . Wie erkennbar ist , stehen diese Prozesseingangsdatenpakete 60 nicht alle an erster Stelle der Warteschlangen 32a-32c des Puf ferspeichers 31 . Eine solche Situation kann beispielsweise auftreten, wenn sich die Paketlauf zeiten zwischen den datenerzeugenden Netzwerkteilnehmern 40 und den verschiedenen Steuerungsvorrichtungen 20 , 30 unterscheiden . Dieses Problem verschärft sich, wenn die datenerzeugenden Netzwerkteilnehmer 40 Prozesseingangsdatenpakete 60 sehr schnell aufeinanderfolgend versenden ( d . h . die Zyklus zeiten sehr kurz sind, zum Beispiel wenige Millisekunden) .
Die wenigstens eine weitere Steuerungsvorrichtung 30 ist vorzugsweise dazu eingerichtet , ausgehend von der in der Nachricht 80 erhaltenen Verarbeitungsinformation diej enigen Prozesseingangsdatenpakete 60 zu verarbeiten, die unmittelbar nach Empfang derj enigen Prozesseingangsdatenpakete 60 empfangen wurden, welche das zuletzt von der ersten Steuerungsvorrichtung 20 berücksichtigte Prozessabbild 61 bilden (und schraf fiert dargestellt sind) . Zweckmäßigerweise kann die wenigstens eine weitere Steuerungsvorrichtung 30 die zuletzt von der ersten Steuerungsvorrichtung 20 verarbeiteten Prozesseingangsdatenpakete 60 sowie alle zuvor empfangenen Prozesseingangsdatenpakete 60 aus dem ihr zugeordneten Puf ferspeicher 31 löschen .
Auch wenn in diesem Beispiel nur eine weitere Steuerungsvorrichtung 30 gezeigt und beschrieben ist , ist es grundsätzlich denkbar und vorteilhaft , mehrere weitere Steuerungsvorrichtungen - und entsprechend weitere Puf ferspeicher - vorzuse-
hen . Jede dieser weiteren Steuerungsvorrichtungen kann dann gemäß einer vorgegebenen Priorisierung bei Aus fall einer Steuerungsvorrichtung deren Funktion übernehmen . Insofern lässt sich mit der in FIG 1 gezeigten Anlagensteuerung 10 eine „Redundanzkette" aus einer nahezu beliebigen Anzahl an Steuerungsvorrichtungen bilden .
FIG 2 zeigt ein Beispiel eines Verfahrens 100 zum Betrieb einer Anlagensteuerung .
In einem Verfahrensschritt S 1 werden in einem Netzwerk, vorzugsweise per Multicast , verschickte Prozesseingangsdatenpakete mithil fe einer ersten Steuerungsvorrichtung und wenigstens einer weiteren Steuerungsvorrichtung empfangen . Zweckmäßigerweise werden die empfangenen Prozesseingangsdatenpakete für j ede der Steuerungsvorrichtungen in einem Puf ferspeicher, insbesondere einem Ringspeicher, gespeichert . Dabei ist es bevorzugt , wenn die empfangenen Prozesseingangsdatenpakete in Abhängigkeit ihres Ursprungs gespeichert werden . Beispielsweise können die empfangenen Prozesseingangsdatenpakete derart gespeichert werden, dass sie demj enigen datenerzeugenden Netzwerkteilnehmer, der sie ( erzeugt und) versandt hat , zuordenbar sind . Alternativ oder zusätzlich können die empfangenen Prozesseingangsdatenpakete derart gespeichert werden, dass sie einem Iterationsschritt aus einem Zyklus zuordenbar sind . Zu diesem Zweck kann beispielsweise eine Identi fikationsinformation j edes empfangenen Prozesseingangsdatenpakets ausgelesen werden .
In einem weiteren Verfahrensschritt S2 verarbeitet die erste Steuerungsvorrichtung zumindest einen Teil der empfangenen Prozesseingangsdatenpakete zu Prozessausgangsdaten . Zweckmäßigerweise verschickt sie die so erzeugten Prozessausgangsdaten anschließend über das Netzwerk, etwa an datenempfangende Netzwerkteilnehmer, vorzugsweise per Multicast .
Es ist bevorzugt , dass die erste Steuerungsvorrichtung zumindest einen Teil der empfangenen Prozesseingangsdatenpakete
auf Grundlage der Reihenfolge ihres Empfangs und/oder ihres Ursprungs verarbeitet . Beispielsweise kann die erste Steuerungsvorrichtung insbesondere eine Eingangsdatenkonfiguration aus mehreren Prozesseingangsdatenpaketen verarbeiten, die alle etwa zur selben Zeit , insbesondere in demselben Iterationsschritt eines Zyklus , empfangen und/oder von den datenerzeugenden Netzwerkteilnehmern verschickt wurden . Zweckmäßigerweise enthält diese Eingangsdatenkonfiguration ein Prozesseingangsdatenpaket j edes der datenerzeugenden Netzwerkteilnehmer .
In einem weiteren Verfahrensschritt S3 wird eine Nachricht über das Netzwerk von der ersten Steuerungsvorrichtung an die wenigstens eine weitere Steuerungsvorrichtung gesendet . Zweckmäßigerweise wird diese Nachricht gesendet , sobald die Prozessausgangsdaten erzeugt und/oder verschickt wurden .
Die Nachricht enthält in bevorzugter Weise eine Verarbeitungsinformation, welche die von der ersten Steuerungsvorrichtung zuletzt verarbeiteten Prozesseingangsdatenpakete kennzeichnet .
Dadurch kann in einem weiteren Verfahrensschritt S4 , zum Beispiel von der wenigstens einen weiteren Steuerungsvorrichtung, geprüft werden, ob die erste Steuerungsvorrichtung ausgefallen ist . Dazu kann beispielsweise geprüft werden, ob eine vorgegebene Totzeit seit Empfang der letzten Nachricht verstrichen ist oder ob die erste Steuerungsvorrichtung eine entsprechende Aus fallinformation über einen kontrollierten Aus fall bereitgestellt hat .
I st die erste Steuerungsvorrichtung nicht ausgefallen, kann das Verfahren bei Verfahrensschritt S 1 iterativ fortgesetzt werden .
Andernfalls kann die wenigstens eine weitere Steuerungsvorrichtung in einem weiteren Verfahrensschritt S5 die Funktion der ausgefallenen ersten Steuerungsvorrichtung übernehmen .
Dies wird als Redundanzumschaltung bezeichnet . Dabei verarbeitet nun zweckmäßigerweise die wenigstens eine weitere Steuerungsvorrichtung auf Grundlage der Verarbeitungsinformation von ihr empfangene , insbesondere im ihr zugeordneten Puf ferspeicher gespeicherte , Prozesseingangsdatenpakete zu Prozessausgangsdaten . Dabei identi fi ziert und verarbeitet die wenigstens eine weitere Steuerungsvorrichtung vorzugsweise diej enigen Prozesseingangsdatenpakete , die von der ersten Steuerungsvorrichtung noch nicht verarbeitet wurden . Insbesondere kann die wenigstens eine weitere Steuerungsvorrichtung diej enigen Prozesseingangsdatenpakete , insbesondere j edes Netzwerkteilnehmers , identi fi zieren und verarbeiten, die unmittelbar nach den zuletzt von der ersten Steuerungsvorrichtung verarbeiteten Prozesseingangsdatenpaketen empfangen wurden . Diej enigen Prozesseingangsdatenpakete , die in dem der wenigstens einen weiteren Steuerungsvorrichtung zugeordneten Puf ferspeicher gespeichert sind und bereits von der ersten Steuerungsvorrichtung verarbeitet wurden, können auf Grundlage der Verarbeitungsinformation ebenfalls identi fi ziert und gegebenenfalls gelöscht werden . Alle weiteren, im Anschluss an den Aus fall der ersten Steuerungsvorrichtung empfangenen und im Puf ferspeicher gepuf ften Prozesseingangsdatenpakete können in der folgenden Aufholphase schrittweise ebenfalls verarbeitet werden .
Obwohl die Erfindung im Detail durch die bevorzugten Aus führungsbeispiele näher illustriert und beschrieben wurde , ist die Erfindung nicht durch die of fenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen .