Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR PROVIDING TIME-CRITICAL CONTROL APPLICATIONS
Document Type and Number:
WIPO Patent Application WO/2023/126127
Kind Code:
A1
Abstract:
Time-critical control applications are provided by way of flow control components (113, 123, 133) that are each able to be loaded into a flow control environment (112, 122, 132) formed by way of a server device (101-103) and executed there. The control applications each periodically determine, from periodically acquired measured and/or state variables (12), manipulated variables (11) for a process to be controlled or regulated. A plurality of mutually redundant flow control components (113, 123, 123) are executed in parallel with one another. The mutually redundant flow control components (113, 123, 133) determine the manipulated variables (11) for a respective process cycle that follows a respective acquisition time of the measured and/or state variables (12) as soon as a majority of the mutually redundant flow control components signal error-free presence of the measured and/or state variables for the respective acquisition time. As an alternative or in addition, the determined manipulated variables are transmitted, together with a sequence number assigned to the respective process cycle, to actuators (320) and/or control units (31-32).

Inventors:
GÖTZ FRANZ-JOSEF (DE)
SCHIEKOFER RAINER (DE)
Application Number:
PCT/EP2022/084397
Publication Date:
July 06, 2023
Filing Date:
December 05, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G05B9/03
Domestic Patent References:
WO2017064560A12017-04-20
WO2019001718A12019-01-03
WO2017064560A12017-04-20
Foreign References:
US20150081043A12015-03-19
EP3674824A12020-07-01
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Bereitstellung von zeitkritischen Steuerungsanwendungen, bei dem die Steuerungsanwendungen mittels Ablaufsteuerungskomponenten (113, 123, 133) bereitgestellt werden, die jeweils in eine mittels einer Server-Einrichtung (101-103) gebildete Ablaufsteuerungsumgebung (112, 122, 132) ladbar und dort ausführbar sind, die Steuerungsanwendungen aus periodisch erfassten Mess- und/oder Zustandsgrößen (12) jeweils periodisch Stellgrößen (11) für einen zu steuernden oder zu regelnden Prozess ermitteln, mehrere zueinander redundante Ablaufsteuerungskomponenten (113, 123, 133) parallel zueinander ausgeführt werden, jeweils einheitlich Datenströme mit den periodisch erfassten Mess- und/oder Zustandsgrößen (12) abonnieren und die ermittelten Stellgrößen mittels Datenströmen an Aktoren und/oder Steuerungseinheiten übermitteln, für eine Übermittlung der Datenströme Dienstgüteanforderungen spezifiziert werden, die Mess- und/oder Zustandsgrößen unter Einschluss einer einem jeweiligen Erfassungszeitpunkt zugeordneten Sequenznummer an die zueinander redundanten Ablaufsteuerungskomponenten gesendet werden, die zueinander redundanten Ablaufsteuerungskomponenten (113, 123, 133) die ermittelten Stellgrößen (11) unter Einschluss einer dem jeweiligen Prozesszyklus zugeordneten Sequenznummer an die Aktoren (320) und/oder Steuerungseinheiten (31-32) übermitteln, die Aktoren (320) und/oder Steuerungseinheiten (31-32) anhand der Sequenznummern Duplikate der übermittelten Stellgrößen (11) identifizieren und filtern, zum Senden der Mess- und/oder Zustandsgrößen für den jeweiligen Erfassungszeitpunkt dieselben Sequenznummern verwendet werden wie zur Übermittlung der ermittelten Stellgrößen für den jeweiligen Prozesszyklus, der auf den jeweiligen Erfassungszeitpunkt der Mess- und/oder Zustandsgrößen folgt, in die Datenströme weiterleitenden Kommunikationsgeräten entsprechend den Dienstgüteanforderungen bei ausreichender Verfügbarkeit Ressourcen für die Übermittlung der Datenströme reserviert werden, wobei die Ressourcen nutzbare Übertragungszeitf enster, Bandbreite, zugesicherte maximale Latenz, Queue-Anzahl, Queue-Cache und/oder Adress-Cache in Switches oder Bridges umfassen.

2. Verfahren nach Anspruch 1, bei dem die Datenströme mit den periodisch erfassten Mess- und/oder Zustandsgrößen (12) durch jeweilige Datenquellen und/oder Sensoren (310) jeweils mittels Datenstrom- Ankündigungen bekannt gemacht und an eine Multicast-Adresse gesendet werden, die den jeweiligen Datenstrom abonnierenden Ablaufsteuerungskomponenten zugeordnet ist.

3. Verfahren nach einem der Ansprüche 1 oder 2, bei dem die die Datenströme weiterleitenden Kommunikationsgeräte (201-202) über ein Time-sensitive Network, insbesondere entsprechend IEEE802.3, IEEE 802. IQ, IEEE 802.1AB, IEEE

802.1AS, IEEE 802. IBA und/oder IEEE 802.1CB, miteinander verbunden sind.

4. Verfahren nach Anspruch 3, bei dem eine Weiterleitung der Datenströme mittels Frame Preemption, insbesondere gemäß IEEE 802. IQ, Time-Aware Shaper, insbesondere gemäß IEEE 802. IQ, Credit-Based Shaper, insbe- 18 sondere gemäß IEEE 802 . IQ, Burst Limiting Shaper, Peristaltic Shaper und/oder Priority-Based Shaper gesteuert wird .

