DE102016121542A1 - Sequence control of program modules - Google Patents

Sequence control of program modules Download PDF

Info

Publication number
DE102016121542A1
DE102016121542A1 DE102016121542.2A DE102016121542A DE102016121542A1 DE 102016121542 A1 DE102016121542 A1 DE 102016121542A1 DE 102016121542 A DE102016121542 A DE 102016121542A DE 102016121542 A1 DE102016121542 A1 DE 102016121542A1
Authority
DE
Germany
Prior art keywords
program modules
control device
real
operating system
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102016121542.2A
Other languages
German (de)
Inventor
Henning Heutger
Andreas Weichelt
Rolf Kleinow
Stefan Hausmann
Jens Frieben
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Contact GmbH and Co KG
Original Assignee
Phoenix Contact GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phoenix Contact GmbH and Co KG filed Critical Phoenix Contact GmbH and Co KG
Priority to DE102016121542.2A priority Critical patent/DE102016121542A1/en
Publication of DE102016121542A1 publication Critical patent/DE102016121542A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zur Ablaufsteuerung von Programmmodulen 21, 31, 32, 41. Bei dem Verfahren wird ein Bereitstellen einer Steuereinrichtung 50, ein Bereitstellen einer Beschreibungsdatei aufweisend eine Konfiguration zur Steuerung eines Programmablaufs vorgesehen. Ferner umfasst das Verfahren ein Bereitstellen mehrerer Programmmodule 21, 31, 32, 41, die von einem Echtzeitbetriebssystem ausführbar sind, wobei die Programmmodule 21, 31, 32, 41 unter Verwendung einer oder unterschiedlicher Programmiersprachen erstellt sind. Weiterhin weist das Verfahren ein Auslösen ausgewählter Programmmodule 21, 31, 32, 41 durch Ausführen von Vorgaben in der Beschreibungsdatei durch die Steuereinrichtung 50 auf.The present invention relates to a method for scheduling program modules 21, 31, 32, 41. In the method, providing a controller 50, providing a description file having a configuration for controlling a program flow is provided. Furthermore, the method comprises providing a plurality of program modules 21, 31, 32, 41, which are executable by a real-time operating system, wherein the program modules 21, 31, 32, 41 are created using one or different programming languages. Furthermore, the method has a triggering of selected program modules 21, 31, 32, 41 by executing specifications in the description file by the control device 50.

Description

Die vorliegende Erfindung liegt auf dem Gebiet der Automatisierungstechnik, insbesondere der industriellen Automatisierungstechnik, und betrifft ein Verfahren zur Ablaufsteuerung von Programmmodulen. Ferner betrifft die vorliegende Erfindung ein Echtzeitbetriebssystem, eine Steuereinheit, eine Steuervorrichtung und ein Computerprogrammprodukt.The present invention is in the field of automation technology, in particular industrial automation technology, and relates to a method for scheduling program modules. Furthermore, the present invention relates to a real-time operating system, a control unit, a control device and a computer program product.

In der Automatisierungstechnik ist ein Wandel abzusehen, der von der Verwendung von klassischen Programmiersprachen hin zum Einsatz von Hochsprachen erfolgt.In the field of automation technology, a change is foreseen that goes from the use of classical programming languages to the use of high-level languages.

Bisher regelt beispielsweise die Norm IEC 61131 die Syntax und die Semantik von Programmiersprachen für programmierbare Controller. Hierbei wird eine vereinheitlichte Suite von Programmiersprachen für programmierbare Controller vorgeschlagen. Diese Suite weist zwei Textsprachen (Instruction List und Structured Text) sowie zwei graphische Sprachen (Ladder Diagram und Function Block Diagram) auf. Ferner werden in der Norm IEC 61131 Merkmale definiert, die die Kommunikation zwischen Programm-Controllern und weiteren Komponenten eines automatisierten Systems vereinfachen.So far, for example, the standard IEC 61131 regulates the syntax and semantics of programming languages for programmable controllers. A unified suite of programmable controller programming languages is proposed. This suite has two text languages (Instruction List and Structured Text) as well as two graphical languages (Ladder Diagram and Function Block Diagram). Further, the IEC 61131 standard defines features that facilitate communication between program controllers and other components of an automated system.

Durch aktuelle Thematiken, wie beispielsweise Industrie 4.0, dem Internet der Dinge oder Agenda CPS des VDI, wird aufgezeigt, dass sich in Zukunft automatisierte Anlagen durch einen hohen Teil von Vernetzung und Software auszeichnen werden. Dabei wird es einen Wechsel von der klassischen IEC 61131-3 Programmierung hin zu modernen Hochsprachen geben. Bis zum Jahr 2018 soll der verwendete Code rund 70% außerhalb der nach IEC definierten Sprachen liegen. Dabei werden die bestehenden Anforderungen, wie zum Beispiel Echtzeitfähigkeit und Konsistenz, um höhere Flexibilität, mehr Sicherheit und bessere Wartbarkeit ergänzt.Current topics, such as Industry 4.0, the Internet of Things or Agenda CPS of the VDI, show that in the future automated systems will be characterized by a high proportion of networking and software. There will be a change from classical IEC 61131-3 programming to modern high-level languages. By the year 2018, the code used should be around 70% outside the languages defined by IEC. The existing requirements, such as real-time capability and consistency, are supplemented by greater flexibility, more security and better maintainability.

Auch bei der Herstellung von speicherprogrammierbaren Steuerungen und/oder Laufzeitumgebungen ergeben sich folglich technische Veränderungen in der Zukunft. Also in the production of programmable logic controllers and / or runtime environments, therefore, there are technical changes in the future.

EP 2 504 738 B1 beschreibt ein Steuerverfahren und ein Verfahren zum Ausführen mehrerer Programme auf mehreren parallel arbeitenden Verarbeitungseinrichtungen. Hierbei ist ein Zeitsignalgeber jeder von mehreren parallel arbeitenden Verarbeitungseinrichtungen zugeordnet, bei dessen Ablaufen auf der zugeordneten Verarbeitungseinrichtung ein Steuerverfahren zum Ausführen von Programmen ausgeführt wird. EP 2 504 738 B1 describes a control method and method for executing multiple programs on multiple parallel processing devices. In this case, a time signal generator is assigned to each of a plurality of parallel processing devices, at the expiration of which a control method for executing programs is executed on the associated processing device.

Die Verwendung eines Zeitsignalgebers hat jedoch den Nachteil, dass die Schnelligkeit der Verarbeitung von Daten in einem Echtzeitbetriebssystem herabgesetzt werden kann.However, the use of a time signal generator has the disadvantage that the speed of processing data in a real-time operating system can be reduced.

Es ist eine Aufgabe der vorliegenden Erfindung, eine Lösung anzugeben, um Ablaufsteuerungen für Echtzeitbetriebssysteme zu verbessern.It is an object of the present invention to provide a solution to improve schedulers for real-time operating systems.

Diese Aufgabe wird erfindungsgemäß durch die Merkmale des Patentanspruchs 1 gelöst. Ferner wird die Aufgabe durch ein Echtzeitbetriebssystem gemäß Patentanspruch 13, eine Steuereinrichtung gemäß Patentanspruch 14, eine Steuervorrichtung gemäß Patentanspruch 15 und ein Computerprogrammprodukt gemäß Patentanspruch 16 gelöst. Weitere Ausgestaltungen ergeben sich aus den Unteransprüchen.This object is achieved by the features of claim 1. Furthermore, the object is achieved by a real-time operating system according to claim 13, a control device according to claim 14, a control device according to claim 15 and a computer program product according to claim 16. Further embodiments emerge from the subclaims.

