OPCUA UDT tags on Siemens S7-1500 problem

I got some problem with reading opcua UDT tags on siemens S7-1500 plc, when ignition decodes the certain structure like below.
PLC: S7-1500 with firmware newer than V2.9.2
Igntion: 7.9/8.1
UDT tags structure: When 2/3 demsion array struct under another struct.


Problem: I got two results randomly, bad quality with "Bad_DecodingError", or readout the json string with something wrong in data and format. Here example I suppose to got 4 elements in 'CELL' struct, which I only got two, and some strange data in first element that is different than PLC data.

I tried to tickle/untickle the type dictionary on PLC but give no help.
image

The lastest working firmware on Siemens is V2.9.2, and I have tested any version newer than that will have the same problem.

From Igntion side, I would like to know how the igntion parsing the data stream and any solutions for that?

You’ll definitely need that legacy types box checked.

If you can export the UDT definition we might be able to import it into one of our PLCs to debug. Ignition doesn’t have great support for multi dimensional arrays so it may just be broken.

Edit: though it’s interesting you seem to be able to link the problem to firmware versions…

Thanks for the reply.
Just got some information from Siemens that changes in new firmware is adhering the OPC UA specification V1.04.

  • " multi-dimensional arrays are now encoded as an Int32 Array containing the dimensions followed by a list of all the values in the array."

So the question is, would it be possible from ingnition to support new opc ua spec in future updates?

The UDT file as below:
CELL_UDT.txt (380 Bytes)
TRAY_UDT.txt (325 Bytes)

Support for the new DataTypeDefinition attribute and other OPC UA 1.04/1.05 changes are coming in Ignition 8.3 late this year.

2 Likes