5. Verfahren nach einem der Ansprüche 1 bis 4 , bei dem die Ablaufsteuerungskomponenten Software-Container, Java Bytecode oder auf Betriebssystemen ablaufenden Anwendungsprogramme sind und bei dem die Ablaufsteuerungsumgebung eine Container-Lauf zeitumgebung, eine Java Virtual Machine oder ein Betriebssystem ohne Echtzeit-Erweiterungen ist .

6. Verfahren nach einem der Ansprüche 1 bis 5 , bei dem die zueinander redundanten Ablaufsteuerungskomponenten die Stellgrößen über disj unkte Pfade an die Aktoren und/oder Steuerungseinheiten übermitteln .

7 . Verfahren nach einem der Ansprüche 1 bis 6 , bei dem die Stellgrößen j eweils an zueinander redundante Steuerungseinheiten übermittelt werden .

8 . Verfahren nach einem der Ansprüche 1 bis 7 , bei dem die zueinander redundanten Ablaufsteuerungskomponenten ( 113 , 123 , 133 ) das fehlerfreie Vorliegen der Mess- und/oder Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt j eweils mittels einer Bestätigungsmeldung ( 10 ) an die übrigen redundanten Ablaufsteuerungskomponenten signalisieren .

9. Verfahren nach einem der Ansprüche 1 bis 8 , bei dem bei einem verspäteten und/oder fehlerbehafteten Vorliegen der Mess- und/oder Zustandsgrößen in der Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten ein Fehler signalisiert wird und/oder eine erneute Übermittlung der zuletzt ermittelten Stellgrößen erfolgt . 19

10. Verfahren nach Anspruch 9, bei dem die Mess- und/oder Zustandsgrößen verspätet vorliegen, wenn sie nicht innerhalb einer zulässigen Latenz ab dem jeweiligen Erfassungszeitpunkt durch die Ablaufsteuerungskomponenten empfangen werden.

11. System zur Bereitstellung von zeitkritischen Steuerungsanwendungen mit mehreren Server-Einrichtungen (101-103) , mehreren mittels der Server-Einrichtungen (101-103) gebildeten Ablaufsteuerungsumgebungen (112, 122, 132) , mehreren Ablaufsteuerungskomponenten (113, 123, 133) zur Bereitstellung der Steuerungsanwendungen, wobei die Ablaufsteuerungskomponenten jeweils in eine mittels einer Server-Einrichtung (101-103) gebildete Ablaufsteuerungsumgebung (112, 122, 132) ladbar und dort ausführbar sind, wobei die Steuerungsanwendungen dafür eingerichtet und ausgestaltet sind, aus periodisch erfassten Mess- und/oder Zustandsgrößen (12) jeweils periodisch Stellgrößen (11) für einen zu steuernden oder zu regelnden Prozess zu ermitteln, wobei die Ablaufsteuerungskomponenten dafür eingerichtet und ausgestaltet sind, als zueinander redundante Ablaufsteuerungskomponenten parallel zueinander ausgeführt zu werden, jeweils einheitlich Datenströme mit den periodisch erfassten Mess- und/oder Zustandsgrößen (12) zu abonnieren und die ermittelten Stellgrößen mittels Datenströmen an Aktoren und/oder Steuerungseinheiten übermitteln, wobei das System dafür eingerichtet und ausgestaltet ist, dass für eine Übermittlung der Datenströme Dienstgüteanforderungen spezifiziert werden und die Mess- 20 und/oder Zustandsgrößen unter Einschluss einer einem j eweiligen Erfassungs zeitpunkt zugeordneten Sequenznummer an die zueinander redundanten Ablaufsteuerungskomponenten gesendet werden, wobei die Ablaufsteuerungskomponenten dafür eingerichtet und ausgestaltet sind, die ermittelten Stellgrößen unter Einschluss einer dem j eweiligen Prozess zyklus zugeordneten Sequenznummer an die Aktoren und/oder Steuerungseinheiten zu übermitteln, wobei die Aktoren ( 320 ) und/oder Steuerungseinheiten ( 31-32 ) dafür eingerichtet und ausgestaltet sind, anhand der Sequenznummern Duplikate der übermittelten Stellgrößen ( 11 ) zu identi fi zieren und zu filtern, wobei das System ferner dafür eingerichtet und ausgestaltet ist , dass zum Senden der Mess- und/oder Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt dieselben Sequenznummern verwendet werden wie zur Übermittlung der ermittelten Stellgrößen für den j eweiligen Prozess zyklus , der auf den j eweiligen Erfassungs zeitpunkt der Mess- und/oder Zustandsgrößen folgt , wobei das System ferner dafür eingerichtet und ausgestaltet ist , dass in die Datenströme weiterleitenden Kommunikationsgeräten entsprechend den Dienstgüteanforderungen bei ausreichender Verfügbarkeit Ressourcen für die Übermittlung der Datenströme reserviert werden, wobei die Ressourcen nutzbare Übertragungs zeitf enster, Bandbreite , zugesicherte maximale Latenz , Queue-Anzahl , Queue-Cache und/oder Adress-Cache in Switches oder Bridges umfassen .

