Automation Program Unit Checksums for Consistent Partial Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprogram consistencyVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If only modified program elements are transferred (delta download), then productivity is maintained, but program consistency may be compromised due to dependencies

Engineering Contradiction:
Improvesystem availabilityVSAvoidprogram consistency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

3Productivity

If multiple developers work on the same project simultaneously, then productivity increases, but the risk of inconsistent states and conflicts increases

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidprogram consistency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

4Reliability

If all program elements are transferred during every update, then consistency is ensured, but data transfer volume and update time increase

Engineering Contradiction:
Improveprogram consistencyVSAvoidupdate time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3948449B1Method and engineering system for changing a program of an industrial automation component
Publication Date: 2023.02.22 SIEMENS AG
  • EP3948449B1 patent drawingFigure 1
  • EP3948449B1 patent drawingFigure 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.