Problem with reading s7-1500 UDT/Struct with OPC

Hey guys,

Currently I am busy with with a project where we are using a S7-1500 with an OPC server on it.
The problem now is that we are reading too many tags from this specific PLC (more than 2000) and the plc doesn’t accept that and giving a too many monitored tags error.

My idea was to not directly attach the opc tag to my tag but add the UDT as OPC tag and derive from it. from another post on the forum I saw that it will give a json value. but i am not getting that.
I get a Bad_DecodingError:

I thought that it was maybe the data type. I tried almost all of them but not any seems to work.

The next thing i tried was checking the traffic with Wireshark, I am getting a ByteString with the (hex) values that are in the struct on the plc. So it seems like that the PLC is sending the data.

Does anyone know what i am doing wrong here?

What version of Ignition are you using and what firmware version is on the S7-1500?

I know later versions of the 1500 firmware have an option to enable/disable the OPC UA 1.03 DataType Dictionary support in favor of the newer 1.04 DataTypeDescriptions… you must have the 1.03 support enabled in order for Ignition to read structured types.

Thank you! that was the issue!

The tag is now showing a JSON string. I have one more question
our customer made visualisation, Alarm, etc. UDT’s and Command UDT’s.
The only thing I need to do on the command UDT is writing a bit high and the PLC will register that and will (almost instantaneously) write this bit down.
The problem is that I see a uncertain message in the tag tree on these bit’s.:


I set the read and write expression the same as for other UDT’s. when I write to this bit the PLC is registering it fine.

when I was writing directly to the bit’s there was no issue.

What does this uncertain message mean? is it because of a race condition or something?

In the beginning there was an issue with keep writing one of the BIT’s high when I was writing another bit (I also could see it happening in Wireshark) but that problem fixed it self. Can this be because of the uncertain message?

I’m not sure why you’re seeing a block of Uncertain quality like that. Does it happen even without trying to write? What is the JSON and what are the derived tag expressions for those tags?

Do make sure that you have the “Optimized Writes” setting enabled for the Tag Group all of these tags belong to if you will be writing to any tags in the structures.

Ahhh nevermind, I made a typo in the read expression.
Do you mean optimistic writes? I disabled that, it is giving me the problem that it rewrites the previous command while i am pressing another. I think it happens because it forces the command bit high on client side? just an assumption.
Without it is working fine.
Thanks for your support!

Enabling Optimistic Writes it is supposed to solve that issue, while having it disabled would make it happen frequently if you write to 2 tags within the same UDT in quick succession. The default state for Optimistic Writes is disabled.