[BUG] v8.1.5 AB Logix driver - Tags that are written and reset by PLC in 1 scan remain

v8.1.5

I’m using the Logix driver to talk to a firmware 32 AB logix PLC (L82ES/B)

When I try to write to tags via bindings that the PLC sees then immediately resets (for example a manual mode command which is used by the PLC to change the mode of a device and then immediately reset the command), the value of the command tag stays high and does not get updated to the reset value.

  1. Ignition write tag to True via bidirectional tag binding on component
  2. PLC sees True, does stuff with it, then resets True tag back to False within a single PLC scan
  3. Ignition tag remains as True indefinitely effectively disabling the tag from being written to again via a binding.

Writing to a tag that is also written to by the PLC is inherently a race condition.

  1. The tag is false.
  2. You write true. True is written to the PLC. Ignition tag value is now true.
  3. The PLC writes false.
  4. Ignition driver polls, sees the value is still false, nothing is reported to the OPC client.

You can work around this by putting tags written to by 2 sources into an OPC polled mode tag group or you can rewrite your PLC logic so that each entity writes to its own tag.

This race condition happens with any compliant OPC server where subscriptions are value/quality only. It’s easily observable even with the built in Siemens 1500 OPC server for example.

Hmm, I see the issue… I just played around with the tag group settings and changed the settings for read after write and optimistic writes and seem to have alleviated the issue for now:

image

Previously I had read after write set true and optimistic writes off. As you say, the read after writing would have been too slow to pick up that the value actually did go high and just read 0, unchanged. Turning this off and enabling optimistic writes with a timeout of 1s gives it the time it needs to assume it’s high and then timeout and read again 1s later to see that it’s actually been reset.

Thanks for the insight into the actual issue though! I’ll add some info around this to our company Ignition tips

I’ve been harping on this for years, Nick. I can’t believe you’ve missed them:

http://forum.inductiveautomation.com/search?q=tag%20write%20race%20user:pturmel