Atrium IIoT Gateway › Ignition
Atrium App

Ignition User Guide

Publish every NCD wireless sensor on an Atrium gateway to Inductive Automation Ignition over MQTT Sparkplug B. Ignition’s MQTT Engine creates the tags, folders and data types on its own, so there is nothing to build on the Ignition side before data arrives.

Audience
Ignition integrators and operators
Requires
Atrium 2.8.0 or newer
License
Not required

01Overview

Ignition is a SCADA and industrial application platform. This app connects an Atrium gateway to the MQTT broker your Ignition system uses and publishes each sensor as a Sparkplug B device. Ignition’s MQTT Engine module turns those messages into tags.

Sparkplug B is the MQTT convention Ignition uses for plug-and-play devices. A device announces itself with a birth message listing every value it will send, and MQTT Engine creates a tag for each one. When the device goes away, the broker announces its death and Ignition marks its tags stale. You enter one broker address in the app; everything else follows from those messages.

Tags created for you
Every sensor appears under Edge Nodes in the MQTT Engine tag provider, with its readings, battery and signal, and the name and location you gave it in Atrium.
One UDT per sensor type
Readings arrive as an instance of a user-defined type for that sensor model, with engineering units, so a template built for one sensor works for every sensor of that type.
Failures are visible
If the gateway loses power or network, the broker tells Ignition and the tags go stale instead of showing old values as live. A sensor that stops reporting is flagged by its own Stale tag.
Outages fill back in
Readings the gateway stored while Ignition or the broker was unreachable are sent afterwards as historical data with their original timestamps.
ignition atrium app guide 01 connection ready
Ignition > Connection

02Requirements

What has to be in place on each side before you start.

ItemRequirement
Atrium platform2.8.0 or newer. The app opens its own connection to your broker, which earlier platform versions do not allow.
GatewayAtrium EG5120 or EG5100.
SensorsAny NCD wireless sensor the gateway has whitelisted. Each sensor’s decoded values are published as they are stored in Atrium.
IgnitionA gateway with the Cirrus Link MQTT Engine module installed and running. MQTT Engine is sold separately by Inductive Automation and runs in trial mode until licensed.
MQTT brokerAny MQTT 3.1.1 broker both the Atrium gateway and Ignition can reach. Most Ignition sites use the Cirrus Link MQTT Distributor module, which runs the broker inside Ignition itself.
NetworkThe Atrium gateway must reach the broker on its MQTT port, usually 1883 (or 8883 with TLS). MQTT does not pass through the gateway’s HTTP proxy setting.
LicenseThe Atrium app is free and needs no license.

03Installing

Install the app from the gateway’s Apps page like any other Atrium app.

  1. 1
    Open Apps on the gateway dashboard
    Click Browse App Center and install Ignition, or click Install App and upload the app package you were given.
  2. 2
    Wait for the services to restart
    Installing restarts the gateway’s services, which takes a few seconds. The app then appears on the Apps page as Ignition.
  3. 3
    Open the app
    Click Open on the card. The app opens on the Connection screen. Nothing is published until you enter a broker.
ignition atrium app guide 02 apps page
Apps

Uninstalling keeps the app’s settings and device list unless you choose to delete its data, so a reinstall picks up where it left off.

04First-Time Setup

The shortest path from a freshly installed app to sensor tags in Ignition. On a site where Ignition already runs MQTT Distributor and MQTT Engine, this takes about five minutes.

1. Find your broker details

You need four things from whoever runs your Ignition system:

DetailWith MQTT Distributor
Broker hostThe Ignition server’s host name or IP address, as the Atrium gateway reaches it.
Port1883, or 8883 if Distributor’s TLS listener is used.
Username and passwordA user listed under Connections > MQTT Distributor > Users in the Ignition gateway web interface. A new Distributor installation has one user, admin, with the password changeme; change it on any production system, or use Create User to add one for the gateway.
Primary Host IDOptional. The Primary Host ID of MQTT Engine’s server set, under Connections > MQTT Engine > Configuration > Sets (IamHost in the Default Set). Only needed if you want the gateway to publish only while that Ignition is online. See Sparkplug settings.

