Industrial IDE Logic View Updates Using Hash Diffing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current approaches to identifying modifications in industrial control programs within unidirectional data flow architectures are inefficient, consuming significant bandwidth and processing resources due to the need to transmit and compare entire object models, leading to suboptimal update management in collaborative development environments.
Innovation Solution
The use of a hashing component to generate hash values from a text model of the control program, combined with a patience difference algorithm, allows for efficient identification of modified program segments, reducing the need for full object model transmission and minimizing processing overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If entire object models are transmitted and compared to identify modifications, then modification detection is achieved, but bandwidth consumption and processing resources increase significantly
Solution Approach 1:
The patent extracts only the essential identifying features (hash values) from the complete object models. Instead of transmitting and comparing entire object models, the system generates hash values that represent the essential state of program elements, thereby achieving modification detection while significantly reducing data transmission requirements
Solution Approach 2:
The patent transforms the object model representation from detailed structural data to condensed hash value parameters. By changing the parameter representation from full object models to hash values, the system maintains the ability to detect modifications while reducing the amount of data that needs to be transmitted and processed
2Measurement precision
If entire object models are transmitted and compared to identify modifications, then modification detection is achieved, but processing resources are consumed significantly
Solution Approach 1:
The patent extracts only the essential identifying features (hash values) from the complete object models. Instead of comparing entire object models which requires substantial processing resources, the system compares compact hash values, thereby achieving modification detection while significantly reducing computational requirements
Solution Approach 2:
The patent uses hash values as simplified copies or representations of the complete object models. These hash copies contain sufficient information to detect modifications without requiring the full object model data to be processed, thereby reducing computational overhead while maintaining detection accuracy
3Reliability
If full object models are transmitted for updates, then update completeness is ensured, but communication bandwidth is wasted
Solution Approach 1:
The patent extracts only the modified portions of the object model by comparing hash values before and after changes. Instead of transmitting complete object models to ensure update completeness, the system identifies and transmits only the specific elements that have changed, thereby maintaining reliability while reducing bandwidth consumption
Solution Approach 2:
The patent segments the object model into individual program elements (statements, expressions, literals) and processes them independently. By segmenting the model and using hash values for each element, the system can identify and transmit only the specific segments that have been modified, ensuring update completeness for changed portions while avoiding transmission of unchanged segments
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An industrial integrated development environment (IDE) identifies modifications to an industrial control program using a combination of program hashing and text differencing. The system performs deep-level hashing of the control program's text model to obtain hash data comprising rung-level hash values that collectively represent the current state of the program. When edits to the program are received, the modified text model is hashed again to yield modified hash data, and differencing analysis is performed on the initial and modified hash data. Differences between the two sets of hash values are used to identify portions of the control program that have been modified so that the targeted updates to a logic view of the program can be implemented. This allows the logic view to be updated without redrawing the entire view, and without the need to store multiple copies of the program's object model for comparison purposes.