Description:
Beschreibung

Verfahren und System zur Bereitstellung von zeitkritischen Steue rungs anwendungen

Die vorliegende Erfindung betri f ft ein Verfahren zur Bereitstellung von zeitkritischer Steuerungsanwendungen, insbesondere Steuerungsanwendungen in einem industriellen Automatisierungssystem, sowie ein System, das zur Durchführung des Verfahrens geeignet ist .

Ein industrielles Automatisierungssystem umfasst üblicherweise eine Viel zahl von über ein industrielles Kommunikationsnetz miteinander vernetzten Automatisierungsgeräten und dient im Rahmen einer Fertigungs- oder Prozessautomatisierung zur Steuerung oder Regelung von Anlagen, Maschinen bzw . Geräten . Aufgrund zeitkritischer Rahmenbedingungen in industriellen Automatisierungssystemen werden zur Kommunikation zwischen Automatisierungsgeräten überwiegend Echtzeit-Kommunikationsprotokolle , wie PROFINET , PROFIBUS , Real-Time-Ethernet oder Time-Sensitive Networking ( TSN) , verwendet .

Aufgrund einer Nutzung für häufig äußerst unterschiedliche Anwendungen können in Ethernet-basierten Kommunikationsnetzen beispielsweise Probleme entstehen, wenn Netzressourcen für eine Übermittlung von Datenströmen oder von Datenrahmen mit Echt Zeitanforderungen konkurrierend für eine Übermittlung von Datenrahmen mit großem Nutzdateninhalt ohne spezielle Dienstgüteanforderungen beansprucht werden . Dies kann dazu führen, dass Datenströme oder Datenrahmen mit Echt Zeitanforderungen nicht entsprechend einer angeforderten bzw . benötigten Dienstgüte übermittelt werden . In WO 2019/ 001718 Al ist ein Verfahren zur Datenübermittlung beschrieben, das eine Kombination von geschützter Kommunikation und geringem Netzwerk-Konfigurationsaufwand ermöglicht . Dabei werden bei einer Reservierung von Ressourcen zur Übermittlung von Datenströmen ( Streams ) von einem Sender zu einem Empfänger zumindest zwei zumindest abschnittsweise redundante Pfade reserviert . Durch Erweiterung eines Reservierungsprotokolls wird eine automatische Konfiguration von Duplikatefiltern an redundanten Pfadabschnitten zugeordneten Netzknoten während einer Ressourcenreservierung vorgenommen .

Aus EP 3 674 824 Al ist bekannt , dass für Datenströme , die auf Endgeräten ablaufenden ausgewählten Steuerungsanwendungen zugeordnet sind, j eweils ein individuelles Zeitfenster innerhalb vorgegebener Zeitintervalle spezi fi ziert wird . Die Zeitfenster weisen j eweils eine individuelle Zyklusdauer auf , die ein Viel faches einer allgemeinen Zyklusdauer ist oder der allgemeinen Zyklusdauer entspricht . Erste bzw . zweite Kommunikationsgeräte überprüfen für die ausgewählten Steuerungsanwendungen j eweils , ob ein spezi fi ziertes Zeitfenster zur Datenübermittlung verfügbar ist . Bei einem verfügbaren Zeitfenster wird j eweils eine Information über einen Beginn des Zeitfensters innerhalb der vorgegebenen Zeitintervalle an das Endgerät übermittelt , auf dem die j eweilige ausgewählte Steuerungsanwendung abläuft . Datenströme , die ausgewählten Steuerungsanwendungen zugeordnet sind, werden j eweils entsprechend der Information über den Beginn des individuellen Zeitfensters übermittelt .

In WO 2017 / 064560 Al wird ein Verfahren zum Bereitstellen einer zentralisierten Verwaltung eines softwaredefinierten Automatisierungs-Systems ( SDA-System) beschrieben . Das SDA- System umfasst eine Erfassung von Controller-Knoten und eine logisch zentralisierte und dennoch physisch verteilte Erfas- sung von Rechenknoten durch Überwachung von Aktivitäten der Rechenknoten . Dabei können durch Systemkomponenten Aus füh- rungs- , Netzwerk- und Sicherheitsumgebungen innerhalb des SDA-Systems überwacht werden, um kritische Ereignisse in einer vorgegebenen Umgebung zu erkennen . Als Reaktion auf ein erkanntes kritisches Ereignis wird mindestens eine Komponente in der vorgegebenen Umgebung korrigiert . Eine Korrektur innerhalb der vorgegebenen Umgebung bewirkt , dass eine Korrektur mindestens einer Komponente innerhalb zumindest einer weiteren Umgebung veranlasst wird .

