This is the Sparkplug command workflow when using MQTT Engine and MQTT Transmission:
- On a Sparkplug edge client (MQTT Transmission) connection subscriptions are made for
- spBv1.0/GroupId/NCMD/EdgeNodeId
- spBv1.0/GroupId/DCMD/EdgeNodeId/#
- A write to an MQTT Engine tag generates a CMD message (either DCMD or NCMD depending on the Ignition folder tag hierarchy) encapsulating the tag write
- Block Node commands and/or Block Device Commands must be disabled in the MQTT Engine configuration
- The CMD message is published to the appropriate Sparkplug edge client
- The Sparkplug edge client (MQTT Transmission) receives the CMD message and decodes the payload
- Block Commands must be disabled in the MQTT Transmission transmitter configuration
- MQTT Transmission writes the tag on the Ignition edge gateway which results in two actions:
- A write to the associated PLC via the Ignition OPC-US Server and associated driver if the tag is an OPC tag
- Publish of a Sparkplug DATA message with the value change for the appropriate metric name
- MQTT Engine decodes the published Sparkplug DATA message and updates the appropriate tag under the MQTT Engine tag provider