This application uses the OPC Unified Architecture (OPC UA) to accept a list of nodes and subscribe to their value. When a change is received, it pushes the new value to the an IOT hub. Here the data can be processed near realtime. This ideal to monitor values from PLCs, like the Siemens SIMATIC S7-1500.
This application can be used to publish industrial data to the cloud where it can be analyzed. Practical uses are:
- Anomily detection
- SCADA systems
- Historical performance and reporting
- Deep learning and optimization
- ...
There sources and sinks. These can enabled by DI in the file Program.cs.
Currently the following implementation of the interfaces are present:
Sources:
- OPC-UA; Subscribes to OPC nodes and publishes the changed values,
- Mock; Publishes a random value.
Sinks:
- Azure IOTHub; Publishes to an IOT Hub,
- MQTT; Uses a standard MQTT message bus,
- Mock; Just logs the data.
Create an IOT hub in Azure. Then open a cloud console.
Add the device to the hub:
PS> az iot hub device-identity create --hub-name <Hub name> --device-id <Device name>
Show the connection string to enter in the appSettings.json:
PS> az iot hub device-identity connection-string show --hub-name <Hub name> --device-id <Device name> --output table
Feel free to participate.
- Get Amazon AWS working. Still some issues with special signing required for AWS.
- More sinks?
Many thanks to Converter Systems LLC (Cross River, NY), especially to Andrew Cullen for making the OPC library available allowing projects like this!