Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
RUNTIME SERVER FOR SIMULTANEOUSLY EXECUTING MULTIPLE RUNTIME SYSTEMS OF AN AUTOMATION INSTALLATION
Document Type and Number:
WIPO Patent Application WO/2021/001376
Kind Code:
A1
Abstract:
The invention relates to a runtime server (100) for simultaneously executing multiple runtime systems (101) in an operating system (103) for a data processing installation for controlling an automation installation on the basis of an installation control program, wherein the runtime systems (101) are designed for real-time execution of the installation control program, comprising: at least two runtime systems (101) for executing application modules (105) of the installation control program, wherein at least one application module (105) for executing an application of the installation control program is installed on each runtime system (101), wherein each runtime system (101) has a data transmission interface (107) for data transmission between runtime systems (101) and/or between application modules (105), wherein each runtime system (101) has an I/O configuration (109) that defines an association between at least one variable of the application modules (105) of the runtime systems (101) and at least one hardware address of a hardware component (113) of an automation installation (112) to be controlled, an I/O interface (111) for data interchange between the at least two runtime systems (101) and the hardware components (113) of the automation installation (112) having at least one I/O input (115) and/or I/O output (117), and an I/O mapping intermediate layer (119), wherein the I/O configurations (109) of the at least two runtime systems (101) are mapped in the I/O mapping intermediate layer (119). The invention further relates to a computer program product (200) for executing the runtime server (100).

Inventors:
BECKHOFF HANS (DE)
BARTH RAMON (DE)
JANSSEN DIRK (DE)
PAPENFORT JOSEF (DE)
Application Number:
EP2020/068413
Publication Date:
January 07, 2021
Filing Date:
June 30, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BECKHOFF AUTOMATION GMBH (DE)
International Classes:
G06F15/17; G05B19/414
Foreign References:
US20140074294A12014-03-13
US20170045879A12017-02-16
CN101894045A2010-11-24
DE102019117954A2019-07-03
EP2341405B12015-08-05
Other References:
GOLDSCHMIDT THOMAS ET AL: "Software Containers for Industrial Control", 2016 42TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA), IEEE, 31 August 2016 (2016-08-31), pages 258 - 265, XP032979060, ISSN: 2376-9505, [retrieved on 20161014], DOI: 10.1109/SEAA.2016.23
Attorney, Agent or Firm:
PATENTANWALTSKANZLEI WILHELM & BECK (DE)
Download PDF:
Claims:
Ansprüche

1. Laufzeitserver (100) zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme (101) in einem Betriebssystem (103) für eine Datenverarbeitungsanlage zum Steuern ei ner Automatisierungsanlage (112) auf Basis eines Anlagensteuerprogramms, wobei die Laufzeitsysteme (101) zur Echtzeitausführung des Anlagensteuerprogramms ausgebildet sind, umfassend:

wenigstens zwei Laufzeitsysteme (101) zum Ausführen von Anwendungsmodulen (105) des Anlagensteuerprogramms, wobei die Laufzeitsysteme (101) als Laufzeit umgebungen ausgebildet sind, wobei auf jedem Laufzeitsystem (101) wenigstens ein Anwendungsmodul (105) zur Ausführung einer Anwendung des Anlagensteuer programms installiert ist, wobei jedes Laufzeitsystem (101) eine Datenübertragungs schnittstelle (107) zur Datenübertragung zwischen Laufzeitsystemen (101) und/oder zwischen Anwendungsmodulen (105) aufweist, wobei jedes Laufzeitsystem (101) eine I/O-Konfiguration (109) aufweist, die eine Zuordnung zwischen wenigstens ei ner Variable der Anwendungsmodule (105) der Laufzeitsysteme (101) und wenigs tens einer Hardwareadresse einer Hardwarekomponente (113) einer zu steuernden Automatisierungsanlage (112) definiert;

eine I/O-Schnittstelle (111) zum Datenaustausch zwischen den wenigstens zwei Laufzeitsystemen (101) und den Hardwarekomponenten (113) der Automatisie rungsanlage (112) mit wenigstens einem I/O-Eingang (115) und/oder I/O-Ausgang (117);

und

eine I/O-Mapping-Zwischenschicht (119), wobei in der I/O-Mapping-Zwischenschicht (119) die I/O-Konfigurationen (109) der wenigstens zwei Laufzeitsysteme (101) ab gebildet sind.

2. Laufzeitserver (100) nach Anspruch 1 , wobei den Laufzeitsystemen (101) vom Lauf zeitserver (100) wenigstens jeweils ein Speicherbereich und/oder ein Prozessor und/oder eine Prozessorzeit der Datenverarbeitungsanlage zugeordnet ist.

3. Laufzeitserver (100) nach Anspruch 1 oder 2, wobei die Laufzeitsysteme (101) in- stanziiert sind.

4. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei die Anwen- dungsmodule (105) autark und voneinander unabhängig sind. 5. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei die Lauf zeitsysteme (101) in einem Echtzeit-Modus (129) und/oder in einem Nichtechtzeit- Modus (127) betreibbar sind.

6. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, ferner umfassend wenigstens ein weiteres Laufzeitsystem (125), wobei auf dem weiteren Laufzeitsys tem (125) wenigstens ein weiteres Anwendungsmodul (106) zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei das weitere Laufzeit system (125) eine Datenübertragungsschnittstelle (107) zur Datenübertragung zwi schen dem weiteren Laufzeitsystem (125) und den Laufzeitsystemen (101) und/oder zwischen dem weiteren Anwendungsmodul (106) und den Anwendungsmodulen (105) aufweist, und wobei das weitere Anwendungsmodul (106) nicht echtzeitfähig ist und das weitere Laufzeitsystem (125) in einem Nichtechtzeit-Modus (127) be treibbar ist.

7. Laufzeitserver (100) nach Anspruch 6, wobei der Laufzeitserver (100) eine Hierar chie unter den Laufzeitsystemen (101) und/oder den weiteren Laufzeitsystemen (125) herstellt, in der eine Priorisierung von Laufzeitsystemen (101), die im Echtzeit zeitmodus (129) betrieben werden, gegenüber Laufzeitsystemen (101) und/oder weiteren Laufzeitsystemen (125), die im Nichtechtzeitmodus (127) betrieben wer den, gewährleistet ist.

8. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, ferner umfassend einen Datenübertragungsrouter (121) zur Verbindung mit den Datenübertragungs schnittstellen (107) der Laufzeitsysteme (101) und der weiteren Laufzeitsysteme (125), wobei über den Datenübertragungsrouter (121) ein Datenaustausch zwischen Laufzeitsystemen (101) und/oder weiteren Laufzeitsystemen (125) und/oder zwi schen Anwendungsmodulen (105) und/oder weiteren Anwendungsmodulen (106) ermöglicht ist.

9. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei in einem Online-Zustand der Steuerung, in dem wenigstens ein Laufzeitsystem (101) ausge führt wird, wenigstens ein Laufzeitsystem (101) hinzugefügt und/oder entfernt wer den kann. 10. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei jedes der Laufzeitsysteme (101) auf einem eigenen Core oder auf mehreren Cores des Pro zessors ausgeführt wird, und wobei mehrere Laufzeitsysteme (101) auf einem Core oder auf mehreren Cores ausgeführt werden.

11. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei der Lauf zeitserver (100) als eine Echtzeitumgebung in ein nicht-echtzeitfähiges Betriebssys tem integrierbar und in diesem ausführbar ist. 12. Computerprogrammprodukt (200) mit Programmcodemitteln zum Ausführen des

Laufzeitservers (100) und der Laufzeitsysteme (101) nach einem der vorangehen den Ansprüche, wenn das Computerprogrammprodukt (200) auf einer Datenverar beitungsanlage abläuft. 13. Computerprogrammprodukt (200) nach Anspruch 12, wenn es auf einem computer lesbaren Aufzeichnungsmedium (201) abgespeichert ist.

14. Automatisierungsanlage (112) mit einer Datenverarbeitungsanlage (114) zum Steuern der Automatisierungsanlage (112), wobei die Datenverarbeitungsanlage (114) mit wenigstens einem Laufzeitserver (100) und wenigstens zwei Laufzeitsystemen (101) nach einem der Ansprüche 1 bis 11 eingerichtet ist und ausgebildet ist, ein auf den Laufzeitsystemen (101) eingerichtetes Anlagensteuerprogramm auszuführen, um die Automatisierungsanlage (112) zu steuern.

Description:
Beschreibung

Laufzeitserver zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme einer Automatisie rungsanlage

Die Erfindung betrifft einen Laufzeitserver zum gleichzeitigen Ausführen mehrerer Lauf zeitsysteme in einem Betriebssystem für eine Datenverarbeitungsanlage zur Steuerung einer Automatisierungsanlage. Die Erfindung betrifft ferner ein Computerprogrammpro dukt mit Programmcodemitteln zum Ausführen des Laufzeitservers und der Laufzeitsys teme. Die Erfindung umfasst ferner eine Automatisierungsanlage.

