This presentation displays the combination of existing MQTT message transport technologies provided by the Eclipse Paho IoT technologies combined with the Eclipse Tahu technology in making this technology applicable to the OT sector by defining the MQTT semantics of Topic Namespace, Process Variable centric Payloads and State Awareness of MQTT but applying that to IT-centric requirements of OT tag metrics and context.
We need/must apply the same notions of the IoP to the IIoT. But we must satisfy the OT requirements of real-time, mission-critical aspects of the infrastructure first while embracing required IIoT hooks.
2. www.cirrus-link.com
About Cirrus Link Solutions
Cirrus Link provides MQTT centric software for Industrial Automation Solutions
• Founded in 2012
• CTO is Co-Inventor of MQTT
• Combined 70 man-years of experience with MQTT
• Developed Sparkplug B to create a complete IIoT environment
• Worked with more than 35 device manufacturers in implementing Sparkplug B natively on their devices
• Became Strategic Partners with Inductive Automation in 2016
MQTT
Engine
MQTT
Distributor
MQTT
Transmission
ROC/ABB
EFM
IBM
Watson
Injector
Azure
Injector
AWS
Injector
MQTT
Recorder
Google
Cloud
Injector
Standalone MQTT Server
3. www.cirrus-link.com
The Genesis of MQTT
Data Consumers
SCADA
Data Producers
Flow
Computers
PLCs/RTUS
MQTT was invented in 1999 on a project for Phillips 66 who wanted to
use VSAT communications more efficiently for their real-time, mission
critical SCADA system. Uniquely for SCADA infrastructure, multiple
“data consumers” wanted access to the real time information.
4. www.cirrus-link.com
Design Goals of MQTT
• Simple
• Efficient
• Stateful
• Open
Some important things to note about the MQTT specification:
1. MQTT is built on top of TCP/IP and lets TCP do a lot of the hard work.
2. The MQTT specification does not define network security. (see #1 above).
3. No Payload definition format/encoding was specified.
8. www.cirrus-link.com
Sparkplug Specification
ØDefines a standard MQTT Topic Namespace that is optimized for
Industrial Application use cases.
ØDefines an efficient MQTT Payload Definition that is extensible but is
optimized for SCADA tags/metrics.
ØDefines how to best use MQTT State Management in real-time SCADA
implementation.
ØDefines High Availability MQTT architectures addressing both
Redundancy and Scale.
Sparkplug is a specification that defines how to use MQTT in a mission critical, real time environment.
9. www.cirrus-link.com
Eclipse Tahu
Tahu is an Eclipse open source project which includes:
Ø Sparkplug specification
Ø Client Libraries
Ø Reference implementations in C, Java, JavaScript, Python
Find the Tahu project at https://projects.eclipse.org/projects/iot.tahu
10. www.cirrus-link.com
First came IoP, then came IoT, finally came IIoT
First we had
Internet of People
Then came
Internet of Things
Now we have
Industrial Internet of Things
HTTP://
HTML
MQTT MQTT
Sparkplug B
11. www.cirrus-link.com
Step #1 – Decouple! Connect Devices to Infrastructure, not Applications.
Step #2 – Provide a “Single Source of Truth” for all tags.
Step #3 – Demonstrate a superior OT solution.
Steps to IIoT Enablement
12. www.cirrus-link.com
The “Reality” of Digital Transformation
IT/Cloud
Tooling
OT
Data
Just Connect
(The Dream)
Versus
Operational Data
OT
Data
Reality
The
Work
14. www.cirrus-link.com
Sparkplug Process Variable Tag
Snippet from the Sparkplug specification Google Protocol Buffer schema example:
{
"timestamp": 1486144502122,
"metrics": [{
"name": "Suction Pressure",
"engLow": 0.0,
“engHigh”: 100.0,
“engUnit”: “PSIA”
"timestamp": 1479123452194,
"dataType": "float",
"value": "30.6716"
}],
}
Instead of just knowing a Modbus register number and a raw analog value, any application
that is interested will be able to determine:
• The Tag Name of the process variable is “Suction Pressure”
• The process variable has Engineering Units of “PSIA”
• The engineering range of this process variable was 0 to 100.
• The data type of this process variable is “float”.
• The current scaled value of the process variable
• The UTC millisecond timestamp of when the process variable was read in the field.
• The UTC millisecond timestamp of when the process variable was published via
MQTT.
Legacy Poll/Response Register/Value pair:
• Holding Register #
40,027
• Value = 1256
Using the Sparkplug specification we
can now advance from legacy
Register/Value to a Single Source of
Truth at the Edge
16. www.cirrus-link.com
MQTT Server
Infrastructure
MQTT Sparkplug IIoT Topology
Future
Applications
Electronic Flow
Measurement
ERP
Asset
Management
Cloud Services
and Analytics
Cellular
VSAT
Ethernet
Operational Data
TLS
DMZ
ACL
OTIT
MQTT
Server
MQTT
Server
MQTT
Server
OT
Host App
Decoupled!
Single Source of
Truth!
Superior OT Solution !