What is the best method for passing instanced data types between windows?

So currently a method I’ve been using is just storing a value to a tag and then reading that tag later whenever the value needs to be pulled. The problem is that most of my clients are often opened on multiple computers simultaneously. So if a tag is overwritten it can affect what is displayed on any other clients that are open and cause confusion. Is there a way to reference components in other windows via scripting or create something like a temporary instanced tag?

If you use Client Tag instead of Memory Tag, every client will have its own client tag when it opens.

Did not even know that existed. Is it essentially an instanced memory tag?

I quote from the user manual :wink:
Client Tags, as the name implies, are only available for use in Clients. They are scoped at the client level, unlike the Gateway Executed Tags. All clients will have the same list of client Tags, however, the actual values are unique and independent for each running Client. In other words, even though client Tags are created in the Designer, each client will create their own instances. This makes them very useful as in-project variables for passing information between screens, and between other parts of the clients, such as scripting.

Client Tags support most of the data types that standard Tags do (including datasets) but excluding the array types. Additionally, Client Tags do not have a Scan Class property, so the value will only update when the polling property executes, or a reference in the Client Tag’s expression updates.

You can create them by right click on the Client folder of the Tag Browser


Exactly what I was looking for. Thanks!

1 Like