Diese Patentanmeldung beansprucht die Priorität der deutschen Patentanmeldung DE 10 2019 1 17 954.8 vom 3. Juli 2019, deren Offenbarungsgehalt hiermit durch Rückbezug aufgenommen wird.

In der Industrieautomation werden speicherprogrammierbare und numerische Steuerun gen (SPS/NC) zunehmend in Software auf einer leistungsfähigen Standard-Hardware, z. B. einem Industrie-PC ausgeführt. Im Gegensatz zu konventionellen SPS/NC, die auf ei ner eigenständigen Rechenbaugruppe ausgeführt werden, laufen sogenannte Soft- SPS/NC unter dem Wirtsbetriebssystem der Datenverarbeitungsanlage, z. B. unter Windows oder Unix. Das Wrtsbetriebssystem wird hierzu um einen Echtzeitkernel erwei tert, der auch von der Soft-SPS/NC zur Verfügung gestellt werden kann und der die Re chenzeit, die das Wrtsbetriebssystem an die SPS/NC abgibt, steuert. Beispielsweise ist in der Druckschrift EP 2 341 405 B1 eine Soft-SPS beschrieben.

Der Vorteil im Vergleich zu konventionellen SPS/NC ist bei der Soft-SPS/NC die weitge hende Unabhängigkeit von der verwendeten Hardware. Die Hardware lässt sich damit im Bedarfsfall ohne weiteres austauschen bzw. durch leistungsfähigere Hardware ersetzen. Soft-SPS/NC profitieren so automatisch vom ständigen Leistungszuwachs der Hardware. Zudem macht die Soft-SPS/NC den Anwender in der Regel auch unabhängig vom Hard ware-Anbieter. Außerdem lassen sich bei der Soft-SPS/NC Änderungen des zu steuern den Prozesses einfacher als bei konventionellen SPS/NC umsetzen. Bei der konventio nellen SPS/NC ist üblicherweise ein spezielles Programmiergerät erforderlich, um die Ele mente der SPS/NC zu programmieren. Oftmals ist die SPS/NC auch auf mehrere Rech ner in einer Rechnerbaugruppe verteilt, wobei die Elemente der SPS/NC oft auch mit un terschiedlichen Programmiersprachen erzeugt werden und so dann auch unterschiedliche Konfigurationswerkzeuge erfordern. Bei der Soft-SPS/NC kann sich das Konfigurations werkzeug dagegen auch auf derselben Hardware befinden wie die Steuerungssoftware.

Um den Aufwand bei der Programmierung von konventionellen und Soft-SPS/NC- Lösungen zur Steuerung oder Regelung komplexer Maschinen und Anlagen zu reduzie ren, werden zunehmend modulare Konzepte eingesetzt. Einzelne Maschinenaggregate oder Anlagenbaugruppen bzw. Funktionalitäten werden als eigenständige Module be trachtet, für die jeweils eine nach außen gekapselte Steuerungssoftware erstellt wird. Die einzelnen Programmteile können dabei mit unterschiedlichen Entwicklungswerkzeugen bzw. Programmiersprachen erstellt werden, wobei der Quelltext dann von einem zugehö rigen Compiler in einen ausführbaren Programmcode übersetzt wird. Diese ausführbaren Programmmodule bilden zusammen das Anlagensteuerprogramm. Alle Programmmodule werden beim Start von einer zusätzlich vorgesehenen Softwareumgebung im Laufzeitsys tem zur Echtzeitausführung des Anlagensteuerprogramms geladen und ausgeführt. Die einzelnen Programmmodule weisen dabei eine definierte Schnittstelle zur Kommunikation untereinander und mit der Softwareumgebung auf.

Der modulare Aufbau der SPS/NC macht es möglich, die einzelnen Module getrennt zu entwickeln und dabei jeweils die am besten dafür geeignete Programmiersprache bzw. das hierfür erforderliche Entwicklungswerkzeug einzusetzen. Auch besteht so die Mög lichkeit, auf standardisierte Elemente zurückzugreifen. Als Entwicklungswerkzeuge für eine Logiksteuerung werden z. B. Hochsprachen, bei Regelungsprozessen z. B. Bodedia gramme oder Modellregler eingesetzt. Die einzelnen Programmmodule werden jedoch mit einem eigenen Computer in ein lauffähiges Programm umgesetzt, das im Rahmen der SPS/NC statisch und nicht veränderbar ist. Alle Programmmodule müssen beim Hochfah ren der SPS/NC bereits in ausführbarer Form vorliegen. Die getrennte Ausführung der Programmmodule macht es darüber hinaus erforderlich, dass der Datenaustausch zwi schen den Programmmodulen korrekt erfolgt und hierbei muss insbesondere zuverlässig garantiert werden, dass die verwendeten Datentypen miteinander kompatibel sind. Da die einzelnen Programmmodule vollständig voneinander getrennt sind, muss der Datenaus tausch dabei zwingend über Schnittstellen erfolgen. Ferner ist zum gemeinsamen Verbin den der Programmmodule ein sogenannter Linker erforderlich, der die Programmmodule zu einem gemeinsamen Programm zusammenstellt. Dieser Linker sorgt dafür, dass, wenn ein Programmmodul ein anderes Programmmodul verwendet, die Adressen der Funktio nen und Variablen des Moduls in Speicheradressen umgewandelt werden. Trotz der Vorteile, die durch die Modularisierung des Steuerprogramms erzielt werden können, besteht weiterhin die Problematik, dass für die Durchführung von Änderungen, Modifikationen oder Updates an dem bestehenden Steuerprogramm oder an einzelnen Programmmodulen des Steuerprogramms das Steuerprogramm wenigstens für den Zeit raum, in dem die Änderung oder das Update in das bestehende Steuerprogramm einge pflegt wird, unterbrochen werden muss. Gleiches gilt für den Fall, dass ein neues Pro grammmodul beispielsweise als Erweiterung des Steuerprogramms in dieses eingepflegt beziehungsweise ein bestehendes Programmmodul entfernt oder durch ein neues Pro grammmodul ersetzt werden soll. Eine Unterbrechung des Steuerprogramms bedeutet aber auch jedes Mal eine Unterbrechung der Steuerung und damit des Betriebs der Auto matisierungsanlage.

Es ist daher eine Aufgabe der Erfindung, einen Laufzeitserver zum gleichzeitigen Ausfüh ren mehrerer Laufzeitsysteme in einem Betriebssystem für eine Datenverarbeitungsan lage zur Steuerung einer Automatisierungsanlage bereitzustellen, der Änderungen und Modifikationen des Steuerprogramms in einem Online-Zustand der Automatisierungsan lage ermöglicht, in dem die Anlage durch das Steuerprogramm gesteuert wird, sodass Än derungen der Steuerprogramms vorgenommen werden können und gleichzeitig ein Be trieb der Automatisierungsanlage gewährleistet werden kann. Eine weitere Aufgabe ist es, ein Computerprogrammprodukt mit Programmcodemitteln zum Ausführen des Laufzeits ervers und der Laufzeitsysteme bereitzustellen. Eine weitere Aufgabe ist es, eine verbes serte Automatisierungsanlage bereitzustellen.

Die Aufgabe wird durch einen Laufzeitserver, ein Computerprogrammprodukt und eine Automatisierungsanlage gemäß den unabhängigen Ansprüchen gelöst. Bevorzugte Aus führungsformen sind in den abhängigen Ansprüchen angegeben.

Nach einem Aspekt der Erfindung wird ein Laufzeitserver zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme in einem Betriebssystem für eine Datenverarbeitungsanlage zum Steuern einer Automatisierungsanlage auf Basis eines Anlagensteuerprogramms be reitgestellt, wobei die Laufzeitsysteme zur Echtzeitausführung des Anlagensteuerpro gramms ausgebildet sind, und wobei der Laufzeitserver umfasst:

wenigstens zwei Laufzeitsysteme zum Ausführen von Anwendungsmodulen des Anlagen steuerprogramms, wobei auf jedem Laufzeitsystem wenigstens ein Anwendungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei jedes Laufzeitsystem eine Datenübertragungsschnittstelle zur Datenübertragung zwischen Lauf- zeitsystemen und/oder zwischen Anwendungsmodulen aufweist, wobei jedes Laufzeitsys tem eine I/O-Konfiguration aufweist, die eine Zuordnung zwischen wenigstens einer Vari able der Anwendungsmodule der Laufzeitsysteme und wenigstens einer Hard

wareadresse einer Hardwarekomponente einer zu steuernden Automatisierungsanlage definiert;

eine I/O-Schnittstelle zum Datenaustausch zwischen den wenigstens zwei Laufzeitsyste men und den Hardwarekomponenten der Automatisierungsanlage mit wenigstens einem I/O-Eingang und/oder I/O-Ausgang;

und

eine I/O-Mapping-Zwischenschicht, wobei in der I/O-Mapping-Zwischenschicht die I/O- Konfigurationen der wenigstens zwei Laufzeitsysteme abgebildet sind.