Bei dem erfindungsgemäßen Verfahren zur Ablaufsteuerung von Programmmodulen wird ein Bereitstellen einer Steuereinrichtung und ein Bereitstellen einer Beschreibungsdatei aufweisend ein Konfigurieren der Beschreibungsdatei zur Steuerung eines Programmablaufs vorgesehen. Ferner umfasst das Verfahren ein Bereitstellen mehrerer Programmmodule, die von einem Echtzeitbetriebssystem ausführbar sind, wobei die Programmmodule unter Verwendung einer oder unterschiedlicher Programmiersprachen erstellt sind. Weiterhin weist das Verfahren ein Auslösen ausgewählter Programmmodule durch Ausführen von Vorgaben in der Beschreibungsdatei durch die Steuereinrichtung auf.In the method according to the invention for scheduling program modules, it is provided to provide a control device and to provide a description file comprising configuring the description file for controlling a program sequence. Furthermore, the method comprises providing a plurality of program modules that can be executed by a real-time operating system, wherein the program modules are created using one or different programming languages. Furthermore, the method has a triggering of selected program modules by executing specifications in the description file by the control device.

Die Steuereinrichtung kann als Ausführungs- und Synchronisierungs-Manager bzw. Execution and Synchronisation Manager (ESM) ausgestaltet sein.The control device can be designed as an execution and synchronization manager or execution and synchronization manager (ESM).

Durch das Verwenden einer solchen Steuereinrichtung wird eine gleichwertige Behandlung bzw. Ausführung von Programmen unterschiedlicher Programmierdomänen ermöglicht.By using such a controller, equivalent treatment of programs of different programming domains is enabled.

Es können beispielsweise Programmmodule ausgeführt werden, die jeweils mindestens in einer der Programmiersprachen nach der Norm IEC 61131, in Matlab/Simulink, C++, C# oder JAVA oder Python programmiert ist. Weitere Programmiersprachen sind ebenfalls möglich. Nach der Norm IEC 61131 (Ausgabe 3.0, 2013-02) werden zwei Textsprachen (textual languages), nämlich Instruction List (IL) und Structured Text (ST) und zwei Graphiksprachen (graphical languages), nämlich Ladder Diagram (LD) und Function Block Diagram (FBD) vorgegeben. Diese Programmiersprachen können zusammen mit Programmierhochsprachen in einer Ablaufsteuerung angewendet werden.For example, program modules can be executed which are each programmed in at least one of the programming languages according to the IEC 61131 standard, in Matlab / Simulink, C ++, C # or JAVA or Python. Other programming languages are also possible. According to the standard IEC 61131 (Edition 3.0, 2013-02) two textual languages are used, namely Instruction List (IL) and Structured Text (ST) and two graphical languages, namely Ladder Diagram (LD) and Function Block Diagram (FBD) given. These programming languages can be used together with programming languages in a sequence control.

Die Steuereinrichtung erlaubt eine einfache Konfiguration von IEC 61131-3 ähnlichen Tasks, welche das Einbinden von Programminstanzen unterschiedlicher Programmiersprachen erlaubt. Hierfür nutzt die Steuereinrichtung eine Reihe von Betriebssystemprozessen und Threads, um eine performante Integration in das unterliegende Echtzeitbetriebssystem zu ermöglichen.The control device allows a simple configuration of IEC 61131-3-like tasks, which allows the integration of program instances of different programming languages. Therefor The controller uses a number of operating system processes and threads to enable high-performance integration into the underlying real-time operating system.

Demnach kann für alle Programmmodule eine einzige Programmiersprache verwendet werden. Auch ist es möglich, dass für zwei oder mehrere Programmmodule unterschiedliche Programmiersprachen verwendet werden.Thus, a single programming language can be used for all program modules. It is also possible that different programming languages are used for two or more program modules.

Beim Auslösen der Programmmodule wird die Beschreibungsdatei, die auch als Konfigurationsdatei bezeichnet werden kann, nicht mehr angesprochen. Ein solches Ansprechen würde zu viel Zeit in Anspruch nehmen und verlangsamt die Bearbeitung. Vielmehr wird beim Systemstart die Konfigurationsdatei(en) gelesen und während der Abarbeitungsphase nur noch ausgeführt. Hierbei wird ein Ausführen der Informationen aus der Beschreibungsdatei durch die Steuereinrichtung vorgesehen. Somit ergeben sich Vorgaben zur Ausführung der Programmodule durch den Inhalt der Beschreibungsdatei. Diese Vorgaben werden durch ein Konfigurieren der Beschreibungsdatei bereitgestellt. Folglich werden die Programmmodule unter Ausführen in der Beschreibungsdatei definierten Konfiguration ausgelöst.When the program modules are triggered, the description file, which can also be called a configuration file, is no longer addressed. Such a response would take too much time and slow down the processing. Rather, the configuration file (s) is read at system startup and only executed during the execution phase. In this case, an execution of the information from the description file is provided by the control device. Thus, there are specifications for the execution of the program modules by the contents of the description file. These presets are provided by configuring the description file. Consequently, the program modules are triggered by executing configuration defined in the description file.

Die Programmmodule werden beispielsweise mit Hilfe einer Programmierschnittstelle, insbesondere mit einer API (API = application programming interface) gesteuert. Die Beschreibungsdatei, die beispielsweise als XML-Datei (XML = Extensible Markup Language Datei) bereitgestellt werden kann, dient der Konfiguration, wann die Programme angesprochen und damit ausgeführt werden. Es können mit Hilfe der Steuereinrichtung Programmmodule ausgeführt und Statusinformationen zum Programmablauf, z.B. Tasklaufzeiten, erfasst werden.The program modules are controlled, for example, by means of a programming interface, in particular with an API (API = application programming interface). The description file, which can be provided, for example, as an Extensible Markup Language (XML) file, is used to configure when the programs are addressed and executed. With the aid of the control device, program modules can be executed and status information on the program sequence, e.g. Tasklaufzeiten, are recorded.

Die Steuereinrichtung kann selbst von einem PLC-Manager (PLC = Programmable Logic Controller) initialisiert und gesteuert werden. Dieser setzt z.B. die Steuerung in RUN/STOP und führt Neustarts durch. Während des Betriebs wird die Steuereinrichtung durch Events (Software oder Hardware) zyklisch angestoßen, um eine Ausführungslogik abzuarbeiten.The controller can itself be initialized and controlled by a PLC manager (PLC = Programmable Logic Controller). This sets e.g. the controller in RUN / STOP and reboots. During operation, the controller is cyclically triggered by events (software or hardware) to execute an execution logic.

Auch können eine Vielzahl von Beschreibungsdateien bzw. Konfigurationsdateien zur Ablaufsteuerung verwendet werden. Weitere Beschreibungsdateien können eine Konfiguration von zusätzlichen Task und ihren zugeordneten Programmmodulen beinhalten. Beispielsweise könnte eine Beschreibungsdatei beispielsweise in Form einer XML-Datei, eine Hauptaufgabe (Task-Main) beschreiben, eine weitere Beschreibungsdatei eine Steueraufgabe (Task-Crtl) und eine weitere Beschreibungsdatei eine Synchronisationsaufgabe (Task-Sync). Die Konfigurationsdateien können einfach in eine Konfiguration zusammengeführt werden, wenn sich hieraus keine Widersprüche ergeben. Aus diesem Grund sollte die Steuereinrichtung oder eine Steuereinrichtung in der Funktion eines Masters (ESM-Master) alle Konfigurationen kennen und einlesen.Also, a variety of description files or configuration files can be used for flow control. Additional description files may include a configuration of additional task and its associated program modules. For example, a description file could describe, for example in the form of an XML file, a main task (task main), another description file a control task (task crtl) and another description file a synchronization task (task sync). The configuration files can be easily merged into one configuration, if there are no contradictions. For this reason, the control device or a control device in the function of a master (ESM master) should know and read in all configurations.

In einer bevorzugten Ausführungsform weist das Verfahren ein mehrfaches Auslösen wenigstens eines der Programmmodule durch die Steuereinrichtung auf.In a preferred embodiment, the method comprises a multiple triggering of at least one of the program modules by the control device.

Ein Ansprechen der Beschreibungsdatei ist hierfür nicht notwendig, so dass Bearbeitungszeiten kurz gehalten werden können. Weitere Aufgabentypen bzw. Tasktypen wie Event und Idle Task können ebenfalls unterstützt werden. Die Beschreibungsdatei oder die Vielzahl von Beschreibungsdateien werden vorteilhafterweise nur zur initialen Konfiguration gelesen, nicht jedoch während der Ausführung.A response of the description file is not necessary for this, so that processing times can be kept short. Other task types or task types such as Event and Idle Task can also be supported. The description file or the plurality of description files are advantageously read only for initial configuration, but not during execution.

