Heterogeneous Program Unit Coordination for Adaptive Automation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing industrial automation systems rely on fixed program sequences, making it difficult to modify or integrate programs written in different languages or specific to user/system needs, limiting dynamic adaptation and coordination of program units.
Innovation Solution
A method where a central management unit registers and coordinates program units from various languages, allowing for dynamic insertion and execution of heterogeneous program units, enabling flexible sequencing and synchronization across multiple units.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If fixed program sequences are used to control system functions, then the system execution is simple and reliable, but the program sequence cannot be modified or adapted dynamically
Solution Approach 1:
The patent divides a complete program into independent, executable program units that can be individually selected, modified, and coordinated. Each program unit represents a functional segment that can be independently managed by the management unit, allowing dynamic reconfiguration without redesigning the entire program sequence.
Solution Approach 2:
The patent implements dynamic program sequence coordination where the management unit can dynamically select, insert, remove, and reorder program units based on runtime conditions. This transforms the static fixed program sequence into a dynamic structure that adapts to changing requirements while maintaining system reliability.
2Adaptability or versatility
If programs are written in different languages or as independent units, then flexibility and modularity are improved, but integration and coordination between units become difficult
Solution Approach 1:
The patent creates a universal management unit that can handle multiple programming languages and different types of program units through a unified interface. The management unit provides language-agnostic coordination mechanisms that work with C, C++, Python, PLC languages, and other programming paradigms, enabling heterogeneous program units to be integrated seamlessly.
Solution Approach 2:
The management unit acts as an intermediary between independent program units, handling all coordination, communication, and synchronization tasks. This mediator abstracts the complexity of inter-unit coordination, allowing program units to remain independent while achieving seamless integration through the management unit's standardized interfaces.
3Productivity
If complete programs are compiled and transferred to runtime environment, then execution efficiency is improved, but modifications or reconfiguration are no longer possible
Solution Approach 1:
The patent performs preliminary compilation and optimization of individual program units separately, then stores them in a repository for rapid deployment. This allows each unit to be pre-processed for efficiency while maintaining the ability to dynamically assemble and reconfigure complete program sequences at runtime without recompilation.
Solution Approach 2:
The system enables dynamic reconfiguration of program sequences at runtime by selecting and coordinating pre-compiled program units through the management unit. This maintains execution efficiency of compiled code while achieving runtime adaptability through dynamic unit selection and reordering without requiring full program recompilation.
Data Source
AI summary
A method for executing heterogeneous program units of a program, in particular for controlling an automated system, includes forming, using a central management unit, an execution unit including program sequences having a plurality of instances of the heterogeneous program units. The heterogeneous program units are chosen from a set of the heterogeneous program units which are registered on the central management unit. The method further includes executing the plurality of instances of the heterogeneous program units of the execution unit according to a configured sequence.