Hierdurch wird der technische Vorteil erreicht, dass mittels des Laufzeitservers mehrere Laufzeitsysteme gleichzeitig betrieben werden können und auf diesen Laufzeitsystemen mehrere Anwendungsmodule des Anlagensteuerprogramms ausgeführt werden können, sodass bei einer vorzunehmenden Änderung, Modifikation oder bei einem durchzuführen den Update eines Anwendungsmoduls des Anlagensteuerprogramms das entsprechende Laufzeitsystem gestoppt werden kann, um die entsprechende Änderung bzw. das jewei lige Update durchzuführen, während Anwendungsmodule, die auf einem weiteren Lauf zeitsystem betrieben werden, weiterhin ausführbar sind. Hierdurch wird erreicht, dass für eine Änderung, eine Modifikation oder ein Update einzelner Anwendungsmodule des An lagensteuerprogramms nicht das vollständige Anlagensteuerprogramm beendet werden muss und somit die Automatisierungsanlage während der Durchführung der Änderungen, Modifikationen und Updates weiterbetrieben werden kann.

Auf dem Laufzeitserver kann eine Mehrzahl von Laufzeitsystemen unabhängig voneinan der ausgeführt werden. Die Laufzeitsysteme sind ausgebildet, wenigstens ein Anwen dungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms auszufüh ren. Jedes Laufzeitsystem umfasst eine Datenübertragungsschnittstelle, mittels der eine Datenübertragung zwischen mehreren Laufzeitsystemen des Laufzeitservers ermöglicht ist. Über die Datenübertragungsschnittstelle der Laufzeitsysteme ist darüber hinaus eine Datenübertragung zwischen einzelnen Anwendungsmodulen der Laufzeitsysteme ermög licht. Eine Datenübertragung ist ebenfalls zwischen verschiedenen Anwendungsmodulen innerhalb eines Laufzeitsystems möglich. Darüber hinaus weist jedes Laufzeitsystem eine I/O-Konfiguration auf, in der eine eindeutige Zuordnung zwischen Variablen der auf dem jeweiligen Laufzeitsystem installierten Anwendungsmodule und Hardwarekomponenten der mittels des Anlagensteuerprogramms zu steuernden Automatisierungsanlage be stimmt ist.

Der Laufzeitserver weist ferner eine I/O-Schnittstelle auf, mittels welcher ein Datenaus tausch zwischen den auf dem Laufzeitserver installierten Laufzeitsystemen und den Hard warekomponenten der Automatisierungsanlage ermöglicht ist. Hierzu weist die I/O- Schnittstelle wenigstens einen I/O-Eingang und/oder einen I/O-Ausgang auf, mittels wel chem eine Verbindung der Hardwarekomponenten der Automatisierungsanlage und den jeweiligen Anwendungsmodulen der einzelnen Laufzeitsysteme erreicht wird.

Der Laufzeitserver weist ferner eine I/O-Mapping-Zwischenschicht auf, in der die I/O-Kon figurationen der auf dem Laufzeitserver installierten Laufzeitsysteme abgebildet sind. Die I/O-Mapping-Zwischenschicht weist somit alle I/O-Konfigurationen der zu einem Zeitpunkt auf dem Laufzeitserver installierten Laufzeitsysteme auf. Über die I/O-Mapping-Zwischen- schicht ist eine eindeutige Zuordnung der einzelnen Variablen der auf den jeweiligen Lauf zeitsystemen installierten Anwendungsmodule und der jeweiligen Hardwarekomponenten der zu steuernden Automatisierungsanlage ermöglicht. Die I/O-Mapping-Zwischenschicht erlaubt ferner die Änderung, Modifikation oder das Durchführen eines Updates einzelner Anwendungsmodule des Anlagensteuerprogramms bei gleichzeitigem Ausführen von wei teren Anwendungsmodulen des Anlagensteuerprogramms, die zu dem gegebenen Zeit punkt nicht zu ändern oder zu modifizieren sind.

Zu einer Änderung, Modifikation oder zur Durchführung eines Updates eines Anwen dungsmoduls des Anlagensteuerprogramms kann das zu ändernde Anwendungsmodul gestoppt werden, während die weiteren von dem zu ändernden Anwendungsmodul unab hängigen Anwendungsmodule weiterhin betrieben und das Anlagensteuerprogramm so mit zumindest teilweise weiter ausgeführt werden kann.

Zur Änderung eines Anwendungsmoduls kann dieses gestoppt und von dem jeweiligen Laufzeitsystem deinstalliert und eine entsprechende geänderte Version des Anwendungs moduls auf diesem Laufzeitsystem neu installiert werden. Nach vollständiger Installation kann das geänderte Anwendungsmodul hochgefahren und somit in das weitere Anlagen steuerprogramm eingefügt werden, sofern die durchgeführte Änderung mit dem weiteren Anlagensteuerprogramm kompatibel ist. Alternativ kann das gesamte Laufzeitsystem, auf dem das zu ändernde Anwendungsmodul installiert ist, von dem Laufzeitserver entfernt werden und ein neues Laufzeitsystem, auf dem die geänderte Version des zu ändernden Anwendungsmoduls installiert ist, auf dem Laufzeitserver installiert werden und somit das entsprechende geänderte Anwendungsmodul in das Anlagensteuerprogramm eingefügt werden. Alternativ kann das zu ändernde Anwendungsmodul lediglich gestoppt und ent sprechende Änderungen in dieses eingefügt und das somit geänderte Anwendungsmodul beim erneuten Hochfahren in das bestehende Anlagensteuerprogramm eingefügt werden.

Sieht eine Änderung des zu ändernden Anwendungsmoduls eine Änderung oder Modifi kation der I/O-Konfiguration, sprich der Zuordnung der Variablen des Anwendungsmoduls und der Hardwarekomponenten der zu steuernden Automatisierungsanlage, vor, so wird bei erneuter Installation des geänderten Anwendungsmoduls in das bestehende Anlagen steuerprogramm die geänderte I/O-Konfiguration des jeweiligen Automatisierungssystems in die I/O-Mapping-Zwischenschicht des Laufzeitservers übernommen, sodass die I/O- Konfiguration des Laufzeitservers bezüglich der vorgenommenen Änderungen aktualisiert ist. Diese Aktualisierung der I/O-Konfiguration des Laufzeitservers durch das Abbilden der geänderten I/O-Konfiguration des geänderten Laufzeitsystems kann in Unabhängigkeit von den I/O-Konfigurationen der bestehenden und nicht geänderten Laufzeitsysteme bzw. Anwendungsmodule vorgenommen werden, sodass die I/O-Konfigurationen der nicht ge änderten Anwendungsmodule bzw. Laufzeitsysteme durch Änderungen der I/O-Konfigura tion eines geänderten Laufzeitsystems bzw. eines geänderten Anwendungsmoduls nicht betroffen sind.

Auf Basis der durch die Änderungen der geänderten Anwendungsmodule nicht betroffe nen I/O-Konfigurationen der nicht zu ändernden Anwendungsmodule kann das Anlagen steuerprogramm während der vorgenommenen Änderungen der zu ändernden Anwen dungsmodule sowie während des Einbauens der geänderten Anwendungsmodule stö rungsfrei ausgeführt werden. Auf ein Stoppen des Anlagensteuerprogramms und ein da mit verbundenes Stilllegen der zu steuernden Automatisierungsanlage kann für das Durchführen einer Änderung, Modifikation oder eines Updates eines Anwendungsmoduls oder einer Mehrzahl von Anwendungsmodulen verzichtet werden.

Neben einer Änderung bzw. Modifikation eines bereits bestehenden in das Anlagensteu erprogramm eingepflegten Anwendungsmoduls kann darüber hinaus eine Erweiterung des Anlagensteuerprogramms durch das Hinzufügen eines neuen und bislang nicht in dem Anlagensteuerprogramm befindlichen Anwendungsmoduls vorgenommen werden. Hierzu kann das neu in das bestehende Anlagensteuerprogramm einzupflegende Anwen dungsmodul auf einem neuen Laufzeitsystem installiert und das neue Laufzeitsystem in den Laufzeitserver eingebunden werden, sodass bei einem Hochfahren des neu installier- ten Anwendungsmoduls dieses in das bereits bestehende Anlagensteuerprogramm einge pflegt wird, vorausgesetzt, dass das neue Anwendungsmodul mit dem bestehenden Anla gensteuerprogramm kompatibel ist.

Die entsprechende I/O-Konfiguration des neu eingefügten Anwendungsmoduls kann in die I/O-Mapping-Zwischenschicht abgebildet und somit die I/O-Konfiguration des Lauf zeitservers in Bezug auf die Erweiterung des Anlagensteuerprogramms und das neu hin zugefügte Anwendungsmodul aktualisiert werden. Ein Stoppen des Anlagensteuerpro gramms und ein damit verbundenes Stilllegen der zu steuernden Automatisierungsanlage ist somit für eine Erweiterung des bestehenden Anlagensteuerprogramms um weitere An- wendungsmodule ebenfalls nicht notwendig.

