MQTT Engine / SparkplugB Namespaces

I am working in a test environment, Ignition Maker 8.3.2, Cirrus MQTT Engine, EMQX MQTT broker.

My data is not refreshing, and I am seeing the following in the logs:

Indeed the MQTT Engine is publishing to both the UNC namespace and the “Edge Nodes” folder, however I had already disabled the “Default Tags Enabled” option several re-starts ago.

I’ve tried every combination of deleting tags, toggling the module enable/disable, removing / reinstalling the module but none of those things seem to fix it.

Any recommendations?

CF,

As denoted in the log, you have two Edge Nodes that produce the same ‘uns Tag name’. You will have to change one of the Tag names on either of these two Tags.

Daniel

Hi Dan. Thanks for the quick response.

I don’t understand where the second one is coming from. Are you saying there are two sparkplug metric ID’s with the same name that result in the same UNS path?

I cant imagine where the second copy is coming from.

Look inside the UNS folder for one of those Tags. Expand the Tag and it will show the SparkplugID information. You can trace them back and change the name on one and see what else arrives.

Have a read through this tutorial page:

Dan

Is this saying that I am not allowed to have:

edgeNode1/Heartbeat and edgeNode2/Heartbeat ??

Each of my edge nodes has a heartbeat, and each edge node contains the same tag for that heartbeat- but they originate from different edge nodes. In my mind the differentiator is the originating edge node. This seems logical to me- to have a template set of tagnames for a series of edge nodes that all have different names? Is this not allowed?

To further this line of questioning- I have filtered out all but one of these edge nodes, but I’m still getting the log message?

This is correct. You cannot have the same Tag Path arrive in the UNS folder structure. This translates to the same Tag name ‘Heartbeat’ cannot be used twice from differing Edge Nodes.

You’ll have to change this to Hearbeat1 and Heartbeat2.

In your case the Error message you receive might be due to a Tag Path similarity if you changed the name of the Folder this Tag was inside.

Restart (or disable) the MQTT Engine module to clear this Error.

Daniel

I’m confused though. Doesn’t the path include the EdgeNode? If there are two edge nodes from the same manufacturer and they both supply the same points, how could they have the same UNS path since the UNS path is edgenode/tagname?

Would the paths not be:

EdgeNode1/heartbeat

and

EdgeNode2/heartbeat

Hence different paths?

It seems that in a facility with a lot of the same type of IOT device, it would not be possible to use UNS paths?

Further, I have applied a Topic Token Filter to allow tags from only one device, but still i get the same log errors. In fact I have a couple of unique devices, where tags definitely should not be duplicated, and still I am getting logs about those points as well! This is what led me to believe that the UNS points were somehow conflicting with the non-UNS points.

It turns out that the UNS Tags only takes into consideration the Tag alone, so the Path is just the Tag as it arrives in the Tag Provider/ UNS folder structure. The rest is stored in the SparkplugIDs

This is a snippet from the BIRTH message:

This “name” field is unique within the plant. The /NodeSDU/Node_HB portion is not unique, but the full name including the “/V01/A01/C001/N001” IS unique.

The UNS that is created looks like this:

Skip some tags until our example tag:

So it looks like its creating a folder structure according to the metric name.

But still I maintain that the tag is UNIQUE when you include the path. I cannot figure out how the duplicate is being created.

There is a cached entry of that Tag name in the UNS handler. The only part of this ‘Path’ for UNS is the Tag name.

Have you stopped and restarted the MQTT Engine module? You will need to disable/enable module to clear the cache. This is a bug and will be addressed in later versions of Engine.

Daniel

Disabled MQTT Engine

Restarted Gateway

Enabled MQTT Engine

Restarted Gateway

Deleted tags from the MQTT Engine Tag provider

All tags came back, errors continued.

I would suggest a different order:

  1. Disable Engine from the UI (Connections, MQTT Engine Settings, Main Settings page).
  2. Delete all Engine Tags from the Engine Tag Provider;
  3. Disable Engine module from the Platform Modules page, which will force a Gateway restart.
  4. Log back in and Enable MQTT Engine module. Another Gateway Restart required.
  5. Log in and enable MQTT Engine from the UI (Connections, MQTT Engine Settings, Main Settings page).
  6. Resend your Tags.

Looks like you are not using our MQTT Transmission module to publish your Data. This will make it difficult to offer much diagnostic support. I should also mention that Cirrus Link does not offer technical support on the Maker Edition of Ignition.

Dan

Hi Dan,

Thanks for your help so far. I followed your procedure, and as soon as i re-enabled the Engine all of the points came back but the errors returned as well.

I understand why cirrus wouldn’t be able to support the maker version. That makes sense. I’ve installed the maker edition only because this is a side project of mine- to learn how to use Ignition with Sparkplug enough that I can pitch this platform to my uppers. At that point of course we would be using the full licenses. Its just an evening hobby project at the moment.

Thanks for your help. Perhaps I will install the transmission module to see what that is all about, and maybe figure this out along the way.