2. Connect the gateway

  1. 1
    Open the Connection screen
    The header chip reads Not publishing and the first checklist step, Broker set, is waiting.
  2. 2
    Fill in the MQTT broker panel
    Enter the Broker host, the Port if it is not 1883, the Username and the Password. Tick Use TLS only if the broker’s listener uses TLS.
  3. 3
    Click Test connection
    The gateway connects to the broker once, without publishing anything, and reports the result under the form. Success reads Connected to <host>. Save to start publishing. A failure says what went wrong; see MQTT broker.
  4. 4
    Click Save and connect
    The gateway connects within a few seconds and announces every sensor. The checklist ticks through each step, the last reading Sensors published, and the header chip changes to Publishing to Ignition.
ignition atrium app guide 03 broker form
Ignition > Connection > MQTT broker

Every whitelisted sensor is published by default, including ones added to the gateway later. To publish only some, turn the others off on the Devices screen.

3. Find the tags in Ignition

  1. 1
    Open the Ignition Designer
    The tags live in the MQTT Engine tag provider. Ignition’s gateway web pages show only a tag count per provider, so use the Designer’s Tag Browser to see the tags themselves.
  2. 2
    Select the MQTT Engine provider
    In the Tag Browser, switch the provider from default to MQTT Engine.
  3. 3
    Open Edge Nodes
    Expand Edge Nodes > NCD > <gateway name>. There is one folder per sensor, named by its radio address. Open Info inside a folder to see which sensor it is.

05Connection

Everything about the link to Ignition is on this one screen: whether it is working, the broker, and how the gateway identifies itself to Ignition.

The checklist

Getting tags into Ignition lists what must be true before tags appear, in order. The first step without a tick is the one to fix.

StepTicked whenIf it is not
Broker setA broker host is saved. Shows the host and port.Fill in the MQTT broker panel and click Save and connect. If the platform is older than 2.8.0, this step says so.
Connected to the brokerThe broker accepted the connection. Shows how long ago, and how many reconnects there have been.Shows Retrying: and the broker’s error. The gateway retries every 5 seconds.
Edge node online (NBIRTH sent)The gateway has announced itself to Ignition on this connection.Happens the moment the connection is accepted, unless a Primary Host ID is set and that host is offline.
Ignition seen on the brokerAn MQTT Engine on the same broker has announced itself. Shows its host ID.MQTT Engine is not running, or is connected to a different broker.
Sensors publishedAt least one sensor has been announced. Shows how many of the enabled sensors.Turn sensors on in Devices.

Below the checklist, the line In Ignition’s Tag Browser, open the MQTT Engine provider shows the exact folder this gateway publishes to.

MQTT broker

FieldDefaultNotes
Broker hostemptyHost name or IPv4 address. Letters, numbers, dots, hyphens and underscores only; no mqtt:// prefix.
Port1883, or 8883 with TLSLeave blank to use the default for the security setting.
Use TLSoffEncrypts the connection. Turn on only if the broker’s listener uses TLS.
Verify the broker’s certificateonShown when TLS is on. Leave on unless you are testing against a broker with a certificate the gateway cannot verify.
Username, PasswordemptyThe password is stored encrypted on the gateway and never shown again. Leave it blank when changing other fields to keep the saved one.
CA certificate (PEM, optional)emptyUnder Advanced. Only for a broker whose certificate comes from a private certificate authority.
Client ID (optional)unique per gatewayUnder Advanced. Leave blank unless the broker’s access rules require a specific client ID. Two clients with the same ID disconnect each other.

Test connection connects once with what is in the form, including unsaved changes, and disconnects without publishing. A blank password tests with the saved one. Failures are reported with advice:

ResultMeaning
Nothing accepted the connectionWrong host or port, or the broker is not running.
The broker refused the username or passwordThe credentials do not match a user on the broker.
The TLS handshake failedThe port is not the TLS one, or the broker’s certificate cannot be verified. Supply the CA certificate if it is private.
No answerUsually a firewall between the gateway and the broker. The test gives up after 10 seconds.
The gateway can’t resolve that host nameDNS on the gateway does not know the name. Use the IP address.

Save and connect stores the form and the gateway reconnects within a few seconds. Saving an empty host disconnects. Moving to a different broker announces the gateway’s departure on the old broker first.

Sparkplug settings

FieldDefaultEffect
Group IDNCDThe folder under Edge Nodes that this gateway’s node appears in. Use one group per site to keep large systems organized. Cannot contain /, + or #.
Edge node IDthe gateway nameThe folder for this gateway inside the group. Must be unique among gateways on the same broker and group. Left blank, it follows the gateway name, with spaces and symbols replaced by hyphens.
Primary host ID (optional)emptyWhen set, the gateway publishes only while the Ignition with that host ID is online, and reconnects when it goes offline so the broker marks this node offline too. Must match the Primary Host ID configured in MQTT Engine.
Tag layoutOne UDT per sensor type (recommended)Readings appear in a Sensor UDT instance. Plain folders puts them in a Data folder instead. See One UDT per sensor type.
Replay after an outage (hours)24How far back readings missed during an outage are sent as history, 0 to 168. 0 turns replay off.
New sensorsonPublish newly whitelisted sensors automatically. When off, new sensors appear on the Devices screen turned off.

Save settings applies the changes within a few seconds.

Rebirth all tags

Rebirth all tags makes the gateway announce itself and every sensor again, so Ignition rebuilds the tags from scratch with current values. Use it if tags look wrong or incomplete in Ignition. It is the same as the Rebirth command MQTT Engine can send to an edge node, which the gateway also answers.

06Devices

Every whitelisted sensor on the gateway, whether it is published to Ignition, and where its tags are.

ignition atrium app guide 04 devices
Ignition > Devices
ColumnShows
PublishWhether the sensor is published to Ignition. Turning it off marks the sensor’s tags stale in Ignition; turning it back on announces it again.
SensorThe sensor’s name in Atrium, its model and location, and its radio address.
Last seenWhen the gateway last heard from the sensor.
Last sentWhen a reading was last sent to Ignition. replaying history… means readings from an outage are still being sent.
StateSee below.
Ignition tag pathThe sensor’s folder in the MQTT Engine provider. Copy puts it on the clipboard.
StateMeaning
In IgnitionAnnounced to Ignition on the current connection and reporting.
WaitingEnabled, but not yet announced: the gateway is not connected, or is about to announce it.
StaleAnnounced, but the sensor has missed three report intervals. Its Health/Stale tag is true in Ignition.
OffNot published.

The chips above the table count sensors in each state. Enable all turns on every sensor that is off. The filter matches sensor names and radio addresses.

Renaming a sensor in Atrium updates its Info/Name tag; the folder stays named by radio address, so tag paths never change.

07Diagnostics

What the gateway actually sent, for support and for confirming a problem is on the Ignition side. Counts reset when the gateway’s services restart.

ignition atrium app guide 05 diagnostics
Ignition > Diagnostics
PanelShows
Sparkplug sessionWhether the edge node is online, its current bdSeq and seq, sensors announced, frames sent, history replayed, births and rebirths, publish failures, and commands received from Ignition. Below: the broker and its connection state, every Sparkplug host seen, any pending rebirth, and the last error.
UDT definitionsOne row per sensor type: the UDT name, how many members it has, and its version.
Recent messagesThe last 30 messages sent: type, topic, time, sequence number, size and the first metric names. History replays are labeled historical.

08The Tags in Ignition

What MQTT Engine creates from the gateway’s messages, and how it behaves.

Folder layout