Analog können bereits bestehende Anwendungsmodule aus dem Anlagensteuerpro gramm entfernt werden, ohne hierzu das Anlagensteuerprogramm stoppen und die zu steuernde Automatisierungsanlage stilllegen zu müssen, indem das zu entfernende An wendungsmodul von dem jeweiligen Laufzeitsystem entfernt oder direkt das vollständige Laufzeitsystem mit dem darauf installierten Anwendungsmodul von dem Laufzeitserver entfernt wird. Die entsprechende Änderung der I/O-Konfiguration kann auf der I/O-Map- ping-Zwischenschicht berücksichtigt werden, indem die jeweilige I/O-Konfiguration des entfernten Anwendungsmoduls bzw. des entfernten Laufzeitsystems ebenfalls von den auf die I/O-Mapping-Zwischenschicht abgebildeten I/O-Konfigurationen der Laufzeitsys teme des Laufzeitservers entfernt wird.

Der Laufzeitserver sowie die Laufzeitsysteme sind zur Echtzeitausführung des Anlagen steuerprogramms ausgebildet, sodass eine echtzeitfähige Steuerung der Automatisie rungsanlage ermöglicht ist. Durch den Laufzeitserver und die auf dem Laufzeitserver in stallierten Laufzeitsysteme, auf denen wiederum die einzelnen Anwendungsmodule des Anlagensteuerprogramms installiert sind und ausgeführt werden, ist eine echtzeitfähige und flexibel ausführbare Steuerung einer Automatisierungsanlage ermöglicht, bei der Än derungen und Modifikationen des jeweiligen Anlagensteuerprogramms in einem Online- Modus des Anlagensteuerprogramms, in dem das Anlagensteuerprogramm zumindest teilweise ausgeführt wird, durchführbar sind, sodass auf ein Stoppen des Anlagensteuer programms und ein Stilllegen der zu steuernden Automatisierungsanlage verzichtet wer den kann.

Ein Laufzeitsystem ist vorliegend eine Laufzeitumgebung, auf der in einer Laufzeit ein Computerprogramm ausführbar ist. Die Laufzeitumgebung ist in ein Betriebssystem einer Datenverarbeitungsanlage einfügbar und gewährleistet eine Ausführungsumgebung für ein Computerprogramm, das von dem jeweiligen Betriebssystem nicht unterstützt wird.

Ein Anwendungsmodul ist vorliegend ein für sich eigenständiger Teil eines Anlagensteu erprogramms, mittels welchem eine Anwendung des Anlagensteuerprogramms ausführ bar ist. Eine Anwendung kann hierbei jeden Bereich des Anlagensteuerprogramms um fassen. Eine Anwendung kann beispielsweise das Ansteuern eines Aktors, das Auslesen eines Sensors oder die Verarbeitung von Messdaten bzw. das Darstellen von verarbeite ten Messdaten umfassen.

Eine Datenübertragung zwischen zwei Anwendungsmodulen kann vorliegend das Schrei ben bestimmter Daten in einen dafür vorbestimmten Speicherbereich durch ein erstes An wendungsmodul und das Auslesen der durch das erste Anwendungsmodul in den Spei cherbereich gespeicherten Daten durch ein zweites Anwendungsmodul umfassen.

Jedes Laufzeitsystem kann ein Verwaltungsmodul aufweisen, das die Anwendungsmo dule auf der Grundlage der Steuerprogrammbeschreibung verwaltet. Mittels des Verwal tungsmoduls können die Anwendungsmodule aus einem inaktiven Zustand, in dem die Anwendungsmodule nicht initialisiert und nicht in der Lage sind, Anwendungen auszufüh ren, in einen aktiven Zustand schalten, in dem die Anwendungsmodule die jeweiligen An wendungen ausführen können. Die Anwendungsmodule können hierzu einen Initialisie rungszustand aufweisen, in dem das Anwendungsmodul inaktiv ist und aus dem das An wendungsmodul für eine zukünftige Ausführung aktiviert beziehungsweise in den das An wendungsmodul nach beendeter Ausführung deaktiviert werden kann. Ferner kann jedes Anwendungsmodul einen Vorbetriebszustand aufweisen, in dem das Anwendungsmodul aktiviert ist jedoch noch keine Anwendungen ausführt. Im Vorbetriebszustand können dem Anwendungsmodul Ressourcen, insbesondere Prozessorzeit und Speicherplatz, zu geordnet werden. Darüber hinaus kann jedes Anwendungsmodul einen Prüfzustand auf weisen, in dem die Funktionalität und Kompatibilität des Anwendungsmoduls mit dem Steuerprogramm überprüft werden kann, bevor das Anwendungsmodul ausgeführt wird.

In einem Ausführungszustand ist das Anwendungsmodul befähigt, die entsprechenden Anwendungen auszuführen.

Die Anwendungsmodule können dabei ausgelegt sein, sich im Initialisierungszustand am Verwaltungsmodul mit einer individuellen Modulkennung zur Aktivierung anzumelden oder zur Deaktivierung abzumelden. Ferner können die Anwendungsmodule über das Verwal- tungsmodul beim Zustandsübergang vom Vorbetrieb zum Prüfbetrieb Kommunikations verbindungen zu anderen Anwendungsmodulen aufbauen und beim Zustandsübergang vom Prüfbetrieb zum Vorbetrieb Kommunikationsverbindungen wieder abbauen. Ferner können sich die Anwendungsmodule bei weiteren Anwendungsmodulen beim Zustands übergang vom Prüfbetrieb zum Ausführungszustand bei weiteren Anwendungsmodulen anmelden und beim Zustandsübergang vom Ausführungszustand zum Prüfbetrieb abmel den. Durch das Anmelden kann eine Interaktion zwischen den Anwendungsmodulen er reicht werden.

Die Anwendungsmodule können somit zur Ausführung des Anlagensteuerprogramms im Laufzeitsystem dynamisch verwaltet werden. Die Anwendungsmodule können während der Laufzeit erzeugt, hochgefahren und ausgeführt bzw. wieder heruntergefahren und ab geschaltet werden. Die einzelnen Anwendungsmodule können ferner mit unterschiedli chen Werkzeugen bzw. unterschiedlichen Programmiersprachen erstellt werden. Die An wendungsmodule arbeiten im selben Zeitkontext und verwenden einen gemeinsamen Speicherraum und gemeinsame Dateitypen, so dass ein Datenaustausch ohne zusätzli ches Verlinken ermöglicht ist. Durch den standardisierten Aufbau sämtlicher Anwen dungsmodule lassen sich im Laufzeitsystem außerdem auf einfache Weise Veränderun gen und Anpassungen vornehmen.

Die Anwendungsmodule können beim Zustandsübergang von Initialisierung zum Vorbe trieb Ressourcen des Datenverarbeitungssystems belegen und beim Zustandsübergang vom Vorbetrieb zur Initialisierung belegte Ressourcen wieder freigeben. Ferner können sich die Anwendungsmodule beim Zustandsübergang vom Prüfbetrieb zum Echtzeitbe trieb Ressourcen von weiteren Anwendungsmodulen sichern und beim Zustandsübergang vom Echtzeitbetrieb zum Prüfbetrieb belegte Ressourcen der weiteren Anwendungsmo dule zurückgeben. Durch diese Vorgehensweise kann ein zuverlässiger Betrieb der Lauf zeitsysteme und eine effektive Ressourcenverwaltung erreicht werden.

Nach einer Ausführungsform ist den Laufzeitsystemen vom Laufzeitserver wenigstens je weils ein Speicherbereich und/oder ein Prozessor und/oder eine Prozessorzeit der Daten verarbeitungsanlage zugeordnet.

Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers unabhängig voneinander betreibbar sind. Indem jedem Laufzeitsystem des Laufzeits ervers ein eigener Speicherbereich und/oder eine eigene Prozessorzeit bzw. ein eigener Prozessor oder Prozessorkern zugewiesen wird, sind die Anwendungsmodule der einzel nen Laufzeitsysteme ohne Beeinflussung durch jeweils andere Anwendungsmodule ande rer Laufzeitsysteme ausführbar.

Werden in der Datenverarbeitungsanlage mehrere Prozessorkerne verwendet, so können einzelne Laufzeitsysteme auf verschiedenen Prozessorkernen ausgeführt werden, sodass verschiedene Anwendungsmodule gleichzeitig ausführbar sind. Durch die eigene Prozes sorzeit bzw. den eigenen Prozessorkern oder Prozessor, die bzw. der jedem Laufzeitsys tem des Laufzeitservers zugeordnet wird, können einzelne Laufzeitsysteme problemlos vom Laufzeitserver entfernt oder zu diesem hinzugefügt werden, ohne dass die Ausfüh rung der Anwendungsmodule der weiteren Laufzeitsysteme hierdurch beeinträchtigt wird.

