Automation Program Unit Checksums for Consistent Partial Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern industrial automation components face challenges in maintaining program consistency during partial updates, particularly when multiple developers work on the same project simultaneously, leading to risks of inconsistent states and potential system shutdowns or damage.
Innovation Solution
The software project is structured into manageable units, with published and non-published elements, where only published elements define the external interface, allowing for controlled dependencies and checksum-based updates to ensure consistency without transferring unnecessary data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire program is re-uploaded to the automation component during updates, then program consistency is ensured, but system shutdown is required and productivity is reduced
Solution Approach 1:
The program is divided into multiple program elements (functions, blocks, modules) that can be independently identified and updated. The system determines which specific program elements have changed and transfers only those elements to the automation component, rather than re-uploading the entire program, thus maintaining system availability while ensuring consistency of updated elements.
Solution Approach 2:
Instead of performing a complete program re-upload, the system performs a partial update by identifying and transferring only the modified program elements. This partial action approach reduces the update time and maintains system availability while still ensuring consistency for the changed elements through dependency analysis.
2Productivity
If only modified program elements are transferred (delta download), then productivity is maintained, but program consistency may be compromised due to dependencies
Solution Approach 1:
Before transferring modified program elements, the system performs preliminary dependency analysis to identify all program elements that depend on the modified elements (directly or indirectly). This preliminary action ensures that all necessary program elements are included in the transfer package, maintaining program consistency while still using a partial update approach to preserve productivity.
Solution Approach 2:
The system uses checksums to create fingerprints of program elements and their dependencies. By comparing checksums before and after updates, the system provides feedback to verify whether program elements have changed and whether all dependent elements have been properly updated, ensuring consistency while maintaining efficient partial updates.
3Productivity
If multiple developers work on the same project simultaneously, then productivity increases, but the risk of inconsistent states and conflicts increases
Solution Approach 1:
The system uses checksum-based fingerprinting of program elements to provide automatic feedback about changes made by different developers. When program elements are uploaded or modified, their checksums are calculated and compared, automatically detecting conflicts and inconsistencies caused by simultaneous development, thus maintaining consistency while allowing parallel development work.
4Reliability
If all program elements are transferred during every update, then consistency is ensured, but data transfer volume and update time increase
Solution Approach 1:
The system segments the program into individual program elements and calculates checksums for each element. By comparing checksums between the engineering system and the automation component, the system identifies only the modified elements and transfers only those segments, dramatically reducing data transfer volume and update time while maintaining consistency through dependency analysis.
Data Source
Figure 1
Figure 2
AI summary
The invention relates to a method for the modification of a program of an industrial automation component, the program consisting of a plurality of program elements (A, …, H), in the event of which modification modified program elements and program elements dependent thereon are transferred from an engineering system to the automation component. The program is structured in units (U_D, U_P), which unit (U_D, U_P) comprises a group of program elements (A, …, H) and can comprise both published program elements (A, B, E, F) having an interface that can be referenced by the program elements of other units and unpublished program elements (C, D, G, H). Using the interfaces, a checksum (UIFFP) is calculated and is assigned to the unit (U_D, U_P). If at least one program element (A, ..., H) of the version of a unit stored in the engineering system is modified, the checksum (UIFFP) of the unit (U_D, U_P) thus modified is compared with the checksum (UIFFP) of the previous version of this unit (U_D, U_P) present in the automation component, and if the checksums (UIFFP) match only the modified unit (U_D, U_P) is transferred. Thus, the consistency of the program can be maintained and the software can be updated more quickly.