In einer weiteren bevorzugten Ausführungsform des Verfahrens ist vorgesehen, dass die Steuereinrichtung dazu ausgebildet ist, wenigstens einige der Programmmodule derart auszulösen, dass sie in unterschiedlichen von dem Echtzeitbetriebssystem verwalteten Prozessen ausführbar sind.In a further preferred embodiment of the method, it is provided that the control device is designed to trigger at least some of the program modules such that they can be executed in different processes managed by the real-time operating system.

Auf diese Weise ist es möglich, nur die Programmmodule zu verwenden, die benötigt werden und auch Prozesse parallel auszuführen, um Zeitressourcen effizient zu nutzen.In this way it is possible to use only the program modules that are needed and also to execute processes in parallel to efficiently use time resources.

In einer Weiterbildung des Verfahrens ist vorgesehen, dass das Echtzeitbetriebssystem dazu ausgebildet ist, die Prozesse und/oder Programmmodule in Abhängigkeit vorbestimmter Prioritäten auszuführen.In a development of the method, it is provided that the real-time operating system is designed to execute the processes and / or program modules as a function of predetermined priorities.

Durch ein Setzen von Prioritäten können Steueraufgaben nach ihrer Wichtigkeit oder Dringlichkeit bearbeitet werden.By setting priorities, control tasks can be edited according to their importance or urgency.

Ferner kann bei einer Ausführungsform des Verfahrens ein Aufzeichnen und Auswerten der Ablaufsteuerung durch das Echtzeitbetriebssystem vorgesehen werden.Furthermore, in one embodiment of the method, a recording and evaluation of the sequence control by the real-time operating system can be provided.

Zum Aufzeichnen und Auswerten können zusätzlich eingebrachte Markierungspunkte mit aufgezeichnet werden und Statistiken gebildet werden.For recording and evaluation additionally introduced marker points can be recorded and statistics are formed.

In einer weiteren Ausgestaltungsform kann das Verfahren ein Erweitern der Ablaufsteuerung durch ein zusätzliches Programmmodul vorsehen, ohne dass ein Neustart eines Steuerungssystems durchgeführt wird.In another embodiment, the method may provide for extending the scheduling by an additional program module without rebooting a control system.

Ein Steuerungssystem bezeichnet eine Ablaufsteuerung in der Programmmodule typischerweise geladen, gestartet, debuggt, gestoppt und entladen werden können. Das Steuerungssystem setzt auf dem Echtzeitbetriebssystem auf.A control system refers to a flow control in the program modules typically loaded, started, debugged, stopped and unloaded. The control system is based on the real-time operating system.

Es ist von Vorteil, dass eine Erweiterung des Steuerungssystems möglich ist, ohne dass das Steuerungssystem für einen Neustart unterbrochen werden muss. Auf diese Weise kann der Betrieb kontinuierlich fortgeführt werden.It is advantageous that an extension of the control system is possible without having to interrupt the control system for a restart. In this way, the operation can be continued continuously.

In einer weiteren Ausführungsform kann das Verfahren ein Aufteilen der Ablaufsteuerung auf verschiedene Prozesse aufweisen.In a further embodiment, the method may include partitioning the scheduler to different processes.

Eine solche Verteilung kann die Vorteile unterschiedlicher Prozesse des Echtzeitbetriebssystems, z.B. Speicherschutzmechanismen, besser ausnutzen.Such a distribution may take advantage of different processes of the real-time operating system, e.g. Memory protection mechanisms, better exploit.

Ferner kann in einer weiteren Ausführungsform des Verfahrens ein Erstellen einer Statistikauswertung unter Verwendung von Profiling-Informationen vorgesehen werden.Furthermore, in another embodiment of the method, it is possible to provide statistical analysis using profiling information.

Hierbei können in der Steuereinrichtung Marken oder Markierungen eingebracht werden, um die Profiling-Informationen zu generieren. Unter Profiling-Informationen werden Informationen zur Analyse des Laufzeitverhaltens von Software verstanden. Demnach können statistische Daten zur Verbesserung der Ablaufsteuerung ausgewertet und für statistische Zwecke verwendet werden.In this case, marks or markings can be introduced in the control device in order to generate the profiling information. Profiling information is information for analyzing the runtime behavior of software. Thus, statistical data can be evaluated to improve process control and used for statistical purposes.

In einer weiteren Ausgestaltungsform umfasst das Verfahren ein Einbringen von mindestens einer Aufzeichnungsmarkierung in ein Programmmodul zum Bereitstellen einer Applikationsdiagnose.In a further embodiment, the method comprises introducing at least one recording mark into a program module for providing an application diagnosis.

Eine Aufzeichnungsmarkierung kann als Stelle in einem Programmmodul verstanden werden, die es ermöglicht, über einen bestimmten Teil eines Programmmoduls Information in Bezug auf dessen Ausführung zu erhalten. Anhand dieser Information kann im Anschluss eine Diagnose erstellt werden, um die ausgeführte Applikation zu bewerten. Hierbei kann es sich um eine einzelne Applikation oder auch die Gesamtapplikation der Steueraufgabe handeln.A recording mark can be understood as a position in a program module which makes it possible to obtain information about its execution over a specific part of a program module. Based on this information, a diagnosis can subsequently be made in order to evaluate the executed application. This can be a single application or the entire application of the tax task.

In einer weiteren Ausführungsform umfasst das Verfahren ein Verwenden der Steuereinrichtung als Master und Bereitstellen mindestens einer weiteren Steuereinrichtung als Slave, die der Steuereinrichtung als Master untergeordnet ist.In a further embodiment, the method comprises using the control device as a master and providing at least one further control device as a slave, which is subordinate to the control device as a master.

Die Verwendung eines Slaves kann dann vorteilhaft verwendet werden, wenn ein Programmmodul in einem weiteren Prozess ausgeführt werden soll. Wenn die Gesamtapplikation in einem einzigen Prozess abläuft, kann auf einen Slave verzichtet werden.The use of a slave can be used advantageously when a program module is to be executed in another process. If the entire application runs in a single process, a slave can be dispensed with.

Aufgaben bzw. Tasks sind eine organisatorische Einheit für die Ausführung von Programmen. OS-Prozesse und OS-Threads (OS = Operating System bzw. Betriebssystem) können für die technische Realisierung dieser organisatorischen Verwaltungseinheiten genutzt werden. Hierbei ist es erstrebenswert, eine synchronisierte Abarbeitung von Tasks über OS-Prozessgrenzen hinweg zu ermöglichen. Dem Master ist es im Allgemeinen nicht möglich, OS-Threads in anderen OS-Prozessen zu erstellen. Aus diesem Grund kann dies von einem Slave in jedem beteiligten OS-Prozess übernommen werden. Die Ausführung der Programme bzw. Programmmodule kann der Master übernehmen. Wird hingegen nur ein OS-Prozess verwendet, können alle Programme und Threads ohne Slaves ausgeführt werden.Tasks or tasks are an organizational unit for executing programs. OS processes and OS threads (OS = operating system or operating system) can be used for the technical realization of these organizational administrative units. It is desirable to enable a synchronized execution of tasks across OS process boundaries. The master is generally unable to create OS threads in other OS processes. For this reason, this can be taken over by a slave in each participating OS process. The execution of the programs or program modules can be carried out by the master. If, however, only one OS process is used, all programs and threads can be executed without slaves.

Der Master und der Slave können beispielsweise über Interprozesskommunikation kommunizieren, wenn diese auf demselben Gerät ablaufen. Die Kommunikation wird vorteilhafterweise auf der untersten Ebene mit Basisfunktionalitäten des Betriebssystems realisiert. Sofern der Master und der Slave in unterschiedlichen Geräten ablaufen, können diese Geräte über eine Datenverbindung miteinander gekoppelt werden.For example, the master and the slave can communicate via interprocess communication if they are running on the same device. The communication is advantageously realized at the lowest level with basic functionalities of the operating system. If the master and the slave run in different devices, these devices can be coupled with each other via a data connection.

