For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ignition Integration

How to integrate Inductive Automation Ignition with Connectware, including publishing tag data with the MQTT Transmission module and reading Ignition tags with the OPC UA client connector.

This guide describes how to integrate the Ignition SCADA platform by Inductive Automation with Connectware. Ignition publishes tag data to the Connectware MQTT broker using the Cirrus Link MQTT Transmission module, and Connectware reads Ignition tags directly through the OPC UA server that is built into every Ignition gateway. A complete example file is available at the end of this guide.

Objectives

  • Creating a Connectware user that the Ignition gateway uses to authenticate against the Connectware MQTT broker.

  • Configuring the MQTT Transmission module to publish Ignition tag data to Connectware as plain JSON.

  • Understanding the difference between Sparkplug B and plain JSON payloads.

  • Reading Ignition tags with the Connectware OPC UA client connector.

Prerequisites

To follow this guide, you will need the following:

Connectware and Ignition Integration

Ignition is a SCADA and HMI platform that manages its data as tags on the gateway. There are two complementary ways to exchange this data with Connectware:

  • MQTT (recommended): The MQTT Transmission module turns the Ignition gateway into an MQTT client that connects out to the Connectware broker and publishes tag changes as they happen. Connectware acts as the central broker, so no inbound firewall port to Ignition is required, and the data is immediately available to every other Connectware service and consumer.

  • OPC UA: Connectware connects to the OPC UA server built into the Ignition gateway using the OPC UA client connector and subscribes to individual tags. Use this path when the Cirrus Link modules are not available on the gateway, or when you want Connectware to control exactly which tags are read.

The MQTT path is configured mostly on the Ignition side. The only Connectware-side preparation is a user with publish permissions. The OPC UA path is configured in a service commissioning file.

Sparkplug B and Plain JSON

By default, MQTT Transmission publishes tag data as Sparkplug B: the topics live under the spBv1.0 namespace and the payloads are protobuf-encoded binary. Connectware routes these messages like any other MQTT message, but treats the payloads as opaque binary data. The Rule Engine, mappings, and the Data Explorer cannot inspect or transform them without an additional decoding step. Choose Sparkplug B only if a downstream consumer, such as a Sparkplug-aware application, decodes the payloads itself.

Since release 4.0.25, MQTT Transmission includes the UNS Transmitter, which publishes tag values as plain JSON messages under the unsAv1.0 namespace. Connectware can read, transform, and route these messages directly, which makes the UNS Transmitter the preferred option for this integration. This guide uses the UNS Transmitter.

Publishing Ignition Tags to Connectware

Creating a Connectware User for Ignition

The Ignition gateway authenticates against the Connectware broker with username and password. Create a dedicated user and grant it publish permissions on the UNS namespace:

  1. In the Admin UI, click User on the navigation panel.

  2. Click Add User and create a user, for example ignition, with a strong password.

  3. In the Users and Roles list, click the new user.

  4. In the Edit User dialog, click Advanced Mode.

  5. Click the + icon to open the Add Permissions panel.

  6. Click MQTT and enter unsAv1.0/# in the Topic field. The wildcard # covers every tag path that the UNS Transmitter publishes.

  7. Select the write operation. This is equivalent to MQTT publish. The UNS Transmitter only publishes and does not subscribe to any topics.

  8. Click Add, then click Update.

For details on MQTT permissions, see Permissions.

If you decide to use the default Sparkplug B transmitters instead of the UNS Transmitter, grant the user readWrite permissions on spBv1.0/#. Sparkplug edge nodes subscribe to command topics in addition to publishing data.

Adding Connectware as an MQTT Server in Ignition

Configure the connection to the Connectware broker on the Ignition gateway:

  1. In the Ignition Gateway web interface, navigate to Config > MQTT Transmission > Settings.

  2. On the Servers tab, click Create new MQTT Server.

  3. Enter a name, for example Connectware.

  4. Set the URL to ssl://${CONNECTWARE_HOST}:8883.

  5. Enter the username and password of the Connectware user that you created for Ignition.

  6. If your Connectware instance uses a self-signed certificate, upload the Connectware CA certificate in the CA Certificate File field. For more information, see CA Certificates.

  7. Save the server configuration. The new server is assigned to the Default server set.

Replace the following value:

  • ${CONNECTWARE_HOST}: The hostname or IP address of your Connectware instance.

