US 12,248,809 B2
Method for data processing and programmable logic controller
Robin Vogt, Borchen (DE)
Assigned to Beckhoff Automation GmbH, Verl (DE)
Filed by Beckhoff Automation GmbH, Verl (DE)
Filed on Mar. 19, 2021, as Appl. No. 17/206,734.
Application 17/206,734 is a continuation of application No. PCT/EP2019/077497, filed on Oct. 10, 2019.
Claims priority of application No. 10 2018 125 090.8 (DE), filed on Oct. 10, 2018.
Prior Publication US 2021/0208561 A1, Jul. 8, 2021
Int. Cl. G06F 9/48 (2006.01); G05B 19/05 (2006.01); G06F 9/50 (2006.01)
CPC G06F 9/4881 (2013.01) [G05B 19/054 (2013.01); G05B 19/056 (2013.01); G06F 9/48 (2013.01); G06F 9/4806 (2013.01); G06F 9/4843 (2013.01); G06F 9/50 (2013.01); G06F 9/5027 (2013.01); G06F 2209/483 (2013.01); G06F 2209/5021 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method for optimizing data processing on a programmable logic controller comprising at least one parallel processor core,
wherein the programmable logic controller comprises at least one parallel processor core for executing a control task to generate actuator data from sensor data of a machine of an automation system,
wherein a control task comprises a plurality of executable programs, the plurality of executable programs comprising a first program and a second program, the first program being associated with a first main processor core and being executed by the first main processor core, the second program being associated with a second main processor core and being executed by the first main processor core,
wherein the at least two programs of the control task each comprise at least one parallel processing section with a work package, and the work package comprises a plurality of subtasks,
wherein the parallel processing sections in the respective programs are each assigned a priority with a predetermined priority level,
wherein the respective priority levels are each inserted into a data structure once an execution of the respective program has arrived at the parallel processing section, thereby placing the entry with the highest priority level at the first position of the entries in the data structure,
wherein the at least one parallel processor core checks whether entries are present in the data structure and wherein, if entries are present, subtasks from the work package of the program the priority level of which is in the first position of the entries in the data structure are processed by the at least one parallel processor core,
wherein the at least one parallel processor core interrupts an execution of subtasks of a work package of a executable program when a parallel processing section with a higher priority level is indicated in the data structure, subtasks from the work package of the executable program the higher priority level being then processed by the at least one parallel processor core,
wherein during a program cycle an expected computational throughput of the control task is continuously evaluated, the evaluation taking into account a time interruption duration and a number of interruptions of the subtasks of the parallel processing sections of the programs, which result from the order of the entries of the priorities of the parallel processing sections in the data structure, and
wherein at least one of the priority levels of the parallel processing sections of the respective programs is dynamically adjusted if the number of interruptions of the subtasks of the parallel processing sections is reduced and the computational throughput of the control task is increased thereby.