In industriellen Automatisierungssystemen werden Steuerungsanwendungen üblicherweise in Echt Zeitsystemen, wie speicherprogrammierbaren Steuerungen, ausgeführt , damit ein deterministischer Ablauf der Steuerungsanwendungen sichergestellt werden kann . Im Rahmen eines Programmzyklus werden zunächst aus einer gesteuerten bzw . geregelten Prozess Mess- bzw . Zustandsgrößen als Eingangssignale abgefragt . Dann erfolgt durch die Steuerungsanwendungen auf Basis der abgefragten Eingangssignale eine Ermittlung von Stellgrößen als Ausgangssignalen . Schließlich werden die Ausgangssignale über idealerweise echt zeit fähige Kommunikationssystem an zu steuernde bzw . zu regelnde Geräte übermittelt .

In virtualisierten Steuerungssystemen oder Betriebssystemen ohne Echtzeit-Erweiterungen haben Steuerungsanwendungen j edoch keinen direkten Zugri f f auf Hardware und Ablaufsteuerungsumgebung hat . Somit kann beispielsweise keine sofortige Aus führung von Steuerungsbefehlen erzwungen werden . Insbesondere ist es in virtualisierten Steuerungssystemen oder Betriebssystemen ohne Echtzeit-Erweiterungen möglich, dass eine hoch priorisierte Steuerungsanwendung von einer anderen Anwendung verdrängt bzw . verzögert ausgeführt wird . Dies kann beispielsweise dann vorkommen, wenn in einer virtualisierten Umgebung zwei Steuerungsanwendungen laufen, die gleichzeitig exklusiven Zugri f f auf dieselbe Ressource anfordern .

Der vorliegenden Erfindung liegt die Aufgabe zugrunde , ein Verfahren zur Bereitstellung zeitkritischer Steuerungsanwendungen innerhalb von Umgebungen zu schaf fen, die per se keine Echt zeit fähigkeit aufweisen bzw . und eine geeignete Vorrichtung zur Durchführung des Verfahrens anzugeben .

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den in Anspruch 1 angegebenen Merkmalen und durch ein System mit den in Anspruch 11 angegebenen Merkmalen gelöst . Vorteilhafte Weiterbildungen sind in den abhängigen Ansprüchen angegeben .

Entsprechend dem erfindungsgemäßen Verfahren werden Steuerungsanwendungen mittels Ablaufsteuerungskomponenten bereitgestellt , die j eweils in eine mittels einer Server-Einrichtung gebildete Ablaufsteuerungsumgebung ladbar und dort ausführbar sind . Die Steuerungsanwendungen ermitteln aus periodisch erfassten Mess- bzw . Zustandsgrößen j eweils periodisch Stellgrößen für einen zu steuernden oder zu regelnden Prozess .

Die Ablaufsteuerungskomponenten sind vorzugsweise Software- Container, Java Bytecode oder auf Betriebssystemen ablaufenden Anwendungsprogramme , während die Ablaufsteuerungsumgebung eine Container-Lauf zeitumgebung, wie eine Docker Engine , eine Java Virtual Machine oder ein Betriebssystem ohne Echtzeit- Erweiterungen sein kann . Grundsätzlich können für die Ablaufsteuerungskomponenten auch alternative Micro-Virtualisie- rungskonzepte , wie Snaps , verwendet werden . Dementsprechend kann die Ablaufsteuerungsumgebung auch einen Snap Core umfas- sen . Vorzugsweise sind Software-Container j eweils dafür ausgestaltet und eingerichtet , von anderen Software-Containern oder Container-Gruppen isoliert innerhalb der Ablaufsteuerungsumgebung auf einem Host-Betriebssystem abzulaufen, das in der Server-Einrichtung installiert ist . Insbesondere nutzen die Software-Container j eweils gemeinsam mit anderen auf der Server-Einrichtung ablaufenden Software-Containern einen Kernel des Host-Betriebssystems der Server-Einrichtung .

Erfindungsgemäß werden mehrere zueinander redundante Ablaufsteuerungskomponenten parallel zueinander ausgeführt . Darüber hinaus übermitteln die zueinander redundanten Ablaufsteuerungskomponenten die ermittelten Stellgrößen unter Einschluss einer dem j eweiligen Prozess zyklus zugeordneten Sequenznummer an Aktoren bzw . Steuerungseinheiten . Dabei identi fi zieren die Aktoren bzw . Steuerungseinheiten anhand der Sequenznummern Duplikate der übermittelten Stellgrößen und filtern diese dementsprechend . Zusätzlich kann vorgesehen sein, dass die zueinander redundanten Ablaufsteuerungskomponenten die Stellgrößen für einen j eweiligen Prozess zyklus ermitteln, der auf einen j eweiligen Erfassungs zeitpunkt der Mess- bzw . Zustandsgrößen folgt , sobald eine Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten ein fehlerfreies Vorliegen der Mess- bzw . Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt signalisiert .

Die vorliegende Erfindung ermöglicht eine Aus führung von zeitkritischen Steuerungsanwendungen in Ablaufsteuerungsumgebungen, die selbst keine Echt zeit fähigkeit aufweisen, und zwar durch obige Koordination zueinander redundanter Ablaufsteuerungskomponente bzw . durch eine koordinierte , redundante Übermittlung der ermittelten Stellgrößen . Dadurch kann übliche IT- Infrastruktur verwendet werden, um Steuerungsaufgabe zu lösen, die üblicherweise Echt zeit fähigkeit erfordern . Eine besonders hohe Verfügbarkeit ergibt sich, wenn die zueinander redundanten Ablaufsteuerungskomponenten die Stellgrößen über disj unkte Pfade an die Aktoren bzw . Steuerungseinheiten übermitteln bzw . wenn bei dem die Stellgrößen j eweils an zueinander redundante Steuerungseinheiten übermittelt werden .

