<img src="https://secure.leadforensics.com/799478.png" style="display:none;">
Skip to content

Using MQTT with Ignition SCADA

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Using MQTT with Ignition SCADA</span>

The MQTT protocol is rapidly being adopted as a reliable, efficient protocol in modern industrial data collection applications. MQTT uses a variety of techniques to provide highly efficient use of bandwidth to collect data from a wide range of sources and then make that data available to interested subscribers. Cirrus Link Solutions provides various modules for Inductive Automation Ignition enabling applications to take advantage of this protocol for building IIoT and SCADA applications.

Message Queuing Telemetry Transport (MQTT) is a lightweight publish/subscribe messaging protocol on TCP/IP that is designed for machine-to-machine communication in low bandwidth environments. The MQTT architecture uses brokers as centralized information hubs to store data and facilitate information flow between clients.

Clients can be publishers and/or subscribers. Publishers provide information to the broker, and subscribers receive information from the broker. Using this architecture, multiple devices throughout the enterprise can contribute information to the central broker, and then subscribers can receive only the information relevant to them via subscription. This is great for remote monitoring of enterprise systems that need to obtain information from various devices.

  

MQTT-Engine-Updated-2-6-2018

 

Cirrus Link provides various modules for Ignition that allow it to act as an MQTT Client (as a publisher and/or a subscriber), and as an MQTT Broker. The Cirrus Link MQTT modules are the MQTT Transmission, MQTT Distributor, and MQTT Engine.

MQTT Transmission Module

The MQTT Transmission module allows Ignition to act as a publisher and allows for tags in a certain location to be published on tag change to a receiving broker. In addition to auto-publishing tags on value change, one can manually trigger publishes of data payloads with desired quality of state (QoS) level on a desired MQTT Topic to a desired server via the following scripting function:

system.cirruslink.transmission.publish(mqttServerName, topic, payload, qos, retained)

Ignition MQTT Edge devices can be set up in the field to publish to an MQTT Distributor in Ignition and serve a similar function. These are useful for establishing an enterprise-wide monitoring system based on the MQTT protocol.

MQTT Distributor Module

The MQTT Distributor allows Ignition to act as an MQTT Broker/Server, allowing publishing to and from Ignition from any connectable MQTT Clients, whether they are other installations of Ignition or external clients. For extremely large enterprise applications, Cirrus Link's Chariot MQTT Server sits external to Ignition as a functional replacement for the MQTT Distributor module. This will allow the MQTT Transmission and Engine modules to connect to an external server.

MQTT Engine Module

The MQTT Engine module allows Ignition to act as a subscriber, allowing one to subscribe to any incoming payloads depending on the desired topic. The payloads can appear in the form of tags with a tag path determined from the MQTT Topic Name and will only appear if subscribed to via topic path filtering, which can be set up in the gateway. As such, it is entirely possible to send all tags as payloads from several Ignition systems acting as clients through a broker to a single central subscriber, which will convert the payload back into a tag. To use these incoming tags, one can choose to expose tag providers in the gateway, allowing one to treat incoming tags on the engine as OPC tags.

Sample Code

For those familiar with Ignition programming, the following sample code creates manual MQTT publishes in Ignition via scripting simulated data.

MQTT2

MQTT3

MQTT4

 

The Cirrus Link MQTT modules are an excellent choice for MQTT integration with Ignition to send data bidirectionally to and from Ignition and external brokers and clients. In addition, they are extremely good choices for designing an enterprise-wide system with central monitoring due to the lightweight nature of MQTT and the ease of communication.

Want More?

Read more Ignition application use cases and programming tips on our partner page.

 

MQTT Architecture diagram credit to Cirrus Link Solutions.