HMI/PLC Alarm State Synchronization

Hey ya’ll,

I’m interested in hearing your opinions on when/how you synchronize alarm states between HMIs and PLCs. More specifically, how others handle acknowledged/shelved status.

This question has come up as we’ve been trying to standardize our PLC code for alarming in order to be as flexible as possible with whatever HMI package our customer would like to use (our vote is always Ignition :wink:).

Some different ways we’ve done things in the past:

1 Ignition systems:

1.1 For the simplest cases we’ve had no Acknowledgement synchronization back to the PLC. All user alarm interactions besides Reset exist solely on the HMI. An onscreen Reset button is used for alarms that required a manual reset.

1.2 Use an alarm’s AckPipeline to send an Ack back to the PLC. An onscreen Reset button is used for alarms that required a manual reset.

1.3 Use a tag’s Alarm Acknowledged Event Script to send an Ack back to the PLC. An onscreen Reset button is used for alarms that required a manual reset.

2 FactoryTalk A&E systems:
We use the Logix instruction-based alarms (haven’t had an opportunity to use tag-based alarms yet). This offers pretty seamless synchronization between the HMI and the PLC. Acked, Suppressed, Disabled, and Shelved status are all available in the PLC.

3 FactoryTalk View ME systems:
We use the Ack connection to synchronize status back to the PLC and the Remote Ack to synchronize between PanelViews. An onscreen Reset button is used for alarms that required a manual reset. No provisions are made for shelving.

My main interest is in how others handle acknowledged/shelved status. Quite a lot of additional work is required in Ignition to send alarm acknowledgement back to the PLC, and while I’m usually in the Do Everything in the PLC camp, I’m starting to question why we even bother trying to synchronize alarm ack status; it is rare that we ever want to do anything with the acknowledgement besides silence an audible. We avoid using alarms directly in logic anyways, since alarms can usually be changed/enabled or disabled without much oversight.

So, here are some prompt-y type questions:

  1. Do you make any attempt to synchronize the acknowledgement state of alarms between the HMI and the PLC?
  2. If so, why? What do you use the additional status information for in your PLC code?

1.1, practically always.

Simply because if an alarm is appropriate for the “Supervisory Control” aspect of SCADA, you typically care only about that Supervisor’s knowledge of the alarms.

When an application is strictly the “Data Acquisition” aspect of SCADA, there typically is no live machine interface other than review of the recordings. Operating such machines is strictly from the machine’s vendor-supplied HMI, where all the alarms are handled.

In a more blended environment you might echo such alarms to management, but handling the alarm happens on the plant floor. An ack from management is distinct from an ack from the machine operator, and shouldn’t be synchronized anyways.

1 Like

I’m in the 1.1 camp

1 Like