OPC UA Industrial Plant HUB
| |
|
This report illustrates OPCUA Industrial Plant Hub, a software developed to demonstrate the fundamental principles of Distributed Systems by integrating them with the world of industrial automation.
In the world of industrial automation, the issue of data collection from machines and machine lines is becoming increasingly important. Therefore, this project aims to provide a distributed data collection system for different production lines, which may also be distributed across the territory.
The project is based on the use of IoT devices, which are connected to the production line and collect data on the production process. The data collected is then sent to a central server, which stores it and allows it to be analysed. The data can also be sent to the machines themselves, allowing them to be controlled and optimised.
The underlying idea is that data is collected from the machine line using the OPC UA protocol, widely used in industry, saved and then retrieved via HTTP API.
Unlike traditional data collection architectures based on a single physical node that reads data, the architecture of this project consists of three HUB nodes that collect OPC UA data, synchronised via Anti-Entropy and Gossip protocols, with an nginx load balancer that distributes client requests and implements data encryption via the TLS protocol.
The project emphasises the AP behaviour of the CAP Theorem, i.e. it focuses on the aspects of Partition Tolerance and High Availability, thus ensuring that clients can always access data even in the presence of network partitions or individual node failures. The Strong Consistency concept is therefore not guaranteed, promoting data that is not updated to the latest possible value over a longer wait time that would result from the application of Strong Consistency itself.
The system allows OPC UA sources to be added dynamically, by implementing an on the fly automation line connection mode, allowing individual machines or entire lines to be connected and added without the system needing to be restarted.