Weiterhin kann das Verfahren in einer weiteren bevorzugten Ausgestaltungsform ein Zuweisen einzelner in der Beschreibungsdatei definierter Aufgaben an Programmmodule durch die Steuereinrichtung aufweisen.Furthermore, in a further preferred embodiment, the method may comprise assigning individual tasks defined in the description file to program modules by the control device.

Demnach kann die Steuereinrichtung einzelne Aufgaben innerhalb des Steuerungssystems verteilen, um so beispielsweise die Auslastung des Steuerungssystems zu verbessern. Eine Aufgabe bzw. Task oder eine Vielzahl hiervon kann eine Untermenge eines Prozesses innerhalb einer Steueraufgabe sein.Thus, the controller may distribute individual tasks within the control system, for example, to improve the utilization of the control system. A task or a plurality thereof may be a subset of a process within a control task.

Ferner wird die Aufgabe der vorliegenden Erfindung mit einem Echtzeitbetriebssystem zur Ablaufsteuerung von Programmmodulen umfassend eine Steuereinrichtung gelöst. Hierbei weist das Echtzeitsystem eine in einer Speichereinrichtung hinterlegte Beschreibungsdatei auf, die einen Programmablauf definiert. Ferner sind mehrere von dem Echtzeitbetriebssystem ausführbare Programmmodule vorgesehen, die unter Verwendung einer oder unterschiedlicher Programmiersprachen erstellt sind, wobei die Steuereinrichtung dazu ausgebildet ist, die Programmmodule unter Ausführen von Vorgaben der Beschreibungsdatei auszulösen.Furthermore, the object of the present invention with a real-time operating system for the flow control of program modules comprising a control device is achieved. Here, the real-time system has a stored in a memory device description file that defines a program flow. Furthermore, a plurality of program modules executable by the real-time operating system are provided, which are created using one or different programming languages, wherein the control device is designed to trigger the program modules by executing specifications of the description file.

Das Echtzeitbetriebssystem (RTOS = real-time operating system) ist ein Betriebssystem, das in der Lage ist, Echtzeit-Anforderungen von Anwendungen zu erfüllen. Hierbei ist die Einhaltung definierter Antwortzeiten im Bereich der Automatisierungstechnik von besonderer Bedeutung, um Schäden an einer installierten und gesteuerten Anlage zu vermeiden.The real-time operating system (RTOS) is an operating system that is capable of meeting real-time application requirements. Here, the adherence to defined response times in the field of Automation technology of particular importance to prevent damage to an installed and controlled system.

Die Aufgabe der vorliegenden Erfindung wird mit einer Steuereinrichtung zur Ablaufsteuerung von Programmmodulen einer oder unterschiedlicher Programmiersprachen in einem Echtzeitbetriebssystem gelöst. Hierzu weist die Steuereinrichtung einen Prozessor und einen Speicher zur Durchführung des erfindungsgemäßen Verfahrens auf.The object of the present invention is achieved with a control device for the sequence control of program modules of one or different programming languages in a real-time operating system. For this purpose, the control device has a processor and a memory for carrying out the method according to the invention.

Die Steuereinrichtung kann in Form eines Ausführungs- und Synchronisierungs-Manager bzw. Execution and Synchronisation Managers (ESM) ausgestaltet sein. Die Steuereinrichtung kann zentrale Aufgaben der Steuerung priorisieren, auf vorhandene Programmmodule verteilen und Informationen von den einzelnen Programmmodulen empfangen und diese Informationen analysieren.The control device can be designed in the form of an execution and synchronization manager or execution and synchronization manager (ESM). The controller may prioritize centralized tasks of the controller, distribute to existing program modules and receive information from the individual program modules and analyze this information.

Ferner wird die Aufgabe der vorliegenden Erfindung durch eine Steuervorrichtung zur Ablaufsteuerung von Programmmodulen unterschiedlicher Programmiersprachen in einem Echtzeitbetriebssystem gelöst. Hierzu weist die Steuervorrichtung eine erfindungsgemäße Steuereinrichtung, einen Prozessor, einen Speicher, und mindestens eine Schnittstelle zu einer Automatisierungseinrichtung auf.Furthermore, the object of the present invention is achieved by a control device for the sequence control of program modules of different programming languages in a real-time operating system. For this purpose, the control device has a control device according to the invention, a processor, a memory, and at least one interface to an automation device.

Hierbei kann eine Steuervorrichtung ein Steuergerät sein, das in einer Automatisierungsanlage installiert ist. Hierbei ist die erfindungsgemäße Steuereinrichtung Teil der erfindungsgemäßen Steuervorrichtung. Auch ist eine Verteilung der Steuervorrichtung auf mehrere Rechnerkerne bzw. Cores eines Multicoreprozessors möglich.In this case, a control device may be a control device which is installed in an automation system. Here, the control device according to the invention is part of the control device according to the invention. A distribution of the control device to a plurality of computer cores or cores of a multi-core processor is also possible.

Desweiteren wird die Aufgabe der vorliegenden Erfindung mit einem Computerprogrammprodukt gelöst. Hierzu weist das Computerprogrammprodukt Programmcodemittel zum Durchführen des erfindungsgemäßen Verfahrens auf, wobei das Computerprogrammprodukt auf einem Computersystem in einem Echtzeitbetriebssystem abläuft.Furthermore, the object of the present invention is achieved with a computer program product. For this purpose, the computer program product has program code means for carrying out the method according to the invention, wherein the computer program product runs on a computer system in a real-time operating system.

Das Computerprogrammprodukt kann beispielsweise ein Datenträger sein, der in einer Automatisierungsanlage zur Verfügung gestellt wird, um das erfindungsgemäße Verfahren durchzuführen.The computer program product can be, for example, a data carrier which is made available in an automation system in order to carry out the method according to the invention.

Insgesamt bietet die vorgeschlagene Steuerungstechnik eine flexible Lösung, die sich dynamisch der zukünftigen Weiterentwicklung im Bereich der Automatisierungstechnik anpassen kann. Die vorgeschlagene Steuerungsarchitektur erlaubt durch ihre Offenheit, im Gegensatz zu bisher geschlossenen Systemen, ganz individuell die gewünschten Applikationen umzusetzen und dennoch auf einer stabilen Basis aufzusetzen. Dies kann nicht nur für die Zielgruppe der Hochsprachenprogrammierer, sondern auch für bisherige installierte Automatisierungsanlagen im Umfeld der IEC 61131-3 Programmierung sicherstellt werden.Overall, the proposed control technology offers a flexible solution that can dynamically adapt to the future development in the field of automation technology. The proposed control architecture allows by its openness, in contrast to previously closed systems, individually implement the desired applications and still set up on a stable basis. This can be ensured not only for the target group of high-level language programmers, but also for existing installed automation systems in the environment of IEC 61131-3 programming.

Einige Ausführungsbeispiele der Erfindung sind in den Zeichnungen rein schematisch dargestellt und werden nachfolgend näher beschrieben. Es zeigt:

  • 1 ein Ausführungsbeispiel zur Steuerung einer Gesamtapplikation in einer Automatisierungsanlage gemäß der vorliegenden Erfindung;
  • 2 ein Ausführungsbeispiel der vorliegenden Erfindung eines schematischen Aufbaus mit einer Steuereinrichtung als Master und zwei weiteren Steuereinrichtungen als Slave; und
  • 3 ein Ausführungsbeispiel gemäß der vorliegenden Erfindung einer Steuerung eines Programmablaufs durch eine Steuereinrichtung.
Some embodiments of the invention are shown purely schematically in the drawings and will be described in more detail below. It shows:
  • 1 an embodiment for controlling a total application in an automation system according to the present invention;
  • 2 An embodiment of the present invention of a schematic structure with a control device as a master and two other control devices as a slave; and
  • 3 An embodiment according to the present invention, a control of a program flow by a control device.

1 zeigt ein Ausführungsbeispiel zur Steuerung einer Gesamtapplikation 10 in einer Automatisierungsanlage gemäß der vorliegenden Erfindung. 1 shows an embodiment for controlling a total application 10 in an automation system according to the present invention.