Erfindungsgemäß abonnieren die zueinander redundanten Ablaufsteuerungskomponenten j eweils einheitlich Datenströme mit den periodisch erfassten Mess- bzw . Zustandsgrößen . Auf diese Weise kann sichergestellt werden, dass die zueinander redundanten Ablaufsteuerungskomponenten mit einem konsistenten Prozessabbild arbeiten . Vorzugsweise werden die Datenströme mit den periodisch erfassten Mess- bzw . Zustandsgrößen durch j eweilige Datenquellen bzw . Sensoren j eweils mittels Datenstrom-Ankündigungen bekannt gemacht und an eine Multicast- Adresse gesendet , die den j eweiligen Datenstrom abonnierenden Ablaufsteuerungskomponenten zugeordnet ist .

Darüber hinaus werden die Mess- bzw . Zustandsgrößen erfindungsgemäß unter Einschluss einer dem j eweiligen Erfassungszeitpunkt zugeordneten Sequenznummer an die zueinander redundanten Ablaufsteuerungskomponenten gesendet . Dabei übermitteln die zueinander redundanten Ablaufsteuerungskomponenten die ermittelten Stellgrößen mittels Datenströmen an die Aktoren bzw . Steuerungseinheiten . Zum Senden der Mess- bzw . Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt werden dieselben Sequenznummern verwendet wie zur Übermittlung der ermittelten Stellgrößen für den j eweiligen Prozess zyklus , der auf den j eweiligen Erfassungs zeitpunkt der Mess- bzw . Zustandsgrößen folgt . Auf diese Weise können stochastische Eigenschaften von verteilten Systemen in Kombination mit Kommunikationssystemfunktionen zur deterministischen und redundanten Übermittlung von Datenströmen ef fi zient genutzt , um einen stochastischen Determinismus für die Steuerungsanwendungen zu ermöglichen .

Für eine Übermittlung der Datenströme werden erfindungsgemäß Dienstgüteanforderungen spezi fi ziert . Entsprechend diesen Dienstgüteanforderungen werden in die Datenströme weiterleitenden Kommunikationsgeräten, beispielsweise Switches , Bridges oder Router, Ressourcen für die Übermittlung der Datenströme reserviert . Diese Ressourcen werden bei ausreichender Verfügbarkeit in den die Datenströme weiterleitenden Kommunikationsgeräten reserviert und umfassen nutzbare Übertragungszeitfenster, Bandbreite , zugesicherte maximale Latenz , Queue- Anzahl , Queue-Cache bzw . Adress-Cache in Switches oder Bridges .

Entsprechend einer besonders bevorzugten Ausgestaltung der vorliegenden Erfindung sind die Kommunikationsgeräte , welche die Datenströme weiterleiten, über ein Time-sensitive Network, insbesondere entsprechend IEEE802 . 3 , IEEE 802 . IQ, IEEE 802 . 1AB, IEEE 802 . 1AS , IEEE 802 . IBA bzw . IEEE 802 . 1CB, miteinander verbunden . Dementsprechend kann eine Weiterleitung der Datenströme mittels Frame Preemption, insbesondere gemäß IEEE 802 . IQ, Time-Aware Shaper, insbesondere gemäß IEEE 802 . IQ, Credit-Based Shaper, insbesondere gemäß IEEE 802 . IQ, Burst Limiting Shaper, Peristaltic Shaper bzw . Priority-Based Shaper gesteuert werden . Auf diese Weise kann auf bewährte , zuverlässig zu implementierende Kommunikationssystemfunktionen zur deterministischen und redundanten Übermittlung von Datenströmen zurückgegri f fen werden .

Die zueinander redundanten Ablaufsteuerungskomponenten signalisieren das fehlerfreie Vorliegen der Mess- bzw . Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt vorteilhafterweise j eweils mittels einer Bestätigungsmeldung an die übri- gen redundanten Ablaufsteuerungskomponenten . Darüber hinaus wird bei einem verspäteten bzw . fehlerbehafteten Vorliegen der Mess- bzw . Zustandsgrößen in der Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten ein Fehler signalisiert , bzw . es erfolgt eine erneute Übermittlung der zuletzt ermittelten Stellgrößen . Damit ist auch in Fehlerfällen ein definiertes Systemverhalten sichergestellt . Verspätet liegen die Mess- bzw . Zustandsgrößen beispielsweise vor, wenn sie nicht innerhalb einer zulässigen Latenz ab dem j eweiligen Erfassungs zeitpunkt durch die Ablaufsteuerungskomponenten empfangen werden .

