PLC Program Verification Using Timing Charts and Counterexamples
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Debugging Programmable Logic Controllers (PLCs) is challenging due to the inefficiency of existing verification methods for timing chart specifications, which are not exhaustive and costly, especially in industrial settings where bugs can cause significant human and material damages.
Innovation Solution
A computer-implemented method that translates PLC programs into models, integrates temporal functional specifications, computes abstract semantics, performs predicate transformation, and deduces properties to verify compliance with timing charts, providing an exhaustive guarantee and counter-examples to detect and correct errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If testing is used to verify PLC programs, then implementation complexity is reduced, but verification exhaustiveness deteriorates and debugging time increases
Solution Approach 1:
The patent replaces the mechanical execution-based testing approach with a formal deductive verification system using mathematical logic and automated theorem proving. This substitution transforms the verification process from empirical testing to rigorous logical deduction, achieving exhaustiveness without proportionally increasing implementation complexity through specialized software tools.
Solution Approach 2:
The patent introduces an intermediary formal specification layer (timing charts with temporal logic) between the PLC program and verification process. This intermediary enables automated deductive verification by providing precise mathematical descriptions of expected behavior, bridging the gap between program code and verification goals while maintaining exhaustiveness.
2Reliability
If model-checking is used to verify timing charts, then verification exhaustiveness improves, but CPU time consumption increases
Solution Approach 1:
The patent performs preliminary actions by computing abstract semantics and generating verification conditions before actual verification. This preprocessing step transforms the verification problem into a form suitable for efficient automated solving, reducing the computational burden during the actual verification phase while maintaining exhaustiveness.
Solution Approach 2:
The patent segments the verification process into distinct phases: translating PLC program to automaton, computing abstract semantics, generating verification conditions, and solving. This segmentation allows each phase to be optimized independently, reducing overall CPU time consumption while maintaining verification exhaustiveness through systematic decomposition of the complex verification task.
3Reliability
If deductive verification is used to check PLC programs, then verification exhaustiveness is guaranteed, but implementation complexity increases
Solution Approach 1:
The patent implements self-service by automating the entire deductive verification process through specialized software that automatically translates PLC programs, computes abstract semantics, generates verification conditions, and performs logical deduction. This automation eliminates the need for manual formal verification efforts, making the complex deductive verification process accessible without requiring expert intervention.
4Difficulty of detecting and measuring
If extensive testing is performed to detect bugs, then bug detection capability improves, but debugging time and cost increase
Solution Approach 1:
The patent replaces extensive manual testing and debugging with automated deductive verification that mathematically proves correctness. This substitution detects verification failures through logical contradiction rather than empirical testing, dramatically reducing debugging time while maintaining or improving bug detection capability through exhaustive logical analysis.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention is related to a method for checking correctness of a PLC program described by functional specifications typically presented as a timing chart. The method comprises: - S1: translating the PLC program into a model, - S2: translating the timing chart and integrating said timing chart into the model, - S3: computing abstract semantics, to infer information eventually missing in the timing chart, - S4: predicating transformation, and deducing properties to be verified, from the model and from predefined PLC formalized instructions, in order to satisfy timing chart verification, - S5: solving and checking whether said properties are always verified, or providing counter-examples, - S6: translating said counter-examples into PLC model errors events initial configurations, - S7: simulating execution, - S8: assembling states and events executions variables values, and - S9: translating back to PLC program.