The Servers tab shows the connection state. Once the configuration is saved, the state changes to 1 of 1 connected. If the state stays at 0 of 1, check the credentials, the broker address, and the certificate settings.

For unencrypted test setups, you can use tcp://${CONNECTWARE_HOST}:1883 instead. Use TLS on port 8883 for production.

Publishing Plain JSON with the UNS Transmitter

The UNS Transmitter monitors a tag folder and publishes every tag change as a JSON message:

  1. In the Ignition Gateway web interface, navigate to Config > MQTT Transmission > Settings.

  2. On the UNS Transmitter tab, create a new transmitter.

  3. Select the Tag Provider, for example default, and optionally a Tag Path to restrict the transmitter to a tag folder.

  4. Keep the Default server set, so the transmitter uses the Connectware server connection.

  5. Save the transmitter configuration.

The transmitter publishes each tag on a topic that mirrors the tag path, prefixed with the unsAv1.0 namespace. For example, a tag Enterprise/Site 1/Line 1/Temperature arrives on the topic unsAv1.0/Enterprise/Site 1/Line 1/Temperature with a payload like the following:

In addition to the data messages, the transmitter publishes one .props message per tag when it connects, containing the tag properties.

MQTT topic segments with spaces, such as Site 1, are valid MQTT but harder to handle in downstream systems. Prefer tag names without spaces on the Ignition side.

Republishing the UNS Topics

You can use the incoming data directly from the unsAv1.0 topics. If you prefer to serve the data in your own topic hierarchy, add a mapping that republishes the whole topic tree. The named wildcard #topic carries the remainder of the topic path over to the output topic:

This mapping is part of the example service commissioning file at the end of this guide. For more information on topic wildcards, see Cybus::Mapping.

Reading Ignition Tags via OPC UA

Every Ignition gateway includes an OPC UA server. Connectware connects to it as an OPC UA client and subscribes to tags.

Preparing the Ignition OPC UA Server

By default, the Ignition OPC UA server only listens on localhost and does not expose the Ignition tag providers. Adjust the server settings:

  1. In the Ignition Gateway web interface, navigate to Config > OPC UA > Server Settings.

  2. Set the Bind Addresses to 0.0.0.0, or to the specific network interface that Connectware reaches, so external clients can connect.

  3. In the Advanced section, enable Expose Tag Providers. This makes the Ignition tag providers visible to external OPC UA clients. Without this setting, only device nodes are visible.

  4. Check the Security Policies setting. Connectware connects without message security by default, so add the None policy for a first test. To use Basic256Sha256 instead, configure the options.securityPolicy and options.messageSecurityMode properties and a client certificate on the Connectware connection. For the available properties, see OPC UA Connection Properties.

  5. Note the credentials for the OPC UA server. Anonymous access is disabled by default, and new Ignition installations create the user opcuauser with the password password. Change this password before you expose the server to the network.

The server listens on port 62541. The session endpoint is opc.tcp://${IGNITION_HOST}:62541 and the discovery endpoint is opc.tcp://${IGNITION_HOST}:62541/discovery. For details, see Ignition's OPC UA Server in the Ignition user manual.

Exposed tags use NodeIds of the form ns=2;s=[${TAG_PROVIDER}]${TAG_PATH}, for example ns=2;s=[default]Line1/Temperature. To find the NodeIds of your tags, browse the server with an OPC UA client as described in Using Connectware as an OPC UA Client.

Connecting Connectware to the Ignition OPC UA Server

We define the address and the credentials of the Ignition gateway as parameters, so you can set them when you install the service:

The connection resource uses the Opcua protocol and the endpoint resources subscribe to individual tags. The topic property defines the MQTT topic on which Connectware publishes the values:

Replace the NodeId with the tag path of your own tag provider and tags.

Verifying the Integration

  1. Install the service commissioning file and set the parameters. See Installing Services.

  2. Check that the OPC UA connection is in the Connected state on the service details page in the Admin UI. If the connection does not reach the connected state, check the bind address, the security policies, and the credentials of the Ignition OPC UA server.

  3. In Ignition, check that the MQTT Transmission server state shows 1 of 1 connected.

  4. Change a tag value in the Ignition Designer, for example with a memory tag.

  5. Open the Data Explorer and check the incoming data on the unsAv1.0 topics (or ignition/uns if you use the republishing mapping) and on the ignition/opcua topics.

Service Commissioning File Example

Last updated

Was this helpful?