MQTT Software for IIoT
Cirrus Link Solutions designed MQTT Modules for Ignition for the integration of data building IIoT and SCADA system solutions. The connectivity of data is based on MQTT (Message Queue Telemetry Transport) a proven, standard machine-to-machine data transfer protocol that is quickly becoming the leading messaging protocol for the Industrial Internet of Things (IIoT). Adding the Cirrus Link MQTT Modules to the Ignition SCADA system platform empowers companies to set up their own IIoT solution on a secure MQTT Message-Oriented Middleware (MOM) infrastructure.
The Cirrus Link MQTT Modules for Ignition:
MQTT Transmission Module:
Provides an Ignition TAG to MQTT bridge enabling connectivity into MQTT infrastructure as a source of data for line of business applications and control. It also connects TAG data to AWS Greengrass for enabling machine learning and predictive maintenance.
MQTT Recorder Module:
The MQTT Recorder Module receives record objects from the MQTT Engine Module that have arrived via MQTT/Sparkplug. Utilizing a database that is configured within Ignition, the MQTT Recorder Module automatically generates database tables and populates the rows within the tables with records as they are received. Records represent a collection of tags, fields, and key-value pairs. They are especially useful in SCADA system for receiving records from a flow computer for its events, alarms, and history data.
The IIoT modules leverage all of Ignition’s unique, industry-leading platform features, which can easily connect the devices in your enterprise and viably harness data for maximum benefit. With Ignition’s unlimited licensing model, you can affordably collect and process massive amounts of data and scale out your SCADA system.
Like all Ignition modules, the IIoT modules can be installed, removed, and upgraded without impacting operations or affecting the rest of the SCADA system.
The MQTT Modules by Cirrus Link Solutions are available for download at https://inductiveautomation.com/downloads/ignition
For tutorials and support, please go here.
"With the combination of Ignition and Cirrus Link, a user can rapidly develop a SCADA system that is both useful and informative for the end user. The use of MQTT allows a much simpler way to translate data across other platforms necessary to analyze data for reporting and accounting."
-Will Baker, Texas Automation Systems
Build Industrial IoT (IIoT) solutions on a MQTT Message-Oriented Middleware (MOM) infrastructure with the MQTT Engine Module and provide a path to deliver data to both operational and business applications while reducing data bandwidth. Utilize the MQTT publish-and-subscribe methodologies to inject data into industrial SCADA system applications by enabling the MQTT Engine Module to connect the data from MQTT servers, creating an extremely efficient and robust IIoT architecture with Ignition.
With the MQTT Engine Module, polling at the host is no longer necessary; this solution uses edge gateways pushing the proprietary protocol polling to the edge of the SCADA system network, creating one pipeline for all data, increasing throughput and efficiencies of data acquisition throughout an enterprise. MQTT enabled devices such as sensors, PLCs, RTUs or OEM Edge Node Devices supporting the Cirrus Link SPARKPLUG Topic and Payload also can connect directly into this infrastructure as well gaining the same benefits. This solution is especially useful for wide-area SCADA system applications such as oil and gas pipeline controls and solutions with restricted or high-cost communications like VSAT, or cellular.
Increased Data Throughput and Efficiencies
MQTT messaging enabled by the edge gateways provides an extremely efficient use of the transport layer to send and receive more data more frequently and with less overhead. This is achieved by pushing the polling to the edge of the network or having MQTT enabled device publish data directly, which vastly increases the performance of the overall solution. This provides a mechanism to retrieve more data not only from the PLCs, and RTUs, and but also other devices such as cameras or sensors, thus achieving increased system awareness and improved control.
Open Source Tools for 3rd Party Device Integration
MQTT Engine implements the Cirrus Link SPARKPLUG MQTT Topic and Payload Specification describing the methodology of how MQTT enabled devices or Edge Gateways to connect to the Ignition Platform. With this information and the sample code and applications provided, 3rd party device manufactures have the open source tools needed to enable their products to connect to MQTT middleware infrastructure and to the MQTT Engine Module on Ignition. The tools are based on open source standards.
Self-Learning Data Tags
The MQTT Engine Module subscribes to the data from the edge gateways through MQTT servers. Upon each initial connection, it learns all the data tags and instantly creates them in Ignition. Once tags are created, their data values are instantly available and continually updated as new values are published from the field. This feature produces a self-aware IIoT that dynamically updates by rapidly learning all existing and any newly created data tags and makes them readily available to the entire Ignition platform. With the MQTT Engine Module, simply connect to your data and build anything with Ignition’s full-featured set of HMI, SCADA, and MES development tools.
Exceptional Redundancy and Security
Scalability, disaster recovery, high availability, and enhanced security are native capabilities of the MOM infrastructure with the Edge Gateways providing the polling for data. The Edge Gateways create an inbound connection to the MQTT servers with TLS security closing all ports over their network connection. Not having a port open enhances the security at the endpoints of the system closing off many typical attack possibilities. Secondly, the Edge Gateways are in control of both their network path and the MQTT Server utilized. The Edge Gateway will know when it loses a primary communication path and will move to a secondary one, it is also self-aware of when the primary communication path returns. Upon a MQTT server fail, the Edge Gateway will connect to the next available server providing up to N levels of redundancy. With these features, uptime is improved with quicker failover and acknowledgements when issues arise.
Automatic System Health Metrics
When the MQTT Engine module creates the tags for data it also creates metrics to track the health of the system. These metrics are data points with history providing valuable information when diagnosing issues within the overall system. The module creates metrics for the end device, the edge gateways, and the MOM infrastructure concerning availability and lost connectivity. These metrics are presented with pre-built screens for viewing or a client can use the data points to build screens specifically for their own requirements.
See a video on the MQTT Engine Module here!
The MQTT Distributor Module is an MQTT server, compliant with the 3.1.1 MQTT protocol OASIS standard. It enables MQTT clients in SCADA to securely connect, publish, and subscribe data, supplying data to both operational and business applications throughout the enterprise. The MQTT Distributor module comes in two versions, Distributor and Distributor Plus. Standard Distributor supports up to 50 simultaneously MQTT Clients and Distributor Plus supports up to 250 for larger installations.
Enabling MQTT Distributor in conjunction with the MQTT Engine Module provides the components for a self-contained MOM infrastructure from one Ignition gateway. This combination delivers the requirements for IIoT solutions and wide-area SCADA applications such as oil and gas pipeline controls solutions. It is ideal for situations where there are restricted or high-cost communications such as in VSAT or cellular connectivity. This solution is also highly effective for increasing the data throughput for high-performance plant-floor solutions.
The MQTT Distributor Module is available as a Standalone Module. It can be purchased as a Standalone MQTT Server not needing an Ignition license making ideal for distributing one or more MQTT Distributor Modules for scalability, redundancy and diverse location applications to increase reliability.
See a video on the MQTT Distributor Module here!
The main purpose of the MQTT Transmission module is to bridge the OT/IT gap, mobilizing OT data for use within both OT and IT applications. It enables any tag on the Ignition SCADA platform to be published via MQTT, transforming the tags and their properties into the Sparkplug MQTT Topic and Payload format to Edge Gateways, multiple Ignition Platforms and other MQTT enabled IIoT applications. The MQTT Transmission module also provides connectivity for tag data to connect to AWS Greengrass for Machine Learning and Big Data Analytics.
MQTT Transmission with Ignition inherently provide a data management tool. This allows the user to utilize Ignitions simple drag and drop tag editor to choose which tags are sent to IIoT Applications and/or AWS Greengrass. Using the Sparkplug specification means the data is sent securely and extremely efficiently resulting in highly responsive system updates. The MQTT Transmission module also supports store and forward functionality, meaning if the communication link to the MQTT Server is interrupted time-stamped data will be held locally until the link re-establishes. Once reconnected, live data resumes and historic data is backfilled as communication bandwidth allows.
Ignition TAG into MQTT Bridge
MQTT Transmission is powerful in providing the Ignition SCADA platform with an OPC-UA to MQTT bridge. This enables clients with any legacy SCADA/HMI an easy tool to bridge the data to MQTT and build out the IIoT application with minimal cost and effort.
- OT IT Bridge mobilizing data for IIoT applications
- Provide Secure & Efficient connectivity of data to one or more Ignition gateways and supporting MQTT Applications
- Connect Ignition tags to AWS Greengrass for Machine Learning and Predictive Analytics
- Provides a simple visual tag tool to select, rename, scale and manage which tags are made available to the IIoT enterprise i.e. provide the “slicing and dicing”
- Store and forward when connection path is lost, data is stored and sent when is re-established
- Utilizes highly efficient report by exception MQTT Sparkplug to reduce bandwidth consumption and increase performance
- Outbound TLS secure connection to control what data is accessible, ideal for sending data outside DMZ to the business enterprise not effecting control
- Available both on Ignition Gateway and Ignition Edge MQTT to meet most any IIoT application
- Multi MQTT Server support for Scalability and Redundancy
- OPC-UA to MQTT bridge to easily enable legacy SCADA/HMI apps to connect their data
Ignition TAG into AWS Greengrass
AWS Greengrass is software that lets you run local compute and Machine Learning (ML) capabilities for connected devices in a secure way. Greengrass connected devices can run AWS Lambda functions, keep device data in sync, and communicate with other IOT devices securely. This capability gives access to the powerful ML tools available in Amazon AWS, such as AWS SageMaker. These tools make it easy to build and deploy ML into your process to quickly deliver results of predictive analytics on machine failure or maintenance scheduling to achieve a higher level of efficiency.
For years data has been created in PLC’s and RTU’s that represent a record of information such as a quantitative transaction record (QTR) from a flow computer. With the limitations of register based communication protocols this information has always been clumsily handled as consecutive blocks of registers. This method runs the risk of not keeping all the data together as a record event, when a partial subset of the registers get overwritten with a newer set of information. Today with the power of MQTT these records of data can be published, on event, as an immutable record which automatically builds and populates a table within a database. In addition this record can be time stamped and carry a SHA-256 Hash key that will guarantee that the entire contents of the record are unedited from source. The MQTT Recorder module receives these records and first automatically builds the database table, and then populates each record into the table as it is received.
Examples of the records are:
- Oil & Gas – EFM Quantitative Transaction Records (QTR’s), EFM Alarms, EFM Events, P’cards for Pump of Controllers
- Pharmaceutical – Batch records for drug manufacture
- Transportation Industry- Locomotive engine events
The diagram below shows an example of the record flow of data for the MQTT Recorder with the EFM Emerson ROC Module. The EFM Emerson ROC module polls locally on Ignition or Ignition Edge Platform for the events, alarms and history records on the flow computer. MQTT transmission publishes the record to the MQTT Server. MQTT Engine on the Primary Ignition Gateway subscribes to the MQTT Server to receive the record. The MQTT Recorder Module works in unison with the MQTT Engine module to receive the record and puts the record data into table within the SQL database.
The MQTT Recorder offer the following benefits:
- Receives any RECORD object and creates the database table
- Receives any RECORD object and populates the data within the database table
- Records can be sent as an immutable object with a 256-SHA hash key for audit purposes
- Works with all databases supported by Ignition
The find support and tutorials for the MQTT Modules, please go here!