Das erfindungsgemäße System zur Bereitstellung von zeitkritischen Steuerungsanwendungen ist zur Durchführung eines Verfahrens entsprechend vorangehenden Aus führungen geeignet und umfasst mehrere Server-Einrichtungen, mehrere mittels der Server-Einrichtungen gebildete Ablaufsteuerungsumgebungen sowie mehrere Ablaufsteuerungskomponenten zur Bereitstellung der Steuerungsanwendungen . Die Ablaufsteuerungskomponenten sind j eweils in eine mittels einer Server-Einrichtung gebildete Ablaufsteuerungsumgebung ladbar und dort aus führbar . Dabei sind die Steuerungsanwendungen dafür eingerichtet und ausgestaltet , aus periodisch erfassten Mess- bzw . Zustandsgrößen j eweils periodisch Stellgrößen für einen zu steuernden oder zu regelnden Prozess zu ermitteln .

Die Ablaufsteuerungskomponenten des erfindungsgemäßen Systems sind dafür eingerichtet und ausgestaltet , als zueinander redundante Ablaufsteuerungskomponenten parallel zueinander ausgeführt zu werden, j eweils einheitlich Datenströme mit den periodisch erfassten Mess- bzw . Zustandsgrößen zu abonnieren und die ermittelten Stellgrößen mittels Datenströmen an Aktoren bzw . Steuerungseinheiten übermitteln . Dementsprechend ist erfindungsgemäße System dafür eingerichtet und ausgestaltet , dass für eine Übermittlung der Datenströme Dienstgüteanforderungen spezi fi ziert werden und die Mess- bzw . Zustandsgrößen unter Einschluss einer einem j eweiligen Erfassungs zeitpunkt zugeordneten Sequenznummer an die zueinander redundanten Ablaufsteuerungskomponenten gesendet werden .

Darüber hinaus sind die Ablaufsteuerungskomponenten dafür eingerichtet und ausgestaltet , die ermittelten Stellgrößen unter Einschluss einer dem j eweiligen Prozess zyklus zugeordneten Sequenznummer an die Aktoren bzw . Steuerungseinheiten zu übermitteln . Dementsprechend sind die Aktoren bzw . Steuerungseinheiten dafür eingerichtet und ausgestaltet , anhand der Sequenznummern Duplikate der übermittelten Stellgrößen zu identi fi zieren und zu filtern . Des Weiteren ist das erfindungsgemäße System dafür eingerichtet und ausgestaltet , dass zum Senden der Mess- bzw . Zustandsgrößen für den j eweiligen Erfassungs zeitpunkt dieselben Sequenznummern verwendet werden wie zur Übermittlung der ermittelten Stellgrößen für den j eweiligen Prozess zyklus , der auf den j eweiligen Erfassungszeitpunkt der Mess- bzw . Zustandsgrößen folgt . Außerdem ist das System dafür eingerichtet und ausgestaltet , dass in die Datenströme weiterleitenden Kommunikationsgeräten entsprechend den Dienstgüteanforderungen bei ausreichender Verfügbarkeit Ressourcen für die Übermittlung der Datenströme reserviert werden . Dabei umfassen die Ressourcen nutzbare Übertragungs zeitfenster, Bandbreite , zugesicherte maximale Latenz , Queue-Anzahl , Queue-Cache bzw . Adress-Cache in Switches oder Bridges .

Die vorliegende Erfindung wird nachfolgend an einem Aus führungsbeispiel anhand der Zeichnung näher erläutert . Es zeigt die Figur ein System zur Bereitstellung von zeitkritischen Steuerungsanwendungen .

Das in der Figur dargestellte System umfasst mehrere Server- Einrichtung 101- 103 zur Bereitstellung von Steuerungsanwendungen eines industriellen Automatisierungssystems . Die Steuerungsanwendungen des industriellen Automatisierungssystems sind exemplarisch für zeitkritische Dienste und können auch Überwachungs funktionen umfassen . Die Server-Einrichtungen 101- 103 sind im vorliegenden Aus führungsbeispiel über ein mehrere Switche 201-203 umfassendes Kommunikationsnetz mit zwei zueinander redundanten Eingabe/Ausgabe-Einheiten 301-302 verbunden, die als Steuerungseinheiten für angeschlossene Sensoren und Aktoren dienen . Beispielsweise können an die Eingabe/Ausgabe-Einheiten 301-302 ein Kamerasystem 310 als Sensor und eine durch o . g . Steuerungsanwendungen gesteuerte Maschine als Aktor angeschlossen sein .

Die Switche 201-203 sind insbesondere zur Weiterleitung von Datenströmen über ein Time-sensitive Network entsprechend IEEE802 . 3 , IEEE 802 . IQ, IEEE 802 . 1AB, IEEE 802 . 1AS , IEEE 802 . IBA und IEEE 802 . 1CB ausgestaltet . Dabei kann die Weiterleitung der Datenströme beispielsweise mittels Frame Preemption gemäß IEEE 802 . IQ, Time-Aware Shaper gemäß IEEE 802 . IQ, Credit-Based Shaper gemäß IEEE 802 . IQ, Burst Limiting Shaper, Peristaltic Shaper bzw . Priority-Based Shaper gesteuert werden .

