OPC UA protocol and system integration - implementation example

Challenge

Computers or industrial systems communicate with each other using various protocols. If you need to integrate systems, your best bet would be to choose a standardized communication method – like the OPC UA protocol. In fact, we had the pleasure of working with one of our long-term railroad clients on just such a project, utilizing the OPC UA standard to ensure secure data exchange.

The system in question consisted, among others, of a Linux-based embedded computer that collected and stored information relevant to users. Our task was to prepare the software so the computer could make the system state available in the OPC UA standard. In addition, we proposed an auxiliary software tool to facilitate system information model management.

We covered more on the information model, as well as other noteworthy issues concerning the OPC UA standard, in an article on our blog: https://solwit.com/en/blog/opc-ua-in-a-nutshell-standard-and-security/

Solution

Our first step was to create a C++ application to make the system state available via the OPC UA protocol. This way it could be monitored by users. The application acts as an OPC UA server to which authorized clients can connect and view system status.

A container was also prepared that runs the application and can run on the embedded computer of the client. As a result of containerization, today’s client no longer needs to care about software dependencies – it gets a ready-made Docker image that can be used on its own system.

For this project, we also created tools and scripts for converting the Excel (XLSX) information model into C source code. By adopting this approach, the project was greatly facilitated, especially during the maintenance phase, as new information made available by the OPC UA server could be easily incorporated into the application.

Aside from that, a tester and developer public key infrastructure, as well as certificate generation and signing scripts, has been configured so that testing can be performed on the solution we delivered. With this approach, we could test various security modes and policies of the OPC UA standard without obtaining the client’s private key. We provided the customer with precise instructions on configuring the application to work with its final certificate and key.

Additionally, we prepared an environment for building the application and starting the scripts as mentioned above in the form of a Docker image as part of our engineering activities. As a result of containerization, the client seamlessly replicates the infrastructure needed to develop the application and deploy it to production. Containerization today allows the client to quickly build applications from scratch and deploy them production-ready.

Result

The client has extended its system’s capabilities to include OPC UA standard communication. The application and all supporting IT tools were delivered on schedule according to the plan laid out at the beginning of the project. Along with a working solution, the client also received comprehensive training and instructions, enabling them to maintain and update the application themselves. Utilizing our ready-made tools and applications, the client’s system can be quickly and securely integrated with third-party applications.

The tight schedule of the project made it challenging. In a short period, we had to gain an understanding of the client’s needs and its system. Ultimately, we wanted to deliver a solution that met market and client requirements. Having a thorough understanding of each other’s needs enabled us to successfully design, implement, and deploy the solution. This brought us satisfaction and motivation for future activities.

Tomasz Nowicki, Embedded Programmer, Solwit

 

cta_baner_en_looking_gor_solution

OPC UA protocol and system integration - implementation example
INDUSTRY AND COUNTRY
Poland
Railway
Scope
systems integration
Technologies
OPC UA
C
C++
Docker
Linux
Python
GET IN TOUCH WITH US
Let's talk about your project:
Requirements01

Tell us exactly what you need.

Priorities02

Let's set the priorities and the order in which your software's functionalities / features / changes will be implemented.

Time03

What is the estimated timeframe for when you need to have your solution ready?

We will be happy to answer any questions
SEND REQUEST
Newest case studies
Mobile and web banking applications testing
Software testing
SEE MORE
Web and mobile NTP support application
Software development
SEE MORE
Preparation for implementing CSMS & SUMS systems – cyber security compliance assessment in the context of the R155 and R156 regulations
Cyber security
SEE MORE
Development and maintenance of the IoT system for energy management in buildings
Software development
SEE MORE
Breaking down the system monolith into microservices
Business in the cloud
SEE MORE
Web application refactoring and a new framework for rapid banking application development
Software development
SEE MORE
CONTACT US
Complete
the form below.
We will contact you to set up
a conversation at the convenient
moment for you.