Programmable Logic Controller Parallel Program Instance Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Programmable logic controllers (PLCs) experience significant latency in reacting to changes in input values from peripheral components due to their sequential execution of control programs, leading to unforeseeable events and data races when parallel execution is attempted, resulting in delayed responses and potential inconsistencies.
Innovation Solution
The method involves executing multiple instances of a control program with a timing shift of less than one program cycle time, allowing each instance to process different input data records provided by the communication bus within a program cycle, thereby reducing latency and eliminating data race issues by ensuring independent operation of each program instance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If multiple program instances are executed in parallel to reduce latency, then response speed improves, but data race conditions and system instability occur
Solution Approach 1:
The control program is segmented into multiple independent instances that execute in parallel, with each instance processing specific input data records. This segmentation allows parallel execution to improve response speed while maintaining isolation between instances to prevent data races, resolving the contradiction between speed and reliability.
Solution Approach 2:
Input data records are pre-copied to input memory before program execution begins. This preliminary action allows multiple program instances to access independent copies of input data simultaneously without interfering with each other, enabling parallel execution while maintaining data consistency and system stability.
2Reliability
If sequential program execution is used to maintain data consistency, then system stability is preserved, but latency increases
Solution Approach 1:
The system segments the control program into multiple instances that process different input data records independently. This segmentation enables parallel execution to reduce latency while each instance maintains data consistency within its own execution context, preventing the data race conditions that would otherwise occur with parallel execution.
Solution Approach 2:
Input data records are copied to input memory for each program instance, creating independent working copies. This copying mechanism allows multiple instances to execute in parallel without accessing shared data simultaneously, thereby reducing latency while preserving data consistency through isolated data access.
3Manufacturing precision
If program cycle time is extended to process all input data, then processing completeness improves, but response time to input changes deteriorates
Solution Approach 1:
The control program is divided into multiple instances, each responsible for processing specific input data records. This segmentation allows the system to maintain complete processing of all inputs across multiple instances while individual instances can complete their processing faster, improving overall response time without sacrificing processing completeness.
Solution Approach 2:
Each program instance processes a subset of input data records rather than all records, enabling faster individual execution. The collective action of multiple instances ensures all input data is processed completely, achieving both fast response time and processing completeness through distributed partial actions.
Data Source
AI summary
A method for operating a programmable logic control device to which a current input data set having state data regarding a peripheral component is provided cyclically by a communications bus after each bus cycle terminates. A first program instance of a control program is cyclically processed by a control device. The program cycle duration is longer than the bus cycle duration and, therefore, between the beginning and end of the program cycle, the communications bus provides at least one current data set that cannot be taken into account by the first program instance. To reduce the latency with which a control device reacts to a change in the input value of a peripheral component. at least one other program instance of the control program is cyclically processed so that it is temporally offset by less than one program cycle duration relative to the first program instance.


