WO2018130331A1 - Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage - Google Patents

Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage Download PDF

Info

Publication number
WO2018130331A1
WO2018130331A1 PCT/EP2017/080165 EP2017080165W WO2018130331A1 WO 2018130331 A1 WO2018130331 A1 WO 2018130331A1 EP 2017080165 W EP2017080165 W EP 2017080165W WO 2018130331 A1 WO2018130331 A1 WO 2018130331A1
Authority
WO
WIPO (PCT)
Prior art keywords
cores
modules
synchronization
control
input data
Prior art date
Application number
PCT/EP2017/080165
Other languages
English (en)
French (fr)
Inventor
Dirk Janssen
Richard KÜMMEL
Manuel BETTENWORTH
Henning ZABEL
Jan Achterberg
Original Assignee
Beckhoff Automation Gmbh
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 Beckhoff Automation Gmbh filed Critical Beckhoff Automation Gmbh
Priority to EP17801720.8A priority Critical patent/EP3548975B1/de
Priority to CN201780083460.7A priority patent/CN110168455B/zh
Publication of WO2018130331A1 publication Critical patent/WO2018130331A1/de

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the invention relates to a method for controlling a technical process, which comprises a control task for a number of independently controllable modules, on a control ⁇ tion, which comprises a plurality of computing cores, wherein the technical process with the controller at least one communi ⁇ cation connection for data exchange having.
  • the invention further relates to a corresponding control for the technical see process and a drive system with such a controller.
  • the control of technical processes is usually done by means of programmable logic controllers PLC.
  • a computer system is typically used to perform a STEU ⁇ erprogramm with individual control tasks is sensing the states of the technical process, in order then to control on the basis of the determined states of the technical process.
  • the individual control tasks of the control program are executed cyclically within a fixed time frame.
  • complex technical processes can include a large number of independently controllable modules and place high demands on the performance of the computer system.
  • Parallelized control programs are, however, insufficiently used in the boss ⁇ len automation.
  • the control programs are largely designed for execution on a computing core and are not aligned to a parallel Ver ⁇ processing. If automation systems use multi-processor systems, the parallel processing is generally limited to the assignment of individual control tasks to the available processor cores.
  • a control for a technical process with a plurality of computing cores, each of which is assigned a control task of the technical process is known for example from DE 10 2006 052 757 B4.
  • Such a concept of parallelization reaches its limits when the required computation time for a single control task exceeds the specified cycle time. In this case, a reduction of the computation time can be achieved by distributing the computations within the control task itself to the existing computational cores.
  • Object of the present invention is, so to carry out a technical process, comprising a control task for a number of egg ⁇ genstarra controllable modules on a controller which comprises a plurality of cores that without a complicated redesign of the Intelbearbei- processing time reduced, and shorter cycle times allows the ⁇ .
  • This object is achieved by a method for controlling a technical process according to claim 1, a controller according to claim 9 and a drive system according to claim 16. Further advantageous embodiments are specified in the dependent claims.
  • a technical process comprising a control ⁇ task for a number of independently controllable modules, which modules are each a processor core on egg ner controller which includes a plurality of cores are assigned.
  • the technical process is connected to the control we ⁇ tendonss via a communication link for data exchange.
  • the Steue ⁇ control via at least one I / O unit of the controlLe- sene input data of the modules for the respective associated
  • Arithmetic kernel ready in a first period of time.
  • the control then synchronizes the calculation cores to which modules are assigned.
  • the cores verar ⁇ BEITEN then the input data of the modules that are assigned to the respective processor core, in a second time interval, to generate output data for the modules, each processor core signals the end of processing.
  • the output data for the modules is provided by the controller in a third time period, and then sent to the modules via the I / O unit on the communication link.
  • the parallelization of the control task of a technical process with a variable number of independently controllable modules provides to distribute the calculation for controlling the modules during the configuration phase individually to the ver ⁇ yoggbaren cores. The user then only has to decide on how many or on which cores the control task is executed in parallel should.
  • the flexible distribution allows for complex technical ⁇ African processes significantly reduce the total computing time for the control.
  • At least one of the operations providing the workedsda ⁇ th, processing the input data to the output data and providing the output data may be divided into at least two portions, the one is respectively associated with aitiesvor ⁇ gear, also referred to hereinafter task, one between the two portions Synchronization is performed. With such a procedure, the parallelization in the provision of the input data or the output data as well as the execution of control routines can be further increased and thus the total computing time of the control cycle can be additionally shortened.
  • the input data of the modules are made available to the respectively assigned calculation kernel in an allocated memory area.
  • the computing cores can then execute the tasks or routines assigned to them without hindering each other or slowing them down. However, several calculation cores can also share a memory area.
  • the input data of the modules can basically be made available to the computing cores in a common memory area. This ensures fast data exchange in the controller.
  • a calculation engine detects the egg ⁇ genstarra controllable modules, wherein the detected modules in each case an arithmetic core according to at least one predetermined
  • the technical process has with the controller a plurality of communication links for data exchange, wherein the controller comprises a plurality of I / O units, which are each designed to exchange data via an associated communication ⁇ connection with the technical process.
  • Each I / O unit is then assigned to a computing center, which is adapted to provide the input and the off ⁇ input data for the respective associated I / O unit laminatelicate ⁇ ren.
  • This procedure can also be those of the actual calculation before - parallel or parallel processes in the control cycle, which allows very short cycle times.
  • the technical process includes a movement control of the independently controllable modules, wherein the controller puts out ⁇ is to carry out the movement control of the independently controllable modules.
  • a drive system comprises a plurality of motor modules, which each have a travel path and a plurality of drive coils arranged independently along the travel path.
  • a number of motor modules of the plurality of motor modules serves as a supply modules for the plurality of motor modules, wherein the Einspeisemo ⁇ modules are each connected via a communication line to the controller.
  • An I / O unit of the control system is designed to share data with the supply modules exerttau ⁇ rule over a plurality of communication paths.
  • Fig. 1 shows schematically a control according to the invention cycle for executing a control task for a multi ⁇ number of independently controllable modules of a technical process in a control system with three cores, said controller comprising a communication link for data exchange with the technical process.
  • FIG. 2 shows schematically the control cycle according to the invention according to FIG. 1, wherein the control has two communication connections for data exchange with the technical process.
  • FIG. 3 shows schematically the control cycle according to the invention according to FIG. 1, wherein the control has three communication connections for data exchange with the technical process.
  • FIG. 4 shows schematically the control cycle according to the invention according to FIG. 1, wherein the control has three communication connections for data exchange with the technical process and a plurality of synchronization units are provided.
  • FIG. 5 shows a motion control of eight independently controllable drive elements with the control concept according to the invention, wherein the control task is performed by a controller with an I / O unit and three processor cores.
  • Fig. 6 shows a motion controller with the invention shown SEN control concept in a linear transport system comprising motor ten modules and four transport elements, wherein represent two motor modules feed modules and the Steue ⁇ tion task is performed by a controller with an I / O unit and three computing cores.
  • Fig. 7 shows a motion controller with the invention shown SEN control concept in a six-axis robot system, wherein the control object on a control with two I / O units and three cores is performed.
  • Industrial automation is increasingly using more complex and intelligent production platforms that require ever-increasing computational power and therefore require the use of powerful control.
  • Control tasks of technical processes in particular those for the motion control of a large number of independently controllable modules are often characterized by very short cycle times, which must be run through in a highly precise manner in order to be able to meet the required real-time conditions.
  • large quantities of input and output data often have to be exchanged between the technical process and the controller.
  • usually very time-consuming functionalities such as control algorithms, setpoint generation or coordinate transformation, are to be executed.
  • the flexible distribution of the control problem for a number of independent steu ⁇ trollable modules enables the calculation time of the controller and thus to shorten the cycle time of the control task.
  • the concept for the parallelization of a control task for a number of independently controllable modules of a technical process provides that the modules are each assigned to a calculation kernel on a controller comprising a plurality of calculation cores.
  • the technical process with the number of independently controllable modules is with the
  • Control connected via at least one communication connection for data exchange.
  • the control cycle is divided into three time periods.
  • the input data of the modules read in via at least one I / O unit of the controller connected to the communication link is provided by the controller for the calculation cores. With the provision of the input data for all cores, the first period ends.
  • the second period of the control cycle begins with the simultaneous release of the cores, which are assigned input data of modules, after all input data is available. This could be, for example, all calculation cores or a subset of all calculation cores.
  • the cores then process the input data of the modules that are assigned to each processor core, to generate output data for the modules, each processor core signals the end of processing. As soon as all the processor cores have signaled the end of the processing, the second time period of the control cycle is ended.
  • the output data for the modules are provided by the controller to be output via the I / O unit of Steue ⁇ tion on the communication link and sent to the modules. Then the control cycle is finished.
  • Fig. 1 this basic process for controlling a technical process with a plurality of independently controllable modules is shown, wherein the modules are not shown here.
  • the controller has three calculation cores Cl, C2, C3, each of which performs a control routine. Under a control routine is the processing / calculation of
  • the control routines 100, 110, 120 for the 30 modules are distributed in the configuration to the three computation cores Cl, C2, C3, wherein in the embodiment shown an equal distribution is performed, ie each arithmetic unit Cl, C2, C3 is responsible for ten modules.
  • the ten control routines 100 for the first 10 modules are assigned to the first calculation core C1.
  • the second processor core C2 is assigned the ten control routines 110 of the second 10 modules
  • the third processor core C3 is assigned the ten control routines 120 of the last 10 modules.
  • a calculation kernel C1 can record the number and functional expression of the independently controllable modules of the technical process.
  • an equal distribution of the control routines 100, 110, 120 of the independently controllable modules on the computing cores Cl, C2, C3 is not mandatory, in particular if
  • the independently controllable modules of the technical ⁇ African process are assigned to different functionalities, so that the required computing power for the control routines 100, 110, 120 are different in size.
  • the assignment of the control routines 100, 110, 120 of the modules to the computing cores Cl, C2, C3 can then take place in such a way that the computing load assigned to the respective computing cores C1, C2, C3 is essentially the same and then a calculation time of substantially equal length for the calculation cores Cl, C2, C3 yields.
  • control routines 100, 110, 120 of the modules can take place according to any given criterion.
  • One criterion for the allocation may be as explained to make the utilization of the computing cores Cl, C2, C3 uniformly to substantially the same length of processing time for all cores Cl, C2 to Errei ⁇ chen C3, so the total computing time for the control task to minimize.
  • another criterion in the assignment of the control routines 100, 110, 120 of the independently controllable modules to the calculation cores Cl, C2, C3 may be that the control routines 100, 110, 120 of these particular modules be distributed to different cores Cl, C2, C3.
  • control routines 100, 110, 120 of the modules with the special security requirements can be ensured, for example, by assigning the control routines 100, 110, 120 of the modules with the special security requirements to different calculation cores C1, C2, C3. It is also possible that control routines 100, 110, 120 modu ⁇ len, must satisfy special safety demands, run on multiple cores Cl, C2, C3 in parallel to To detect and then prevent errors in the control.
  • the first time interval ZI and the third time period Z3 of the control cycle 150 ie the reading of the input data 130 of the modules via the I / O unit and the provision of the input data 130 for the respective or the output data 140 for the modules, after all the calculation cores Cl, Cl, C3 have signaled the end of the processing of the control routines 100, 110, 120, and outputting the output data 140 via the E / A unit of a computational, in the representation shown in Fig. 1 executed by the first arithmetic Cl.
  • this procedure it is possible to optimally use the hardware of the controller. In that case, no additional units have to be provided which process the first time period ZI or third time period Z3 of the control cycle 150.
  • the synchronization unit detects the number of all calculation cores Cl, C2, C3 involved or available in the process. Alternatively, the synchronization unit can also be informed of the number by the controller or another unit. For synchronization Syncl, Sync2, the individual cores Cl, C2, C3 log on to the synchronization unit. This takes place immediately after the respective arithmetic unit Cl, C2, C3 has completed the task assigned to it or no task has been assigned to the respective arithmetic logic unit Cl, C2, C3. The synchronization unit then determines whether the number of calculation cores C1, C2, C3 specified during the initialization phase are logged on. If not, the originating arithmetic logic Cl, C2, C3 is put into a waiting mode.
  • the synchronization unit now determines that all cores Cl, C2, C3 is ⁇ logs have offset and the second processor core C2 and the third processor core C3 back to the active mode.
  • the three active computing cores Cl, C2, C3 can then process the respectively assigned task in the second time period Z2.
  • Sync2 between the second period Z2 and the third period Z3 of the control cycle 150, the sequence according to FIG.
  • the synchronization unit determines whether all three cores Cl, C2, C3 involved in the process have already registered, the synchronization unit being aware of the initialization phase that three cores Cl, C2, C3 are involved in the process. As long as the number of three notified cores Cl, C2, C3 has not been reached, the synchronizing unit is added to the notifying Re ⁇ chenkerne Cl, C2, C3 in the waiting mode.
  • this solver Cl, C2, C3 also logs on to the synchronization unit. It now notes that all the calculation cores Cl, C2, C3 have registered and puts the other two calculation cores Cl, C2, C3 back into active mode.
  • the respectively assigned calculation kernel C1, C2, C3 is provided with the input data 130 of the modules in a memory area assigned to the respective calculation kernel C1, C2, C3 in the control.
  • the cores Cl, C2, C3 can then each of them assigned task or routine in particular ⁇ sondere in the second time section Z2 execute without ge ⁇ genfact hinder or slowing.
  • the memory of the controller can also be designed such that a plurality of computer cores Cl, C2, C3 share a memory area. This is advantageous in particular when the calculation cores Cl, C2, C3 access common input data 130.
  • each processor core Cl, C2 is carried out, by the first calculator Cl, which is set to active mode.
  • the provision of the output data 140 for the modules and outputting of the output data 140 via the I / O unit of the control takes place in the sequence shown in FIG. 1 again by the first arithmetic unit Cl.
  • the first arithmetic unit C1 is set to the active mode in order to prepare the output data 140 provided by the arithmetic cores C1, C2, C3 in the assigned memory areas.
  • the first arithmetic unit Cl can then also perform a post-processing of the output data 140 for the modules, e.g. a scaling or a simple coordinate transformation.
  • each I / O unit is then assigned a calculation kernel, the first I / O unit the first calculation core C1, and the second I / O unit the second calculation core C2, which then in the first time segment ZI or the third period Z3 of the control cycle 150, the provision of the input data 130, 135 and the output data 140, 145 perform for the respective associated I / O unit.
  • This procedure is then ⁇ before geous in particular, when a high data load on data input 130, 135 or output data 140, 145 is placed under the control task.
  • Fig. 3 shows a further variant of the sequence are provided in which three communication links between the controller and the industrial process, wherein each Kommunikati ⁇ onstress has its own I / O unit in the controller. Each I / O unit is then assigned a calculation core C1, C2, C3, the first I / O unit the first calculation core C1, the second I / O unit the second calculation core C2 and the third I / O unit the third Calculator C3. With this procedure 145, the parallelization of the provision of the input data 130, 135, 138 or the output data 140, 148 is further increased and thus the overall computing time of approximately Steue ⁇ cycle can be further shortened 150th
  • FIG. 4 shows a further possible modification of the procedure, in which, analogously to FIG. 3, three communication connections are provided between the control and the technical process.
  • Each communication connection in turn has its own I / O unit in the controller, which is assigned a processor core C1, C2, C3, the first I / O unit, the first processor core C1, the second I / O unit, the second processor core C2 and the third I / O unit, the third arithmetic core C3.
  • the controller has three synchronization units in the sequence according to FIG. 4, which are independently responsible for different synchronizations Syncl, Sync2, SyncA, SyncB, Synca.
  • the three units can sync as one or more separate components, its game carried out at ⁇ as part of the control unit.
  • the first synchronization unit controls, as already in
  • the two synchronizations Syncl, Sync2 between the first period ZI and the second period Z2 or between the second period Z2 and the third period Z3.
  • the three time sections ZI, Z2, Z3 of the control task Kgs ⁇ NEN but be divided into further sub-periods are allocated to the respective tasks for the processor cores Cl, C2, C3, which must then additionally be synchronized.
  • sub-Zeitab ⁇ cuts only in respective time periods ZI, Z2, Z3 of the control task and for any number of rake ⁇ cores Cl, C2, C3 provide in the controller.
  • the number of sub-periods can be varied depending on the tasks to be performed.
  • the first time interval ZI when the input data of the modules for the respectively assigned calculation kernel are provided by the controller, it may be necessary to process the input data. In the flow shown in Fig. 4, this is required for the input data 130, 135 of the first and second I / O units.
  • the first time segment ZI is subdivided into two sub-time segments Zl-1, Zl-2.
  • the input data 130, 135 of the first two I / O units are processed by the first processor core C1 with a first task or by the second processor core C2 with a second task.
  • the first processor core C 1 and the second processor core C 2 register with the second synchronization unit, which is designed analogously to the first synchronization unit, which synchronizes the two synchronizations Syncl, Sync 2 between the first time interval Z 1 and the second time interval Z 2 or Z 2.
  • Zvi ⁇ rule executes the second time interval Z2 and the third time portion Z3.
  • the cores, which first at the second synchronization unit logs on, is placed in the War ⁇ temodus until also the other processing core angemel ⁇ det has the second synchronizing unit is known that two cores Cl, C2 involved in the pre-process.
  • the second synchronization unit in the initialization phase detects the computing cores C1, C2 involved in the process.
  • the synchronization ⁇ unit the number also be communicated by the controller or another unit, for example, the first synchronization unit. If the two processing cores Cl, C2 involved in the task have logged on to the second synchronization unit, the second synchronization unit thus recognizes that the preprocessing process has been completed.
  • the second Syn ⁇ chronisationsaku then performs the synchronization SYNCA between the first sub-period Zl-1 and the second
  • Sub-period Zl-2 of the first period ZI The processor core Cl then transferred to another task in the second sub-period Zl-2 of the first time period ZI the A ⁇ output data 130, 135 together and then provides the combined input data as new input data 131 for further processing.
  • the second processor core C2 Since there is no task is provided for the second processor core C2 in the second sub-period Zl-2 of the first time period ZI, the second processor core C2 connects directly to the first synchronization unit and is offset from the first synchro ⁇ tion unit in the waiting mode.
  • the first Syn ⁇ chronisationsaku be ⁇ is known from the initialization phase in that in the process in the first time section ZI three cores Cl, C2, C3 are involved.
  • the first synchronization unit then performs the first synchronization Syncl, already in connection with the process in Fig. 1 to Fig 3 has been described.
  • the second time section Z2 is subdivided into two sub-time sections Z2-1, Z2-2 in the sequence according to FIG. 4.
  • the third synchronization unit which is competent ⁇ dig for synchronization SYNCA between the first sub-time period and the second sub Z2-1-Z2-2 period of the second time portion Z2, performs the synchronization between the first sub-time period and the Z2-1 second sub-period Z2-2 of the second period Z2 then analogous to the described operation of the first and the second synchronization unit.
  • the first processor core C1 processes the input data 131 assigned to both the first processor core C1 and the second processor processor C2 in the second time interval Z2 on the basis of the first control routine 100 and, after completing the task, logs on to the first synchronization unit.
  • the second core C2 on the other hand performs two control routines ⁇ with the assigned input data 131 in the second time section Z2. Based on the second control routine 110 of the second core C2 at first processes the input data 131 in the first sub period ⁇ Z2-1 of the second time interval Z2, and logs in the third synchronization unit after execution of the task on.
  • two control routines for processing the input data 138 assigned to the third processor C3 are also assigned to the third processor C3.
  • the third processor C3 operates in the first sub-period Z2- 1 of the second time Z2 with the assigned input data 138 from the third control routine 120 and then logs on, as the second processor C2, at the third synchronization unit.
  • the third synchronization unit is known from the initialization phase ⁇ approximately that cut in the process in the first sub-time intervals of the second time portion Z2-1 Z2 of Steuerungsauf ⁇ reproducing two cores C2, C3 are involved.
  • the third synchronization unit puts the arithmetic core that has done its task first into the waiting mode. As soon as both calculation cores C2, C3 involved in the process have then logged on to the third synchronization unit, synchronization of the third synchronization unit takes place
  • the second processor core C2 and the third processor C3 then execute a further control routine 111, 121 in the second sub-period Z2-2 of the second time interval Z2.
  • the second processor core C2 or the third processor processor C3 each directly register with the first synchronization unit.
  • the first synchronization unit knows from the initialization ⁇ stage this means that all the three cores Cl, C2, C3 are be ⁇ turbant in the second time section Z2 of the control ⁇ task in the process. Until not all three cores Cl, C2, C3 notified to the first synchronization unit have comparable sets the first synchronization unit to the respective reporting at ⁇ calculation kernel to the waiting mode.
  • the second synchronization Sync2 is then executed by the first synchronization unit at the transition between the second time period Z2 and the third time period Z3 as soon as all three calculation cores Cl, C2, C3 have registered with the first synchronization unit.
  • a first sub-period Z3-1 and a second sub-period Z3-2 is divided, the synchronization in turn performed by the second synchronization unit.
  • the first arithmetic circuit Cl performs the provision of intermediate output data 141 in the first sub-time section Z3-1 of the third time section Z3. As soon as the first calculation kernel Cl has completed the task, the first calculation kernel Cl registers with the second synchronization unit.
  • the second re ⁇ chenkern C2 which no task has been assigned after the second synchronization Sync2, logs on immediately when the second synchronization unit and is ver ⁇ is in the waiting mode.
  • the second synchronization unit is known from the initialization phase ⁇ approximately that of the to be monitored by the second synchronization unit in the third process Zeitab ⁇ section Z3 of the first processor core and the second core Cl C2 are involved. After both calculation cores Cl, C2 have then logged on to the second synchronization unit, the second synchronization unit carries out the further synchronization SyncB.
  • the first calculation core C1 and the second calculation core C2 process the intermediate output data 141 after synchronization SyncB in order to provide the output data 140, 145.
  • the parallelization in the provision of the input data 130, 135, 138 or the output data 140, 145, 148 in the first time interval ZI or in the third period Z3 and the execution of the control routines in the second period Z2 further increased and thus the total computing time of the control cycle 150 to be additionally shortened ⁇ .
  • the concept of parallel processing of a control task 100, 110, 120 for a number of independently controllable modules of a technical process provides for three time periods ZI, Z2, Z3.
  • a second time interval Z2 for processing the input data to output data by means of the control routines 100, 110, 120
  • a third time interval Z3 for providing and outputting the output data 140, 145, 148 for the modules.
  • n calculation cores can be used for providing the input or output data in the first and third time periods.
  • the cores are each assigned to an I / O unit of the controller.
  • Re ⁇ kernels which are not used to provide the input and output ⁇ data in the first and third time periods of the control cycle, log directly at the synchronization s istssaku, which are present as an independent unit in Steue ⁇ tion, but also as a program component one or all computing cores can be provided to. All cores that are not needed are in quiescent mode or put into quiescent mode.
  • parallel computation may again be carried out from 1 to n cores, depending on how the assignment of the processor cores is configured to independently controllable modules of the technical process.
  • Computing cores that do not perform a parallel computation or complete their computation log in directly to the synchronization unit, which then puts these compute cores into idle mode from the active mode.
  • further calculation cores can always be provided in the control, which are not involved in the control task or perform other control tasks.
  • FIG. 5 shows a first application in which the parallelized control concept is used in the context of a drive system with eight axes 1 to 8. , Each axle 1 to 8 is as shown in Fig.
  • the feedback unit 14 is used to output the input data of the axes, eg the encoder data, and to receive the output data for the axes, eg the current values for controlling the coils in the drive.
  • the feedback units 14 are connected to the controller via a communication link.
  • the communication connection is designed so that each Feedbackein ⁇ unit 14 is connected to a communication line 15.
  • a communication unit is pre see ⁇ that transmits the input data and the output data from ⁇ is passed to a power unit, which then operates the coils. It would also be conceivable that the power unit is arranged separately, and has a communication connection with the motor.
  • the communication lines 15 are connected to terminals 21 of an interface unit 20.
  • the interface unit 20 converts the parallel exchange on the communication lines 15 to serial data by running or transmitting Since ⁇ tendigite.
  • the data packets are then exchanged out ⁇ via a further connection 23 of the interface unit 20, another Kom ⁇ munikationstechnisch 22 that exists between the interface unit 20 and an I / O unit 31 of the control 30th
  • a network protocol such as the EtherCAT protocol is suitable, with which a fast data exchange can take place.
  • the feedback units 14 of the axes 1 to 8 are connected directly to I / O units 31 of the controller 30 without interposing an interface unit 20.
  • a plurality of interface units 20, which are each connected to an I / O unit 31 of the controller 30, are used.
  • the controller 30 has, in addition to the I / O unit 31, a processor 39 with three processor cores 33, 34, 35, a control unit 36 which contains a synchronization unit 37, and a memory 38.
  • the processor 39 is in communication with the I / O unit 31, the control unit 36 and the memory 38 to exchange data.
  • the controller may of course have additional hardware not shown such as more mito ⁇ reindeer, etc. memory.
  • the control of the drive system shown in FIG. 5 is configured such that the first arithmetic core 33 in the processor 39 of the controller 30, the first three axes 1, 2, 3, the second arithmetic core 34, the three further axes 4, 5, 6 and the third Arithmetic core 35, the remaining two axes 7, 8 are assigned.
  • the provision of the input and output data in the memory 38 is performed by the first arithmetic core 33, which is based on the
  • the change Zvi ⁇ rule the first and second period and the second and third period of the control cycle is triggered by the synchronization unit 37 in the control unit 36 of the control 30th
  • FIG. 6 shows another application in which the controller 30 shown in FIG. 5 is used with an interface unit 20 for controlling a linear transport system 40.
  • the linear transport system 40 consists of a
  • the motor modules 401 to 410 have a travel path 41 and a predetermined number of independently energizable drive coils 42 arranged along the travel path 41.
  • the motor modules 401 to 410 together form a closed elliptical travel path 41, wherein eight motor modules 403 to 410 are straight and two motor modules 401, 402 are formed as curve modules.
  • Trans ⁇ port elements in the form of carriage 43 are arranged, which the ei ⁇ genstarra controllable modules of the technical process bil ⁇ the.
  • four such carriages 43, 44, 45, 46 are provided. In principle there is the possibility that any number of Transportele ⁇ elements, which are driven independently, can be arranged on the path of the 41st
  • Each carriage 43 to 46 has a magnetic means to be moved by the drive coils 42 of the motor modules 401 to 410 by means of a traveling magnetic field.
  • the control of the carriages 43 to 46 takes place by controlling the energization of the drive coils 42 in the motor modules 401 to 410.
  • the motor modules 401 to 410 provide position data of the carriages 43 to 46, which are connected to the motor modules 401 to 410 arranged position detection devices are detected.
  • the data exchange takes place in the case of application shown in FIG. 6 via specially distinguished motor modules 403, 410, which are also referred to as infeed modules.
  • On the A ⁇ food module 402 then exchange the verbun with the supply module ⁇ which further motor module 401, 404-409 data with the controller 30.
  • the motor modules 401 to 410 are connected to each other with the feed modules via a communication line.
  • two motor modules 403, 410 vorgese ⁇ as feed modules hen, each responsible for the exchange of data from five other motor modules 401, 402, 404-409.
  • each Motormo- dul is 401 to 410 independently directly connected via a communication line 15 or through the intermediary interfaces ⁇ unit 20 with the control 30th
  • the control of the linear transport system 40 in Fig. 5 is configured so that the first and third period of the control cycle, the provision of the input and from ⁇ input data from one processor core, the first processor core 33 of the controller 30, the access to the E / A unit 31 has, is out ⁇ leads.
  • the calculation of the control data for the individual carriages 43 to 46 is then carried out in parallel by the three computing cores 33, 34, 35 of the processor 39, two carriages 43, 44 the first arithmetic core 33, another
  • the parallelized control concept is particularly advantageous ⁇ way for linear transport systems, as complied with very short cycle times and a variety of input and output data must be processed.
  • the inputs and outputs can output data of the engine modules easily always be assigned to ⁇ whose engine modules.
  • Such Neuzuord ⁇ planning is required if the slider position has changed between different engine modules.
  • high safety requirements must be met as regards the control of the individual transport elements.
  • FIG. 7 shows a further application for a multi-axis robot 50, in the present case a six-axis robot, in which a position and speed control is carried out for each of the six axes 501 to 506.
  • Each robot axis 501 to 506 has a motor 51 with a connected converter unit 52, which are connected via a mecha ⁇ African connection 53 with a feedback unit 54.
  • the feedback unit 54 and the inverter unit 52 on the motor 51 exchange input and output data with the controller.
  • the converter units 52 and the feedback units 54 of the individual robot axes 501 to 506 are connected separately via their own communication connections 22, 24 to the controller 30, which therefore has two I / O units 31, 32, the first I / O units 31 via the first communication link 22 input and output data for the inverter units and the second I / O units 32 via the second communication link 24 input and output data for the feedback units and outputs.
  • the controller 30 which therefore has two I / O units 31, 32, the first I / O units 31 via the first communication link 22 input and output data for the inverter units and the second I / O units 32 via the second communication link 24 input and output data for the feedback units and outputs.
  • the input or output data to be executed in the first and third time periods of the control cycle is separated by a respective arithmetic logic core, the first I / O unit 31 containing the input and output data for the converter units first arithmetic core 33 and the second I / O unit 32 is associated with the input and output data for the feedback units of the second arithmetic core 34.
  • the calculation of the output data on the basis of the input data for the individual robot axes 501 to 506 is performed in parallel by all three calculation cores 33, 34, 35, wherein the first two axes 501, 502 of the first arithmetic unit 33, another two axes 503, 504 the second arithmetic core 34 and the remaining two axes 505, 506, the third arithmetic core 35 is assigned.
  • control tasks with a plurality of independently controllable modules of a technical process can basically be processed flexibly and reliably, with the possibility of a variable embodiment of the parallelization both when providing the input and output data and when calculating the output data
  • the input data can be achieved short cycle times.