Nach einer Ausführungsform sind die Laufzeitsysteme instanziiert.

Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers unabhängig voneinander betreibbar sind. Jedes einzelne Laufzeitsystem ist ein für sich eigenständiges Laufzeitsystem. Beispielsweise kann das Anlagensteuerprogramm vollständig auf einem einzigen Laufzeitsystem ausgeführt werden. Hierzu kann das ein zige Laufzeitsystem alle Anwendungsmodule des Anlagensteuerprogramms umfassen und diese gemäß des Anlagensteuerprogramms ausführen. Die Installation weiterer Lauf zeitsysteme ist hierfür nicht notwendig.

Alternativ kann eine Mehrzahl von voneinander unabhängigen Laufzeitsystemen auf dem Laufzeitserver installiert werden, sodass beispielsweise auf jedem Laufzeitsystem ledig lich ein Anwendungsmodul des Anlagensteuerprogramms installiert ist. Über die Daten übertragungsschnittstellen der einzelnen Laufzeitsysteme ist eine Datenübertragung der einzelnen Anwendungsmodule untereinander ermöglicht, sodass das die Anwendungs module umfassende Anlagensteuerprogramm über die Mehrzahl von Laufzeitsystemen ausführbar ist.

Die Instanziierung der Laufzeitsysteme ermöglicht die Änderung der auf den Laufzeitsys temen installierten Anwendungsmodule bzw. das Hinzufügen und Entfernen von Laufzeit systemen zu und von dem Laufzeitserver, ohne dass eine Beeinträchtigung bzw. Beein flussung anderer Laufzeitsysteme und der jeweiligen Anwendungsmodule besteht.

Nach einer Ausführungsform sind die Anwendungsmodule autark und voneinander unab hängig. Hierdurch wird der technische Vorteil erreicht, dass Anwendungsmodule des Anlagen steuerprogramms geändert, entfernt oder hinzugefügt werden können, ohne dass andere Anwendungsmodule des Anlagensteuerprogramms beeinträchtigt werden. Die einzelnen Anwendungsmodule sind für sich abgeschlossene Untereinheiten des Anlagensteuerpro gramms und können als abgeschlossene Einheiten geändert, modifiziert, hinzugefügt o- der entfernt werden, ohne dass Anpassungen der anderen Anwendungsmodule des Anla gensteuerprogramms durchgeführt werden müssen.

Hierdurch wird eine höhere Flexibilität des Anlagensteuerprogramms erreicht. Ferner kön nen einzelne Anwendungsmodule unabhängig voneinander erstellt werden, wodurch eine höhere Programmiereffizienz erreicht werden kann. Darüber hinaus ist durch die Modula risierung des Anlagensteuerprogramms eine Fehleridentifikation erleichtert, indem eine Fehleranalyse auf einzelne Anwendungsmodule des Anlagensteuerprogramms begrenzt werden kann.

Nach einer Ausführungsform sind die Laufzeitsysteme in einem Echtzeit-Modus und/oder in einem Nichtechtzeit-Modus betreibbar.

Hierdurch wird der technische Vorteil erreicht, dass ein Anwendungsbereich des Lauf zeitservers vergrößert werden kann. Indem die Laufzeitsysteme des Laufzeitservers in ei nem Echtzeitmodus und/oder in einem Nichtechtzeitmodus betreibbar sind, können auf den jeweiligen Laufzeitsystemen echtzeitfähige bzw. nicht-echtzeitfähige Anwendungsmo dule des Anlagensteuerprogramms ausgeführt werden. Hierdurch können durch das Anla gensteuerprogramm verschiedene Anwendungen ausgeführt werden, die unterschiedli chen Anforderungen an eine Echtzeitfähigkeit genügen.

Nach einer Ausführungsform umfasst der Laufzeitserver ferner wenigstens ein weiteres Laufzeitsystem, wobei auf dem weiteren Laufzeitsystem wenigstens ein weiteres Anwen dungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei das weitere Laufzeitsystem eine Datenübertragungsschnittstelle zur Datenüber tragung zwischen dem weiteren Laufzeitsystem und den Laufzeitsystemen und/oder zwi schen dem weiteren Anwendungsmodul und den Anwendungsmodulen aufweist, und wo bei das weitere Anwendungsmodul nicht echtzeitfähig ist und das weitere Laufzeitsystem in einem Nichtechtzeit-Modus betreibbar ist. Hierdurch wird der technische Vorteil erreicht, dass wiederum eine höhere Flexibilität des Laufzeitservers erreicht wird. Durch die weiteren Laufzeitsysteme, auf denen weitere An- wendungsmodule installiert sind, können zusätzliche Anwendungen des Anlagensteuer programms ausgeführt werden. Die weiteren Laufzeitsysteme sind hierbei ausschließlich in einem Nichtechtzeitmodus betreibbar und die auf den weiteren Laufzeitsystemen instal lierten weiteren Anwendungsmodule sind ausschließlich zur Ausführung von Anwendun gen des Anlagensteuerprogramms ausgebildet, für die eine Echtzeitfähigkeit nicht gefor dert ist.

Derartige Anwendungen können beispielsweise die Auswertung von Messdaten oder die graphische Darstellung ausgewerteter Messdaten umfassen. Durch die Aufteilung der echtzeitfähigen Anwendung auf die echtzeitfähigen Laufzeitsysteme und der nicht-echt- zeitfähigen Anwendung auf die nicht-echtzeitfähigen Laufzeitsysteme ist eine verbesserte Strukturierung des Laufzeitservers und der darauf installierten echtzeitfähigen und nicht echtzeitfähigen Laufzeitsysteme ermöglicht. Hierdurch wird wiederum eine einfachere Zu teilung von Speicherplatz bzw. Prozessorzeit oder Prozessorkernen der einzelnen Lauf zeitsysteme des Laufzeitservers erreicht.

Nach einer Ausführungsform stellt der Laufzeitserver eine Hierarchie unter den Laufzeit systemen und/oder den weiteren Laufzeitsystemen her, in der eine Priorisierung von Lauf zeitsystemen, die im Echtzeitzeitmodus betrieben werden, gegenüber Laufzeitsystemen und/oder weiteren Laufzeitsystemen, die im Nichtechtzeitmodus betrieben werden, ge währleistet ist.

Hierdurch wird der technische Vorteil erreicht, dass Anforderungen an echtzeitfähige An wendungen erreicht werden können. Durch die Hierarchie unter den Laufzeitsystemen wird gewährleistet, dass Anwendungen, die der Einhaltung einer Echtzeitanforderung un terliegen, gegenüber Anwendungen, die Echtzeitanforderungen nicht unterliegen, vorran gig ausgeführt werden, sodass eine Ausführung von Echtzeitanwendungen nicht durch eine Ausführung von Nichtechtzeitanwendungen unterbrochen wird. Durch die Hierarchie innerhalb des Laufzeitservers können somit Anforderungen an die Echtzeitfähigkeit der jeweiligen Laufzeitsysteme erreicht werden.

Nach einer Ausführungsform umfasst der Laufzeitserver ferner einen Datenübertragungs router zur Verbindung mit den Datenübertragungsschnittstellen der Laufzeitsysteme und der weiteren Laufzeitsysteme, wobei über den Datenübertragungsrouter ein Datenaus tausch zwischen Laufzeitsystemen und/oder weiteren Laufzeitsystemen und/oder zwi schen Anwendungsmodulen und/oder weiteren Anwendungsmodulen ermöglicht ist.

Hierdurch wird der technische Vorteil erreicht, dass eine schnelle, störungsrobuste und zuverlässige Datenübertragung zwischen Laufzeitsystemen des Laufzeitservers und An wendungsmodulen der Laufzeitsysteme erreicht wird. Ein Datenaustausch zwischen Lauf zeitsystemen bzw. Anwendungsmodulen kann hierbei das Speichern von Daten in einen Speicherbereich durch ein erstes Laufzeitsystem bzw. Anwendungsmodul und das Einle sen der gespeicherten Daten durch ein zweites Laufzeitsystem bzw. Anwendungsmodul umfassen.

Ein Datenaustausch oder eine Datenübertragung zwischen Laufzeitsystemen und/oder Anwendungsmodulen kann eine Datenkommunikation zwischen den Laufzeitsystemen und/oder Anwendungsmodulen umfassen. Eine Datenkommunikation umfasst neben der Übertragung von Daten eine Übertragung von Information mit einem Informationsgehalt, der von beiden Kommunikationspartnern verstanden wird.

Der Datenübertragungsrouter kann hierbei ein Skript bzw. ein Protokoll zum Schreiben von Daten in einen vorbestimmten Speicherbereich und zum Auslesen von in dem vorbe stimmten Speicherbereich gespeicherten Daten umfassen. Der Datenübertragungsrouter kann eine Datenübertragung zwischen verschiedenen Laufzeitsystemen ermöglichen. Der Datenübertragungsrouter kann ferner eine Datenübertragung zwischen Anwendungsmo dulen, die jeweils auf unterschiedlichen Laufzeitsystemen installiert sind, ermöglichen. Der Datenübertragungsrouter kann ferner eine Datenübertragung zwischen verschiedenen Anwendungsmodulen, die auf demselben Laufzeitsystem installiert sind, ermöglichen.

