PLC Compilation Model Using Intermediate Language

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional industrial controllers and devices are inflexible and inefficient, requiring specific programming languages and code for each device, which limits their adaptability and execution performance in industrial automation processes.

Innovation Solution

A system that generates an intermediate language from multiple language-specific compilers, allowing for universal programming of resources, which increases code execution performance and flexibility by compiling languages into a target-independent binary format that can be executed on various hardware platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional controllers use specific programming languages and code for each device, then device-specific control functionality is achieved, but adaptability and execution performance deteriorate

Engineering Contradiction:
ImproveadaptabilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces an intermediary compilation layer that translates high-level programming languages into optimized target code. This intermediary compiler acts as a mediator between the programmer's high-level language choices and the hardware-specific execution requirements, enabling both adaptability through language selection and high execution performance through optimized code generation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system allows dynamic selection of programming languages and compilation parameters based on the specific application requirements. By changing the parameter of programming language type and using different compilation strategies, the system can optimize for either adaptability or execution performance depending on the specific use case.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple programming languages are supported for universal programming, then flexibility and adaptability improve, but system complexity increases

Engineering Contradiction:
ImproveflexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the compilation system into distinct modules, each handling a specific programming language. Rather than creating a monolithic complex system that handles all languages simultaneously, the compiler is divided into language-specific front ends that feed into a common optimization and code generation backend, reducing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal compiler architecture that can handle multiple programming languages through a common framework. The universal code generator and optimization passes serve all language types, allowing the system to support multiple languages without proportionally increasing complexity.

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

3Productivity

If high-level control languages are compiled directly to target code, then execution performance improves, but language-specific compilation limitations reduce versatility

Engineering Contradiction:
Improveexecution performanceVSAvoidlanguage support
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary representation layer between the high-level source code and the target code. This intermediate representation allows the compiler to perform language-independent optimizations while preserving the ability to accept multiple high-level programming languages as input, thus maintaining both execution performance and language versatility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2169547B1Compilation model for programmable logic controllers (PLC).
Publication Date: 2020.05.27 ICS TRIPLEX ISAGRAF
  • EP2169547B1 patent drawingFigure 1
  • EP2169547B1 patent drawingFigure 2
  • EP2169547B1 patent drawingFigure 3

AI summary

The claimed subject matter provides a system and/or method that facilitates creating executable code for an industrial environment. A language editor can enable a programming of a portion of data within a programming language. A compiler can compile the portion of data within the programming language. An assembler component can utilize an intermediate language to convert the portion of data into a portion of assembly object code, wherein the assembly object code is target independent. A linker can create a binary file from the portion of assembly object code, wherein the binary file is target independent. A loader can specifically tailor the binary file to a target resource by leveraging at least one PLC definition, wherein the loader creates a target executable code (TEC) program at runtime or at development time.