PLC Program Analysis Using Logical Verification and Error Simulation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current debugging methods for Programmable Logic Controller (PLC) programs are not exhaustive, time-consuming, and costly, as they cannot guarantee that all possible executions of a program are covered, and the ambiguity in natural language functional specifications leads to misunderstandings and incomplete testing.
Innovation Solution
A method that translates PLC programs into a logical framework, verifies properties using automated solvers, and simulates error scenarios to detect and display initial and intermediary configurations leading to property violations, ensuring all possible executions are validated and providing precise debugging information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If simulation method is used for debugging PLC programs, then testing can be performed with initial configurations, but the method is not exhaustive and time-consuming
Solution Approach 1:
The patent performs preliminary actions by translating the PLC program into a logical framework model before execution, and by pre-defining properties that the program should satisfy. This allows the system to systematically explore all possible executions beforehand rather than relying on limited simulation tests, thereby achieving exhaustive verification without excessive time consumption during actual debugging.
Solution Approach 2:
The patent introduces an intermediary logical framework that serves as a mediator between the original PLC program and the verification process. This logical framework enables systematic analysis of all possible program executions by translating the program into a form that can be rigorously analyzed, thus achieving exhaustiveness without the time penalties of traditional simulation methods.
2Productivity
If model-checking method is used to execute program model, then time and resources are saved, but execution paths complexity is exponential and testing efficiency is limited
Solution Approach 1:
The patent segments the verification process into distinct components: translating the PLC program into a logical framework, defining specific properties to verify, and using an automated solver to check satisfiability. This segmentation allows the system to handle complexity in manageable parts rather than attempting to analyze all execution paths simultaneously, thereby improving testing efficiency while controlling complexity.
Solution Approach 2:
The patent replaces the mechanical execution of program models (model-checking) with a logical satisfiability analysis approach. Instead of mechanically exploring execution paths, the system translates verification into a logical framework and uses automated solvers to determine whether properties can be violated, thus avoiding exponential complexity while maintaining thoroughness.
3Ease of operation
If natural language functional specifications are used, then specifications can be written and understood, but ambiguity leads to misunderstandings and incomplete testing
Solution Approach 1:
The patent introduces a logical framework as an intermediary between natural language functional specifications and program verification. This intermediary translates the specifications into a precise logical form that can be rigorously analyzed, eliminating ambiguity while preserving the original specification intent. The system thus maintains ease of specification writing while achieving precision through the logical translation layer.
Solution Approach 2:
The patent performs preliminary translation of natural language specifications into a logical framework before verification begins. This preliminary action captures the precise meaning of specifications in an unambiguous logical form, ensuring that subsequent verification is based on precise interpretations rather than ambiguous natural language, thereby eliminating misunderstandings while maintaining ease of specification writing.
4Reliability
If tests are developed and run manually, then some configurations can be tested, but output values must be analyzed by programmers and bug reasons are hard to understand
Solution Approach 1:
The patent implements self-service by using an automated solver that not only detects bugs but also automatically analyzes output values and generates explanations for bug causes. The system serves itself by performing the entire verification and analysis process without requiring programmer intervention for interpretation, thus achieving reliable bug detection while eliminating analysis complexity for human users.
Solution Approach 2:
The patent implements feedback by automatically analyzing test results and providing detailed information about bug causes through counter-examples. The system feeds back not just whether a bug exists, but also why it occurs and under what conditions, eliminating the need for programmers to manually analyze output values and understand bug reasons, thus achieving reliable detection without analysis complexity.
Data Source
AI summary
It is disclosed a PLC Program analysis method where a program is translated into a program model in a logical framework, from which properties are determined. Said properties coupled with interlocking properties are verified by an automated solver. If contraposition of a property is satisfiable, counter-examples representative of model's inputs and internal memory values is provided. Counter-examples are translated into error initial configurations of said model. Execution of the model is simulated with said model error initial configurations, and error intermediary configurations of said model simulation are recorded up to said property violation. Error initial and intermediary configurations of said original program are derived from error initial configurations of said model and error intermediary configurations of said model simulation and displayed. An apparatus for executing said method is provided.


