Skip to content
hauju edited this page Nov 25, 2020 · 3 revisions

Introduction

The idea of the project is to create a connectivity solution to combine the advantages of OPC UA and distributed ledger technology like IOTA Streams. OPC UA is an important communication protocol and a widely used standard for industry 4.0 and IoT. It is especially used for PLCs. These systems read sensors, control actuators and produce a lot of data. The connection to the Tangle enables new business applications such as monetization in a data marketplace or creating digital twins. The connection of the Tangle should be as easy as possible.

What is OPC UA?

OPC is the interoperability standard for the secure and reliable exchange of data in the industrial automation space and in other industries. It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The OPC Foundation is responsible for the development and maintenance of this standard.

The OPC standard is a series of specifications developed by industry vendors, end-users and software developers. These specifications define the interface between Clients and Servers, as well as Servers and Servers, including access to real-time data, monitoring of alarms and events, access to historical data and other applications.

--> Read more (OPC Foundation, 2020)

Actual layout

The following picture shows the actual layout. The OPC UA Sensors Server is exemplary and can theoretically be replaced with any OPC UA Server. It provides nodes to which the gateway can connect. The value of the variable changes every 20 seconds.

layout

The OPC UA Streams Gateway collects data and publishes them on the tangle. It consists of an OPC UA server and a client. The client connects to another OPC UA Server (in this case the Sensors Server) and subscribe some nodes. The gateway open a channel on the IOTA tangle and publish the data. The OPC UA Server of the gateway expose the channel address as node for later use. Actual the channel address must be exchanged manually.

The OPC UA Streams Subscriber connect to a channel and fetch the latest data values. Furthermore, the data are provided via OPC UA.

Further thoughts

The following picture shows the structure of the original idea and show some improvements for the next version. OPC UA provides a Pub/Sub Model for Applications. This could further simplify the data exchange between PLC and gateway or used for a second gateway solution. Another idea is to automate the channel exchange between gateway and subscriber via OPC UA.

thoughts

Getting started

The project README shows the first walkthrough.

Cross compiling

It is possible to execute the code on IOT devices such as the Raspberry Pi. For cross compiling the OPC UA libraries you should take a look at this page.

Lesson learned

  • It is not the smartest idea to start learning a new language like Rust during a hackathon.
  • Work in a team.
Clone this wiki locally