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.
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.
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
Tell us exactly what you need.
Let's set the priorities and the order in which your software's functionalities / features / changes will be implemented.
What is the estimated timeframe for when you need to have your solution ready?