Unter einer Gesamtapplikation werden in diesem Zusammenhang alle Programme bzw. Programmmodule, Aufgaben bzw. Tasks und Konfigurationseinstellungen verstanden, die zur Ausführung auf einem Steuerungsgerät benötigt werden. Dabei ist es nicht relevant, ob das Steuergerät bzw. die Steuerung die einzige ist oder eine von mehreren Geräten ist.In this context, a complete application is understood as meaning all programs or program modules, tasks or tasks and configuration settings that are required for execution on a control device. It is not relevant whether the controller or the controller is the only one or one of several devices.

Typisch für eine Automatisierung ist die zyklische Abarbeitung von Programmen bzw. von Programmmodulen. Eine Rückmeldung an den Anwender bzw. User wird typischerweise nicht im Rahmen dieser Zyklen gegeben.Typical for automation is the cyclic execution of programs or program modules. Feedback to the user or user is typically not given during these cycles.

In 1 ist ein schematischer Aufbau von drei Aufgaben 20, 30, 40 bzw. Tasks dargestellt, welche insgesamt vier Programme bzw. Programmmodule 21, 31, 32, 41 aus den Domänen IEC 61131-3, C++ und Matlab/Simulink synchronisiert ausführen. Das Programmmodul 21 ist ein CPP-Filter und in der Programmiersprache C++ programmiert. Das Programmmodul 31 ist ein IEC-Prepare-Programm und in einer der Programmiersprachen nach der IEC-Normierung programmiert. Das Programmmodul 32 ist ein SIM-CTRL-Programm, d.h. ein Steuerprogramm, und ist in der Programmiersprache Matlab/Simulink programmiert. Das Programmodul 41 ist ein IEC-Sync-Programm, d.h. ein Synchronisationsprogramm, und ist in einer der Programmiersprachen nach der IEC-Normierung programmiert. In diesem Zusammenhang werden die Begriffe „Programm“ und „Programmmodul“ austauschbar verwendet.In 1 is a schematic structure of three tasks 20 . 30 . 40 or tasks, which in total four programs or program modules 21 . 31 . 32 . 41 from the domains IEC 61131-3, C ++ and Matlab / Simulink synchronized. The program module 21 is a CPP filter and programmed in the C ++ programming language. The program module 31 is an IEC Prepare program and programmed in one of the programming languages according to IEC standardization. The program module 32 is a SIM-CTRL program, ie a control program, and is programmed in the programming language Matlab / Simulink. The program module 41 is an IEC sync program, ie a synchronization program, and is programmed in one of the programming languages according to IEC standardization. In this context, the terms "program" and "program module" are used interchangeably.

Nach dem Prozedur-Ende bzw. Prozessende des Programmmoduls 30 wird über eine Schnittstelle 33 über eine Kommunikationsverbindung 34 die Aufgabe 40 mit dem Programmmodul 41 veranlasst zu starten. After the procedure end or end of the program module 30 is via an interface 33 via a communication connection 34 the task 40 with the program module 41 causes to start.

Die Aufgaben 20, 30, 40 der 1 haben zur Ausführung der Gesamtapplikation 10 unterschiedliche Prioritäten, wobei die Aufgabe 20 als Hauptaufgabe bzw. Main Task die niedrigste Priorität aufweist, die Aufgabe 30 als Steueraufgabe bzw. Ctrl-Task eine mittlere Priorität aufweist und die Aufgabe 40 als Ereignis-Aufgabe bzw. Event-Task mit Synchronisations-Aufgaben die höchste Priorität aufweist. Ferner weist die Aufgabe 20 eine Zykluszeit bzw. Cycletime von 5 ms (ms = Millisekunden), und die Aufgabe 30 von 30 ms auf. Die Aufgabe 40 wird einmalig ausgeführt und endet, wenn das Programmmodul 41 bzw. das Programm im Programmmodul abgearbeitet ist (event: proc_end).The tasks 20 . 30 . 40 of the 1 have to execute the entire application 10 different priorities, with the task 20 the main task or main task has the lowest priority, the task 30 has a medium priority as the control task or Ctrl task and the task 40 as event task or event task with synchronization tasks has the highest priority. Further assigns the task 20 a cycle time of 5 ms (ms = milliseconds), and the task 30 of 30 ms up. The task 40 is executed once and ends when the program module 41 or the program is executed in the program module (event: proc_end).

2 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung eines schematischen Aufbaus mit einer Steuereinrichtung 50 als Master, einer dem Master untergeordneten Steuereinrichtung 60 als ersten Slave und einer weiteren dem Master untergeordneten Steuereinrichtung 70 als zweiten Slave. Hierbei werden die Masterkomponente - und Slave-Komponenten 50, 60, 70 verwendet, um in unterschiedlichen Prozessen Programmmodule aus unterschiedlichen Programmdomänen zu koordinieren. Ferner sind in 2 unterschiedliche Betriebssystem-Prozesse bzw. OS-Prozesse 11, 12, 13 dargestellt, die jeweils OS-Threads 14, 15, 16, 17, 18 aufweisen. 2 shows an embodiment of the present invention of a schematic construction with a control device 50 as master, a controller subordinate to the master 60 as the first slave and another control device subordinate to the master 70 as a second slave. Here, the master component and slave components become 50 . 60 . 70 used to coordinate program modules from different program domains in different processes. Furthermore, in 2 different operating system processes or OS processes 11 . 12 . 13 shown, each OS threads 14 . 15 . 16 . 17 . 18 exhibit.

Die erfindungsgemäße Vorgehensweise erlaubt die Komposition heterogener Taskinhalte. Dabei ist die Abarbeitungsreihenfolge innerhalb einer Aufgabe frei wählbar, nicht systembedingt vorgegeben und ein konsistenter Datenaustausch zwischen Programminstanzen möglich.The procedure according to the invention allows the composition of heterogeneous task contents. The execution order within a task is freely selectable, not specified by the system, and a consistent exchange of data between program instances is possible.

Die Konfiguration des Masters 50 und seiner Aufgaben 20, 30, 40 erfolgt durch eine oder mehrere Beschreibungsdateien, hier in Form einer oder mehrere XML-Dateien, die das Konfigurieren statt Programmieren erlauben. Damit kann die Funktion einer Anlage zur Laufzeit verändert werden, ohne dass die einzelnen Applikationsteile neu übersetzt werden müssen. Auch erlaubt es die Beschreibungsdatei bzw. die XML-basierte Konfiguration dem Benutzer, Anpassungen direkt an der Steuerung vorzunehmen oder eigene externe Werkzeuge und Toolchains zu verwenden.The configuration of the master 50 and his tasks 20 . 30 . 40 is done by one or more description files, here in the form of one or more XML files that allow configuration rather than programming. This allows the function of a system to be changed at runtime without having to recompile the individual application parts. Also, the description file or the XML-based configuration allows the user to make adjustments directly to the controller or to use their own external tools and toolchains.

Der Aufbau der Beschreibungsdatei, insbesondere in Form einer XML-Datei, kann dabei durch klar definierte Schemadateien vorgegeben werden, welche eine schnelle Überprüfung der Konfiguration ermöglicht. Die Spezifikation von Aufgaben und den zugehörigen Programminstanzen in mehreren Beschreibungsdateien bzw. XML-Konfigurationsdateien erlaubt die Aufteilung der Gesamtapplikation 10 in funktionale Module, die von unterschiedlichen Entwicklergruppen oder Zulieferern erstellt werden können. Dies erleichtert nicht nur die Entwicklung einer komplexen Anlagensteuerung, sondern auch die schrittweise Erweiterung einer laufenden Anlage. Somit muss die Gesamtapplikation 10 nicht von Anfang an zur Verfügung stehen, sondern kann aus Teilmodulen komponiert werden.The structure of the description file, in particular in the form of an XML file, can be specified by clearly defined schema files, which allows a quick check of the configuration. The specification of tasks and the associated program instances in several description files or XML configuration files allows the distribution of the entire application 10 into functional modules that can be created by different developer groups or suppliers. This not only facilitates the development of complex plant control, but also the gradual expansion of a running plant. Thus, the entire application 10 are not available from the beginning, but can be composed of sub-modules.

