Siemens, OPC UA Write in Array of Data type

Hi,

Configuration : PLC Siemens 1500, OPC UA communication .

I love the possibilities of the native OPC UA in the siemens and ignition. But when a great tool, we always try to do more and I came across a problem: I can't write in an array of data type. I have the following error : "Bad_EncodingError: Encoding halted because of invalid data in the objects being serialized."

To explain, nothing better than a few images:

Data type declaration

Data type array instance

Creation of the variable in Ignition with the assistant that goes well

We change the type to document to manage the json.

We display the value in a text area, without forgetting the Bi-directional option.
Nickel, we read the right values.
image

But as soon as we want to modify the value, the error appears.
image

If I link the tag with an array member, no worries.

I can read and write with no problem.
image

I looked in the traces on the gateway and I get the following detail:

I couldn't find the documentation for "org.eclipse.milo.opcua.stack.core.UaSerializationException", nor any information about the "unknown builtin type: -1" fault.
Any ideas ? Thanks in advance !!

Note sure write is supported for such if data type. Probably @Kevin.Herron can answer

What version of Ignition is this?

I thought the last one but you work faster than me!! It's 8.1.23. I can test with 8.1.24 if needed.

No, it's fine, it looks like it doesn't work in the latest code either.

I'm just trying to figure out if this is a regression or it never worked at all.

Thanks for taking the time to look. If it works it will allow me to compensate that currently it is not possible to create an array of UDTs in another UDT : array-of-udt-inside-another-udt

In the parent UDT I have to recreate a child UDT per instance but everyone uses the same source with the PLC.

PLC configuration :
image

It works fine for reading but not for writing.

Otherwise I would have to create one source tag per child but that multiplies the number of communications by the same amount!!!

Especially since I keep the source tag of the parent because it's much faster to loop in the Json of it than to do a "system.tag.readBlocking()" on the parent tag. The time ranges from a few milliseconds to several seconds.

It seems you have not parameterized your inner UDT in sufficient detail and uniqueness to implement this correctly. Share your UDT json if you want more focused advice from the crowd here on the forum.

Excuse me pturnel for confusing you with the "array of udt inside another udt" part (my previous post) and the explanations that go with it.
I have no problem with this part. This was just to explain the purpose and use of my first question.

Thank you @Kevin.Herron for considering my issue and faster!!!!
This is fixed in version 8.1.27 : First Bite: OPC UA Writes