Die Server-Einrichtungen 101- 103 können mittels der Steuerungsanwendungen beispielsweise Funktionen von Steuerungsgeräten eines industriellen Automatisierungssystems , wie speicherprogrammierbaren Steuerungen, implementieren . Auf diese Weise können die Server-Einrichtung 101- 103 insbesondere für einen Austausch von Steuerungs- und Messgrößen mit durch die Server-Einrichtungen 101-103 gesteuerten Maschinen oder Vorrichtungen genutzt werden. Dabei können die Server-Einrichtungen 101-103 aus erfassten Mess- oder beobachteten Zustandsgrößen geeignete Stellgrößen für die Maschinen oder Vorrichtungen ermitteln.

Alternativ oder zusätzlich können die Server-Einrichtung 101- 103 mittels der Steuerungsanwendungen Funktionen von Bedien- und Beobachtungsstationen implementieren und somit zur Visualisierung von Prozessdaten bzw. Mess- und Steuerungsgrößen genutzt werden, die durch Automatisierungsgeräte verarbeitet bzw. erfasst werden. Insbesondere können die Server-Einrichtungen 101-103 zur Anzeige von Werten eines Regelungskreises und zur Veränderung von Regelungsparametern oder -programmen verwendet werden.

In der Server-Einrichtungen 101-103 werden die Steuerungsanwendungen werden jeweils mittels Ablaufsteuerungskomponenten 113, 123, 133 bereitgestellt, die in eine mittels der jeweiligen Server-Einrichtung 101-103 gebildete Ablaufsteuerungsumgebung 112, 122, 132 ladbar und dort ausführbar sind. Die Ablaufsteuerungsumgebungen 112, 122, 132 sind jeweils als Anwendung auf einem Host-Betriebssystem 111, 121, 131 der jeweiligen Server-Einrichtung 101-103 installiert. Darüber hinaus können innerhalb der Ablaufsteuerungsumgebungen auch Ablaufsteuerungskomponenten 114, 124 für zeitunkritische Anwendungsprogramme ausgeführt werden.

Im vorliegenden Ausführungsbeispiel sind bzw. umfassen die Ablaufsteuerungskomponenten 113-114, 123-124, 133 Software- Container, die jeweils von anderen Software-Containern, Container-Gruppen bzw. Pods isoliert innerhalb der Ablaufsteuerungsumgebungen 112, 122, 132 auf dem jeweiligen Host-Be- triebssystem 111, 121, 131 ablaufen. Dabei nutzen die Soft- ware-Container jeweils gemeinsam mit anderen auf der jeweiligen Server-Einrichtung 101-103 ablaufenden Software-Containern einen Kernel des jeweiligen Host-Betriebssystems 111,

121, 131. Die Ablaufsteuerungsumgebungen 112, 122, 132 sind vorzugsweise Container-Laufzeitumgebungen bzw. Container- Engines. Entsprechend alternativen Aus führungs formen können die Ablaufsteuerungskomponenten 113-114, 123-124, 133 Java Bytecode oder auf Betriebssystemen ablaufenden Anwendungsprogramme umfassen, während die Ablaufsteuerungsumgebungen 112,

122, 132 in diesem Fall jeweils eine Java Virtual Machine oder ein Betriebssystem ohne Echtzeit-Erweiterungen sind.

Eine Isolation der Ablaufsteuerungskomponenten bzw. eine Isolation von ausgewählten Betriebssystemmitteln untereinander kann insbesondere mittels Control Groups und Namespacing realisiert werden. Mittels Control Groups lassen sich Prozessgruppen definieren, um verfügbare Ressourcen für ausgewählte Gruppen zu beschränken. Über Namespaces können einzelne Prozesse oder Control Groups gegenüber anderen Prozessen oder Control Groups isoliert bzw. verborgen werden.

Die Steuerungsanwendungen ermitteln aus periodisch erfassten Mess- bzw. Zustandsgrößen 12 jeweils periodisch Stellgrößen 11 für einen zu steuernden oder zu regelnden Prozess. Hierzu werden mehrere zueinander redundante Ablaufsteuerungskomponenten 113, 123, 133 parallel zueinander ausgeführt. Die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 abonnieren im vorliegenden Ausführungsbeispiel jeweils einheitlich Datenströme mit den periodisch erfassten Mess- bzw. Zustandsgrößen 12, die insbesondere vom Kamerasystem 310 stammen können. Die Datenströme mit den periodisch erfassten Mess- bzw. Zustandsgrößen werden durch jeweilige Datenquellen bzw. Sensoren 310 jeweils mittels Datenstrom-Ankündigungen, z.B. Talker Advertise, bekannt gemacht und an eine Multicast- Adresse gesendet, die den jeweiligen Datenstrom abonnierenden

Ablaufsteuerungskomponenten 113, 123, 133 zugeordnet ist.

Für eine Übermittlung der Datenströme können insbesondere Talker- bzw. Listener-seitig Dienstgüteanforderungen spezifiziert werden, so dass in die Datenströme weiterleitenden Kommunikationsgeräten, wie den Switches 201-203, entsprechend den Dienstgüteanforderungen Ressourcen für die Übermittlung der Datenströme reserviert werden. Dies setzt voraus, dass in den die Datenströme weiterleitenden Kommunikationsgeräten ausreichende Ressourcen verfügbar sind. Dabei umfassen die Ressourcen beispielsweise nutzbare Übertragungszeitf enster, Bandbreite, zugesicherte maximale Latenz, Queue-Anzahl, Queue-Cache bzw. Adress-Cache in Switches oder Bridges umfassen .