Tag provider: MQTT EngineOne gateway, one sensor
Edge Nodes/
  NCD/                          Group ID
    Gateway-B00E/               Edge node ID
      Gateway/                  Name, Model, Platform Version, App Version
      Node Status/              Sensors Reporting, Sensors Stale
      Node Control/Rebirth
      0013A20042382D92/         one folder per sensor, its radio address
        Info/                   Name, Location, Asset, Sensor Model, MAC, Sensor Type
        Health/                 Battery Percent, Battery V, RSSI, Counter, Last Seen, Stale
        Sensor                  the readings, a UDT instance (or Data/ in plain folders)

MQTT Engine adds its own Node Info and Device Info folders alongside these, with connection details such as online state and birth and death counts.

Reading names are the metric names Atrium stores, for example x_rms_acc_g, x_velocity_mm_sec or humidity. All readings are 64-bit floating point.

One UDT per sensor type

With the default layout, the gateway defines one data type per sensor model, named NCD_<type>_<model>, for example NCD_114_Standalone_Smart_Vibration_Sensor_v4. MQTT Engine creates these under _types_ in its provider, and each sensor’s Sensor tag is an instance of its type. A template or screen built against the type works for every sensor of that model.

Members carry engineering units where the unit is certain from the reading:

Reading name ends inEngineering units
_velocity_mm_secmm/s
_displacement_mmmm
_rms_acc_g, _max_acc_gg
_hzHz
humidity%

A data type only grows. If a sensor starts sending a reading its type does not have yet, the gateway adds the member and announces itself again, and a member is never removed. Screens bound to a member keep working.

Health and staleness

TagMeaning
Health/Battery Percent, Battery VThe sensor’s battery, in % and V.
Health/RSSISignal strength of the sensor’s last report, as Atrium shows it.
Health/CounterThe sensor’s report counter.
Health/Last SeenWhen the gateway last heard from the sensor.
Health/StaleTrue once the sensor has missed three report intervals, false again at its next report. Checked every minute.
Node Status/Sensors StaleHow many of this gateway’s sensors are stale.

Health/Stale covers a sensor that goes quiet while the gateway is fine. If the gateway itself drops off the network, the broker publishes its death message about 45 seconds later and MQTT Engine marks every tag from the gateway stale. Both are good candidates for alarms.

Outages and history

Atrium keeps storing readings while the broker or Ignition is unreachable. When the gateway reconnects, it announces each sensor with its newest stored reading, then sends the readings it missed, oldest first, flagged as historical data with their original timestamps, so MQTT Engine does not treat them as the current value.

  • Replay reaches back as far as Replay after an outage (hours), 24 hours by default.
  • A gateway can take over a minute to notice that its network connection has died. Readings sent in that window may never have arrived, so after an unexpected disconnect the replay also covers the 90 seconds before it. Ignition receives some readings twice; the values and timestamps are identical.
  • What MQTT Engine does with historical data is set by Store Historical Events under Connections > MQTT Engine > General Settings, which writes historical change events directly to the history provider instead of updating the tag value.

09Sparkplug Details

For integrators working with the broker directly or with another Sparkplug host.

ItemValue
SpecificationEclipse Sparkplug B (namespace spBv1.0), MQTT 3.1.1, protobuf payloads
Node topicsspBv1.0/<group>/NBIRTH|NDATA|NDEATH/<edge node>
Device topicsspBv1.0/<group>/DBIRTH|DDATA|DDEATH/<edge node>/<radio address>
Last WillNDEATH on the node topic, QoS 1, not retained, carrying the connection’s bdSeq
Births and dataQoS 0, not retained. seq 0 on NBIRTH, then +1 per message, wrapping at 255.
bdSeqInt64, one per connection attempt, persisted across restarts. A rebirth on the same connection keeps it.
Keepalive30 seconds
SubscriptionsspBv1.0/STATE/+ and STATE/+ (host online state), NCMD for the node, DCMD for its devices
CommandsNode Control/Rebirth is answered with a full rebirth. Device commands (DCMD) are received and counted on Diagnostics but not acted on; sensor settings are changed in Atrium.
Host stateRebirths when a Sparkplug host comes online after this session started. With a Primary Host ID set, publishes only while that host is online.
Graceful shutdownWhen the gateway’s services restart, the app sends NDEATH itself before disconnecting.

