Ignition PLC Input reset

I am new to PLC programming and looking for best practices. I have a part entering a station that triggers Ignition to perform several tasks. Although Ignition completes its process quickly, I want to ensure certain PLC processes do not execute until Ignition has finished.

I can set a bit in the PLC to indicate when Ignition has completed its tasks. However, I also need the PLC to reset this bit after the part leaves the station.

Am I on the right track, and what is the best way to achieve this?

The most robust method is to use a pair of integer tags (SINT, perhaps), one for each direction.

Have the PLC increment a TRIGGER tag whenever it has data prepared for Ignition to process. (I usually skip zero on rollover, to avoid startup issues.)

Have Ignition echo this integer to a HANDSHAKE tag after it has completed its part of the process. Hold the PLC from advancing until the two tags are equal.

With this arrangement, tags are only ever written from one direction, and no "reset" operation is required. This greatly improves performance, while also avoid troublesome race conditions.

(Having the PLC reset a boolean that Ignition sets is fine for "fire-and-forget" signals, but is a disaster for bidirectional handshake operations.)

5 Likes