Nach einer Ausführungsform kann in einem Online-Zustand der Steuerung, in dem we nigstens ein Laufzeitsystem ausgeführt wird, wenigstens ein Laufzeitsystem hinzugefügt und/oder entfernt werden.

Hierdurch wird der technische Vorteil erreicht, dass eine flexible Änderung bzw. Erweite rung oder Reduzierung des Anlagensteuerprogramms ermöglicht ist. Zum Erweitern des Anlagensteuerprogramms um weitere Anwendungen bzw. weitere Anwendungsmodule können ein Laufzeitsystem bzw. eine Mehrzahl von Laufzeitsystemen, auf denen die je weils zu erweiternden Anwendungsmodule installiert sind, in den Server eingepflegt wer den. Die weiteren Laufzeitsysteme, die bereits auf dem Laufzeitserver installiert sind, können währenddessen weiterhin betrieben werden, sodass die auf diesen Laufzeitsystemen in stallierten Anwendungsmodule weiter ausgeführt werden können und somit die Automati sierungsanlage über das Anlagensteuerprogramm weiterhin betreibbar ist. Nach Installa tion der zusätzlichen Laufzeitsysteme können die darauf installierten Anwendungsmodule gestartet und in das bestehende Anlagensteuerprogramm eingefügt werden, sofern diese mit dem bestehenden Anlagensteuerprogramm kompatibel sind.

Die jeweiligen I/O-Konfigurationen der zusätzlichen Laufzeitsysteme können in die l/O- Mapping-Zwischenschicht des Laufzeitservers abgebildet werden, sodass die I/O-Konfigu ration des Laufzeitservers, die der in der I/O-Mapping-Zwischenschicht abgebildeten I/O- Konfigurationen der jeweiligen Laufzeitsysteme des Laufzeitservers entspricht, den Ände rungen gemäß aktualisiert werden kann.

Analog können ein bestehendes Laufzeitsystem bzw. eine Mehrzahl von bestehenden Laufzeitsystemen von dem Laufzeitserver entfernt werden, während gleichzeitig weitere Anwendungsmodule, die auf weiteren Laufzeitsystemen des Laufzeitservers installiert sind, ausgeführt werden können und so die Automatisierungsanlage mittels des Anlagen steuerprogramms betrieben werden kann. Eine entsprechende Aktualisierung der I/O- Konfiguration des Laufzeitservers kann mittels einer entsprechenden Abbildung der I/O- Konfigurationen der einzelnen Laufzeitsysteme auf die I/O-Mapping-Zwischenschicht er reicht werden. Hierdurch ist eine hohe Flexibilität erreicht, indem Erweiterungen bzw. Re duzierungen des Anlagensteuerprogramms um zusätzliche oder bestehende Anwendun gen des Anlagensteuerprogramms während gleichzeitiger Ausführung des Anlagensteuer programms ermöglicht werden.

Nach einer Ausführungsform wird jedes der Laufzeitsysteme auf einem eigenen Core o- der auf mehreren Cores des Prozessors ausgeführt, wobei mehrere Laufzeitsysteme auf einem Core oder auf mehreren Cores ausgeführt werden.

Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers voneinander unabhängig betreibbar sind. Hierdurch kann ein hoher Grad an Flexibili tät erreicht werden. Beispielsweise kann eine Mehrzahl von Laufzeitsystemen auf einem Prozessor ausgeführt werden. Hierdurch kann erreicht werden, dass der erfindungsge mäße Laufzeitserver auf einer Datenverarbeitungsanlage ausführbar ist, die lediglich ei nen Prozessor umfasst. Darüber hinaus kann jedes Laufzeitsystem des Laufzeitservers auf einem eigenen Pro zessor bzw. auf einem eigenen Prozessorkern ausgeführt werden. Hierdurch wird er reicht, dass Anwendungsmodule unterschiedlicher Laufzeitsysteme gleichzeitig ausführ bar sind. Ferner wird erreicht, dass eine Beeinflussung der Ausführung der Anwendungs module einzelner Laufzeitsysteme durch die Ausführung der Anwendungsmodule anderer Laufzeitsysteme unterbunden werden kann. Darüber hinaus können einzelne Laufzeitsys teme auf mehreren Prozessoren bzw. Prozessorkernen ausgeführt werden. Hierdurch kann wiederum ein erhöhter Grad an Flexibilität des Laufzeitservers erreicht werden.

Nach einer Ausführungsform ist der Laufzeitserver als eine Echtzeitumgebung in ein nicht-echtzeitfähiges Betriebssystem integrierbar und in diesem ausführbar.

Hierdurch wird der technische Vorteil erreicht, dass über den Laufzeitserver und die auf dem Laufzeitserver installierten Laufzeitsysteme Computerprogramme, insbesondere An lagensteuerprogramme, die Echtzeitanforderungen genügen müssen, ausgeführt werden können. Dies kann insbesondere in einem nicht-echtzeitfähigen Betriebssystem, bei spielsweise handelsüblichen Betriebssystemen für Personal Computer (PC) erreicht wer den. Somit kann über den Laufzeitserver und die darauf installierten Laufzeitsysteme ein echtzeitfähiges Anlagensteuerprogramm innerhalb eines nicht-echtzeitfähigen Betriebs systems ausgeführt werden.

Nach einem zweiten Aspekt der Erfindung wird ein Computerprogrammprodukt bereitge stellt, wobei das Computerprogrammprodukt Programmcodemittel zum Ausführen des Laufzeitservers und der Laufzeitsysteme aufweist, und wobei das Computerprogrammpro dukt auf einer Datenverarbeitungsanlage abläuft.

Nach einer Ausführungsform ist das Computerprogrammprodukt auf einem computerles baren Aufzeichnungsmedium abgespeichert.

Nach einem dritten Aspekt der Erfindung wird eine Automatisierungsanlage mit einer Da tenverarbeitungsanlage zum Steuern der Automatisierungsanlage bereitgestellt, wobei die Datenverarbeitungsanlage mit wenigstens einem Laufzeitserver und wenigstens zwei Laufzeitsystemen eingerichtet ist und ausgebildet ist, ein auf den Laufzeitsystemen einge richtetes Anlagensteuerprogramm auszuführen, um die Automatisierungsanlage zu steu- ern. Die Erfindung wird anhand der beigefügten Figuren näher erläutert. Hierbei zeigen:

Fig. 1 eine schematische Darstellung eines Laufzeitservers gemäß einer Ausfüh rungsform;

Fig. 2 eine schematische Darstellung eines Computerprogrammprodukts zum Aus führen des Laufzeitservers gemäß einer Ausführungsform; und

Fig. 3 eine schematische Darstellung einer Automatisierungsanlage mit einer Daten verarbeitungsanlage zum Ausführen des Laufzeitservers gemäß einer Ausfüh rungsform.

Fig. 1 zeigt eine schematische Darstellung eines Laufzeitservers 100 gemäß einer Aus führungsform.

Gemäß der Ausführungsform in Fig. 1 ist der Laufzeitserver 100 zum gleichzeitigen Aus führen mehrerer Laufzeitsysteme 101 in einem Betriebssystem 103 für eine Datenverar beitungsanlage zum Steuern einer Automatisierungsanlage 112 auf Basis eines Anlagen steuerprogramms ausgebildet. Die Laufzeitsysteme 101 sind zur Echtzeitausführung des Anlagensteuerprogramms ausgebildet. Der Laufzeitserver 100 umfasst:

wenigstens zwei Laufzeitsysteme 101 zum Ausführen von Anwendungsmodulen 105 des Anlagensteuerprogramms, wobei auf jedem Laufzeitsystem 101 wenigstens ein Anwen dungsmodul 105 zur Ausführung einer Anwendung des Anlagensteuerprogramms instal liert ist, wobei jedes Laufzeitsystem 101 eine Datenübertragungsschnittstelle 107 zur Da tenübertragung zwischen Laufzeitsystemen 101 und/oder zwischen Anwendungsmodulen 105 aufweist, wobei jedes Laufzeitsystem 101 eine I/O-Konfiguration 109 aufweist, die eine Zuordnung zwischen wenigstens einer Variable der Anwendungsmodule 105 der Laufzeitsysteme 101 und wenigstens einer Hardwareadresse einer Hardwarekomponente 113 einer zu steuernden Automatisierungsanlage 112 definiert,

eine I/O-Schnittstelle 111 zum Datenaustausch zwischen den wenigstens zwei Laufzeit systemen 101 und den Hardwarekomponenten 113 der Automatisierungsanlage 112 mit wenigstens einem I/O-Eingang 115 und/oder einem I/O-Ausgang 117, und

