Automation Control Program Debugging Without Recompilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugging processes for control programs in automation systems fail to effectively execute debugging when the source code version differs from the translated machine code, necessitating recompilation each time the source code is modified.

Innovation Solution

A method involving the generation of source code identities for both the first and second source code versions, along with a machine code source code relation, to establish line-by-line correlations, allowing debugging on the machine code without recompilation, even when source code changes occur.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the source code version is changed to improve functionality, then the control program can be enhanced, but the debugging process must be restarted by recompiling the machine code

Engineering Contradiction:
Improvesource code version flexibilityVSAvoiddebugging time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the mapping relationship between source code and machine code into version-specific mappings. Each source code version maintains its own mapping relationship with the machine code, allowing independent debugging without requiring recompilation. The development system stores multiple version mappings (first mapping relationship, second mapping relationship) that correspond to different source code versions, enabling selective activation based on the current debugging needs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-establishing mapping relationships between different source code versions and the machine code before debugging begins. The development system compiles the source code to generate machine code and creates version mappings in advance. When debugging, the appropriate version mapping is selected and activated, allowing immediate debugging without recompilation. This preliminary preparation eliminates the need for repeated compilation cycles.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the source code is modified to fix errors or improve functionality, then the control program performance is improved, but the mapping relationship between source code and machine code becomes invalid

Engineering Contradiction:
Improvecontrol program correctnessVSAvoidmapping relationship management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic version mapping management where the mapping relationship between source code and machine code adapts to different versions. The development system dynamically selects and activates the appropriate version mapping based on the current source code version being debugged. When a new source code version is introduced, the system generates a new version mapping that reflects the current mapping relationship, allowing flexible adaptation without manual reconfiguration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses copying by creating version mappings that replicate the structure and relationships of the original source code-mach ine code mapping. Each version mapping is a copy adapted to specific version characteristics, preserving the essential mapping logic while accommodating version-specific changes. This allows the system to maintain multiple valid mappings without duplicating the entire compilation process.

Inventive Principle:
Principle #26Copying

3Ease of operation

If standard debugging tools are used to examine control program functionality, then basic debugging functions are provided, but they cannot handle cases where source code differs from the compiled machine code

Engineering Contradiction:
Improvedebugging functionalityVSAvoidsource code version compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements universal debugging capability by integrating version mapping management directly into the development system. The development system performs multiple functions: compiling source code to machine code, generating version mappings, selecting appropriate mappings, and enabling debugging. This multi-functional integration allows the same development system to handle both standard debugging scenarios and version-mismatch scenarios without requiring separate tools or processes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces version mappings as an intermediary layer between the source code and machine code. This intermediary contains the mapping relationships that bridge different source code versions with the compiled machine code. The development system uses this intermediary to translate debugging requests from the current source code version to the corresponding machine code instructions, enabling successful debugging even when the source code has changed since compilation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250298723A1Method for executing a debugging process of a control program of an automation system
Publication Date: 2025.09.25 BECKHOFF AUTOMATION GMBH
  • US20250298723A1 patent drawing
  • US20250298723A1 patent drawing
  • US20250298723A1 patent drawing

AI summary

A method for executing a debugging process of a control program of an automation system includes receiving a first machine code source code relation and a first source code identity, by a development system for executing the debugging process, in a receiving step; comparing the first source code identity with a second source code identity of a second source code version executed on the development system, in a source code comparing step; generating a version identity based on the comparison of the source code identities, in an identity generating step; determining a second machine code source code relation based on the first machine code source code relation and the version identity, in a relation determining step; and executing the debugging process of the machine code stored on the controller based on the second source code version, using the second machine code source code relation, in a debugging step.