Abstract

Zum Steuern eines technischen Prozesses, der eine Steuerungsaufgabe für eine Anzahl von eigenständig steuerbaren Modulen umfasst, werden die Modulen jeweils einem Rechenkern C1, C2, C3 auf einer Steuerung, die eine Mehrzahl von Rechenkernen umfasst, zugeordnet. Der technische Prozess ist mit der Steuerung wenigstens über eine Kommunikationsverbindung zum Datenaustausch verbunden. Die Steuerung stellt über wenigstens eine E/A-Einheit eingelesene Eingangsdaten der Module für den jeweils zugeordneten Rechenkern in einem ersten Zeitabschnitt Z1 bereit. Anschließend erfolgt durch die Steuerung ein Synchronisieren der Rechenkerne, denen Module zugeordnet sind. Die Rechenkerne verarbeiten dann die Eingangsdaten der Module, die den jeweiligen Rechenkern zugeordneten sind, in einem zweiten Zeitabschnitt Z2, um Ausgangsdaten für die Module zu erzeugen, wobei jeder Rechenkern das Ende der Verarbeitung signalisiert. Wenn alle Rechenkerne das Ende der Verarbeitung signalisiert haben, werden die Ausgangsdaten für die Module in einem dritten Zeitabschnitt Z3 durch die Steuerung bereitgestellt, um dann über die E/A-Einheit auf der Kommunikationsverbindung an die Module verschickt zu werden.

