Alarm handling in the PLC

Generating alarms correctly in the controller: limits with delay and deadband, latching and acknowledgement, alarm words for HMI/SCADA, suppression and first-out.

Where alarms are born

The PLC detects the condition; the HMI/SCADA displays, acknowledges, logs and escalates it. Good alarms start with good detection logic.

Analog limit with on-delay and deadband

(* High alarm at 85 °C, clears below 83 °C, must persist 5 s *)
IF Temp > 85.0 THEN HighRaw := TRUE;
ELSIF Temp < 83.0 THEN HighRaw := FALSE; END_IF;          (* deadband 2 K *)
tHigh(IN := HighRaw, PT := T#5S);
AlmTempHigh := tHigh.Q AND SignalValid;                   (* no alarm from a broken sensor *)

A deadband (hysteresis) and an on-delay stop chattering alarms that flood the operator.

Latching and acknowledgement

ISA-18.2 distinguishes alarm states: active/unacknowledged, active/acknowledged, cleared/unacknowledged. Many HMIs implement acknowledgement themselves; the PLC must then provide the raw condition and, for trips, its own latch that the equipment logic uses. Do not let an acknowledgement on the HMI reset a trip — reset is a separate, deliberate action.

Alarm words

Pack alarms into WORD/DWORD bit fields (AlarmWord1.%X0 := AlmTempHigh;) so the HMI/SCADA reads them efficiently and alarm texts are assigned per bit. Keep a document mapping every bit to text, priority and response.

Rationalization

  • Every alarm needs an operator action; otherwise it is an event or a message.
  • Suppress consequential alarms: when a pump trips, "low flow" downstream is expected (state-based suppression).
  • Record the first-out of a trip group.
  • Separate diagnostic alarms (sensor fault, communication loss) from process alarms.

Loading the map…

Sources

  1. ISA-18 series — Management of Alarm Systems for the Process Industries — ISA
  2. IEC 61131-3:2025 Programmable controllers — Part 3: Programming languages — IEC

Updated 2026-10-02