Jeder Aufgabe 20, 30, 40 lässt sich zusätzlich durch die Definition von Parametern in der Beschreibungsdatei bzw. XML-Datei auf einen Prozessorkern, eine Gruppe oder auf allen Prozessorkernen der Steuerung zuordnen.Every task 20 . 30 . 40 can also be assigned to a processor core, a group or all processor cores of the controller by defining parameters in the description file or XML file.

Ein flexibles System aus Master- und Slave-Komponenten 50, 60, 70 erlaubt dem Benutzer zudem die Ausführung von Programmen über Prozessgrenzen hinweg. Dies ist eine vorteilhafte Voraussetzung für die Trennung von Programmen unterschiedlicher Benutzer, welche so in gekapselten Speicherbereichen ausgeführt werden. Als Basis hierfür können die Speicherschutzmechanismen des unterliegenden Echtzeitbetriebssystems dienen. Aus Sicherheitsgründen ist es somit möglich, den Zugriff von Programmen bzw. Programmmodulen entsprechend der Benutzerrechte einzuschränken.A flexible system of master and slave components 50 . 60 . 70 also allows the user to run programs across process boundaries. This is an advantageous prerequisite for the separation of programs of different users, which are thus executed in encapsulated memory areas. The memory protection mechanisms of the underlying real-time operating system can serve as the basis for this. For security reasons, it is thus possible to restrict the access of programs or program modules according to the user rights.

In 2 konfiguriert der Master 50 über Wirkverbindungen 51, 52 jeweils ein Programmmodul 21, 41 eines Slaves 60, 70. Hierbei bezieht sich konfigurieren auf die Bereitstellung einer Prioritäts-Information durch den Master 50. Ferner sind in 2 Kommunikationsverbindungen 53, 54, 57, 58 vorhanden, um zwischen den einzelnen Programmmodulen 21, 31, 32, 41 und einer Aufgabe 20, 30, 40 Befehle und Informationen oder Rückmeldungen auszutauschen. Hierbei werden die Informationen zwischen Master und Slave-Instanzen hin- und zurückgesendet bzw. jeweils empfangen. Befehle sind beispielsweise Auslösebefehle („löst aus“) von der Aufgabe 20, 40 an das Programmmodul 21, 41. Rückmeldungen werden beispielsweise von den Programmodulen 21, 41 an die Aufgaben 20, 40 gesendet („meldet“). Ferner werden Auslösebefehle („löst aus“) auch von der Aufgabe 30 jeweils an die Programmmodule 31, 32 über die Kommunikationsverbindungen 55, 56 gesendet, wobei die Kommunikation innerhalb eines OS-Threads stattfindet.In 2 configured the master 50 via active compounds 51 . 52 one program module each 21 . 41 a slave 60 . 70 , Here, configure refers to the provision of priority information by the master 50 , Furthermore, in 2 communication links 53 . 54 . 57 . 58 exists to switch between each program module 21 . 31 . 32 . 41 and a task 20 . 30 . 40 Exchange commands and information or feedback. Here, the information between master and slave instances are sent back and forth respectively received. For example, commands are trigger commands ("triggers off") from the task 20 . 40 to the program module 21 . 41 , For example, feedback is provided by the program modules 21 . 41 to the tasks 20 . 40 sent ("reports"). Furthermore, tripping orders ("triggers off") also depend on the task 30 each to the program modules 31 . 32 over the communication links 55 . 56 sent, with the communication taking place within an OS thread.

Mit der vorgeschlagenen Vorgehensweise ist es möglich, die bekannten Tasks aus der IEC-Normierung in die Hochsprachenwelt zu übertragen. Daher unterstützt die Steuereinrichtung aktuell zyklische Tasks, Idle Tasks und eventbasierte Tasks, welche auf die prioritätsgesteuerten Prozesse und Threads des Echtzeitbetriebssystems abgebildet werden. Neben dieser prioritätsgesteuerten Ausführung ermöglicht die Steuereinrichtung auch die Taskausführung in Reaktion auf das Auftreten eines speziellen Events. Mit diesem frei konfigurierbaren System ist es daher möglich, Programminstanzen unterschiedlicher Programmierdomänen innerhalb einer Task zu mischen und gemeinsam zur Ausführung zu bringen. Damit werden die aus der IEC 61131-3 bekannten Ablaufmodelle auch für andere Domänen geöffnet.With the proposed approach, it is possible to transfer the known tasks from the IEC standardization in the high-level language world. Therefore, the controller currently supports cyclic tasks, idle tasks, and event-based tasks that rely on the priority-driven processes and threads of the real-time operating system. In addition to this priority-driven execution, the controller also enables task execution in response to the occurrence of a particular event. With this freely configurable system, it is therefore possible to mix program instances of different programming domains within a task and to execute them together. This opens the process models known from IEC 61131-3 for other domains as well.

Durch die Freiheitsgrade, die die Taskausführung mit der Steuereinrichtung 50 bietet, steigt jedoch auch die Komplexität bei der Konfiguration und Analyse. Daher bietet die Steuereinrichtung 50 integrierte Mechanismen für ein detailliertes Profiling basierend auf verfügbaren Erweiterungen des Echtzeitbetriebssystems. Der Benutzer erhält somit die Möglichkeit, unterschiedliche Eigenschaften der Taskausführung und des Betriebssystems zu beobachten, auszuwerten und aufzuzeichnen. Zu diesen Eigenschaften gehören unter anderem die Ausführungszeiten der Tasks und Programminstanzen, Häufigkeit der Taskverdrängungen, Latenz und Jitter, Systemauslastung oder Watchdog-Überwachungen. Diese Informationen können mit Hilfe von dynamischen Ringbuffern auch noch für Analysen post mortem nach einem Fehlerfall ausgewertet werden.By the degrees of freedom, the task execution with the control device 50 however, the complexity of configuration and analysis also increases. Therefore, the controller provides 50 integrated mechanisms for a detailed profiling based on available extensions of the real-time operating system. The user thus has the opportunity to observe, evaluate and record different properties of the task execution and of the operating system. These properties include tasks and program execution times, frequency of task evictions, latency and jitter, system load, or watchdog monitors. This information can be evaluated with the help of dynamic ring buffers also for analyzes post-mortem after an error case.

Zudem bietet die zentrale Ablage der Profiling-Informationen der Steuereinrichtung 50 die Möglichkeit, statistische Auswertungen durchzuführen oder diese Daten für weitere Analysen über entfernte Serverdienste zur Verfügung zu stellen.In addition, the central storage of the profiling information of the control device 50 the ability to perform statistical evaluations or to provide this data for further analysis via remote server services.

3 zeigt ein Ausführungsbeispiel gemäß der vorliegenden Erfindung einer Steuerung eines Programmablaufs durch eine Steuereinrichtung 50. Die Steuereinrichtung 50 kann zur Durchführung einer Automatisierungsaufgabe auch auf Hilfsinstanzen zugreifen, wie einen Slave oder mehrere Slaves, wie in 2 gezeigt. 3 shows an embodiment according to the present invention, a control of a program flow by a control device 50 , The control device 50 can also access auxiliary instances to perform an automation task, such as a slave or multiple slaves, as in 2 shown.

3 zeigt in vereinfachter Darstellung eine Koordination bzw. Steuerung von Steueraufgaben durch eine Steuereinrichtung 50, wie sie beispielsweise in 2 dargestellt ist. Hierbei werden die beschriebenen Aufgaben 20, 30, 40 der 1 durch die Steuereinrichtung 50 gesteuert. Bei dieser Steuerung bzw. deren Auswertung kann eindeutig nachvollzogen werden kann, wann die einzelnen Programme und Aufgaben von höheren Prozessen verdrängt werden. Diese höheren Prozesse sind dem Betriebssystem vorbehalten und als OS-Prozesse 19 in 3 dargestellt. 3 shows a simplified representation of a coordination or control of control tasks by a control device 50 as they are for example in 2 is shown. Here are the tasks described 20 . 30 . 40 of the 1 by the control device 50 controlled. In this control or its evaluation can be clearly understood when the individual programs and tasks are displaced by higher processes. These higher processes are reserved for the operating system and as OS processes 19 in 3 shown.