Description

Steuerung eines technischen Prozesses auf einer Mehr-Rechen- kern-Anlage
Diese Patentanmeldung beansprucht die Priorität der deutschen Patentanmeldung DE 10 2017 100 655.9, deren Offenbarungsgehalt hiermit durch Rückbezug aufgenommen wird.
Die Erfindung betrifft ein Verfahren zum Steuern eines technischen Prozesses, der eine Steuerungsaufgabe für eine Anzahl von eigenständig steuerbaren Modulen umfasst, auf einer Steu¬ erung, die eine Mehrzahl von Rechenkernen umfasst, wobei der technische Prozess mit der Steuerung wenigstens eine Kommuni¬ kationsverbindung zum Datenaustausch aufweist. Die Erfindung betrifft weiter eine entsprechende Steuerung für den techni- sehen Prozess und ein Antriebssystem mit einer solchen Steuerung .
Die Steuerung von technischen Prozessen erfolgt in der Regel mit Hilfe von speicherprogrammierbaren Steuerungen SPS. Dabei wird üblicherweise eine Rechenanlage verwendet, um ein Steu¬ erprogramm mit einzelnen Steuerungsaufgaben auszuführen, welches die Zustände des technischen Prozesses abfragt, um auf der Basis der bestimmten Zustände dann den technischen Prozess zu steuern. Die einzelnen Steuerungsaufgaben des Steuer- programms werden dabei in der Regel zyklisch innerhalb eines festen Zeitrahmens ausgeführt. Komplexe technische Prozesse können aber eine Vielzahl von eigenständig steuerbaren Modulen umfassen und hohe Anforderungen an die Leistungsfähigkeit der Rechenanlage stellen.
Bis zu einem gewissen Grad kann den gesteigerten Anforderungen an die Steuerung mit einer höher getakteten Rechenanlage begegnet werden. Aufgrund von physikalischen Gegebenheiten lässt sich diese Art der Leistungssteigerung jedoch nicht be- liebig fortführen. Eine weitere Möglichkeit ist der Einsatz von Rechenanlagen, die mehrere parallel arbeitende Rechen¬ kerne aufweisen. Die Verteilung von Steuerungsaufgaben durch Zuweisung auf verschiedene Rechenkerne erhöht die verfügbare Rechenzeit innerhalb einer festen Zeitspanne. Weiterhin kön¬ nen auch einzelne Steuerungsaufgaben in unabhängige Unterauf¬ gaben zerlegt und parallel auf verschiedenen Rechenkernen ausgeführt werden.
Parallelisierte Steuerungsprogramme werden in der industriel¬ len Automatisierung jedoch bisher kaum eingesetzt. Die Steuerungsprogramme sind weitgehend für die Ausführung auf einem Rechenkern konzipiert und sind nicht auf eine parallele Ver¬ arbeitung ausgerichtet. Setzen Automatisierungssysteme Mehr- Rechenkern-Anlagen ein, beschränkt sich die parallele Verarbeitung in der Regel auf die Zuordnung von einzelnen Steuerungsaufgaben auf die verfügbaren Rechenkerne. Ein Steuerung für einen technischen Prozess mit einer Mehrzahl von Rechenkernen, denen jeweils ein Steuerungsaufgabe des technischen Prozesses zugeordnet ist, ist beispielsweise aus der DE 10 2006 052 757 B4 bekannt. Ein solches Konzept der Parallelisierung stößt aber an seine Grenzen, wenn die benötigte Rechenzeit für eine einzelne Steuerungsaufgabe über die festgelegte Zykluszeit hinausgeht. In diesem Fall kann eine Reduzierung der Rechenzeit dadurch erreicht werden, dass die Berechnungen innerhalb der Steue- rungsaufgabe selbst auf die vorhandenen Rechenkerne verteilt werden. Diese Parallelisierung erfordert aber in der Regel einen aufwändigen Neuentwurf der Implementierung der Steuerungsaufgabe . Aufgabe der vorliegenden Erfindung ist es, einen technischen Prozess, der eine Steuerungsaufgabe für eine Anzahl von ei¬ genständig steuerbaren Modulen umfasst, auf einer Steuerung, die eine Mehrzahl von Rechenkernen umfasst, so auszuführen, dass ohne einen aufwändigen Neuentwurf die Gesamtbearbei- tungszeit reduziert und kürzere Zykluszeiten ermöglicht wer¬ den . Diese Aufgabe wird durch ein Verfahren zum Steuern eines technischen Prozesses gemäß Anspruch 1, einer Steuerung gemäß Anspruch 9 und einem Antriebssystem gemäß Anspruch 16 gelöst. Weitere vorteilhafte Ausführungen sind jeweils in den abhän- gigen Ansprüchen angegeben.
Zum Steuern eines technischen Prozesses, der eine Steuerungs¬ aufgabe für eine Anzahl von eigenständig steuerbaren Modulen umfasst, werden die Modulen jeweils einem Rechenkern auf ei- ner Steuerung, die eine Mehrzahl von Rechenkernen umfasst, zugeordnet. Der technische Prozess ist mit der Steuerung we¬ nigstens über eine Kommunikationsverbindung zum Datenaustausch verbunden. In einem Steuerungszyklus stellt die Steue¬ rung über wenigstens eine E/A-Einheit der Steuerung eingele- sene Eingangsdaten der Module für den jeweils zugeordneten
Rechenkern in einem ersten Zeitabschnitt bereit. Anschließend erfolgt durch die Steuerung ein Synchronisieren der Rechenkerne, denen Module zugeordnet sind. Die Rechenkerne verar¬ beiten dann die Eingangsdaten der Module, die den jeweiligen Rechenkern zugeordneten sind, in einem zweiten Zeitabschnitt, um Ausgangsdaten für die Module zu erzeugen, wobei jeder Rechenkern das Ende der Verarbeitung signalisiert. Wenn alle Rechenkerne das Ende der Verarbeitung signalisiert haben, werden die Ausgangsdaten für die Module durch die Steuerung in einem dritten Zeitabschnitt bereitgestellt, um dann über die E/A-Einheit auf der Kommunikationsverbindung an die Module verschickt zu werden.
Die Parallelisierung der Steuerungsaufgabe eines technischen Prozesses mit einer variablen Anzahl von eigenständig steuerbaren Modulen sieht vor, die Berechnung zur Steuerung der Module während der Konfigurationsphase individuell auf die ver¬ fügbaren Rechenkerne zu verteilen. Dem Anwender obliegt dann lediglich zu entscheiden, auf wie vielen bzw. auf welchen Re- chenkernen die Steuerungsaufgabe parallel ausgeführt werden soll. Die flexible Verteilung ermöglicht bei komplexen tech¬ nischen Prozessen die Gesamtrechenzeit für die Steuerung deutlich zu verringern. Wenigstens einer der Vorgänge Bereitstellen der Eingangsda¬ ten, Verarbeiten der Eingangsdaten zu den Ausgangsdaten und Bereitstellen der Ausgangsdaten kann in wenigstens zwei Abschnitte unterteilt sein, den jeweils eine Bearbeitungsvor¬ gang, im Weiteren auch Task bezeichnet, zugeordnet ist, wobei zwischen den zwei Abschnitten eine Synchronisation ausgeführt wird. Mit einem solchen Ablauf kann die Parallelisierung bei der Bereitstellung der Eingangsdaten bzw. der Ausgangsdaten sowie die Abarbeitung von Steuerungsroutinen weiter erhöht und damit die Gesamtrechenzeit des Steuerungszyklus zusätz- lieh verkürzt werden.
Die Eingangsdaten der Module werden dem jeweils zugeordneten Rechenkern in einem zugeordneten Speicherbereich zur Verfügung gestellt. Die Rechenkerne können dann die ihnen jeweils zugewiesenen Tasks bzw. Routinen abarbeiten, ohne sich gegenseitig zu behindern bzw. auszubremsen . Es können sich aber auch mehrere Rechenkerne einen Speicherbereich teilen. Die Eingangsdaten der Module können den Rechenkernen grundsätzlich in einem gemeinsamen Speicherbereich zur Verfügung ge- stellt werden. Hierdurch wird ein schneller Datenaustausch in der Steuerung gewährleistet.
In einer Initialisierungsphase erfasst ein Rechenkern die ei¬ genständig steuerbaren Module, wobei die erfassten Module je- weils einem Rechenkern nach wenigstens einem vorgegebenen
Kriterium zuordnet werden. Mit dieser Vorgehensweise wird ein flexibles Parallelisierungskonzept , das sich schnell an die Anforderungen des technischen Prozesses anpassen lässt, ermöglicht .
Eigenständig steuerbare Module mit besonderen Sicherheitsan¬ forderungen werden auf verschiedene Rechenkerne verteilt, wodurch auf einfache Weise für den technischen Prozess vorge¬ gebene Sicherheitskriterien eingehalten werden können.
Der technische Prozess weist mit der Steuerung eine Mehrzahl von Kommunikationsverbindungen zum Datenaustausch auf, wobei die Steuerung eine Mehrzahl von E/A-Einheiten umfasst, die jeweils ausgelegt sind, über eine zugeordnete Kommunikations¬ verbindung mit dem technischen Prozess Daten auszutauschen. Jeder E/A-Einheit ist dann ein Rechenkern zugeordnet, der ausgelegt ist, das Bereitstellen der Eingangs- und der Aus¬ gangsdaten für die jeweils zugeordnete E/A-Einheit auszufüh¬ ren. Mit dieser Vorgehensweise lassen sich auch die der eigentlichen Berechnung vor- bzw. nachgeschalteten Vorgänge im Steuerungszyklus parallelisieren, was sehr kurze Zykluszeiten ermöglicht.
Der technische Prozess umfasst eine Bewegungssteuerung der eigenständig steuerbaren Module, wobei die Steuerung ausge¬ legt ist, die Bewegungssteuerung der eigenständig steuerbaren Module auszuführen.
Ein Antriebssystem umfasst eine Mehrzahl von Motormodulen, die jeweils einen Verfahrweg und eine Mehrzahl von längs des Verfahrweges angeordneten, eigenständig bestrombaren An- triebsspulen aufweisen. Die Antriebselemente des Antriebssys¬ tems, die die eigenständig steuerbaren Module darstellen, weisen jeweils eine Magneteinrichtung auf, um durch die Antriebsspulen bewegt zu werden. Eine Anzahl von Motormodule aus der Mehrzahl von Motormodule dient dabei als Einspeisemo- dule für die Mehrzahl von Motormodule, wobei die Einspeisemo¬ dule jeweils über eine Kommunikationsleitung an die Steuerung angeschlossen sind.
Ein E/A-Einheit der Steuerung ist ausgelegt, über mehrere Kommunikationswege Daten mit den Einspeisemodulen auszutau¬ schen . Im Folgenden wird die Erfindung mit Bezug auf die beigefügten Zeichnungen näher erläutert.
Fig. 1 zeigt schematisch einen erfindungsgemäßen Steuerungs- zyklus zum Ausführen einer Steuerungsaufgabe für eine Mehr¬ zahl an eigenständig steuerbaren Modulen eines technischen Prozesses auf einer Steuerung mit drei Rechenkernen, wobei die Steuerung eine Kommunikationsverbindung zum Datenaustausch mit dem technischen Prozess aufweist.
Fig. 2 zeigt schematisch den erfindungsgemäßen Steuerungszyklus gemäß Fig. 1, wobei die Steuerung zwei Kommunikationsverbindungen zum Datenaustausch mit dem technischen Prozess aufweist.
Fig. 3 zeigt schematisch den erfindungsgemäßen Steuerungszyklus gemäß Fig. 1, wobei die Steuerung drei Kommunikationsverbindungen zum Datenaustausch mit dem technischen Prozess aufweist.
Fig. 4 zeigt schematisch den erfindungsgemäßen Steuerungszyklus gemäß Fig. 1, wobei die Steuerung drei Kommunikationsverbindungen zum Datenaustausch mit dem technischen Prozess aufweist und eine Mehrzahl von Synchronisierungseinheiten vorge- sehen sind.
Fig. 5zeigt eine Bewegungssteuerung von acht eigenständig steuerbaren Antriebselementen mit dem erfindungsgemäßen Steuerungskonzept, wobei die Steuerungsaufgabe von einer Steue- rung mit einer E/A-Einheit und drei Rechenkernen ausgeführt wird .
Fig. 6 zeigt eine Bewegungssteuerung mit dem erfindungsgemä¬ ßen Steuerungskonzept bei einem linearen Transportsystem, das zehn Motormodule und vier Transportelemente aufweist, wobei zwei Motormodule Einspeisemodule darstellen und die Steue¬ rungsaufgabe von einer Steuerung mit einer E/A-Einheit und drei Rechenkernen ausgeführt wird. Fig. 7 zeigt eine Bewegungssteuerung mit dem erfindungsgemä¬ ßen Steuerungskonzept bei einem Sechs-Achsen-Robotersystem, wobei die Steuerungsaufgabe auf einer Steuerung mit zwei E/A- Einheiten und drei Rechenkernen ausgeführt wird. In der Industrieautomation werden zunehmend komplexere und intelligentere Produktionsplattformen eingesetzt, die eine immer größere Rechenleistung notwendig machen und deshalb den Einsatz einer leistungsfähigen Steuerung erfordern. Steuerungsaufgaben von technischen Prozessen, insbesondere solche zur Bewegungssteuerung einer großen Anzahl von eigenständig steuerbaren Modulen zeichnen sich oft durch sehr kurze Zykluszeiten auf, die hoch präzise durchlaufen werden müssen, um geforderten EchtZeitbedingungen einhalten zu können. Dabei müssen zwischen dem technischen Prozess und der Steuerung häufig auch große Mengen an Ein- und Ausgabedaten ausgetauscht werden. Im Rahmen der Bewegungssteuerung sind weiterhin meistens sehr rechenzeitaufwändige Funktionalitäten, wie Regelungsalgorithmen, Sollwertgeneration oder Koordinatentransformation, auszuführen.
Hohe Rechenleistungen lassen sich insbesondere mit Steuerungen erzielen, bei denen gleichzeitig mehrere Rechenkerne ge¬ nutzt werden. Im Folgenden wird ein Konzept zur Parallelisie- rung von Steuerungsaufgaben eines technischen Prozesses mit einer variablen Anzahl von eigenständigen steuerbaren Modulen erläutert, bei dem die im Rahmen der Steuerungsaufgaben auszuführenden Berechnungen auf die verfügbaren Rechenkerne der Steuerung verteilt sind. Das Konzept ermöglicht eine Paralle- lisierung von Steuerungsaufgaben, so dass keine spezielle Programmierung der Steuerungsaufgaben zum verteilten Ausführen auf die einzelnen Rechenkerne erforderlich ist. Der An- wender muss nur in einer Konfigurations- und Initialisie¬ rungsphase entscheiden, auf wie viele bzw. auf welche Rechen¬ kerne die Steuerungsaufgabe verteilt werden soll, d.h. wie die Zuordnung zwischen den eigenständig steuerbaren Modulen und den Rechenkernen erfolgen soll. Die flexible Verteilung der Steuerungsaufgabe für eine Anzahl von eigenständig steu¬ erbaren Modulen ermöglicht die Rechenzeit der Steuerung und damit die Zykluszeit der Steuerungsaufgabe zu verkürzen. Das Konzept zur Parallelisierung einer Steuerungsaufgabe für eine Anzahl von eigenständig steuerbaren Modulen eines technischen Prozesses sieht vor, dass die Module jeweils einem Rechenkern auf einer Steuerung, die eine Mehrzahl von Rechenkernen umfasst, zugeordnet werden. Der technische Prozess mit der Anzahl von eigenständig steuerbaren Modulen ist mit der
Steuerung dabei über wenigstens eine Kommunikationsverbindung zum Datenaustausch verbunden. Der Steuerungszyklus wird in drei Zeitabschnitte unterteilt. Im ersten Zeitabschnitt des Steuerungszyklus werden die Eingangsdaten der Module, die über wenigstens eine E/A-Einheit der Steuerung eingelesen werden, die an die Kommunikationsverbindung angeschlossen ist, von der Steuerung für die Rechenkerne bereitgestellt. Mit dem Bereitstellen der Eingangsdaten für alle Rechenkerne endet der erste Zeitabschnitt.
Der zweite Zeitabschnitt des Steuerungszyklus beginnt mit dem gleichzeitigen Freigeben der Rechenkerne, denen Eingangsdaten von Modulen zugeordnet sind, nachdem alle Eingangsdaten bereitstehen. Dies könnten beispielweise alle Rechenkerne oder eine Teilmenge aller Rechenkerne sein. Im zweiten Zeitab¬ schnitt verarbeiten die Rechenkerne dann die Eingangsdaten der Module, die dem jeweiligen Rechenkern zugeordnet sind, um Ausgangsdaten für die Module zu erzeugen, wobei jeder Rechenkern das Ende der Verarbeitung signalisiert. Sobald alle Re- chenkerne das Ende der Verarbeitung signalisiert haben, ist der zweite Zeitabschnitt des Steuerungszyklus beendet. Im sich daran anschließenden dritten Zeitabschnitt des Steuerungszyklus werden die Ausgangsdaten für die Module durch die Steuerung bereitgestellt, um über die E/A-Einheit der Steue¬ rung auf die Kommunikationsverbindung ausgegeben und an die Module verschickt zu werden. Dann ist der Steuerungszyklus beendet .
In Fig. 1 ist dieser prinzipielle Ablauf zur Steuerung eines technischen Prozesses mit einer Mehrzahl an eigenständig steuerbaren Modulen gezeigt, wobei die Module hier nicht dargestellt sind. Beispielhaft wird die Erfindung im Folgenden für eine Anzahl von dreißig eigenständig steuerbaren Modulen beschrieben. Die Steuerung weist drei Rechenkerne Cl, C2, C3 auf, die jeweils eine Steuerungsroutine ausführen. Unter ei- ner Steuerungsroutine ist die Verarbeitung/Berechnung von
Eingangsdaten zu Ausgangsdaten mittels zumindest eines Algo¬ rithmus zu verstehen.
Die Steuerungsroutinen 100, 110, 120 für die 30 Module werden bei der Konfiguration auf die drei Rechenkerne Cl, C2, C3 verteilt, wobei in der gezeigten Ausführung eine Gleichverteilung ausgeführt ist, d.h. jeder Rechenkern Cl, C2, C3 ist für zehn Module zuständig. Somit sind dem ersten Rechenkern Cl die zehn Steuerungsroutinen 100 für die ersten 10 Module zugeordnet. Dem zweiten Rechenkern C2 sind die zehn Steuerungsroutinen 110 der zweiten 10 Module zugeordnet und dem dritten Rechenkern C3 sind die zehn Steuerungsroutinen 120 der letzten 10 Module zugeordnet. Um dem Anwender der Steuerungsaufgabe die Zuordnung der eigenständig steuerbaren Mo- dule zu den Rechenkernen Cl, C2, C3 zu erleichtern, kann in einer Initialisierungsphase ein Rechenkern Cl die Anzahl und funktionale Ausprägung der eigenständig steuerbaren Module des technischen Prozesses erfassen. Eine Gleichverteilung der Steuerungsroutinen 100, 110, 120 der eigenständig steuerbaren Module auf die Rechenkerne Cl, C2, C3 ist jedoch nicht zwingend, insbesondere dann, wenn beispielsweise die eigenständig steuerbaren Module des tech¬ nischen Prozesses verschiedenen Funktionalitäten zugeordnet sind, so dass die erforderlichen Rechenleistungen für die Steuerungsroutinen 100, 110, 120 unterschiedlich groß sind. Die Zuordnung der Steuerungsroutinen 100, 110, 120 der Module zu den Rechenkernen Cl, C2, C3 kann dann so erfolgen, dass die den jeweiligen Rechenkernen Cl, C2, C3 zugeordnete Rechenlast im Wesentlichen gleich ist und sich dann eine im Wesentlichen gleich lange Berechnungszeit für die Rechenkerne Cl, C2, C3 ergibt.
Grundsätzlich besteht die Möglichkeit, dass die Zuordnung der Steuerungsroutinen 100, 110, 120 der Module zu den einzelnen Rechenkernen Cl, C2, C3 nach einem beliebig vorgegebenen Kri- terium erfolgen kann. Ein Kriterium für die Zuordnung kann wie erläutert sein, die Auslastung der Rechenkerne Cl, C2, C3 gleichmäßig zu gestalten, um im Wesentlichen eine gleich lange Rechenzeit für alle Rechenkerne Cl, C2, C3 zu errei¬ chen, um so die Gesamtrechenzeit für die Steuerungsaufgabe zu minimieren. Wenn einzelne Module des technischen Prozesses spezielle Anforderungen erfüllen müssen, kann ein weiteres Kriterium bei der Zuordnung der Steuerungsroutinen 100, 110, 120 der eigenständig steuerbaren Module zu den Rechenkernen Cl, C2, C3 sein, dass die Steuerungsroutinen 100, 110, 120 dieser besonderen Module auf verschiedene Rechenkerne Cl, C2, C3 verteilt werden.
Dies kann insbesondere dann vorteilhaft sein, wenn Module mit besonderen Sicherheitsanforderungen für den technischen Pro- zess vorgesehen sind. Die Sicherheitskriterien für den technischen Prozess können beispielsweise dadurch gewährleistet werden, dass die Steuerungsroutinen 100, 110, 120 der Module mit den speziellen Sicherheitsanforderungen verschiedenen Rechenkernen Cl, C2, C3 zugeordnet werden. Auch besteht die Möglichkeit, die Steuerungsroutinen 100, 110, 120 von Modu¬ len, die spezielle Sicherheitsforderungen erfüllen müssen, parallel auf mehreren Rechenkernen Cl, C2, C3 ausführen, um Fehler bei der Steuerung zu aufzudecken und dann zu verhindern .
Bei dem in Fig. 1 gezeigten Ablauf wird der erste Zeitab- schnitt ZI und der dritte Zeitabschnitt Z3 des Steuerungszyk¬ lus 150, d.h. das Einlesen der Eingangsdaten 130 der Module über die E/A-Einheit und das Bereitstellen der Eingangsdaten 130 für den jeweiligen zugeordneten Rechenkern Cl, C2, C3 bzw. das Bereitstellen der Ausgangsdaten 140 für die Module, nachdem alle Rechenkerne Cl, Cl, C3 das Ende der Verarbeitung der Steuerungsroutinen 100, 110, 120 signalisiert haben, und das Ausgeben der Ausgangsdaten 140 über die E/A-Einheit von einem Rechenkern, bei der in Fig. 1 gezeigten Darstellung vom ersten Rechenkern Cl ausgeführt. Mit dieser Vorgehensweise besteht die Möglichkeit, die Hardware der Steuerung optimal auszunutzen. Es müssen dann keine zusätzlichen Einheiten vorgesehen sein, die den ersten Zeitabschnitt ZI bzw. dritten Zeitabschnitt Z3 des Steuerungszyklus 150 abarbeiten. Zwischen dem ersten Zeitabschnitt ZI und dem zweiten Zeitabschnitt Z2 des Steuerungszyklus 150 und dem zweiten Zeitab¬ schnitt Z2 und dem dritten Zeitabschnitt Z3 des Steuerungs¬ zyklus 150 wird, wie Fig. 1 gezeigt, jeweils eine Synchroni¬ sierung Syncl, Sync2 durchgeführt. Die Synchronisierungen Syncl, Sync2 können dabei auf einer eigenständigen Synchroni- sierungseinheit , die in einer Kontrolleinheit der Steuerung enthalten ist, ablaufen. Es besteht jedoch auch die Möglichkeit, dass die Synchronisierungen Syncl, Sync2 von einem Rechenkern Cl, C2, C3 bzw. von allen Rechenkernen Cl, C2, C3 gemeinsam als Programmbestandteil der Steuerungsaufgabe aus¬ geführt werden.
Während einer Initialisierungsphase erfasst die Synchronisie- rungseinheit die Anzahl aller am Prozess beteiligten bzw. zur Verfügung stehenden Rechenkerne Cl, C2, C3. Alternativ kann der Synchronisierungseinheit die Anzahl auch seitens der Steuerung oder einer anderen Einheit mitgeteilt werden. Zur Synchronisierung Syncl, Sync2 melden sich die einzelnen Rechenkerne Cl, C2, C3 bei der Synchronisierungseinheit an. Dies erfolgt direkt nachdem der jeweilige Rechenkern Cl, C2, C3 die ihm zugewiesene Task erledigt hat oder dem jeweiligen Rechenkern Cl, C2, C3 keine Task zugewiesen wurde. Dann wird seitens der Synchronisierungseinheit festgestellt, ob die bei der Initialisierungsphase festgelegte Anzahl von Rechenkernen Cl, C2, C3 angemeldet sind. Wenn nicht, wird der sich anmel- dende Rechenkern Cl, C2, C3 in einen Wartemodus versetzt. So¬ bald sich der letzte Rechenkern Cl, C2, C3 bei der Synchronisierungseinheit anmeldet und somit die festgelegte Anzahl von Rechenkernen Cl, C2, C3 erreicht wird, werden alle bisher in den Wartemodus versetzten Rechenkerne Cl, C2, C3 wieder in den aktiven Modus versetzt. Die Rechenkerne Cl, C2, C3 begin¬ nen dann mit der nächsten zugewiesenen Task.
Beim ersten Synchronisierungsschritt Syncl zwischen dem ers¬ ten Zeitabschnitt ZI und dem zweiten Zeitabschnitt Z2 des Steuerungszyklus 150 erfolgt der Ablauf gemäß Figur 1 dann derart, dass sich der zweite Rechenkern C2 und der dritte Re¬ chenkern C3 direkt bei der Synchronisierungseinheit anmelden. Die Synchronisierungseinheit, der aus der Initialisierungs¬ phase bekannt ist, dass drei Rechenkerne Cl, C2, C3 an dem Prozess beteiligt sind, stellt dann fest, dass sich aktuell nur zwei Rechenkerne C2, C3 angemeldet haben und versetzt die beiden Rechenkerne C2, C3 deshalb in den Wartemodus. Sobald der erste Rechenkern Cl die Eingangsdaten 130 der Module bereitgestellt und somit seine diesbezügliche Task erledigt hat, meldet sich der erste Rechenkern Cl ebenfalls bei der Synchronisierungseinheit an. Die Synchronisierungseinheit stellt nun fest, dass sich alle Rechenkerne Cl, C2, C3 ange¬ meldet haben und versetzt den zweiten Rechenkern C2 und den dritten Rechenkern C3 wieder in den aktiven Modus. Die drei aktiven Rechenkerne Cl, C2, C3 können dann die ihnen jeweils zugewiesene Task im zweiten Zeitabschnitt Z2 abarbeiten. Beim zweiten Synchronisierungsschritt Sync2 zwischen dem zweiten Zeitabschnitt Z2 und dem dritten Zeitabschnitt Z3 des Steuerungszyklus 150 erfolgt der Ablauf gemäß Figur 1 dann derart, dass sich die jeweiligen Rechenkerne Cl, C2, C3 je- weils direkt nach Abarbeitung ihrer jeweils zugewiesenen Task bei der Synchronisierungseinheit anmelden. Die Synchronisie- rungseinheit stellt fest, ob sich aktuell schon alle drei am Prozess beteiligten Rechenkerne Cl, C2, C3 angemeldet haben, wobei der Synchronisierungseinheit aus der Initialisierungs- phase bekannt ist, dass drei Rechenkerne Cl, C2, C3 an dem Prozess beteiligt sind. Solange sich nicht die Anzahl von drei angemeldeten Rechenkernen Cl, C2, C3 erreicht ist, versetzt die Synchronisierungseinheit die sich anmeldenden Re¬ chenkerne Cl, C2, C3 in den Wartemodus. Sobald der letzte der drei Rechenkerne Cl, C2, C3 mit der Abarbeitung der ihm zuge¬ wiesenen Steuerungsroutinen fertig ist, meldet sich dieser Rechenkern Cl, C2, C3 ebenfalls bei der Synchronisierungseinheit an. Diese stellt nun fest, dass sich alle Rechenkerne Cl, C2, C3 angemeldet haben und versetzt die anderen beiden Rechenkerne Cl, C2, C3 wieder in den aktiven Modus.
Dem jeweils zugeordneten Rechenkern Cl, C2, C3 werden die Eingangsdaten 130 der Module in einem dem jeweiligen Rechenkern Cl, C2, C3 zugeordneten Speicherbereich in der Steuerung zur Verfügung gestellt. Die Rechenkerne Cl, C2, C3 können dann die ihnen jeweils zugewiesene Task bzw. Routine insbe¬ sondere im zweiten Zeitabschnitt Z2 abarbeiten, ohne sich ge¬ genseitig zu behindern bzw. auszubremsen . Der Speicher der Steuerung kann auch so ausgelegt sein, dass sich mehrere Re- chenkerne Cl, C2, C3 einen Speicherbereich teilen. Dies ist insbesondere dann vorteilhaft, wenn die Rechenkerne Cl, C2, C3 auf gemeinsame Eingangsdaten 130 zugreifen.
Bei dem in Fig. 1 gezeigten Ablauf erfolgt das Einlesen der Eingangsdaten 130 der Module über die E/A-Einheit der Steue¬ rung und das Bereitstellen der Eingangsdaten 130 in dem, dem jeweiligen Rechenkern Cl, C2, C3 zugeordneten Speicherbereich durch den ersten Rechenkern Cl, der dazu in den aktiven Modus versetzt wird.
Das Bereitstellen der Ausgangsdaten 140 für die Module und Ausgeben der Ausgangsdaten 140 über die E/A-Einheit der Steuerung erfolgt bei dem in Fig. 1 gezeigten Ablauf wiederum durch den ersten Rechenkern Cl . Der erste Rechenkern Cl wird dazu in den aktiven Modus versetzt, um die Ausgangsdaten 140, die die Rechenkerne Cl, C2, C3 in den zugeordneten Speicher- bereichen bereitgestellt haben, aufzubereiten. Im Rahmen dieser Bereitstellung kann der erste Rechenkern Cl dann auch eine Nachbearbeitung der Ausgangsdaten 140 für die Module ausführen, z.B. eine Skalierung oder eine einfache Koordinatentransformation .
Fig. 2 zeigt eine mögliche Abwandlung des Ablaufes gemäß Fig. 1. Beim Ablauf gemäß Fig. 2 sind zwischen der Steuerung und dem technischen Prozess zwei Kommunikationsverbindungen zum Datenaustausch vorgesehen, wobei jede Kommunikationsverbin- dung über eine eigenständige E/A-Einheit mit der Steuerung verbunden ist. Wie in Fig. 2 gezeigt ist, ist jeder E/A-Einheit dann ein Rechenkern, der ersten E/A-Einheit der erste Rechenkern Cl und der zweiten E/A-Einheit der zweite Rechenkern C2 zugeordnet, die dann in dem ersten Zeitabschnitt ZI bzw. dem dritten Zeitabschnitt Z3 des Steuerungszyklus 150 das Bereitstellen der Eingangsdaten 130, 135 und der Ausgangsdaten 140, 145 für die jeweilig zugeordnete E/A-Einheit ausführen. Diese Vorgehensweise ist insbesondere dann vor¬ teilhaft, wenn eine hohe Datenlast an Eingangsdaten 130, 135 bzw. Ausgangsdaten 140, 145 im Rahmen der Steuerungsaufgabe gegeben ist. Durch die parallele Bereitstellung der Eingangsdaten 130, 135 bzw. Ausgangsdaten 140, 145 durch zwei Rechenkerne Cl, C2 kann die Zeit für die Bereitstellung verkürzt und damit die Gesamtzeit für den Steuerungszyklus 150 mini- miert werden. Fig. 3 zeigt eine weitere Variante des Ablaufes, bei der drei Kommunikationsverbindungen zwischen der Steuerung und dem technischen Prozess vorgesehen sind, wobei jede Kommunikati¬ onsverbindung über eine eigene E/A-Einheit in der Steuerung verfügt. Jeder E/A-Einheit ist dann ein Rechenkern Cl, C2, C3 zugeordnet, der ersten E/A-Einheit der erste Rechenkern Cl, der zweiten E/A-Einheit der zweite Rechenkern C2 und der dritten E/A-Einheit der dritte Rechenkern C3. Mit dieser Vorgehensweise kann die Parallelisierung der Bereitstellung der Eingangsdaten 130, 135, 138 bzw. der Ausgangsdaten 140, 145, 148 weiter erhöht und damit die Gesamtrechenzeit des Steue¬ rungszyklus 150 weiter verkürzt werden.
Fig. 4 zeigt eine weitere mögliche Abwandlung des Ablaufes, bei dem analog zu Fig. 3 drei Kommunikationsverbindungen zwischen der Steuerung und dem technischen Prozess vorgesehen sind. Jede Kommunikationsverbindung verfügt wiederum über eine eigene E/A-Einheit in der Steuerung, der ein Rechenkern Cl, C2, C3 zugeordnet ist, der ersten E/A-Einheit der erste Rechenkern Cl, der zweiten E/A-Einheit der zweite Rechenkern C2 und der dritten E/A-Einheit der dritte Rechenkern C3.
Im Unterschied zu den vorstehend beschriebenen Abläufen verfügt die Steuerung beim Ablauf gemäß Fig. 4 über drei Syn- chronisierungseinheiten, die unabhängig voneinander für unterschiedliche Synchronisierungen Syncl, Sync2, SyncA, SyncB, Synca zuständig sind. Die drei Synchronisierungseinheiten können als ein oder mehrere eigenständige Bauelemente, bei¬ spielsweise als Teil der Kontrolleinheit ausgeführt sein. Es besteht jedoch auch die Möglichkeit, die Synchronisierung von einem Rechenkern Cl, C2, C3 bzw. von allen Rechenkernen Cl, C2, C3 gemeinsam als Programmbestandteil der Steuerungsauf¬ gabe ausführen zu lassen. Die erste Synchronisierungseinheit steuert, wie bereits in
Zusammenhang mit den Abläufen in Fig. 1 bis Fig. 3 beschrieben, die beiden Synchronisierungen Syncl, Sync2 zwischen dem ersten Zeitabschnitt ZI und dem zweiten Zeitabschnitt Z2 bzw. zwischen dem zweiten Zeitabschnitt Z2 und dem dritten Zeitabschnitt Z3. Die drei Zeitabschnitte ZI, Z2, Z3 der Steuerungsaufgabe kön¬ nen aber in weitere Sub-Zeitabschnitte unterteilt sein, den jeweils Tasks für die Rechenkerne Cl, C2, C3 zugeordnet sind, die dann zusätzlich synchronisiert werden müssen. Der Ablauf in Fig. 4 weist für jeden der drei Zeitabschnitten ZI, Z2, Z3 zwei solcher Sub-Zeitabschnitte für jeweils zwei der drei Re¬ chenkerne auf. Es besteht aber die Möglichkeit, Sub-Zeitab¬ schnitte nur in einzelnen Zeitabschnitten ZI, Z2, Z3 der Steuerungsaufgabe und für eine beliebige Anzahl der Rechen¬ kerne Cl, C2, C3 in der Steuerung vorzusehen. Weiterhin kann natürlich auch die Anzahl der Sub-Zeitabschnitte abhängig von den auszuführenden Tasks variiert werden.
Im ersten Zeitabschnitt ZI beim Bereitstellen der Eingangsdaten der Module für den jeweils zugeordneten Rechenkern durch die Steuerung kann es beispielsweise erforderlich sein, die Eingangsdaten vor zu verarbeiten. Beim dem in Fig. 4 gezeigten Ablauf ist dies für die Eingangsdaten 130, 135 der ersten und zweiten E/A-Einheit erforderlich. Dazu ist der erste Zeitabschnitt ZI in zwei Sub-Zeitabschnitte Zl-1, Zl-2 unter- teilt. Die Eingangsdaten 130, 135 der ersten beiden E/A-Einheiten werden von dem ersten Rechenkern Cl mit einer ersten Task bzw. von dem zweiten Rechenkern C2 mit einer zweiten Task verarbeitet. Nach Beendigung ihrer jeweiligen Task melden sich der ersten Rechenkern Cl und der zweiten Rechenkern C2 bei der zweiten Synchronisierungseinheit an, die analog zu der ersten Synchronisationseinheit ausgelegt ist, die die beiden Synchronisierungen Syncl, Sync2 zwischen dem ersten Zeitabschnitt ZI und dem zweiten Zeitabschnitt Z2 bzw. zwi¬ schen dem zweiten Zeitabschnitt Z2 und dem dritten Zeitab- schnitt Z3 ausführt. Der Rechenkerne, der sich zuerst bei der zweiten Synchronisationseinheit anmeldet, wird in den War¬ temodus versetzt bis sich auch der andere Rechenkern angemel¬ det hat Der zweiten Synchronisierungseinheit ist bekannt, dass zwei Rechenkerne Cl, C2 an dem Vorverarbeitungsprozess beteiligt sind. Dies kann analog zur ersten Synchronisierungseinheit dadurch erfolgen, dass die zweite Synchronisierungseinheit in der Initialisierungsphase die am Prozess beteiligten Rechen- kernen Cl, C2 erfasst. Alternativ kann der Synchronisierungs¬ einheit die Anzahl auch seitens der Steuerung oder einer anderen Einheit beispielsweise der ersten Synchronisierungseinheit mitgeteilt werden. Wenn sich die beiden an der Task beteiligten Rechenkernen Cl, C2 bei der zweiten Synchronisationseinheit anmeldet haben, erkennt die zweiten Synchronisationseinheit also, dass der Vorverarbeitungsprozess abgeschlossen ist. Die zweite Syn¬ chronisationseinheit führt dann die Synchronisierung SyncA zwischen dem ersten Sub-Zeitabschnitt Zl-1 und dem zweiten
Sub-Zeitabschnitt Zl-2 des ersten Zeitabschnitts ZI aus. Der Rechenkern Cl führt dann in einer weiteren Task im zweiten Sub-Zeitabschnitt Zl-2 des ersten Zeitabschnitts ZI die Ein¬ gangsdaten 130, 135 zusammen und stellt die zusammengeführten Eingangsdaten dann als neue Eingangsdaten 131 für die weiteren Bearbeitung zur Verfügung.
Da für den zweiten Rechenkern C2 im zweiten Sub-Zeitabschnitt Zl-2 des ersten Zeitabschnitts ZI keine Task vorgesehen ist, meldet sich der zweiten Rechenkern C2 direkt bei der ersten Synchronisationseinheit an und wird, von der ersten Synchro¬ nisationseinheit in den Wartemodus versetzt. Der ersten Syn¬ chronisationseinheit ist aus der Initialisierungsphase be¬ kannt, dass an dem Prozess im ersten Zeitabschnitt ZI drei Rechenkerne Cl, C2, C3 beteiligt sind. Wenn der erste Rechen¬ kern Cl nach Erledigung der weiteren Task im zweiten SubZeitabschnitt Zl-2 des ersten Zeitabschnitts ZI und der dritte Rechenkern C3 nach Erledigung der Task, dem Bereitstellen der dritten Eingangsdaten 138, im ersten Zeitabschnitts ZI bei der ersten Synchronisationseinheit anmeldet haben, führt die erste Synchronisationseinheit dann die erste Synchronisation Syncl aus, die bereits in Zusammenhang mit dem Abläufen in Fig. 1 bis Fig. 3 beschrieben wurde.
Analog zu der Unterteilung des ersten Zeitabschnitts ZI ist beim Ablauf gemäß Fig. 4 auch der zweite Zeitabschnitt Z2 in zwei Sub-Zeitabschnitte Z2-1, Z2-2 unterteilt. Die dritte Synchronisationseinheit, die für die Synchronisation Synca zwischen dem ersten Sub-Zeitabschnitt Z2-1 und dem zweiten Sub-Zeitabschnitt Z2-2 des zweiten Zeitabschnitts Z2 zustän¬ dig ist, führt die Synchronisation zwischen dem ersten Sub- Zeitabschnitt Z2-1 und dem zweiten Sub-Zeitabschnitt Z2-2 des zweiten Zeitabschnitts Z2 dann analog zu der beschriebenen Arbeitsweise der ersten und der zweiten Synchronisationseinheit aus. Der erste Rechenkern Cl verarbeitet die sowohl dem ersten Rechenkern Cl als auch dem zweiten Rechenkern C2 zugewiesenen Eingangsdaten 131 im zweiten Zeitabschnitt Z2 auf Basis der ersten Steuerungsroutine 100 und meldet sich nach Erledigung der Task bei der ersten Synchronisationseinheit an. Der zweite Rechenkern C2 dagegen führt mit den zugewiesenen Eingangsdaten 131 im zweiten Zeitabschnitt Z2 zwei Steuerungs¬ routinen aus. Auf Basis der zweiten Steuerungsroutine 110 verarbeitet der zweite Rechenkern C2 zunächst im ersten Sub¬ Zeitabschnitt Z2-1 des zweiten Zeitabschnitts Z2 die Ein- gangsdaten 131 und meldet sich nach Erledigung der Task bei der dritten Synchronisationseinheit an.
Auch dem dritten Rechenkern C3 sind im zweiten Zeitabschnitt Z2 zwei Steuerungsroutinen zur Verarbeitung der dem dritten Rechenkern C3 zugewiesenen Eingangsdaten 138 zugeordnet. Der dritte Rechenkern C3 arbeitet im ersten Sub-Zeitabschnitt Z2- 1 des zweiten Zeitabschnitts Z2 mit den zugewiesenen Eingangsdaten 138 die dritte Steuerungsroutine 120 ab und meldet sich anschließend, wie der zweite Rechenkern C2, bei der dritten Synchronisationseinheit an.
Der dritten Synchronisationseinheit ist aus der Initialisie¬ rungsphase bekannt, dass an dem Prozess im ersten Sub-Zeitab- schnitt Z2-1 des zweiten Zeitabschnitts Z2 der Steuerungsauf¬ gabe zwei Rechenkerne C2, C3 beteiligt sind. Die dritte Syn- chronisationseinheit versetzt den Rechenkern der seine Task zuerst erledigt hat in den Wartemodus. Sobald sich nun beide an dem Prozess beteiligten Rechenkerne C2, C3 dann bei der dritten Synchronisationseinheit angemeldet haben, führt die der dritten Synchronisationseinheit die Synchronisation
Synca aus, um vom ersten Sub-Zeitabschnitt Z2-1 auf den zweiten Sub-Zeitabschnitt Z2-2 überzugehen.
Der zweite Rechenkern C2 und der dritte Rechenkern C3 führen dann im zweiten Sub-Zeitabschnitt Z2-2 des zweiten Zeitab- Schnitts Z2 jeweils eine weitere Steuerungsroutine 111, 121 aus. Nach Beendigung der Steuerungsroutinen 111, 121 melden sich der zweite Rechenkern C2 bzw. der dritte Rechenkern C3 jeweils direkt bei der ersten Synchronisationseinheit an. Die erste Synchronisationseinheit weiß aus der Initialisie¬ rungsphase, dass im zweiten Zeitabschnitt Z2 der Steuerungs¬ aufgabe alle drei Rechenkerne Cl, C2, C3 an dem Prozess be¬ teiligt sind. Bis sich nicht alle drei Rechenkerne Cl, C2, C3 bei der ersten Synchronisationseinheit angemeldet haben, ver- setzt die erste Synchronisationseinheit den jeweils sich an¬ meldenden Rechenkern in den Wartemodus. Die zweite Synchronisation Sync2 wird dann von der erste Synchronisationseinheit beim Übergang zwischen dem zweiten Zeitabschnitt Z2 und dem dritten Zeitabschnitt Z3 ausgeführt, sobald sich alle drei Rechenkerne Cl, C2, C3 bei der erste Synchronisationseinheit angemeldet haben. Analog zum ersten Zeitabschnitt ZI ist auch der dritte Zeit¬ abschnitt Z3 für den ersten und zweiten Rechenkern Cl, C2 in zwei Sub-Zeitabschnitte, einen ersten Sub-Zeitabschnitt Z3-1 und einen zweiten Sub-Zeitabschnitt Z3-2 unterteilt, wobei die Synchronisation wiederum von der zweiten Synchronisationseinheit durchgeführt wird.
Der erste Rechenkern Cl führt im ersten Sub-Zeitabschnitt Z3- 1 des dritten Zeitabschnitts Z3 die Bereitstellung von Zwi- schen-Ausgangsdaten 141 durch. Sobald der erste Rechenkern Cl die Task erledigt hat, meldet sich der erste Rechenkern Cl bei der zweiten Synchronisationseinheit an. Der zweite Re¬ chenkern C2, dem nach der zweiten Synchronisation Sync2 keine Task zugewiesen wurde, meldet sich sofort bei der zweiten Synchronisationseinheit an und wird in den Wartemodus ver¬ setzt .
Der zweiten Synchronisationseinheit ist aus der Initialisie¬ rungsphase bekannt, dass an dem von der zweiten Synchronisa- tionseinheit zu überwachenden Prozess im dritten Zeitab¬ schnitt Z3 der erste Rechenkern Cl und der zweite Rechenkern C2 beteiligt sind. Nachdem sich beide Rechenkerne Cl, C2 dann bei der zweiten Synchronisationseinheit angemeldet haben, führt die zweite Synchronisationseinheit die weitere Synchro- nisation SyncB durch.
Der erste Rechenkern Cl und der zweite Rechenkern C2 verarbeiten nach der Synchronisation SyncB die Zwischen-Ausgangs- daten 141 weiter, um die Ausgangsdaten 140, 145 bereitzustel- len. Parallel zu den beiden Sub-Zeitabschnitte Z3-1, Z3-2 des dritte Zeitabschnitt Z3 für den ersten und zweiten Rechenkern Cl, C2, führt der dritte Rechenkern C3 im dritten Zeitabschnitt Z3 die Bereitstellung der Ausgangsdaten 148 durch. Mit dem in Fig. 4 gezeigten Ablauf kann die Parallelisierung bei der Bereitstellung der Eingangsdaten 130, 135, 138 bzw. der Ausgangsdaten 140, 145, 148 im ersten Zeitabschnitt ZI bzw. im dritten Zeitabschnitt Z3 sowie die Abarbeitung der Steuerungsroutinen im zweiten Zeitabschnitt Z2 weiter erhöht und damit die Gesamtrechenzeit des Steuerungszyklus 150 zu¬ sätzlich verkürzt werden.
Das Konzept der parallelisierten Abarbeitung einer Steuerungsaufgabe bzw. Steuerungsroutine 100, 110, 120 für eine Anzahl von eigenständig steuerbaren Modulen eines technischen Prozesses sieht drei Zeitabschnitte ZI, Z2, Z3 vor. Einen ersten Zeitabschnitt ZI zum Einlesen und Bereitstellen der
Eingangsdaten 130, 135, 138 der Module für den jeweilig zuge¬ ordneten Rechenkern Cl, C2, C3, einen zweiten Zeitabschnitt Z2 zur Verarbeitung der Eingangsdaten zu Ausgangsdaten mittels der Steuerungsroutinen 100, 110, 120 und einen dritten Zeitabschnitt Z3 zum Bereitstellen und Ausgeben der Ausgangsdaten 140, 145, 148 für die Module. In allen drei Zeitab¬ schnitten ZI, Z2, Z3 können jeweils mehrere Rechenkerne Cl, C2, C3 parallel zur Bearbeitung genutzt werden. Es ist dabei jedoch nicht zwingend, dass immer alle Rechenkerne Cl, C2, C3 zum Einsatz kommen.
Grundsätzlich besteht abhängig von dem vorgegebenen technischen Prozess , d.h. abhängig vom Volumen der Ein- und Ausgabedaten 130, 135, 138, 140, 145, 148 und der Anzahl der ei- genständig steuerbaren Module die Möglichkeit, den Paralleli- sierungsgrad in den drei Zeitabschnitten ZI, Z2, Z3 des Steu¬ erungszyklus 150, dem Bereitstellen der Eingangsdaten, dem Verarbeiten der Eingangsdaten zu Ausgangsdaten und dem Bereitstellen der Ausgangsdaten individuell einzustellen, um die Arbeitsbelastung optimal auf die Rechenkerne Cl, C2, C3 zu verteilen und damit eine maximale Verkürzung der Zeit des Steuerungszyklus 150 zu erreichen.
Bei einer Anzahl von n eingesetzten Rechenkernen sind fol- gende Varianten denkbar. Es können 1 bis n Rechenkerne für das Bereitstellen der Ein- bzw. Ausgangsdaten im ersten und dritten Zeitabschnitt eingesetzt werden. Die Rechenkerne sind dabei jeweils einer E/A-Einheit der Steuerung zugeordnet. Re¬ chenkerne, die nicht zum Bereitstellen der Ein- und Ausgangs¬ daten im ersten und dritten Zeitabschnitt des Steuerungszyklus eingesetzt werden, melden sich direkt bei der Synchroni- sierungseinheit , die als eigenständige Einheit in der Steue¬ rung vorliegen, aber auch als Programmbestandteil auf einem bzw. allen Rechenkernen vorgesehen sein kann, an. Alle nicht benötigen Rechenkerne befinden sich im Wartemodus bzw. werden in den Wartemodus versetzt. Im zweiten Zeitabschnitt des Steuerungszyklus, bei dem die Eingangsdaten mittels Steue¬ rungsroutinen zu Ausgangsdaten verarbeitet werden, kann die parallele Berechnung wiederum von 1 bis n Rechenkernen erfolgen, abhängig davon, wie die Zuordnung der Rechenkerne zu den eigenständig steuerbaren Modulen des technischen Prozesses konfiguriert ist. Rechenkerne, die keine parallele Berechnung ausführen bzw. ihre Berechnung abgeschlossen haben, melden sich wiederum direkt bei der Synchronisierungseinheit an, welche diese Rechenkerne dann aus dem aktiven Modus in den Wartemodus versetzt. Grundsätzlich können natürlich in der Steuerung immer auch weitere Rechenkerne vorgesehen sein, die nicht an der Steuerungsaufgabe beteiligt sind bzw. andere Steuerungsaufgaben wahrnehmen.
Das Konzept zur parallelisierten Bearbeitung einer Steue- rungsaufgabe eines technischen Prozesses für eine Anzahl von eigenständig steuerbaren Modulen eignet sich insbesondere zur Bewegungssteuerung im Rahmen von Automatisierungsaufgaben, bei denen extrem kurze Zykluszeiten hoch präzise eingehalten werden müssen, um EchtZeitbedingungen erfüllen zu können. Be- wegungssteuerungen sind darüber hinaus in der Regel sehr re- chenaufwändig, wobei jedoch oft aber identische Regelalgo¬ rithmen für die eigenständig steuerbaren Module ausgeführt werden müssen. Ferner müssen bei der Bewegungssteuerung meistens eine große Anzahl von Ein- und Ausgangsdaten zwischen dem Antriebssystem und der Steuerung ausgetauscht werden. Fig. 5 zeigt einen ersten Anwendungsfall, bei dem das paral- lelisierte Steuerungskonzept im Rahmen eines Antriebssystems mit acht Achsen 1 bis 8 eingesetzt wird. Jeder Achse 1 bis 8 ist dabei, wie in Fig. 5 schematisch gezeigt, ein Motor 11 zugeordnet, der eine Antriebswelle 12, einen Antrieb mit Spu¬ lenpaket 13 und eine Feedbackeinheit 14 umfasst. Über die Feedbackeinheit 14 werden die Eingangsdaten der Achsen, z.B. die Geberdaten, ausgegeben und die Ausgangsdaten für die Achsen, z.B. die Stromwerte zum Ansteuern der Spulen im Antrieb, empfangen. Die Feedbackeinheiten 14 sind über eine Kommunikationsverbindung mit der Steuerung verbunden. Die Kommunikationsverbindung ist dabei so ausgeführt, dass jede Feedbackein¬ heit 14 an eine Kommunikationsleitung 15 angeschlossen ist. Alternativ besteht auch die Möglichkeit, dass an Stelle einer Feedbackeinheiten im Motor eine Kommunikationseinheit vorge¬ sehen ist, welche die Eingangsdaten übermittelt und die Aus¬ gangsdaten an ein Leistungsteil übergibt, der die Spulen dann betreibt. Auch wäre es denkbar, dass das Leistungsteil sepa- rat angeordnet ist, und mit dem Motor eine Kommunikationsverbindung aufweist.
Die Kommunikationsleitungen 15 sind mit Anschlüssen 21 einer Schnittstelleneinheit 20 verbunden. Die Schnittstelleneinheit 20 setzt die auf den Kommunikationsleitungen 15 parallel ausgetauschten Daten in seriell ablaufende oder übertragende Da¬ tenpakete um. Die Datenpakete werden dann über einen weiteren Anschluss 23 der Schnittstelleneinheit 20, eine weitere Kom¬ munikationsleitung 22, die zwischen der Schnittstelleneinheit 20 und einer E/A-Einheit 31 der Steuerung 30 besteht, ausge¬ tauscht. Für die Datenkommunikation zwischen der Schnittstelleneinheit 20 und der E/A-Einheit 31 der Steuerung 30 eignet sich dabei insbesondere ein Netzwerkprotokoll wie das Ether- CAT-Protokoll , mit dem ein schneller Datenaustausch erfolgt kann . Grundsätzlich besteht aber auch die Möglichkeit, dass die Feedbackeinheiten 14 der Achsen 1 bis 8 ohne Zwischenschalten einer Schnittstelleneinheit 20 direkt mit E/A-Einheiten 31 der Steuerung 30 verbunden sind. Auch kann alternativ vorge- sehen sein, dass mehrere Schnittstelleneinheiten 20, die jeweils an eine E/A-Einheit 31 der Steuerung 30 angeschlossen sind, zum Einsatz kommen.
Bei dem in Fig. 5 gezeigten ersten Anwendungsfall weist die Steuerung 30 neben der E/A-Einheit 31 einen Prozessor 39 mit drei Rechenkernen 33, 34, 35, eine Kontrolleinheit 36, die eine Synchronisierungseinheit 37 enthält, und einen Speicher 38 auf. Der Prozessor 39 steht dabei mit der E/A-Einheit 31, der Kontrolleinheit 36 und dem Speicher 38 in Verbindung, um Daten auszutauschen. Die Steuerung kann natürlich weitere nicht gezeigte Hardware wie beispielweise weitere Prozesso¬ ren, Speicher etc. aufweisen.
Die Steuerung des in Fig. 5 gezeigten Antriebssystems ist so konfiguriert, dass dem ersten Rechenkern 33 im Prozessor 39 der Steuerung 30 die ersten drei Achsen 1, 2, 3, dem zweiten Rechenkern 34 die drei weitere Achsen 4, 5, 6 und dem dritten Rechenkern 35 die verbleibenden zwei Achsen 7, 8 zugeordnet sind. Das Bereitstellen der Ein- und Ausgangsdaten im Spei- eher 38 erfolgt durch den ersten Rechenkern 33, der auf die
E/A-Einheit 31 der Steuerung 30 Zugriff hat. Der Wechsel zwi¬ schen dem ersten und zweiten Zeitabschnitt bzw. dem zweiten und dritten Zeitabschnitt des Steuerungszyklus wird durch die Synchronisierungseinheit 37 in der Kontrolleinheit 36 der Steuerung 30 getriggert.
Fig. 6 zeigt einen weiteren Anwendungsfall, bei dem die in Fig. 5 gezeigte Steuerung 30 mit einer Schnittstelleneinheit 20 zum Steuern eines linearen Transportsystems 40 eingesetzt wird. Das lineare Transportsystem 40 setzt sich aus einer
Mehrzahl von Motormodulen, in der in Fig. 5 gezeigten Ausge- staltung aus zehn Motormodulen 401 bis 410 zusammen. Die Motormodule 401 bis 410 weisen einen Verfahrweg 41 und eine vorgegebene Anzahl von längs des Verfahrweges 41 angeordneten eigenständig bestrombaren Antriebsspulen 42 auf. Bei der in Fig. 6 gezeigten Auslegung bilden die Motormodule 401 bis 410 zusammen einen geschlossenen elliptischen Verfahrweg 41, wobei acht Motormodule 403 bis 410 gerade und zwei Motormodule 401, 402 als Kurvenmodule ausgebildet sind. Auf dem Verfahrweg 41 der Motormodule 401 bis 410 sind Trans¬ portelemente in Form von Schlitten 43 angeordnet, die die ei¬ genständig steuerbaren Module des technischen Prozesses bil¬ den. Bei der in Fig. 6 gezeigten Auslegung sind vier solche Schlitten 43, 44, 45, 46 vorgesehen. Grundsätzlich besteht die Möglichkeit, dass eine beliebige Anzahl von Transportele¬ menten, die eigenständig angesteuert werden, am Verfahrweg 41 angeordnet sein können.
Jeder Schlitten 43 bis 46 weist eine Magneteinrichtung auf, um durch die Antriebsspulen 42 der Motormodule 401 bis 410 mittels eines wandernden Magnetfeldes bewegt zu werden. Die Steuerung der Schlitten 43 bis 46 erfolgt über das Steuern der Bestromung der Antriebsspulen 42 in den Motormodulen 401 bis 410. Als Eingangsdaten für die Steuerung 30 liefern die Motormodule 401 bis 410 Positionsdaten der Schlitten 43 bis 46, die mittels an den Motormodulen 401 bis 410 angeordneten Positionserfassungseinrichtungen erfasst werden.
Der Datenaustausch erfolgt bei dem in Fig. 6 gezeigten Anwen- dungsfall über speziell ausgezeichnete Motormodule 403, 410, die auch als Einspeisemodule bezeichnet werden. Über die Ein¬ speisemodule tauschen dann die mit dem Einspeisemodul verbun¬ denen weiteren Motormodule 401, 402, 404 bis 409 Daten mit der Steuerung 30 aus. Die Motormodule 401 bis 410 sind unter- einander mit den Einspeisemodulen über eine Kommunikationsleitung verbunden. Bei dem in Fig. 6 gezeigten Anwendungsfall sind zwei Motormodule 403, 410 als Einspeisemodule vorgese¬ hen, die jeweils für den Datenaustausch von fünf weiteren Motormodulen 401, 402, 404 bis 409 verantwortlich sind. Grundsätzlich besteht jedoch die Möglichkeit, dass jedes Motormo- dul 401 bis 410 eigenständig über eine Kommunikationsleitung 15 direkt oder über die zwischengeschaltete Schnittstellen¬ einheit 20 mit der Steuerung 30 verbunden ist.
Die Steuerung des linearen Transportsystems 40 in Fig. 5 ist so konfiguriert, dass der erste bzw. dritte Zeitabschnitt des Steuerungszyklus, das Bereitstellen der Eingangs- und Aus¬ gangsdaten vom einen Rechenkern, dem ersten Rechenkern 33 der Steuerung 30, der Zugriff auf die E/A-Einheit 31 hat, ausge¬ führt wird. Die Berechnung der Steuerdaten für die einzelnen Schlitten 43 bis 46 wird dann parallel durch die drei Rechenkerne 33, 34, 35 des Prozessors 39 ausgeführt, wobei zwei Schlitten 43, 44 dem ersten Rechenkern 33, ein weiterer
Schlitten 45 dem zweiten Rechenkern 34 und der letzte Schlitten 46 dem dritten Rechenkern 35 zugeordnet ist.
Das parallelisierte Steuerungskonzept ist besonders vorteil¬ haft für lineare Transportsysteme, da sehr kurze Zykluszeiten eingehalten und eine Vielzahl von Ein- und Ausgangsdaten verarbeitet werden müssen. Außerdem können die Ein- und Aus- gangsdaten der Motormodule auf einfache Weise immer auch an¬ deren Motormodulen zugeordnet werden. Eine solche Neuzuord¬ nung ist dann erforderlich, wenn die Schlittenposition zwischen verschiedenen Motormodulen gewechselt hat. Auch sind bei linearen Transportsystemen, wenn sie im Rahmen der Ferti- gung eingesetzt werden, oft hohe Sicherheitsanforderungen einzuhalten, was die Ansteuerung der einzelnen Transportelemente betrifft. Durch eine entsprechende Konfiguration und Aufteilung der Berechnung bzw. durch die Möglichkeit, die Ausgangsdaten für ein Transportelement mehrfach auf verschie- denen Kernen zu berechnen, können solche Sicherheitsanforderungen zuverlässig eingehalten werden. In Fig. 7 ist ein weiterer Anwendungsfall für einen Mehr-Achsen-Roboter 50, im vorliegenden Fall einen Sechs-Achsen-Roboter, gezeigt, bei dem für jede der sechs Achsen 501 bis 506 eine Lage- und Geschwindigkeitsregelung durchgeführt wird. Jede Roboter-Achse 501 bis 506 weist einen Motor 51 mit einer angeschlossenen Umrichtereinheit 52 auf, die über eine mecha¬ nische Verbindung 53 mit einer Feedbackeinheit 54 verbunden sind. Die Feedbackeinheit 54 und die Umrichtereinheit 52 am Motor 51 tauschen mit der Steuerung Ein- und Ausgangsdaten aus. Die Umrichtereinheiten 52 und die Feedbackeinheiten 54 der einzelnen Roboterachsen 501 bis 506 sind dabei getrennt über eine eigene Kommunikationsverbindungen 22, 24 mit der Steuerung 30 verbunden, die deshalb zwei E/A-Einheiten 31, 32 aufweist, wobei die erste E/A-Einheiten 31 über die erste Kommunikationsverbindung 22 Ein- und Ausgangsdaten für die Umrichtereinheiten und die zweite E/A-Einheiten 32 über die zweite Kommunikationsverbindung 24 Ein- und Ausgangsdaten für die Feedbackeinheiten ein- und ausgibt. Das im ersten und dritten Zeitabschnitt des Steuerungszyklus auszuführende Bereitstellen der Ein- bzw. Ausgangsdaten erfolgt bei dem in Fig. 7 gezeigten Anwendungsfall getrennt durch jeweils einen Rechenkern, wobei die erste E/A-Einheit 31 mit den Ein- und Ausgangsdaten für die Umrichtereinheiten dem ersten Rechenkern 33 und die zweiten E/A-Einheit 32 mit den Ein- und Ausgangsdaten für die Feedbackeinheiten dem zweiten Rechenkern 34 zugeordnet ist.
Die Berechnung der Ausgangsdaten auf der Grundlage der Ein- gangsdaten für die einzelnen Roboterachsen 501 bis 506 wird parallel durch alle drei Rechenkerne 33, 34, 35 ausgeführt, wobei den ersten beiden Achsen 501, 502 der erste Rechenkern 33, weiteren zwei Achsen 503, 504 der zweite Rechenkern 34 und den verbliebenen zwei Achsen 505, 506 der dritte Rechen- kern 35 zugeordnet ist. Mit dem erfindungsgemäßen parallelisierten Steuerungskonzept lassen sich grundsätzlich Steuerungsaufgaben mit einer Mehrzahl von eigenständig steuerbaren Modulen eines technischen Prozesses flexibel und zuverlässig abarbeiten, wobei durch die Möglichkeit einer variablen Ausgestaltung der Paralleli- sierung sowohl beim Bereitstellen der Ein- und Ausgangsdaten als auch beim Berechnen der Ausgangsdaten auf den Eingangsdaten sich kurze Zykluszeiten erreichen lassen.

