Online Control Application Switching for Runtime Code Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing control systems face inefficiencies due to device dependency in development environments, making it difficult to change executable code generated from general-purpose high-level languages without stopping the execution of the code.

Innovation Solution

An engineering apparatus and method that includes an instance management unit and a compiler/linker to generate a list and program for control application switching, allowing for easy modification of executable code while it is running by reallocating memory areas during idle times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a control application is converted to a general-purpose high-level language and then compiled to generate executable code, then device dependency is reduced and programming flexibility is improved, but it becomes difficult to change a portion of executable code without stopping the execution

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidcode modification capability
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent segments the executable code into multiple modules or units that can be independently loaded and executed. This allows specific portions of code to be modified and reloaded without requiring the entire application to be stopped, thus resolving the contradiction between using compiled high-level language and enabling partial code changes during execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic code loading mechanism that allows the executable code to be modified and updated during runtime. The system dynamically loads new code segments into memory and switches between different code versions without interrupting the overall execution flow, enabling code modification capability while maintaining continuous operation.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If the control application is edited while connected online to target hardware, then real-time modification capability is improved, but system complexity increases due to online compilation and loading mechanisms

Engineering Contradiction:
Improvereal-time modification capabilityVSAvoidonline compilation system complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent performs preliminary compilation of code segments into intermediate form during the offline development phase. This pre-compilation prepares the code for efficient online loading and execution, reducing the complexity of online compilation operations while enabling real-time modification capability through pre-prepared code segments.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3647942B1Engineering apparatus, control method of engineering apparatus, and program
Publication Date: 2023.10.18 YOKOGAWA ELECTRIC CORP
  • EP3647942B1 patent drawingFigure 1
  • EP3647942B1 patent drawingFigure 2
  • EP3647942B1 patent drawingFigure 3

AI summary

A portion of executable code generated from a general-purpose high-level language can be changed easily while the executable code is running. An engineering apparatus (10) of the present disclosure includes an instance management unit (103) and a compiler/linker (104). When a control application is edited while the engineering apparatus (10) and target hardware (20) are connected online, the instance management unit (103) generates a list for control application switching and a program for control application switching. The list and the program are generated from the control application and expressed in a second programming language. The compiler/linker (104) generates executable code based on the list, the program, and a control service program. When the executable code is downloaded onto the target hardware (20), the control service program causes the program for control application switching to be executed on the target hardware (20).