3 zeigt auf der x-Koordinate die Zeit und auf der y-Koordinate Prozesse bzw. Priorität des Prozesses. Somit hat, wie bereits zu 1 erläutert, die Aufgabe 20 die niedrigste Priorität und die Aufgabe 40 die höchste Priorität. Mit RTOS ist ein hochpriorer Thread 90 des Echtzeitbetriebssystem (RTOS) dargestellt, der die höchste Priorität aufweist. Der hochpriore Thread 90 bzw. hochpriore OS-Thead 90 ist demnach Teil des Echtzeitbetriebssystems. 3 shows the time on the x-coordinate and the process or priority of the process on the y-coordinate. Thus, as already too 1 explains the task 20 the lowest priority and the task 40 the highest priority. With RTOS is a high priority thread 90 of the real-time operating system (RTOS), which has the highest priority. The high priority thread 90 or high priority OS-Thead 90 is therefore part of the real-time operating system.

Somit wird zeitlich zunächst die erste Aufgabe 20 mit dem Programmmodul 21 ausgeführt, was jedoch durch einen Echtzeitprozess 19 des Betriebssystems unterbrochen wird. Danach erfolgt die Abarbeitung der Aufgabe 30 mit den Programmmodulen 31 und 32. Im Anschluss daran wird die Aufgabe 40 mit dem Programmmodul 41 bearbeitet. Auch hier gibt es zeitliche Unterbrechungen der Programmmodule durch Echtzeitprozesse 19. Nach Abarbeitung der höherwertigen Prioritäten beginnt erneut die Aufgabe 20 und im Anschluss daran wird die Aufgabe 30 ausgeführt, so dass eine zyklische Bearbeitung der Aufgaben in 3 angedeutet wird.Thus, the first task will be in time 20 with the program module 21 executed, but through a real-time process 19 of the operating system is interrupted. Thereafter, the task is carried out 30 with the program modules 31 and 32 , After that, the task becomes 40 with the program module 41 processed. Again, there are temporal interruptions of the program modules through real-time processes 19 , After processing the higher priority, the task starts again 20 and then the task becomes 30 executed, allowing a cyclic processing of tasks in 3 is hinted at.

Insgesamt wird erfindungsgemäß eine Funktionalität als Bestandteil einer neuen Firmwarearchitektur ermöglicht, auf deren Basis neue Industriesteuerungen realisiert werden. Realisiert ist diese Architektur zunächst für die Verwendung auf einem Gerät bzw. Steuergerät. Die Architektur ist jedoch so gestaltet, dass eine Erweiterung auf mehrere Geräte möglich ist. Dies ist zum Beispiel in einem Redundanzsystem der Fall, in dem zwei Steuerungen miteinander synchronisiert ablaufen.Overall, according to the invention, functionality is made possible as part of a new firmware architecture, on the basis of which new industrial controls are realized. This architecture is initially implemented for use on a device or control unit. However, the architecture is designed to extend to multiple devices. This is the case, for example, in a redundancy system where two controllers are synchronized with each other.

Es wird hierbei angestrebt, die Ergänzung der klassischen Programmierung von Steuerungen um Hochsprachen zu unterstützen. Hierfür wird ein weicher Übergang zwischen der IEC 61131-3 und der Hochsprachenwelt angestrebt. Voraussetzung hierfür ist neben der Unterstützung solcher Sprachen auch die nahtlose Integration der unterschiedlichen Programmierdomänen. Hierzu zählen unter anderem Matlab/Simulink, C++, C#, JAVA, Python und die Sprachen der IEC 61131-3. Für eine solche nahtlose Integration sollte die Steuerung in der Lage sein, den aus der IEC 61131-3 bekannten Ablauf mit Programminstanzen und Aufgaben bzw. Tasks in den Ablauf der anderen Programmierdomänen zu übertragen. Trotz dieser komplexeren Anforderungen an die technische Realisierung werden zusätzlich Aspekte der Datensicherheit, Benutzbarkeit, Flexibilität und vor allem Leistungsfähigkeit gewährleistet.The aim here is to support the addition of classical programming of controllers to high-level languages. For this purpose, a smooth transition between IEC 61131-3 and the high-level language world is sought. The prerequisite for this, in addition to the support of such languages, is the seamless integration of the different programming domains. These include Matlab / Simulink, C ++, C #, JAVA, Python and the languages of IEC 61131-3. For such seamless integration, the controller should be able to transfer the process known from IEC 61131-3 with program instances and tasks into the flow of the other programming domains. Despite these more complex requirements for technical implementation, additional aspects of data security, usability, flexibility and, above all, efficiency are guaranteed.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

1010
Gesamtapplikationoverall application
1111
OS-ProzessOS process
1212
OS-ProzessOS process
1313
OS-ProzessOS process
1414
OS-ThreadOS thread
1515
OS-ThreadOS thread
16 16
OS-ThreadOS thread
1717
OS-ThreadOS thread
1818
OS-ThreadOS thread
1919
OS-ProzessOS process
2020
Aufgabe bzw. TaskTask or task
2121
Programmmodulprogram module
3030
Aufgabe bzw. TaskTask or task
3131
Programmmodulprogram module
3232
Programmmodulprogram module
3333
Prozedurendeend of procedure
3434
KommunikationsschnittstelleCommunication Interface
4040
Aufgabe bzw. TaskTask or task
4141
Programmmodulprogram module
5050
Steuereinrichtung bzw. ESMControl device or ESM
5151
Wirkverbindungoperatively connected
5252
Wirkverbindungoperatively connected
5353
Kommunikationsverbindungcommunication link
5454
Kommunikationsverbindungcommunication link
5555
Kommunikationsverbindungcommunication link
5656
Kommunikationsverbindungcommunication link
5757
Kommunikationsverbindungcommunication link
5858
Kommunikationsverbindungcommunication link
6060
erster Slavefirst slave
7070
zweiter Slavesecond slave
8080
OS-ProzessOS process
9090
hochpriorer OS-Threadhigh-priority OS thread

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • EP 2504738 B1 [0006]EP 2504738 B1 [0006]

Claims (15)

