![]()
Contents
Cirrus Link Resources
Cirrus Link Website![]()
Contact Us (Sales/Support)![]()
Forum![]()
Cirrus Link Modules Docs for Ignition 7.9.x![]()
Inductive Resources
Ignition User Manual![]()
Knowledge Base Articles![]()
Inductive University![]()
Forum![]()
When MQTT Transmission is configured with "Publish UDT Definitions" set to True, the UDT Definitions will be included in NBIRTH messages where each UDT Definition includes an "md5" metric.
For each named UDT Definition, MQTT Engine will compare the MD5 sum received in the NBIRTH with the MD5 sum of the UDT Definition stored to detect differences and identify collisions.
If a collision is detected, the UDT Definition received in the NBIRTH will be ignored and a warning will be logged from the com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugBPayloadHandler logger calling out the UDT Definition name - in the message sample below the UDT Definition name "TestUDT":
Turning this logger to TRACE will show additional logging messages to help identify the mismatch in UDT definitions as well as the edge node publishing the conflicting UDT Definition.
Lets break down the logger messages in our example:
These two messages identify the MD5 sum of the UDT Definition stored at MQTT Engine. Two methods are employed - calculated and from metadata
This message identifies the MD5 sum of the UDT Definition contained in the NBIRTH message from the Edge Node. We are able to identify the publishing the conflicting UDT Definition from the topic.
This message identifies the composition of the UDT Definition stored at MQTT Engine
This message identifies the composition of the conflicting UDT Definition published by the Edge Node -
To resolve the conflict, you will need to compare the two UDT Definition compositions to identify any differences - in this case we can see that the UDT Definition in the NBIRTH contains an additional Metric "New Tag 2" which is not present in the stored UDT Definition at Engine.
If you delete a UDT Definition at MQTT Engine on a system with multiple Edge Nodes, the first NBIRTH message containing a new UDT Definition will be used to store at MQTT Engine.