eine I/O-Mapping-Zwischenschicht 119, wobei in der I/O-Mapping-Zwischenschicht 119 die I/O-Konfigurationen 109 der wenigstens zwei Laufzeitsysteme 101 abgebildet sind. In der Ausführungsform der Fig. 1 ist der Laufzeitserver 100 in das Betriebssystem 103 eingebettet. Auf dem Laufzeitserver 100 sind fünf Laufzeitsysteme 101 installiert, auf de nen jeweils zwei Anwendungsmodule 105 installiert sind. Jedes der Laufzeitsysteme 101 weist eine Datenübertragungsschnittstelle 107 zur Datenübertragung und eine I/O-Konfi guration 109 auf. Jede I/O-Konfiguration 109 eines jeden Laufzeitsystems 101 stellt eine direkte Zuordnung von Variablen der jeweiligen auf dem Laufzeitsystem 101 installierten Anwendungsmodule 105 und Hardwarekomponenten 1 13 der zu steuernden Automatisie rungsanlage 112 auf.

Der Laufzeitserver 100 weist ferner die I/O-Mapping-Zwischenschicht 119 auf. In die l/O- Mapping-Zwischenschicht 119 ist jede I/O-Konfiguration 109 eines jeden Laufzeitsystems 101 abgebildet. Für die Ausführungsform in Fig. 1 umfasst die I/O-Mapping-Zwischen- schicht 1 19 fünf Abbildungen der fünf I/O-Konfigurationen 109 der fünf Laufzeitsysteme 101.

Die Anzahl der auf dem Laufzeitserver 100 installierten Laufzeitsysteme 101 kann von der in Fig. 1 dargestellten Anzahl abweichen und kann einen beliebigen Wert annehmen. Der Laufzeitserver 100 kann beispielsweise mit lediglich einem installierten Laufzeitsystem 101 ausgeführt werden. Darüber hinaus ist die in Fig. 1 dargestellte Anzahl von jeweils zwei Anwendungsmodulen 105 pro Laufzeitsystem 101 lediglich beispielhaft. So kann al ternativ ein jedes Laufzeitsystem 101 eine beliebige Anzahl von Anwendungsmodulen 105 aufweisen oder ein jedes Laufzeitsystem 101 lediglich ein Anwendungsmodul 105 umfassen.

Der Laufzeitserver 100 umfasst ferner fünf weitere Laufzeitsysteme 125, auf denen je weils zwei weitere Anwendungsmodule 106 installiert sind. Jedes der fünf weiteren Lauf zeitsysteme 125 weist eine Datenübertragungsschnittstelle 107 auf. Die weiteren Laufzeit systeme 125 werden in einem Nichtechtzeitmodus 127 betrieben und die weiteren An wendungsmodule 106 umfassen Anwendungen, die Nichtechtzeitanforderungen genügen.

Gemäß der Ausführungsform in Fig. 1 werden die fünf Laufzeitsysteme 101 in einem Echtzeitzeitmodus 129 betrieben, und die auf den Laufzeitsystemen 101 installierten An wendungsmodule 105 sind ausgebildet, Anwendungen gemäß einer Echtzeitanforderung auszuführen.

Gemäß der Ausführungsform in Fig. 1 sind die Laufzeitsysteme 101 , die in einem Echt zeitzeitmodus 129 betrieben werden, und die weiteren Laufzeitsysteme 125, die in einem Nichtechtzeitmodus 127 betrieben werden, in einer entsprechenden Hierarchie angeord net, die in Fig. 1 durch die beiden gestrichelten Kästchen dargestellt ist. Die auf dem Lauf zeitserver 100 definierte Hierarchie der Laufzeitsysteme 101 und der weiteren Laufzeit systeme 125 gewährleistet eine echtzeitfähige Ausführung der Anwendungsmodule 105 der Laufzeitsysteme 101 und verhindert eine Interferenz der Ausführung der Anwen dungsmodule 105 durch Ausführungen der weiteren Anwendungsmodule 106 der weite ren Laufzeitsysteme 125, die in dem Nichtechtzeitmodus 127 betrieben werden.

Der Laufzeitserver 100 weist ferner einen Datenübertragungsrouter 121 auf, der mit den Datenübertragungsschnittstellen 107 der Laufzeitsysteme 101 und der weiteren Laufzeit systeme 125 verbindbar ist und eine Datenübertragung zwischen Laufzeitsystemen 101 untereinander, zwischen Laufzeitsystemen 101 und weiteren Laufzeitsystemen 125 oder zwischen weiteren Laufzeitsystemen 125 untereinander ermöglicht. Eine Datenübertra gung zwischen Anwendungsmodulen 105 und weiteren Anwendungsmodulen 106 ist ebenfalls über die Datenübertragungsschnittstelle 107 der jeweiligen Laufzeitsysteme 101 und weiteren Laufzeitsysteme 125 und dem Datenübertragungsrouter 121 ermöglicht.

In der Ausführungsform in Fig.1 ist der Datenübertagungsrouter 121 in zwei Stränge auf geteilt, von denen der erste Strang 120 eine direkte Datenübertragung zwischen den wei teren Laufzeitsystemen 125 untereinander und der zweite Strang 122 eine direkte Daten übertragung zwischen den Laufzeitsystemen 101 untereinander ermöglicht. Durch die Aufteilung des Datenkommunikationsrouters in die ersten und zweiten Stränge 120, 122 wird die Hierarchie der Laufzeitsysteme 101 und weiteren Laufzeitsysteme 125 ermög licht. Indem die Laufzeitsysteme 101 untereinander direkt über den zweiten Strang 122 ds Datenkommunikationsrouters 121 Daten austauschen können. Kann hier eine Priorisie- rung gegenüber den weiteren Laufzeitsystemen erzielt und mögliche Kollisionen im Da tenaustausch vermieden werden. Der Datenaustausch zwischen den Laufzeitsystemen 101 über den zweiten Strang 122 des Datenkommunikationsrouters 121 kann somit die Echtzeitbedingungen erfüllen.

Die weiteren Laufzeitsysteme 125 können indessen störungsfrei und direkt untereinander über den ersten Strang 120 des Datenübertragungsrouter 121 Daten austauschen. Für die Datenübertragung zwischen den weiteren Laufzeitsystemen 125 über den ersten Strang 120 des Datenübertragungsrouters 121 werden keine Echtzeitbedingungen erfüllt. Mit den Pfeilen zwischen den beiden Strängen des Datenübertragungsrouters 121 ist dar gestellt, dass über die beiden Stränge 120, 122 des Datenübertragungsrouters 121 zu sätzlich eine Datenübertragung zwischen den Laufzeitsystemen 101 und den weiteren Laufzeitsystemen 125 ermöglicht ist.

Darüber hinaus weist der Laufzeitserver 100 eine Kommunikationsschnittstelle 133 auf, die eine Verbindung zwischen dem Datenübertragungsrouter 121 und dem Betriebssys tem 103 ermöglicht. Mittels der Kommunikationsschnittstelle 133 ist eine Datenübertra gung zwischen dem Laufzeitserver 100 und dem Betriebssystem 103, in das der Lauf zeitserver 100 eingebettet ist, ermöglicht.

In der Ausführungsform in Fig.1 ist die Kommunikationsschnittstelle 133 sowohl mit dem ersten Strang 120 des Datenkommunikationsrouters 121 als auch mit dem zweiten Strang 122 des Datenkommunikationsrouters 121 verbunden. Somit kann wiederum auch für die Datenübertragung zwischen den Laufzeitsystemen 101 und den weiteren Laufzeitsyste men 125 und dem Betriebssystem 103 eine hierarchisch geordnete Übertragung von Da ten erzielt werden, indem Daten zwischen den Laufzeitsystemen 101 und dem Betriebs system 103 über den zweiten Strang 122 des Datenkommunikationsrouters 121 und Da ten zwischen den weiteren Laufzeitsystemen 125 und dem Betriebssystem 103 über den ersten Strang 122 des Datenkommunikationsrouters 121 übertragen werden können.

Der Laufzeitserver 100 umfasst ferner eine I/O-Schnittstelle 11 1 mit einer Mehrzahl von I/O-Eingängen 115 und I/O-Ausgängen 117. Die I/O-Ausgänge 1 17 und die I/O-Eingänge 1 15 ermöglichen eine Verbindung zwischen den Hardwarekomponenten 1 13 der Automa tisierungsanlage 112 und den Anwendungsmodulen 105 der Laufzeitsysteme 101. Mittels der I/O-Mapping-Zwischenschicht 119 ist eine eindeutige Zuordnung zwischen Variablen der Anwendungsmodule 105 und den Hardwarekomponenten 1 13 der Automatisierungs anlage 1 12 ermöglicht. Die Anzahl der I/O-Eingänge 1 15 und der I/O-Ausgänge 1 17 in der Ausführungsform in Fig. 1 ist lediglich beispielhaft und kann gemäß der zu steuernden Au tomatisierungsanlage 1 12 variieren.

