[BUG] Using system.tag.writeBlocking() against tags derived from OPC tag

I am using a Siemens 1500 PLC and the onboard OPC UA server. I have structured my UDTs to contain a single OPC tag which is subscribed to the corresponding UDT on my PLC. The individual elements of my UDT are all derived tags using read/write expressions with jsonGet() and jsonSet() expressions back to the single OPC tag. This is done to reduce communication load with the PLC. I’ve done this successfully using versions up to 8.1.1.

Then when I upgraded to 8.1.3 - If I wrote to each tag individually, I would still have no issues. However, when I use a function like system.tag.writeBlocking() to write to multiple tag paths in short succession (all derived tags) only the write to the last tag path succeeds.

When I was using 8.1.3 I was advised by support to add the following to my gateway config file:


in order to restore the old functionality that I was accustomed to. This seemed to solve my issue. Now using both 8.1.4 and 8.1.7 with the same change to the gateway config file my writes are failing again - only the last tag write succeeds. What else can I try to be able to write to multiple tags derived from a single OPC UA tag in short succession?

Do you have Optimistic Writes enabled for the Tag Group the source and derived tags belong to?

The parameter you set is now the default behavior in 8.1.4+, as we reverted to the original behavior that the parameter was forcing a revert to, so I’m not yet sure how or why it’s related.

And when you say:

Do you mean all the paths are passed in one single call to writeBlocking, or you are making multiple writeBlocking calls?

Ok turning on optimistic writes for my Tag Group seems to have solved the issue. In previous versions though I never needed to use optimistic writes with my datatypes, should I expect to always need to have this on going forward?

To clarify, I am using a single system.tag.writeBlocking() with multiple tag paths passed in.

Optimistic Writes being enabled has always been mandatory for writing to multiple derived tags in this kind of setup. That it ever worked for you without it is surprising to me.

Interesting, I have another project on a 8.1.1 gateway that I am not seeing this issue on and I do not have optimistic writes turned on in the Tag Group I am using. I will plan on always using optimistic writes going forward just to be safe.