Creating MQTT SparkplugB TagProvider

I am using FrameworX 10.1 Update 2 and attempting to learn how to the software. I followed the YouTube tutorials from the playlist ‘FrameworX v10’ found on the TATSOFT YouTube channel on how to create a TagProvider. I tested the connection to my SparkplugB MQTT broker and it came back as OK. However, the tags are not manually importing when I create the new TagProvider. Also, while I can get FrameworX to eventually find the data from the broker by manually creating a new folder in the Asset Tree and inserting data from the TagProvider, the data does not update and is not accessible using the @Tag class in scripts. My questions are:

Are there commonly made mistakes that I should check to see if I am making?

What is the most up-to-date documentation for how to create TagProviders, on the YouTube channel or in the online documentation?

What additional information can I provide to help get to the root of this issue?

Hi, since the broker connection test returns OK, the most common issue with MQTT SparkplugB is working with simple tags. SparkplugB expects a structured hierarchy, so in FrameworX you should create a User Type and use its root level for communication/mapping. If tags are created manually (instead of being mapped from the Data Explorer), they may appear in the Asset Tree but may not update at runtime and may not resolve correctly via @tag.

For the most up-to-date guidance, the online documentation is the recommended reference (YouTube is great for learning, but the documentation is kept current).
I also suggest taking a look at this tutorial, which walks through the SparkplugB workflow and may help clarify the correct setup:
https://docs.tatsoft.com/display/FX/MQTT+SpB+Tutorial

Please give this a try, and if the issue persists, feel free to share screenshots or a copy of the solution so we can better assist you.

Best Regards,

This is what I see in the Asset Tree after doing the following:
1.) Creating a new TagProvider (Uses the IP and port for my broker)

2.) Manually create a new folder in the Asset Tree (‘WW_Tank_A’ in the screenshot)

3.) ‘Insert data from TagProvider’ while the new folder is selected

It seems like the data in the broker at that exact moment when I insert the data stays and the values never update again after that. I know for a fact that these values should be changing because I can see them change in the Data Explorer tab, they fluctuate back and forth (it’s a distance sensor pointed at a liquid and so the signal has some noise I need to filter out at some point, which is what results in the values changing regularly). I also tried following the tutorial and connected the internal broker and simulator just as a sanity check, and the values from that were not updating when I had the runtime up. Let me know what other pages it might be useful to get screenshots of to better understand the issue.

Thank you for the detailed explanation.

Based on your description, we were not able to reproduce the same behavior on our side using similar steps. To better understand what may be happening in your project, could you please provide:

  • Screenshots of Unified Namespace > Tags

  • Screenshots of Unified Namespace > UserTypes

These views will help us verify whether the tags are correctly defined, enabled, and bound for runtime updates.

Additionally, if possible, feel free to send us a copy of the project (or a simplified version that reproduces the issue). This would allow us to analyze the configuration in more detail and confirm whether there is any project-specific setting affecting the updates in the Asset Tree.

In working through the tutorials provided I have realized that my issue doesn’t really seem to be about importing tags, but about accessing them. The paths to the tags are made up of a bunch of linked folders, not tags, and so when I am in scripts I don’t know how to access the value of the tags. They work fine when binding tag value to Display elements using Asset(), but Asset() doesn’t work in scripts and so it seems to me like I have no way of accessing these nested tags. I will work on figuring out how to share my project so someone else can look over everything.