Gemäß der Ausführungsform in Fig. 1 umfasst die Automatisierungsanlage 1 12 eine Mehrzahl von Hardwarekomponenten 1 13. Die Hardwarekomponenten 1 13 können bei spielsweise Feldbusklemmen oder Sensoren oder Aktoren einer Automatisierungsanlage umfassen. Die Hardwarekomponenten 113 sind jeweils über einen Datenbus 131 mit ei nem Busmaster 123 verbunden. Der Datenbus 131 kann mittels eines gängigen Feld busprotokolls betrieben werden. Die Busmaster 123 sind jeweils mit einem I/O-Eingang 1 15 der I/O-Schnittstelle 11 1 mit dem Laufzeitserver 100 verbunden. Über eine Ausfüh rung der auf den Laufzeitsystemen 101 installierten Anwendungsmodule 105 kann eine Steuerung der Hardwarekomponenten 1 13 der Automatisierungsanlage 112 bewirkt wer den. Die Busmaster 123 können hierbei eine Datenübertragung zwischen der Steuerung der Automatisierungsanlage 1 12 und den jeweiligen Hardwarekomponenten 1 13 bewir ken.

Die Ausgestaltung der Ausführungsform in Fig. 1 mit jeweils drei Busmastern 123 und ins gesamt fünf Hardwarekomponenten 113 ist lediglich beispielhaft und die vorliegende Er findung soll nicht hierauf beschränkt werden.

Die Anwendungsmodule 105 der Laufzeitsysteme 101 , die im Echtzeitzeitmodus 129 be trieben werden, dienen zur Ausführung von Anwendungen des Anlagensteuerprogramms, die Echtzeitanforderungen genügen müssen. Diese können beispielsweise das Ansteuern von Aktoren der Automatisierungsanlage 1 12 oder das Auslesen von Sensoren der Auto matisierungsanlage 1 12 umfassen. Die weiteren Anwendungsmodule 106 der weiteren Laufzeitsysteme 125, die im Nichtechtzeitmodus 127 betrieben werden, dienen hingegen zur Ausführung von Anwendungen des Anlagensteuerprogramms, die keinen Echtzeitan forderungen genügen müssen. Diese Anwendungen können beispielsweise eine Auswer tung von Messdaten, eine graphische Darstellung von ausgewerteten Messdaten oder ähnliche Anwendungen umfassen, die für eine echtzeitfähige Steuerung der Automatisie rungsanlage 112 eine untergeordnete Priorität haben.

Gemäß der Ausführungsform in Fig. 1 sind die Laufzeitsysteme 101 instanziiert und sind von anderen Laufzeitsystemen 101 vollständig unabhängig betreibbar. Die auf den Lauf zeitsystemen 101 installierten Anwendungsmodule 105 sind eigenständige Einheiten des Anlagensteuerprogramms und sind unabhängig voneinander ausführbar. Die weiteren Laufzeitsysteme 125 sind ebenfalls instanziiert und stellen eigenständig betreibbare Ein heiten dar, die unabhängig von den anderen Laufzeitsystemen 101 und/oder anderen wei teren Laufzeitsystemen 125 betreibbar sind. Die weiteren Anwendungsmodule 106 sind ebenfalls eigenständige Einheiten des Anlagensteuerprogramms und können unabhängig voneinander ausgeführt werden.

Gemäß der Ausführungsform in Fig. 1 können Laufzeitsysteme 101 und/oder weitere Laufzeitsysteme 125 zu den bereits auf dem Laufzeitserver 100 installierten Laufzeitsyste men 101 und/oder den weiteren Laufzeitsystemen 125 hinzugefügt werden. Ebenfalls können Laufzeitsysteme 101 und/oder weitere Laufzeitsysteme 125 von dem Laufzeitser ver 100 entfernt werden. Die übrigen Laufzeitsysteme 101 und/oder die übrigen weiteren Laufzeitsysteme 125 können während des Hinzufügens oder Entfernens von Laufzeitsys temen 101 und/oder weiteren Laufzeitsystemen 125 weiterbetrieben und die darauf instal lierten Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 weiter ausge führt werden, sodass die Automatisierungsanlage 112 über das Anlagensteuerprogramm weiterhin betrieben werden kann.

Darüber hinaus können die auf den Laufzeitsystemen 101 installierten Anwendungsmo dule 105 und/oder die auf den weiteren Laufzeitsystemen 125 installierten weiteren An wendungsmodule 106 verändert und/oder modifiziert werden. Die nicht zu verändernden oder modifizierenden Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 können während der Änderung von zu ändernden Anwendungsmodulen 105 und/o der weiteren Anwendungsmodulen 106 weiterhin ausgeführt werden.

Zur Änderung der zu ändernden Anwendungsmodule 105 und/oder weiteren Anwen dungsmodule 106 können diese gestoppt und die entsprechenden Änderungen einge pflegt werden. Bei dem erneuten Hochfahren der geänderten Anwendungsmodule 105 und/oder geänderten weiten Anwendungsmodule 106 können diese in das bestehende Anlagensteuerprogramm eingepflegt werden. Alternativ können die zu ändernden Anwen dungsmodule 105 und/oder weiteren Anwendungsmodule 106 von den jeweiligen Lauf zeitsystemen 101 und/oder weiteren Laufzeitsystemen 125 deinstalliert werden und eine geänderte Version der zu ändernden Anwendungsmodule 105 und/oder weiteren Anwen dungsmodule 106 auf die jeweiligen Laufzeitsysteme 101 und/oder weiteren Laufzeitsys teme 125 installiert werden. Bei einem Hochfahren der geänderten Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 können diese in das bestehende Anla gensteuerprogramm eingepflegt werden.

Bei einer Änderung der Anwendungsmodule 105 der Laufzeitsysteme 101 , die eine Ände rung der I/O-Konfigurationen 109 der jeweiligen Laufzeitsysteme 101 umfasst, können die jeweiligen Änderungen der I/O-Konfigurationen 109 mittels einer Abbildung der geänder ten I/O-Konfigurationen 109 auf die I/O-Mapping-Zwischenschicht 119 berücksichtigt wer den. Mittels der I/O-Mapping-Zwischenschicht 119 ist eine eindeutige Zuordnung der Vari ablen der einzelnen Anwendungsmodule 105 der Laufzeitsysteme 101 zu den Hardware komponenten 113 der zu steuernden Automatisierungsanlage 112 für den Laufzeitserver 100 gewährleistet. Der Laufzeitserver 100 weist somit mit der I/O-Mapping-Zwischenschicht 119 eine variier bare I/O-Konfiguration auf, die bei laufender Ausführung des Anlagensteuerprogramms veränderbar ist. Die I/O-Mapping-Zwischenschicht 119 umfasst alle Abbildungen der I/O- Konfigurationen 109 der auf dem Laufzeitserver 100 installierten Laufzeitsysteme 101. Einzelne I/O-Konfigurationen 109 einzelner Laufzeitsysteme 101 können hierbei verändert und die entsprechenden Abbildungen der geänderten I/O-Konfigurationen 109 auf die I/O- Mapping-Zwischenschicht 119 abgebildet werden, während andere Laufzeitsysteme 101 und die darauf installierten Anwendungsmodule 105 weiter ausgeführt werden.

Fig. 2 zeigt eine schematische Darstellung eines Computerprogrammprodukts 200 zum Ausführen des Laufzeitservers 100 gemäß einer Ausführungsform.

In der Ausführungsform in Fig. 2 ist das Computerprogramm 200 auf einem Aufzeich nungsmedium 201 angeordnet.

Fig. 3 zeigt eine schematische Darstellung einer Automatisierungsanlage 112 mit einer Datenverarbeitungsanlage 114 zum Ausführen des Laufzeitservers 100 gemäß einer Aus führungsform.

In der Ausführungsform in Fig. 3 umfasst die Automatisierungsanlage 112 eine Datenver arbeitungsanlage 114 und eine Mehrzahl von Hardwarekomponenten 113, die über einen Datenbus 131 mit der Datenverarbeitungsanlage 112 verbunden sind.

Auf der Datenverarbeitungsanlage 114 ist eine Betriebssystem 103 zum Ausführen der Datenverarbeitungsanlage 114 eingerichtet. Auf dem Betriebssystem 103 ist eine Lauf zeitserver 100 zum Ausführen eines Anlagensteuerungprogramms zum Steuern der Auto matisierungsanlage ausgebildet.

Der Laufzeitserver 100 wie auch das Betriebssystem 103, die Hardwarekomponenten 113 und der Datenbus 131 weisen die zu Fig. 1 angeführten Merkmale auf. Bezugszeichenliste

100 Laufzeitserver

101 Laufzeitsystem

103 Betriebssystem

105 Anwendungsmodul

106 weiteres Anwendungsmodul

107 Datenübertragungsschnittstelle 109 I/O-Konfiguration

111 I/O-Schnittstelle

112 Automatisierungsanlage

113 Hardwarekomponente

114 Datenverarbeitungsanlage

115 I/O-Eingang

117 I/O-Ausgang

119 I/O-Mapping-Zwischenschicht

120 erster Strang

121 Datenübertragungsrouter

122 zweiter Strang

123 Busmaster

125 weiteres Laufzeitsystem 127 Nicht-Echtzeitmodus

129 Echtzeitmodus

131 Datenbus

133 Kommunikationsschnittstelle

200 Computerprogrammprodukt

201 Aufzeichnungsmedium