OPC UA Stack
Communication standards, implemented in the form of high level interfaces, are an essential prerequisite for the interoperability of devices and services in the fields of automation and M2M. Of course, they are also a key requirement for implementing and operating the new emerging technologies, such as Industry 4.0, Smart Home and Internet of Things. In addition to the safe transport of data, which is naturally expected from a communication protocol, standardized semantic information is required. This can be provided by using metadata.
The new OPC UA standard, implemented as a client/server protocol stack, fulfills the task for vertical and horizontal device crosslinking in modern network environments. The latter are usually heterogeneously structured, from PCs to small microcontrollers. OPC UA solutions are already available for PCs running under Windows and Linux operating systems.
The porting of an OPC UA Server or an OPC UA Client to small embedded devices represents a real challenge. The present monolithic implementations of the OPC UA protocol are not suitable for this task. A restructuring of the OPC UA stacks is required in order to make them scalable. This is tantamount to a new development. Some basic and obvious system concepts must be employed; among these are:
- Modular Design
- Hardware Abstraction
- Object Orientaion
In order to achieve the above objectives, EUROS Embedded Systems GmbH has joined with ascolab GmbH to reimplement the OPC UA stack as well as the associated application libraries in the ANSI C programming language. The server is designed for single-task operation and is implemented fully asynchronously.
Furthermore, EUROS Embedded Systems has integrated the resulting highly adaptable OPC UA solution with its EUROS real-time operating system. The porting of the OPC UA stack was based on the pure TCP/IP implementation of the OPC UA standard. Also, the software development kit for developing server applications has been ported under EUROS. Since EUROS supports more than 8500 popular microcontroller variants, manufacturers of embedded systems in all industrial and consumer fields - medical, automation, transportation, communication technology, automotive, and so on, can easily integrate an OPC UA stack into their solutions.
EUROS Embedded Studio® (EES) was used as the development and configuration platform for this integration. EES is a universal, Eclipse-based IDE that facilitates development of all phases and aspects of an embedded application. Starting with the memory map, and selecting the appropriate target connection, the user can configure the system software, the scope of the OPC UA stack and then test the final application directly on the target platform.
The following sections summarize the unique key features of EUROS Embedded Studio when configuring an OPC UA application within EUROS:
O Wizard-guided basic configuration as follows:
- Memory mapping of the target system
- Choosing the appropriate target connection
- Automatic generation of board support packages
O Wizard-guided EUROS configuration:
- Hardware Abstraction Layer (HAL)
- Input/Output system
- Process manager
- C/C++ Libraries
- Driver packages
- Graphical libraries
- File system
- Configuration of the network
O Wizard-guided automatic configuration of the test tools.
O Wizard-guided automatic configuration of the functionality of the OPC UA stacks
Configuration switches for choosing and scaling of the individual OPC UA functional elements were provided and made available under EES. Thus, a scalable OPC UA SDK is now available for the EUROS Real-Time Operating system, with support for all functions of an OPC UA stack. This includes security, data access, alarms & conditions, historical data and methods. The UaModeler is used for information models and as the code generator.
The EUROS Embedded Studio speeds up the entire development process for OPC UA-based applications, while reducing potential sources of error: EES handles the automatic configuration of hardware, system software and OPC UA, as well as the implementation and execution of all relevant tests for the entire embedded application.