Claims

Ansprüche
1. Verfahren zum Steuern eines technischen Prozesses, der eine Steuerungsaufgabe für eine Anzahl von eigenständig steu- erbaren Modulen umfasst, auf einer Steuerung, die eine Anzahl n von im Rahmen der Steuerungsaufgabe eingesetzten Rechenkernen (Cl, C2, C3) und eine Synchronisierung (Syncl, Sync2) umfasst, wobei der technische Prozess mit der Steuerung wenigs¬ tens eine Kommunikationsverbindung zum Datenaustausch auf- weist und die Modulen jeweils einem Rechenkern (Cl, C2, C3) zugeordnet sind, wobei in einen Steuerungszyklus (150) fol¬ gende Schritte ausgeführt werden:
Bereitstellen von über die wenigstens eine Kommunikationsverbindung durch die Steuerung erfassten Eingangsdaten der Mo- dule für den jeweils zugeordneten Rechenkern in einem ersten Zeitabschnitt (ZI) durch die Steuerung, wobei für das Bereit¬ stellen der Eingangsdaten 1 bis n Rechenkerne eingesetzt werden, wobei die Rechenkerne von den 1 bis n Rechenkernen, die nicht zum Bereitstellen der Eingangsdaten eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus versetzt werden, und wobei die 1 bis n Rechenkerne, die zum Bereitstellen der Eingangsdaten eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus ver- setzt wird, solange nicht jeder der n Rechenkerne bei der Synchronisierung anmeldet ist;
Synchronisieren (Syncl) der n Rechenkerne, sobald die n Re¬ chenkerne bei der Synchronisierung anmeldet sind, wobei alle in den Wartemodus versetzten Rechenkerne wieder in den akti- ven Modus versetzt werden;
Verarbeiten der Eingangsdaten der Module durch den jeweils zugeordneten Rechenkern in einem zweiten Zeitabschnitt (Z2), um Ausgangsdaten für die Module zu erzeugen, wobei Rechenkerne, die nicht zum Verarbeiten der Eingangsdaten der Module eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus versetzt werden, wobei die Rechenkerne, die zum Verarbeiten der Eingangsdaten der Module eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus versetzt wird, solange nicht jeder der n Rechenkerne bei der Synchronisierung anmeldet ist;
Synchronisieren (Sync2) der n Rechenkerne, sobald die n Rechenkerne bei der Synchronisierung anmeldet sind, wobei alle in den Wartemodus versetzten Rechenkerne wieder in den akti¬ ven Modus versetzt werden; und
Bereitstellen der Ausgangsdaten für die Module durch die
Steuerung zum Ausgeben der Ausgangsdaten für die Module auf der wenigstens einen Kommunikationsverbindung durch die Steuerung in einem dritten Zeitabschnitt (Z3) , wobei für das Be¬ reitstellen der Ausgangsdaten 1 bis n Rechenkerne eingesetzt werden, wobei die Rechenkerne von den 1 bis n Rechenkernen, die nicht zum Bereitstellen der Ausgangsdaten eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus versetzt werden, und wobei die 1 bis n Rechenkerne, die zum Bereitstellen der Ausgangsdaten eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus versetzt wird, solange nicht jeder der n Rechenkerne bei der Synchronisierung anmeldet ist.
2. Verfahren nach Anspruch 1,
wobei wenigstens einer der Schritte Bereitstellen der Eingangsdaten, Verarbeiten der Eingangsdaten zu den Ausgangsdaten und Bereitstellen der Ausgangsdaten in wenigstens zwei Abschnitte unterteilt ist, den jeweils wenigstens eine Task zugeordnet ist, wobei die in den wenigstens zwei Abschnitte eingesetzten Rechenkerne durch die Synchronisierung (SyncA, SyncB, Synca) zwischen den zwei Abschnitte synchronisiert wird, in dem sobald die in den wenigstens zwei Abschnitte eingesetzten Rechenkerne bei der Synchronisierung anmeldet sind, alle in den Wartemodus versetzten Rechenkerne wieder in den aktiven Modus versetzt werden.
3. Verfahren nach Anspruch 1 oder 2,
wobei die Synchronisierung als ein oder mehrere eigenständige Bauelemente ausgebildet ist oder auf einem oder mehrere Re¬ chenkernen als Programmbestandteil der Steuerungsaufgabe aus¬ führt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3,
wobei die Eingangsdaten der Module dem jeweils zugeordneten Rechenkern in einem zugeordneten Speicherbereich zur Verfügung gestellt werden, wobei sich mehrere Rechenkerne vorzugs¬ weise einen Speicherbereich teilen.
5. Verfahren nach einem der Ansprüche 1 bis 4,
wobei in einer Initialisierungsphase ein Rechenkern die ei¬ genständig steuerbaren Modulen des technischen Prozesses er- fasst und erfassten Module jeweils einem Rechenkern nach wenigstens einem vorgegebenen Kriterium zuordnet.
6. Verfahren nach Anspruch 5,
wobei eigenständig steuerbare Module mit besonderen Sicher¬ heitsanforderungen auf verschiedene Rechenkerne verteilt wer¬ den .
7. Verfahren nach einem der Ansprüche 1 bis 6,
wobei der technische Prozess mit der Steuerung eine Mehrzahl von Kommunikationsverbindungen zum Datenaustausch aufweist, wobei das Bereitstellen der über die jeweilige Kommunikati¬ onsverbindung eingelesenen Eingangsdaten und das Bereitstellen über die jeweilige Kommunikationsverbindung auszulesenden Ausgangsdaten durch einen der Kommunikationsverbindung zugeordneten Rechenkern erfolgt.
8. Verfahren nach einem der Ansprüche 1 bis 7,
wobei der technische Prozess eine Bewegungssteuerung der ei¬ genständig steuerbaren Module umfasst.
9. Steuerung für einen technischen Prozess, der eine Steuerungsaufgabe für eine Anzahl von eigenständig steuerbaren Mo¬ dulen umfasst, mit
einer Anzahl n von im Rahmen der Steuerungsaufgabe eingesetz- ten Rechenkernen (33, 34, 35), wobei die Modulen jeweils ei¬ nem Rechenkern zugeordnet sind,
wenigstens einer E/A-Einheit (31, 32), die ausgelegt ist, über eine Kommunikationsverbindung mit dem technischen Prozess Daten auszutauschen, und
einer Synchronisierung (Syncl, Sync2),
wobei die Steuerung (30) ausgelegt ist, über das E/A-Modul erfassten Eingangsdaten der Module den jeweils zugeordneten Rechenkern in einem ersten Zeitabschnitt (ZI) bereitzustellen und die Rechenkerne, denen Module zugeordnet sind, zu syn- chronisieren, wenn die Eingangsdaten bereitstehen, wobei für das Bereitstellen der Eingangsdaten 1 bis n Rechenkerne eingesetzt werden, wobei die Rechenkerne von den 1 bis n Rechen¬ kernen, die nicht zum Bereitstellen der Eingangsdaten eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus versetzt werden, und wobei die 1 bis n Rechen¬ kerne, die zum Bereitstellen der Eingangsdaten eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus versetzt wird, solange nicht jeder der n Rechen- kerne bei der Synchronisierung anmeldet ist, und wobei zum Synchronisieren (Syncl) der n Rechenkerne, sobald die n Re¬ chenkerne bei der Synchronisierung anmeldet sind, alle in den Wartemodus versetzten Rechenkerne wieder in den aktiven Modus versetzt werden;
wobei die Rechenkerne ausgelegt sind, nach der Synchronisa¬ tion die zugeordneten Eingangsdaten der Module in einem zweiten Zeitabschnitt (Z2) zu verarbeiten, um Ausgangsdaten für die Module zu erzeugen, wobei jeder Rechenkern das Ende der Verarbeitung signalisiert, wobei Rechenkerne, die nicht zum Verarbeiten der Eingangsdaten der Module eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus versetzt werden, wobei die Rechenkerne, die zum Verarbeiten der Eingangsdaten der Module eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus versetzt wird, solange nicht jeder der n Rechenkerne bei der Synchro- nisierung anmeldet ist, und
wobei die Steuerung ausgelegt ist, wenn alle Rechenkerne das Ende der Verarbeitung signalisiert haben, die Ausgangsdaten für die Module in einem dritten Zeitabschnitt (Z3) bereitzu¬ stellen, um die Ausgangsdaten über das E/A-Modul auf der Kom- munikationsverbindung auszugeben, wobei für das Bereitstellen der Ausgangsdaten 1 bis n Rechenkerne eingesetzt werden, wo¬ bei die Rechenkerne von den 1 bis n Rechenkernen, die nicht zum Bereitstellen der Ausgangsdaten eingesetzt werden, sich bei der Synchronisierung anmelden und in den Wartemodus ver- setzt werden, und wobei die 1 bis n Rechenkerne, die zum Be¬ reitstellen der Ausgangsdaten eingesetzt werden, nach Erledigung der zugeordneten Task bei der Synchronisierung anmelden, wobei der jeweilige Rechenkern in den Wartemodus versetzt wird, solange nicht jeder der n Rechenkerne bei der Synchro- nisierung anmeldet ist.
10. Steuerung nach Anspruch 9,
wobei die Steuerung (30) ausgelegt ist, wenigstens einer der Vorgänge Bereitstellen der Eingangsdaten, Verarbeiten der Eingangsdaten zu den Ausgangsdaten und Bereitstellen der Ausgangsdaten in wenigstens zwei Abschnitte zu unterteilt, den jeweils eine Task zugeordnet ist, wobei die in den wenigstens zwei Abschnitte eingesetzten Rechenkerne durch die Synchroni¬ sierung (SyncA, SyncB, Synca) zwischen den zwei Abschnitte einen Synchronisationsvorgang ausgeführt wird, in dem sobald die in den wenigstens zwei Abschnitte eingesetzten Rechen¬ kerne bei der Synchronisierung anmeldet sind, alle in den Wartemodus versetzten Rechenkerne wieder in den aktiven Modus versetzt werden.
11. Steuerung nach Anspruch 9 oder 10,
wobei die Synchronisierung als ein oder mehrere eigenständige Bauelemente ausgebildet ist oder auf einem oder mehrere Re¬ chenkernen als Programmbestandteil der Steuerungsaufgabe aus¬ führt wird.
12. Steuerung nach einem der Ansprüche 9 bis 11,
wobei die Steuerung (30) einen Speicher (38) aufweist, in dem jeden Rechenkern (33, 34, 35) ein Speicherbereich zur Verfügung gestellt ist, in dem die Eingangsdaten der Module für den Rechenkern bereitstehen, wobei sich mehrere Rechenkerne (33, 34, 35) vorzugsweise einen Speicherbereich teilen.
13. Steuerung nach einem der Ansprüche 9 bis 12,
wobei ein Rechenkern ausgelegt ist, in einer Initialisie¬ rungsphase die eigenständig steuerbaren Modulen des techni- sehen Prozesses zu erfassen und erfassten Module jeweils ei¬ nem Rechenkern nach wenigstens einem vorgegebenen Kriterium zuordnet .
14. Steuerung nach einem der Ansprüche 9 bis 13,
mit einer Mehrzahl von E/A-Einheiten (31, 32), die jeweils ausgelegt sind, über eine zugeordnete Kommunikationsverbin¬ dung mit dem technischen Prozess Daten auszutauschen, wobei jeder E/A-Einheit eine Rechenkern zugeordnet ist, der ausgelegt ist, das Bereitstellen der Eingangs- und der Aus- gangsdaten für die jeweils zugeordnete E/A-Einheit auszufüh¬ ren .
15. Steuerung nach einem der Ansprüche 9 bis 14,
wobei die Steuerung (30) ausgelegt ist, eine Bewegungssteue- rung der eigenständig steuerbaren Module auszuführen.
16. Antriebssystem mit einer Anzahl von Antriebselementen als eigenständig steuerbare Module und einer Steuerung nach An¬ spruch 15.
17. Antriebssystem nach Anspruch 16, mit einer Mehrzahl von Motormodule (401 - 410), die jeweils einen Verfahrweg und eine Mehrzahl von längs des Verfahrweges angeordneten, eigen ständig bestrombaren Antriebsspulen aufweisen, wobei die Antriebselemente jeweils eine Magneteinrichtung aufweisen, um durch die Antriebsspulen bewegt zu werden,
wobei ein Anzahl von Motormodule aus der Mehrzahl von Motormodule als Einspeisemodule (403, 410) für die Mehrzahl von Motormodule ausgelegt sind, die jeweils über eine Kommunika¬ tionsleitung an die Steuerung (30) angeschlossen sind.
18. Antriebssystem nach Anspruch 17, wobei ein E/A-Einheit der Steuerung ausgelegt ist, über mehrere Kommunikationswege Daten auszutauschen.
PCT/EP2017/080165 2017-01-13 2017-11-23 Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage WO2018130331A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP17801720.8A EP3548975B1 (de) 2017-01-13 2017-11-23 Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage
CN201780083460.7A CN110168455B (zh) 2017-01-13 2017-11-23 多计算核设备上的技术过程的控制

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017100655.9 2017-01-13
DE102017100655.9A DE102017100655A1 (de) 2017-01-13 2017-01-13 Steuerung eines technischen Prozesses auf einer Mehr-Rechenkern-Anlage

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/502,300 Continuation US11327800B2 (en) 2017-01-13 2019-07-03 Technical process control in multi-computing-core system