10Troubleshooting

The Connection screen’s checklist shows which link is broken; Diagnostics shows exactly what was sent. Start with whichever step is not ticked.

Connecting

SymptomCauseFix
The broker refused the username or passwordThe credentials do not match a broker user.Check the user under Connections > MQTT Distributor > Users. Re-enter the password; a blank field keeps the old one.
Nothing accepted the connectionWrong host or port, or the broker module is not running.Confirm the address from the gateway’s network, and that MQTT Distributor is running in Ignition.
No answerA firewall blocks the MQTT port.Allow TCP 1883 (or 8883) from the gateway to the broker.
Test connection works, but Connected to the broker keeps retryingThe test used unsaved form values.Click Save and connect.
Ignition seen on the broker never ticksMQTT Engine is stopped, or connected to a different broker.Under Connections > MQTT Engine > Configuration > Servers, check a server points at the same broker and reads Connected.
Edge node online says it is holding for a primary hostA Primary Host ID is set and no host with that ID is online.Match it to the Primary Host ID under Connections > MQTT Engine > Configuration > Sets, or clear it.

Tags

SymptomCauseFix
All checklist steps ticked, but no tags in IgnitionLooking in the wrong provider.Select MQTT Engine in the Tag Browser, not default, and open Edge Nodes.
Tags from two gateways mixed together, or a gateway’s tags keep going stale and returningTwo gateways use the same Edge node ID in the same group.Give each gateway a unique Edge node ID. The default follows the gateway name, so rename one of the gateways or set the ID by hand.
A sensor is missingIts Publish switch is off, or it is not whitelisted in Atrium.Turn it on in Devices. Only whitelisted sensors are listed.
A sensor’s tags show old values and Health/Stale is trueThe sensor has stopped reporting.Check the sensor’s battery and signal in Atrium.
Tags look incomplete or out of dateIgnition missed a birth, for example after its own restart.Click Rebirth all tags, or use MQTT Engine’s Rebirth on the edge node.
MQTT Engine’s Data Latency for the node is negativeThe gateway’s clock is ahead of Ignition’s.Synchronize both with NTP. Timestamps come from the gateway.
Tags under the old path after changing the Group ID or Edge node IDIgnition keeps tags from the old node, stale.Delete the old edge node folder in MQTT Engine once nothing uses it.

11Reference

Metrics, data types and limits.

Node metrics

MetricTypeNotes
bdSeqInt64Birth/death sequence of the current connection.
Node Control/RebirthBooleanWrite true from Ignition to request a rebirth.
Gateway/Name, Model, Platform Version, App VersionStringIdentify the gateway.
Node Status/Sensors Reporting, Sensors StaleInt32Updated when they change, checked every minute.

Device metrics

MetricTypeNotes
Info/Name, Location, Asset, Sensor Model, MACStringFrom Atrium. Name, Location and Asset update when changed in Atrium.
Info/Sensor TypeInt32NCD sensor type number.
Health/Battery Percent, Battery V, RSSI, CounterDoubleFrom each report.
Health/Last SeenDateTime
Health/StaleBooleanThree missed report intervals.
SensorTemplate (UDT instance)Members are Double. Data/<reading> with the plain-folders layout.

Limits and timing

ItemValue
Reconnect interval5 seconds
Stale threshold3 missed report intervals, using the report interval set for the sensor in Atrium (600 seconds if unset)
Outage replay0 to 168 hours, default 24
Replay window before an unexpected disconnect90 seconds (3 keepalives)
Test connection timeout10 seconds
Raw vibration waveformsNot published. Processed vibration readings are.