US 11,775,351 B2
Method for processing data and programmable logic controller
Robin Vogt, Verl (DE)
Assigned to Beckhoff Automation GmbH, Verl (DE)
Filed by BECKHOFF AUTOMATION GMBH, Verl (DE)
Filed on Dec. 4, 2018, as Appl. No. 16/209,468.
Claims priority of application No. 10 2017 130 552.1 (DE), filed on Dec. 19, 2017.
Prior Publication US 2019/0188045 A1, Jun. 20, 2019
Int. Cl. G06F 9/50 (2006.01); G06F 9/48 (2006.01); G06F 9/38 (2018.01)
CPC G06F 9/5066 (2013.01) [G06F 9/3877 (2013.01); G06F 9/4831 (2013.01); G06F 9/4887 (2013.01); G06F 9/50 (2013.01); G06F 9/5038 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for executing a control task on a programmable logic controller for the control of a machine or a facility of an automation system in a program cycle,
the programmable logic controller comprising at least two master-processor cores, at least one parallel-processor core and a priorities administrator,
wherein the control task comprises at least two executable programs,
wherein the master-processor cores are each assigned an executable program of the at least two executable programs of the control task, the at least two executable programs being executed by an associated main processor core as part of the program cycle,
wherein the at least two executable programs each comprises at least one parallel processing section within the respective executable program, wherein the parallel processing sections each comprises a plurality of partial tasks,
wherein the plurality of partial tasks of each parallel processing section are each executable in parallel,
wherein the parallel processing sections of the at least two executable programs are each assigned a priority with a predetermined priority level,
wherein the priority with the predetermined priority level is inserted into a data structure by the priorities administrator as soon as the respective master-processor core, after start of the respective executable program with sequentially processing, has arrived at the parallel processing section of the respective executable program,
wherein entries of the priorities of the parallel processing sections into the data structure are made in an order of the predetermined priority levels;
wherein the at least one parallel-processor core examines whether entries are present in the data structure by an active request of the at least one parallel-processor core for entries in the data structure and, if said entries are present, the at least one parallel processor core accesses the partial tasks of the parallel processing section, the priority level of which ranks first among the entries in the data structure,
wherein the parallel processor core interrupts an execution of partial tasks of a first parallel processing section when a second parallel processing section with a higher priority level is indicated by the priorities administrator,
wherein the plurality of master-processor cores processes partial tasks of the at least one parallel processing section of the respective executable program that are not processed by the at least one parallel-processor core in the program cycle, and
wherein the executable program having the priority with a highest priority level for the parallel processing sections schedules an execution time that is shorter than a purely sequential execution time of the executable program, and the executable program having the priority with a lowest priority level of the parallel processing sections schedules an execution time that is a purely sequential execution time of the executable program.