PLC Programming Tool Integrating C-Code Editor for IEC61131 Interface

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for programming and configuring programmable logic controllers (PLCs) lack direct access to system resources such as inputs, outputs, and memories, especially when using high-level languages like C, limiting the integration of C Code with IEC61131-3 code.

Innovation Solution

A method and device that integrate a C-Code editor within a programming tool, allowing the definition of interfaces between IEC61131 and high-level language codes, enabling direct access to system resources by generating and inserting library functions, thus allowing C Code programs to run parallel to IEC61131-3 programs on PLCs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If high-level languages like C are used for programming PLCs, then programming flexibility and access to system resources improve, but integration with IEC61131-3 code and access to PLC system resources deteriorate

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidintegration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer consisting of interface definitions and library functions that mediate between high-level language code and IEC61131-3 code. This intermediary layer provides standardized access points to PLC system resources, allowing C programmers to interact with the PLC environment without direct access to low-level interfaces, thus resolving the integration complexity while maintaining programming flexibility

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If separate programming environments are used for IEC61131-3 and high-level languages, then language-specific functionality is optimized, but the need for multiple interface definitions and translation layers increases

Engineering Contradiction:
Improvelanguage-specific functionalityVSAvoidnumber of interface definitions
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal interface layer that serves multiple programming languages simultaneously. The library functions and interface definitions are designed to be language-agnostic, allowing both IEC61131-3 and high-level language programs to access PLC system resources through the same standardized interface, thereby reducing the need for separate interface definitions for each language

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

3Productivity

If C Code programs are integrated with IEC61131-3 programs, then both can run in parallel on PLCs, but direct access to system resources like inputs, outputs, and memories is limited

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidaccess to system resources
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent segments the access to system resources into distinct library functions, each responsible for a specific resource type (inputs, outputs, memories). This segmentation allows C Code programs to access system resources in a controlled manner through dedicated function calls, maintaining parallel execution capability while providing ease of access to system resources through a simplified interface

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9235381B2Method and device for the programming and configuration of a programmable logic controller
Publication Date: 2016.01.12 ABB AG(DE)
  • US9235381B2 patent drawing
  • US9235381B2 patent drawing
  • US9235381B2 patent drawing

AI summary

A method and device for the programming and configuration of a programmable logic controller are disclosed. The method can include: locating a configuration tool in a programming tool, wherein the configuration tool includes a module in an IEC61131 language; integrating at least one further module into the configuration tool, and executing the programming and configuration of the programmable logic controller in a high-level language using a C-Code editor, and wherein the at least one further module is configured to provide a definition of interfaces between an IEC61131 code and a high-level language code, and provide a configuration of the high-level language code.