Verfahren zur Ablaufsteuerung von Programmmodulen (21, 31, 32, 41) umfassend Bereitstellen einer Steuereinrichtung (50), Bereitstellen einer Beschreibungsdatei, aufweisend eine Konfiguration zur Steuerung eines Programmablaufs, Bereitstellen mehrerer Programmmodule (21, 31, 32, 41), die von einem Echtzeitbetriebssystem ausführbar sind, wobei die Programmmodule (21, 31, 32, 41) unter Verwendung einer oder unterschiedlicher Programmiersprachen erstellt sind, und Auslösen ausgewählter Programmmodule (21, 31, 32, 41) durch Ausführen von Vorgaben in der Beschreibungsdatei durch die Steuereinrichtung (50).Method for sequential control of program modules (21, 31, 32, 41) comprising Providing a control device (50), Providing a description file comprising a configuration for controlling a program flow, Providing a plurality of program modules (21, 31, 32, 41) executable by a real-time operating system, the program modules (21, 31, 32, 41) being created using one or different programming languages, and Triggering selected program modules (21, 31, 32, 41) by executing defaults in the description file by the controller (50). Verfahren nach Anspruch 1, ferner aufweisend mehrfaches Auslösen wenigstens eines der Programmmodule (21, 31, 32, 41) durch die Steuereinrichtung (50).Method according to Claim 1 , further comprising multiple triggering of at least one of the program modules (21, 31, 32, 41) by the control device (50). Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, dass die Steuereinrichtung (50) dazu ausgebildet ist, wenigstens einige der Programmmodule (21, 31, 32, 41) derart auszulösen, dass sie in unterschiedlichen von dem Echtzeitbetriebssystem verwalteten Prozessen ausführbar sind.Method according to Claim 1 or Claim 2 , characterized in that the control device (50) is designed to trigger at least some of the program modules (21, 31, 32, 41) such that they can be executed in different processes managed by the real-time operating system. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das Echtzeitbetriebssystem dazu ausgebildet ist, die Prozesse und/oder Programmmodule (21, 31, 32, 41) in Abhängigkeit vorbestimmter Prioritäten auszuführen.Method according to Claim 3 , characterized in that the real-time operating system is adapted to execute the processes and / or program modules (21, 31, 32, 41) in dependence on predetermined priorities. Verfahren nach Anspruch 4, ferner aufweisend Aufzeichnen und Auswerten der Ablaufsteuerung durch das Echtzeitbetriebssystem.Method according to Claim 4 further comprising recording and evaluating the scheduling by the real-time operating system. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Ändern der Ablaufsteuerung durch Hinzufügen oder Entfernen von Programmmodulen, ohne dass ein Neustart eines Steuerungssystems durchgeführt wird.The method of any one of the preceding claims, further comprising altering the scheduling by adding or removing program modules without rebooting a control system. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Aufteilen der Ablaufsteuerung auf verschiedene Prozesse.The method of any one of the preceding claims, further comprising distributing the scheduler to various processes. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Erstellen einer Statistikauswertung unter Verwendung von Profiling-Informationen.The method of any preceding claim, further comprising generating a statistics score using profiling information. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Einbringen von mindestens einer Aufzeichnungsmarkierung in ein Programmmodul (21, 31, 32, 41) zum Bereitstellen einer Applikationsdiagnose.Method according to one of the preceding claims, further comprising introducing at least one recording mark into a program module (21, 31, 32, 41) for providing an application diagnosis. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Verwenden der Steuereinrichtung (50) als Master und Bereitstellen mindestens einer weiteren Steuereinrichtung (60, 70) als Slave, die der Steuereinrichtung (50) als Master untergeordnet ist.Method according to one of the preceding claims, further comprising Using the controller (50) as master and Providing at least one further control device (60, 70) as a slave, which is subordinate to the control device (50) as a master. Verfahren nach einem der vorstehenden Ansprüche, ferner aufweisend Zuweisen einzelner in der Beschreibungsdatei definierter Aufgaben an Programmmodule (21, 31, 32, 41) durch die Steuereinrichtung (50).The method of any one of the preceding claims, further comprising assigning individual tasks defined in the description file to program modules (21, 31, 32, 41) by the controller (50). Echtzeitbetriebssystem zur Ablaufsteuerung von Programmmodulen (21, 31, 32, 41) umfassend eine Steuereinrichtung (50), eine in einer Speichereinrichtung hinterlegte Beschreibungsdatei, die einen Programmablauf definiert, mehrere von dem Echtzeitbetriebssystem ausführbare Programmmodule (21, 31, 32, 41), die unter Verwendung einer oder unterschiedlicher Programmiersprachen erstellt sind, wobei die Steuereinrichtung (50) dazu ausgebildet ist, die Programmmodule (21, 31, 32, 41) durch Ausführen von Vorgaben in der Beschreibungsdatei auszulösen.Real-time operating system for scheduling program modules (21, 31, 32, 41) comprising a control device (50), a description file stored in a memory device, which defines a program sequence, a plurality of program modules (21, 31, 32, 41) executable by the real-time operating system and constructed using one or different programming languages, wherein the control means (50) is adapted to execute the program modules (21, 31, 32, 41) by executing Define specifications in the description file. Steuereinrichtung (50) zur Ablaufsteuerung von Programmmodulen (21, 31, 32, 41) einer oder unterschiedlicher Programmiersprachen in einem Echtzeitbetriebssystem aufweisend einen Prozessor und einen Speicher zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 12.Control device (50) for scheduling program modules (21, 31, 32, 41) of one or different programming languages in a real-time operating system comprising a processor and a memory for carrying out the method according to one of Claims 1 to 12 , Steuervorrichtung zur Ablaufsteuerung von Programmmodulen (21, 31, 32, 41) einer oder unterschiedlicher Programmiersprachen in einem Echtzeitbetriebssystem aufweisend eine Steuereinrichtung (50) nach Anspruch 14; einen Prozessor, einen Speicher, und mindestens eine Schnittstelle zu einer Automatisierungseinrichtung.Control device for sequencing program modules (21, 31, 32, 41) of one or different programming languages in a real-time operating system comprising a control device (50) Claim 14 ; a processor, a memory, and at least one interface to an automation device. Computerprogrammprodukt mit Programmcodemitteln zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 12, wobei das Computerprogrammprodukt auf einem Computersystem in einem Echtzeitbetriebssystem abläuft.Computer program product with program code means for carrying out the method according to one of Claims 1 to 12 wherein the computer program product runs on a computer system in a real-time operating system.
DE102016121542.2A 2016-11-10 2016-11-10 Sequence control of program modules Ceased DE102016121542A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016121542.2A DE102016121542A1 (en) 2016-11-10 2016-11-10 Sequence control of program modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016121542.2A DE102016121542A1 (en) 2016-11-10 2016-11-10 Sequence control of program modules

Publications (1)

Publication Number Publication Date
DE102016121542A1 true DE102016121542A1 (en) 2018-05-17

Family

ID=62026182

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016121542.2A Ceased DE102016121542A1 (en) 2016-11-10 2016-11-10 Sequence control of program modules

Country Status (1)

Country Link
DE (1) DE102016121542A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (en) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2504738B1 (en) 2009-11-23 2015-11-04 Beckhoff Automation GmbH Parallelized program control

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2504738B1 (en) 2009-11-23 2015-11-04 Beckhoff Automation GmbH Parallelized program control

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Böhler, T. : OPC-UA als Wegbereiter für Industrie 4.0. Im Internet am 8. Juni 2016<https://www.produktion.de/technik/it/opc-ua-als-wegbereiter-fuer-industrie-4-0-112.html>(recherchiert am 12.7.2017) *
OPC Unified Architecture. OPC Foundation<http://www.opcfoundation-events.com/uploads/media/OPC-UA-Wegbereiter-der-IE40-DE-v2.pdf>In: <www.archive.org> am 14.10.2014(recherchiert am 12.7.2017 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (en) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks
CN116775038B (en) * 2023-06-26 2024-06-04 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks

Similar Documents

Publication Publication Date Title
LU93299B1 (en) Sequence control of program modules
EP2506098B1 (en) Assembly and method for operating an industrial automation assembly with a number of programmable automation components and a number of automation programmes
EP1238318B1 (en) Automation device and updating method
DE102009019088A1 (en) Safety controller for controlling an automated system and method for creating a user program for a safety controller
EP2325708A2 (en) Real-time run-time system and functional module for such a run-time system
DE10335989A1 (en) Online changes to CIL code programs for industrial automation
DE102014103139B4 (en) Parallelized execution of single-core control software on multi-core vehicle control units
WO2006094827A2 (en) Test device for verifying a batch processing
DE102009027627B3 (en) Simulation of real-time software components based on the logical execution time
WO2011063869A1 (en) Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device
DE102018110018A1 (en) A method for providing an integrated process for the ECU development and simulation device for the ECU development
EP1221641B1 (en) Industrial control with clock synchronised scheduling-model
DE102006051188A1 (en) Interconnection system for asynchronously interconnecting communication components of e.g. web application, has communication components interconnected such that application and/or components are adapted to effective operational environment
EP2083339A1 (en) Method and device for performing tests through functionally cascaded test and experimentation devices
EP3995960A1 (en) Computer program for data exchange between program modules
DE102016121542A1 (en) Sequence control of program modules
DE102019117954A1 (en) Runtime server for the simultaneous execution of several runtime systems of an automation system
EP2615511A1 (en) Method for synchronous execution of programmes in a redundant automation system
DE10055168A1 (en) Industrial control for technical process e.g. for production machine, has technology neutral base system combined with technological objects
DE10354938B4 (en) Automated management data processing system and method for automated management of a data processing system
EP2329374A1 (en) Test module and method for testing an o/r imaging middleware
DE19956271A1 (en) Automation device and update process
DE60211703T2 (en) METHOD AND SYSTEM FOR TIME MANAGEMENT IN A REAL-TIME SYSTEM
EP3699722A1 (en) Method and system for running an application on a field device
EP1195667A2 (en) Universal motion control

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R130 Divisional application to

Ref document number: 102016015899

Country of ref document: DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R130 Divisional application to

Ref document number: 102016015899

Country of ref document: DE

R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled