Tag writes missing from Ignition to S7-1518 PLC using OPC UA driver

Hi,

I have connected Ignition to Siemens S7-1518 PLC using OPC-UA driver. I'm trying to write 3 tags from Ignition at the same time and it seems that once in a while, one of the tags is not reflected in PLC (a different tag each time). I tried to do a continuous ping during my testing and found that there is no interruption in the network connectivity.

Any suggestions to know where the issue is?

By this, do you mean you are using the S7 driver, or that you have made a direct OPC UA connection to the OPC UA server in the PLC?

How are you initiating the writes? What kind of tags are these?

I'm using the direct OPC-UA connection.

I'm initiating the writes using a project script. One of them is an integer tag and 2 others are boolean.

Are they independent tags or part of the same structure? Are you using system.tag or system.opc? Do you check the status returned by the calls?

They are independent tags part of the same folder. I use system.tag.write to update them.

The actual setup is to write from an MES system to Ignition tags, where MES is an OPC-UA client and Ignition a server. And the Ignition tags are in turn connected to PLC as OPC tags. Since I was facing the same issue in this setup, I tried scripts to check Ignition-to-PLC connection.

So the desired setup is that I don't use any scripts in Ignition but MES writes to PLC via Ignition tags.

If the tags come from the same structure within the PLC then you might need Optimistic Writes for the Tag Group.

Otherwise, check the return results from the call. If they aren't bad then the problem isn't on the Ignition side.

Most often when people think a write doesn't work it just turns out to be PLC logic resetting the value after the write.

Thanks. I'll try Optimistic writes. And it is not the PLC reseting the tags as there is no logic in PLC to reset these tags, only sets 'em.

No offense, but literally everybody who ends up finding out the PLC subsequently reset or overwrote the tag has said something like this.

If you can turn off security for the OPC UA connection to the PLC you can do a rolling Wireshark capture and we should be able to see the WriteRequest, with the target NodeIds and values, and subsequent WriteResponse with write results. It's a little bit more objective way to see what's happening than relying on script logging and the Ignition tag system's view of what is happening.

Sure, I can try a Wireshark capture.