PLC Interface Discovery Layer for Cross-Vendor Interoperability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current automation systems face interoperability challenges due to the use of varying mechanisms, such as different runtime environments and protocols, among programmable logic controllers (PLCs) from different vendors, making integration cumbersome and time-consuming, and limiting reusability of system integrators' software adapters.
Innovation Solution
The implementation of an abstraction layer that abstracts automation functions and provides interfaces, allowing PLCs to operate as both providers and consumers, with dedicated memory areas for interface registration and discovery, enabling seamless connection and communication between different PLCs and development environments, regardless of their specific programming languages or platforms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If PLCs from different vendors use varying runtime environments and protocols, then each PLC can be optimized for its specific ecosystem, but interoperability between different PLCs becomes cumbersome and time-consuming
Solution Approach 1:
The patent introduces an abstraction layer as an intermediary between PLCs from different vendors and the control application. This abstraction layer provides standardized interfaces that translate between different PLC-specific protocols and the application's required interface, eliminating the need for direct integration between the application and each specific PLC vendor's protocol, thereby reducing integration time while maintaining reliable vendor-specific optimizations
2Adaptability or versatility
If developers write adapters specific to particular equipment or communication channels to enable interoperability, then integration between different PLCs and applications can be achieved, but the adapters lack reusability and must be rewritten for each new interface
Solution Approach 1:
The patent creates a universal abstraction layer that can interface with multiple different PLC vendors and protocols through a single standardized interface. The abstraction layer is designed to be configurable and adaptable to different PLC types without requiring custom adapter code for each vendor, making the integration solution universally applicable across different PLC ecosystems and highly reusable
3Adaptability or versatility
If system integrators develop special software adapters for each PLC interface, then interoperability can be enabled, but the process requires repeated debugging and testing for each interface change
Solution Approach 1:
The abstraction layer serves as a mediator that handles all protocol-specific communication details, shielding the control application from vendor-specific interface variations. When interface changes are needed, only the abstraction layer configuration needs to be updated, not the entire adapter software, significantly reducing debugging and testing requirements and improving integration efficiency
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Current approaches to integrating industrial ecosystems, for instance integrating automation functions across different vendors of programmable logic controllers (PLCs), lack efficiencies and capabilities. In an example aspect, a consumer, for instance a PLC, can poll PLCs for an automation function. In response to the polling, a first PLC that includes a memory defining a plurality of dedicated memory areas, can retrieve an interface from a registry memory area that stores information concerning available interfaces in a provider memory area of the plurality of dedicated memory areas, such that the consumer discovers the interface. The consumer can bind to the interface so as to establish a connection between the consumer and the first PLC at runtime of the automation function. In some cases, the plurality of dedicated memory areas further defines a consumer memory area. The first PLC can track available interfaces associated with the first PLC in the registry memory area of the plurality of dedicated memory areas.