Publications (1)

Publication Number Publication Date
WO2018130331A1 true WO2018130331A1 (de) 2018-07-19

Family

ID=60421799

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/080165 WO2018130331A1 (de) 2017-01-13 2017-11-23 Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage

Country Status (5)

Country Link
US (1) US11327800B2 (de)
EP (1) EP3548975B1 (de)
CN (1) CN110168455B (de)
DE (1) DE102017100655A1 (de)
WO (1) WO2018130331A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017130552B3 (de) 2017-12-19 2019-03-14 Beckhoff Automation Gmbh Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009047024A1 (de) * 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Parallelisierte Programmsteuerung
WO2012027907A1 (en) * 2010-09-03 2012-03-08 Siemens Aktiengesellschaft Method for parallelizing automatic control programs and compiler
DE102006052757B4 (de) 2006-11-08 2014-10-09 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887143A (en) 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system
KR101375836B1 (ko) * 2007-06-26 2014-04-01 삼성전자주식회사 멀티코어 프로세서 상에서 연관된 작업들을 수행하는 방법및 장치
CN103080921B (zh) * 2010-08-30 2015-11-25 富士通株式会社 多核处理器系统、同步控制系统、同步控制装置、信息生成方法
WO2012106943A1 (zh) * 2011-08-15 2012-08-16 华为技术有限公司 一种基于多核系统的同步处理方法及装置
US20160236077A1 (en) * 2015-02-17 2016-08-18 Technische Universitaet Muenchen Method and system for automatic distribution and solution of tasks
US10489206B2 (en) * 2016-12-30 2019-11-26 Texas Instruments Incorporated Scheduling of concurrent block based data processing tasks on a hardware thread scheduler

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006052757B4 (de) 2006-11-08 2014-10-09 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
DE102009047024A1 (de) * 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Parallelisierte Programmsteuerung
WO2012027907A1 (en) * 2010-09-03 2012-03-08 Siemens Aktiengesellschaft Method for parallelizing automatic control programs and compiler

