OPC UA Server

Integration

Agenda

  1. Fetching data from OPC UA
  2. Location of OPC UA Client
  3. Cloud event ingestion pipeline

Fetching data from OPC UA

Subscription-based approach

Fetching data from OPC UA

Subscription-based approach

Pros:

  • No unnecessary calls to OPC UA Server
  • Instant granular updates exactly when variable changes

Cons:

  • More complex architecture and need for aggregation of single variable updates to project state of the system
  • Need to maintain state of the system locally as a part of client
  • Needs failover scenario

Fetching data from OPC UA

Subscription-based approach with incremental updates

Fetching data from OPC UA

Subscription-based approach with incremental updates

Pros:

  • No unnecessary calls to OPC UA Server
  • Instant granular updates exactly when variable changes
  • Simple implementation of OPC UA Client

Cons:

  • More complex processing architecture on the backend
  • Needs failover scenario

Fetching data from OPC UA

Periodic fetch approach

Fetching data from OPC UA

Periodic fetch approach

Pros:

  • Simpler architecture
  • No need to maintain local state as part of the OPC UA Client

Cons:

  • Unnecessary calls to OPC UA Server when no changes are observed
  • Needs failover scenario

Placement of OPC UA Client

Co-located with AGV and OPC UA Server

Placement of OPC UA Client

Co-located with AGV and OPC UA Server

Pros:

  • Lower latency between OPC UA Server/Client
  • Better resilience to outages in Internet connection

Cons:

  • More complex architecture at the edge
  • More challening maintenance of OPC UA Client at the edge
  • Need to create multiple clients if there are AGVs that are not co-located

 

Placement of OPC UA Client

Located in Cloud environment

Placement of OPC UA Client

Located in Cloud environment

Pros:

  • Simpler architecture
  • Can support data ingestion from multiple OPC UA Servers

Cons:

  • Higher communication latency between OPC UA Server/Client
  • Less resilience to Internet connection outages
  •  

 

Ingestion pipeline

IoT-hub based - managed services

Ingestion pipeline

IoT-hub based - managed services

Pros:

  • Managed Services
  • Elasticity due to additional data store
  • Ability to extend via Stream Analytics

Cons:

  • Lock-in to Azure-specific services
  • Potential limitations of Azure-specific services

 

Ingestion pipeline

Simplified - managed services

Ingestion pipeline

Simplified - managed services

Pros:

  • Managed Services
  • Simplicity
  • Possibility to extend by evolving architecture

Cons:

  • Lock-in to Azure-specific services
  • Potential limitations of Azure-specific services
  • It is recommended by Microsoft to use IoT Hub 

 

Ingestion pipeline

HDInsight-based - self-managed services

Ingestion pipeline

HDInsight-based - self-managed services

Pros:

  • Elasticity and support for multiple tools
  • Extensibility
  • Lack of lock-in to Azure-specific tools
  • Can still take advantage of Azure IoT Hub

Cons:

  • Increased maintenance - lack of Azure-managed services
  • Longer time to implement

 

Potential format of data

  • JSON
  • CSV
  • Apache Parquet (Column-oriented)

Potential shape of data

granular updates to specific variables

{
  "timestamp": "1588173179673",
  "iso_timestamp": "2020-04-29T15:12:59.673Z",
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - permission release": false
}

Potential shape of data

full state of the system at each event

{
  "timestamp": "1588173179673",
  "iso_timestamp": "2020-04-29T15:12:59.673Z",
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - permission release": false,
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - automatic safety release": true,
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - manual safety release": false,
  ...
}

Jetson Jetbot

OPC UA Server integration

By progressive

OPC UA Server integration

  • 376