Transaction group - Bi-directional update mode doesn't work properly?


I am trying to configure a robust bi-directional communication between database and Ignition tags. In the video below, I’ve recorded issues, that bother me:

  1. At 0:05 and multiple times after - sometimes the database updates after value change of tag, sometimes not. Why is it happening?
  2. 0:35 - change of value in the database is not recognized by the tag, but after changing value of the other tags in the Designer, the value from the database is sent to the tag. What should I do, to make the tag update after value change in DB?

Settings of the database:


Thanks in advance for your response!

Not sure about #1, as I don’t ever use bidirectional mode.

#2 is simple: Triggered transaction groups don’t poll the database for changes. You have a trigger (tag changes). Any trigger is only evaluated within Ignition–without reference to the DB content. Try turning off the trigger (might fix #1, also).

1 Like

Yes, it looks like the turning off the trigger, helps with the #2. Thanks.

Can I ask, why you don’t use bi-directional mode? Is it about performance or personal preferences?

Neither. It is a nightmare for race conditions. In general, I avoid having any tag or data element written from more than one source. Not just in a transaction group.


Ok, I understand it and I think it’s a good practice.

But what about situations, when one tag is used to communicate between PLC - SCADA - MES?

You can copy the value to another tag, but it will still have two sources (let’s say the tag is sourced by PLC and the copied tag).

Don’t use one tag. Use two. By “sourced from”, I mean only one end writes to a particular tag. The other end writes to different tag to acknowledge. Having one end (PLC, perhaps) clear a register after the other end (Ignition, perhaps) sets it as a trigger is an anti-pattern that will cause grief.

I make two exceptions:

  1. Machine startup/initialization may required a PLC to set up defaults for tags that are written occasionally.

  2. Recipes values may be edited from multiple directions, as the “source” of such writes is the operator.

1 Like

Hmm, ok. I have to test it out, but it makes sense.

Thank you for your advice.