Also Published As

Publication number Publication date
EP3548975B1 (de) 2020-04-29
US20190324815A1 (en) 2019-10-24
CN110168455A (zh) 2019-08-23
US11327800B2 (en) 2022-05-10
CN110168455B (zh) 2022-06-28
EP3548975A1 (de) 2019-10-09
DE102017100655A1 (de) 2018-07-19

Similar Documents

Publication Publication Date Title
EP2718776B1 (de) Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine
EP0824231A1 (de) Fertigungsanlage
EP3173363A1 (de) Verfahren zur ermittlung eines bewegungsablaufs für einen linearantrieb
DE112012004728T5 (de) Verfahren, Programm und System zur Simulationsausführung
DE3223827A1 (de) Programmierbare logische steuereinrichtung
DE112015006392T5 (de) Numerische Steuerungsvorrichtung
EP3444682A1 (de) Verfahren zum rechnergestützten koppeln eines verarbeitungsmoduls in ein modulares technisches system und modulares technisches system
EP0782722B1 (de) Verfahren und vorrichtung zur steuerung und aktivierung von miteinander mittels eines bussystems vernetzten sensoren und/oder aktuatoren
EP2732347B1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
DE102006052757B4 (de) Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
DE10326542B4 (de) Betriebsverfahren und Steuerungsprogramm für eine Zentraleinheit eines Automatisierungssystems sowie Zentraleinheit eines Automatisierungssystems und Automatisierungssystem selbst
EP1692579B1 (de) Verfahren und vorrichtung zum betreiben zusammenarbeitender, unterschiedlicher geräte
EP3548975B1 (de) Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage
DE102020130130A1 (de) Motorsteuervorrichtung, numerische steuervorrichtung, robotersteuerung und integriertes steuerungssystem
DE102012204358A1 (de) Verfahren zum Betreiben einer Prozess- und/oder Fertigungsanlage, Steuervorrichtung einer solchen Anlage und Modul für die Steuervorrichtung
EP2216696B1 (de) Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls
DE19905841A1 (de) Vorrichtung zum Verarbeiten sicherheitsrelevanter Daten
DE19906695A1 (de) Verfahren zur automatischen Dezentralisierung von Programmen in Steuerungseinrichtungen und zur Verteilung von Intelligenz
DE102017130552B3 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
EP0113379A1 (de) Rechnerkopplung
EP2341405B1 (de) Verfahren zum Betrieb einer Maschine
EP1947536B1 (de) Verfahren zur Konfigurationsänderung eines laufenden Automatisierungsgerätes
EP1479023B1 (de) Verfahren zum projektieren und/oder konfigurieren eines projektes
DE112014003069T5 (de) Funktionseinheit, Analogeingabeeinheit und programmierbares Steuerungssystem
WO2012022661A1 (de) Verfahren zum redundanten steuern von prozessen eines automatisierungssystems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17801720

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017801720

Country of ref document: EP

Effective date: 20190705

NENP Non-entry into the national phase

Ref country code: DE