ManagedTagProvider value binding


I have been using the ManagedTagProvider to setup simulation UDTs. The UDTs generally have a “run” tag, input tags, output tags, and config tags. When the user toggles the run tag on a UDT instance, my module executes simulation logic on a timer and updates the output tags.

I’m very happy with how easy it was to implement using ManagedTagProvider, and that it takes care of persistence for all the instance tags and values. My only problem is that the user can’t setup binding on the value property for any of the tags. The user needs the ability to bind tag values to other data sources available in Ignition, and other simulation instances.

providerConfiguration.setAllowTagCustomization(true) does not seem to apply to the value category.

Is there a way to enable value binding without needing to implement a custom tag provider?



ManagedTagProvider’s only provide what are equivalent to Memory Tags.

So, if I understand your question, yes you would need some kind of full custom tag provider to let your users create or configure Expression Tags inside it, which is what it sounds like you want.

But why don’t they just create the Expression Tags they need outside your provider?



Thanks for the response Kevin. An example might have the following instances created from module defined UDTs:



Then I’d like to bind TankSimInstance.inputFlow1 to PumpSimInstance.outputFlow.

So an external tag would need to be bound to both tags somehow to glue them together, which I’m not sure is possible. Do you see any other ways of accomplishing what I’m trying to do?



If you’re okay hooking this up manually via code in your module then after you’ve created all your tags you can get the TagManager and subscribe to tags you want to “bind” to using subscribeAsync and when that tag’s value changes set the value on the target tags.

I don’t see any solution for letting users manually/dynamically configure these “bindings” though.



10-4, thanks. I will look into implementing a custom tag provider. If anyone has implemented a custom provider and would be interested in consulting on this (or sharing), please reach out!