Die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 ermitteln die Stellgrößen 11 für einen jeweiligen Prozesszyklus, der auf einen jeweiligen Erfassungszeitpunkt der Mess- bzw. Zustandsgrößen 12 folgt, sobald eine Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten ein fehlerfreies Vorliegen der Mess- bzw. Zustandsgrößen 12 für den jeweiligen Erfassungszeitpunkt signalisiert. Im vorliegenden Ausführungsbeispiel signalisieren die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 das fehlerfreie Vorliegen der Mess- bzw. Zustandsgrößen 12 für den jeweiligen Erfassungszeitpunkt jeweils mittels einer Bestätigungsmeldung 10 an die übrigen redundanten Ablaufsteuerungskomponenten .

Bei einem verspäteten oder fehlerbehafteten Vorliegen der Mess- bzw. Zustandsgrößen 12 in der Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 kann ein Fehler signalisiert werden bzw. eine erneute Übermittlung der zuletzt ermittelten Stellgrößen 11 erfolgen. Verspätet liegen die Mess- bzw. Zustandsgrößen vor, wenn sie nicht innerhalb einer zulässigen Latenz ab dem jeweiligen Erfassungszeitpunkt durch die Ablaufsteuerungskomponenten empfangen werden .

Alternativ oder zusätzlich übermitteln die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 die ermittelten Stellgrößen 11 unter Einschluss einer dem jeweiligen Prozesszyklus zugeordneten Sequenznummer an Aktoren 320 bzw. Steuerungseinheiten 31-32. Dies kann insbesondere unabhängig davon erfolgen, ob bzw. wann die Mess- bzw. Zustandsgrößen 12 für den jeweiligen Erfassungszeitpunkt in der Mehrheit der zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 fehlerfrei vorliegen. Anhand der Sequenznummern können die Aktoren 320 bzw. Steuerungseinheiten 31-32 Duplikate der übermittelten Stellgrößen 11 identifizieren und filtern. Eine solche Duplikatefilterung kann auch durch die Switches 201- 203 nach einer Weiterleitung der Stellgrößen 11 über abschnittsweise disjunkte Pfade erfolgen.

Vorzugsweise werden die Mess- bzw. Zustandsgrößen 12 unter Einschluss einer dem jeweiligen Erfassungszeitpunkt zugeordneten Sequenznummer mittels der abonnierten Datenströme an die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 gesendet. Korrespondierend dazu übermitteln die zueinander redundanten Ablaufsteuerungskomponenten 113, 123, 133 die ermittelten Stellgrößen 11 mittels Datenströmen an die Aktoren 320 bzw. Steuerungseinheiten 31-32. Dabei werden zum Senden der Mess- bzw. Zustandsgrößen 12 für den jeweiligen Erfassungszeitpunkt dieselben Sequenznummern verwendet werden wie zur Übermittlung der ermittelten Stellgrößen 11 für den jeweiligen Prozesszyklus, der auf den jeweiligen Erfassungszeitpunkt der Mess- bzw. Zustandsgrößen 12 folgt. Zur Duplikatefilterung kann auf Basis einer maximalen Varianz von Frame- bzw . Paket-Lauf zeiten bei einer Übermittlung der Stellgrößen 11 eine Größe bzw . Tiefe eines Duplikatefilters festgelegt werden . Zusätzlich kann eine minimale Intervall- Länge berücksichtigt werden, mit der die Mess- bzw . Zustandsgrößen 12 periodisch durch die j eweilige Datenquellen bzw . Sensoren 310 gesendet werden . Eine Varianz aus minimalen und maximalen Lauf zeiten über Duplikate von Stellgrößen 11 , die von zueinander redundanten Ablaufsteuerungskomponenten 113 , 123 , 133 werden, lässt sich an Verknüpfungspunkten, beispielsweise an den Switches 201-203 , relativ problemlos bestimmen . Insbesondere können in deterministischen Kommunikationsnetzen an den Verknüpfungspunkten Merging Points Funktionen zur Jitter-Minimierung genutzt werden . Durch gezielte Verzögerungen bei der Übermittlung der Stellgrößen 11 oder der Mess- bzw . Zustandsgrößen 12 kann ein reduzierter Jitter erzielt werden .

Entsprechend einer besonders bevorzugten Aus führungsvariante ist zur Nutzung von redundanter Datenübermittlung, asynchroner Kommunikation, Diagnose von verteilten Systemen und zur Koordination der zueinander redundanten Ablaufsteuerungskomponenten 113 , 123 , 133 ein Supervisor 100 vorgesehen . Mittels des Supervisors können beispielsweise redundante Ablaufsteuerungskomponenten hinzugefügt oder entfernt werden . Ein Entfernen von Ablaufsteuerungskomponenten aus einem Cluster redundanter Ablaufsteuerungskomponenten bietet sich insbesondere dann an, wenn eine Ablaufsteuerungskomponente benötigte Mess- bzw . Zustandsgrößen verspätet empfängt bzw . verarbeitet . Auf diese Weise können Latenzen und Jitter reduziert werden .