DE10119541A1 - Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goal - Google Patents
Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goalInfo
- Publication number
- DE10119541A1 DE10119541A1 DE10119541A DE10119541A DE10119541A1 DE 10119541 A1 DE10119541 A1 DE 10119541A1 DE 10119541 A DE10119541 A DE 10119541A DE 10119541 A DE10119541 A DE 10119541A DE 10119541 A1 DE10119541 A1 DE 10119541A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- optimization
- processors
- division
- communication
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
Abstract
Description
Die Erfindung betrifft ein Verfahren zur Verteilung eines Steuerprogramms für eine von einem Prozessor gesteuerte speicherprogrammierbare Steuerung (SPS) auf N Pro zessoren, wobei das Programm in einen Satz von N parallel ausführbare Steuerpro gramme transformiert und auf die N Prozessoren verteilt wird, und wobei zur Kommu nikation zwischen den Prozessoren ein oder mehrere Feldbusse vorgesehen sind.The invention relates to a method for distributing a control program for one of a processor-controlled programmable logic controller (PLC) on N Pro cessors, the program being divided into a set of N executable control pro grams transformed and distributed to the N processors, and with the commu One or more fieldbuses are provided between the processors.
Bei der heute üblichen zentralen Steuerungstechnik gibt es eine speicherprogram mierbare Steuerung (SPS), in der auf einem Prozessor das gesamte Steuerungspro gramm abläuft. Die Sensoren und Aktoren hängen an Feldbusknoten, die wiederum über ein einziges Kabel, den Feldbus, Ihre Daten zur Zentrale schicken und auch von dort bekommen. Diese Technologie ist einfach und bewährt, stößt jedoch mit dem im mer höher werdenden Datenaufkommen im Maschinenbau an ihre Grenzen.With the central control technology common today, there is a memory program mable control (PLC), in which the entire control pro gram expires. The sensors and actuators hang on fieldbus nodes, which in turn Send your data to the control center via a single cable, the fieldbus and also from get there. This technology is simple and proven, but bumps into the im ever increasing data volumes in mechanical engineering to their limits.
Zur Datenreduktion auf dem Feldbus ist das Konzept der dezentralen Signalvorverar beitung entwickelt worden. Hierzu wird die zentrale Steuerung um diejenigen Algorith men reduziert, die in den Feldbusknoten vorverarbeitet werden können. Die Feldbus knoten werden hierzu mit Prozessoren ausgestattet, in denen Teilprogramme des Steuerungsprogramms verarbeitet werden können. Die verbleibende zentrale Steue rung hat jedoch zur Folge, daß die Reaktionszeit des Gesamtsystems nach wie vor maßgeblich sowohl von der Schnelligkeit der zentralen Steuerung als auch von der Kommunikation zwischen zentraler Steuerung und Feldbusknoten abhängt. Außerdem fällt das gesamte System aus, wenn die zentrale Steuerung ausfällt. Die Teilinbetrieb nahme von Maschinenmodulen kann nicht erfolgen.The concept of decentralized signal preprocessing is used to reduce data on the fieldbus processing has been developed. For this, the central control around those algorithms reduced that can be preprocessed in the fieldbus nodes. The fieldbus For this purpose, nodes are equipped with processors in which partial programs of the Control program can be processed. The remaining central tax tion, however, has the consequence that the response time of the overall system is still decisive both from the speed of the central control and from the Communication between the central controller and fieldbus node depends. Moreover the entire system fails if the central control fails. The partial operation Machine modules cannot be accepted.
Als Weiterentwicklung der teilweisen Signalvorverarbeitung ist deshalb der vollständige Wegfall der zentralen Steuerung anzusehen. Die gesamten Steuerungsfunktionen werden in intelligenten Feldbusknoten abgearbeitet. Hierfür muß das Steuerungspro gramm für die zentrale Steuerung per Hand in Teilprogramme für die einzelnen Feld busknoten unterteilt werden. Außerdem müssen die Kommunikationsbeziehungen über Variablennamen definiert werden. Je nach Vorstellungskraft des Programmierers erfolgt eine vorteilhafte oder nachteilige Aufteilung des Programms in Teilprogramme. Bei einer geringen Anzahl von Feldbusknoten, auf die ein Programm unterteilt werden soll, mag die Aufgabe noch manuell zufriedenstellend lösbar sein. Je größer die An zahl der Feldbusknoten wird, desto komplexer werden auch die an die Aufteilung des Systems gestellten Anforderungen. Die Reaktionszeit des Systems sowie die Zeit, die für die Kommunikation zwischen den einzelnen Feldbusknoten erforderlich ist, sind nicht zu vernachlässigende Größen. Eine gleichmäßige Auslastung der am Netz be findlichen Feldbusknoten muß zur Optimierung des Systems angestrebt werden. Diese Anforderungen sind von einer manuellen Aufteilung nicht zu erreichen.As a further development of the partial signal preprocessing is therefore the complete one No need to look at the central control. The entire control functions are processed in intelligent fieldbus nodes. For this, the control pro program for central control by hand in partial programs for the individual fields bus nodes can be divided. In addition, the communication relationships can be defined using variable names. Depending on the imagination of the programmer there is an advantageous or disadvantageous division of the program into sub-programs. With a small number of fieldbus nodes on which a program is divided the task may still be satisfactorily solvable manually. The bigger the number The number of fieldbus nodes becomes, the more complex the division of the System requirements. The response time of the system as well as the time that is required for communication between the individual fieldbus nodes not negligible sizes. Even utilization of the network sensitive fieldbus nodes must be sought to optimize the system. This Requirements cannot be met by manual division.
Es ist Aufgabe der Erfindung, ein Verfahren zur Verteilung eines Steuerprogramms für eine von einem Prozessor gesteuerte speicherprogrammierbare Steuerung auf N Pro zessoren zur Verfügung zu stellen, das eine automatische Aufteilung und Optimierung der Verteilung durchführen kann.It is an object of the invention to provide a method for distributing a control program for a programmable logic controller controlled by a processor on N Pro to provide cessors with an automatic division and optimization the distribution can perform.
Die Aufgabe wird erfindungsgemäß durch ein Verfahren zur Verteilung eines Steue rungsprogamms für eine von einem Prozessor gesteuerte speicherprogrammierbare Steuerung (SPS) auf N Prozessoren gelöst, wobei das Programm in einen Satz von N parallel ausführbaren Steuerprogrammen transformiert und auf die N Prozessoren verteilt wird, und wobei zur Kommunikation zwischen den Prozessoren ein oder meh rere Feldbusse vorgesehen sind. Das erfindungsgemäße Verfahren ist dadurch ge kennzeichnet, daß für jeden Feldbus ein deterministischer, zeitsequenzieller Kommu nikationsfahrplan aufgestellt wird, und daß die Programmaufteilung und/oder die An zahl und/oder die Reihenfolge der Kommunikationsschritte für die verteilte Steuerung mit dem Ziel der Optimierung einer oder mehrerer Kenngrößen optimiert wird.The object is achieved by a method for distributing a tax development program for a programmable logic controller controlled by a processor Control (PLC) solved on N processors, whereby the program in a set of N Control programs that can be executed in parallel are transformed and transferred to the N processors is distributed, and one or more for communication between the processors More field buses are provided. The method according to the invention is thereby ge indicates that a deterministic, time-sequential commu nication schedule is drawn up, and that the program division and / or the An number and / or the order of the communication steps for the distributed control is optimized with the aim of optimizing one or more parameters.
Das ursprüngliche Programm enthält als Programm für einen Prozessor keine Kom munikationsschritte zwischen Prozessoren. Bei einer Verteilung müssen nun Daten zwischen den Programmteilen auf verschiedenen Prozessoren übertragen werden. Hierzu werden diese Daten automatisch identifiziert und zusätzliche Kommunikati onsanweisungen dafür generiert. Die Übertragungen über den Bus werden zeitlich bewertet und wie die Programmschritte auf einem Prozessor in eine bestimmte Rei henfolge gebracht, die mit der logischen Abfolge der Verarbeitungsschritte verträglich ist, da ein Bus die verschiedenen Übertragungen nur nacheinander erlaubt. Diese Be schränkung jedes Kommunikationsbusses ist für die in der verteilten SPS-Technik verwendeten, relativ langsamen Busse besonders relevant und schränkt die Möglich keiten der Programmverteilung ein. Die Kommunikationsschritte nehmen daher hier gleichrangig zu den Verarbeitungsschritten auf den Prozessoren an der Optimierung teil, was in bisherigen Verfahren zur automatischen Programmverteilung und -parallelisierung in dieser Form nicht geschieht. Auch bei Zugriffen auf Variablen werden Kommunikationsschritte hinzugefügt, so daß zugleich mit der Optimierung der Programmverteilung auch eine automatische Zuordnung von Variablen zu den lokalen Speichern von Prozessoren erfolgt.The original program contains no com as a program for a processor communication steps between processors. Data must now be used for a distribution be transferred between the program parts on different processors. For this purpose, this data is automatically identified and additional communicati instructions generated for this. The transmissions on the bus are timed evaluated and how the program steps on a processor in a certain Rei order that is compatible with the logical sequence of processing steps is because a bus only allows the different transmissions one after the other. This Be Limitation of each communication bus is for those in the distributed PLC technology used, relatively slow buses particularly relevant and limits the possibilities program distribution. The communication steps therefore take here equal to the processing steps on the processors in the optimization partly what in previous procedures for automatic program distribution and parallelization in this form does not happen. Even when accessing variables Communication steps added so that at the same time with the optimization of the Program distribution also automatically assigns variables to local ones Processors are saved.
Eine zu optimierende Kenngröße kann zum Beispiel die Verarbeitungszeit für einen Zyklus bei der zyklischen Bearbeitung des SPS Programms sein. Eine Kenngröße kann aber auch die Zyklusfrequenz sein. Optimiert wird dann die Programmaufteilung und/oder die Anzahl und/oder die Reihenfolge der verteilten Steuerung auf herkömmli che Weise. Dies kann rechnergestützt mit einem heuristischen Verfahren wie dem Si mulated Annealing oder einem genetischen Algorithmus geschehen, wobei immer neue Aufteilungen generiert und bewertet werden. Als vorübergehende optimale Lö sung wird diejenige Lösung gespeichert, bei der die Kenngröße den vorläufig besten Wert erreicht hat.A parameter to be optimized can, for example, be the processing time for one Cycle during the cyclical processing of the PLC program. A parameter can also be the cycle frequency. The program division is then optimized and / or the number and / or the order of the distributed control on conventional che way. This can be computer-aided using a heuristic method such as the Si mulated annealing or a genetic algorithm always happen new allocations are generated and evaluated. As a temporary optimal solution solution is saved for which the parameter is the best for the time being Has reached value.
Die Optimierung kann z. B. entweder hinsichtlich der Verarbeitungszeit für einen Zyklus erfolgen oder aber auch durch Optimierung der Zyklusfrequenz eine häufigere Abta stung und Verarbeitung der Eingänge anstreben.The optimization can e.g. B. either in terms of processing time for one cycle occur or a more frequent scan by optimizing the cycle frequency Strive for the processing and processing of the inputs.
Das erfindungsgemäße Verfahren kann vorzugsweise auf Steuerprogramme ange wendet werden, die in einer SPS-Standardsprache formuliert sind. Es ist nicht notwen dig, daß das ursprüngliche Programm, das für die zentrale Steuerung einsetzbar ist, bereits parallele Strukturen aufweist. Das Programm kann ohne parallele Strukturen formuliert sein. Der Programmierer muß keine Kenntnisse über die Parallelisierungs möglichkeiten einbringen.The method according to the invention can preferably be based on control programs be used that are formulated in a standard PLC language. It is not necessary dig that the original program, which can be used for the central control, already has parallel structures. The program can run without parallel structures be formulated. The programmer does not need to know about parallelization bring opportunities.
Bei Ablauf des als Resultat des Verfahrens erhaltenen Satzes von N parallel ausführ baren Steuerprogrammen wird das bei der Optimierung bestimmte Zeitverhalten durchgesetzt, insbesondere auch die ermittelte Reihenfolge der Kommunikations schritte auf den Feldbussen. Durch die vorausberechnete, deterministische Buszutei lung werden dabei zugleich Zugriffskonflikte ausgeschlossen.Execute in parallel when the set of N obtained as a result of the method runs out The time behavior determined during the optimization becomes a manageable control program enforced, especially the determined order of communication steps on the field buses. Through the pre-calculated, deterministic bus component access conflicts are also excluded.
Das Verfahren hat zur Folge, daß voneinander unabhängige Programmschritte zeit parallel auf verschiedenen Prozessoren ausgeführt werden und bei der Optimierung der Zyklusfrequenz auch sequenziell voneinander abhängige Programmschritte auf verschiedenen Prozessoren parallel in einer Pipeline ausgeführt werden können. The result of the method is that program steps which are independent of one another have time run in parallel on different processors and during optimization the cycle frequency also sequentially dependent program steps different processors can be run in parallel in a pipeline.
Um ein vernünftiges Zeit-Nutzenverhältnis zu erzielen, kann die Optimierung nach er reichen eines vorgegebenen Optimierungsgrades abgebrochen werden. Der Optimie rungsgrad kann zum Beispiel durch das Erreichen eines bestimmten Wertes für eine Kenngröße definiert werden.In order to achieve a reasonable time-benefit ratio, the optimization according to a predetermined degree of optimization can be canceled. The optimism Degree of efficiency can be achieved, for example, by reaching a certain value for a Parameter can be defined.
Vorzugsweise wird die Programmtransformation, die für die Anwendung des Verfah rens erforderlich ist, auf den Zwischencode eines Compilers aufgesetzt. Der Pro grammierer behält dann eine vom Compiler ggf. angebotene Wahlmöglichkeit der Ein gabesprache.Preferably, the program transformation necessary for the application of the method rens is required, placed on the intermediate code of a compiler. The pro grammer then retains a choice of on, possibly offered by the compiler reproducing language.
Weitere bevorzugte Ausführungsformen sind den Unteransprüchen zu entnehmen.Further preferred embodiments can be found in the subclaims.
Mit dem erfindungsgemäßen Verfahren kann eine Verteilung eines Steuerungspro gramms an der zentralen Steuerung auf dezentrale Feldbusknoten erfolgen, die eine konstante Rechenauslastung der Feldbusknoten zur Folge hat, die minimale Warte zeiten der Teilprogramme auf Eingangsdaten erreicht und die eine minimale Gesamt reaktionszeit durch Programmparallelisierung und optimale Netzwerkkommunikation erzielt. Die Kommunikation zwischen den einzelnen Feldbusknoten wird im Optimie rungsalgorithmus als zusätzliche Verarbeitungsschritte auf den Bussen zugeordneten, virtuellen Prozessoren modelliert, um die Kommunikationszeiten zu berücksichtigen.A distribution of a control pro gram on the central controller on decentralized fieldbus nodes constant computing load on the fieldbus nodes results in the minimal wait times of the partial programs on input data reached and the a minimal total response time through program parallelization and optimal network communication achieved. Communication between the individual fieldbus nodes is optimized algorithm as additional processing steps assigned to the buses, virtual processors modeled to account for communication times.
Die für die Feldbusse aufgestellten Kommunikationsfahrpläne werden in der Anwen dung durch geeignete Protokolle realisiert. Der Kommunikationsfahrplan besteht dabei in einer sequenziellen Aufstellung der Abfolge der Kommunikation.The communication timetables for the fieldbuses are in the app realized through suitable protocols. The communication schedule is there in a sequential listing of the sequence of communication.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10119541A DE10119541A1 (en) | 2001-04-21 | 2001-04-21 | Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10119541A DE10119541A1 (en) | 2001-04-21 | 2001-04-21 | Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goal |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10119541A1 true DE10119541A1 (en) | 2002-10-24 |
Family
ID=7682183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10119541A Withdrawn DE10119541A1 (en) | 2001-04-21 | 2001-04-21 | Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goal |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10119541A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
-
2001
- 2001-04-21 DE DE10119541A patent/DE10119541A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3538960B1 (en) | Sequence control of program modules | |
EP1184758A2 (en) | Method for debugging programs for industrial controllers, especially motion controllers, in the context of flow chart programmation | |
EP2100198A1 (en) | Control system, and method for configuring a control system | |
EP1182528A2 (en) | Industrial control based on distributed technological objects | |
WO2007101590A1 (en) | Method for creating an optimized flowchart for a time-controlled distributed computer system | |
EP2407840A1 (en) | Method for operating an automation device | |
DE102018110018A1 (en) | A method for providing an integrated process for the ECU development and simulation device for the ECU development | |
DE102018110020A1 (en) | A method for generating a model of a technical system executable on a test device and test device | |
WO2011063869A1 (en) | Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device | |
EP0838054B1 (en) | Graphic control process and device for controlling operations in a network management system | |
DE4104568A1 (en) | Distributed program processing for processing system - examining input and output commands to organise data flow | |
EP3015995A1 (en) | Method for configuring an interface unit of a computer system | |
EP3629108B1 (en) | Planning of an automation system | |
DE10119541A1 (en) | Optimization of the division of a control program amongst a number of parallel processors in a fieldbus process control system so that program division is optimized according to a desired goal | |
EP2154606A1 (en) | Generation of a runnable configuration | |
DE102019117954A1 (en) | Runtime server for the simultaneous execution of several runtime systems of an automation system | |
EP2191338B1 (en) | System for writing a simulation program | |
DE10101745A1 (en) | Method for operation of an automation system for control and regulation of component groups, using operating program with information file to call appropriate service program when required | |
DE10394242T5 (en) | Method and instrument for allocating computational resources in a distributed control system | |
DE102008063684A1 (en) | Method for describing basic activities for automated, dynamic generation of process-specific workflows in industry, involves producing resulting state of activities during execution of process or treatment steps based on starting condition | |
WO2012025364A1 (en) | Method and system for planning mechatronic systems having mechatronic units | |
DE102009017816A1 (en) | Method for parameterizing operating units, involves providing technical manual in program-high level language required for controlling, where each technical manual has function and set of parameters | |
DE4209541A1 (en) | Operating system for microprocessor based controller - having program structure established in machine code with memory space for control functions data and program manager | |
EP4390581A1 (en) | Method and engineering system for planning and programming an industrial automation assembly with a number of automation components | |
WO2022233571A1 (en) | Method for computer-assisted configuration of a terminal, terminal, and operating method for said terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |