CHAPTER 23 Alarm & Event Programming
Objectives
After completing this chapter, you should have the knowledge to:
Understand alarm programming.
Apply the various techniques to capture alarm and event information.
Many PLC applications require some form of alarming when abnormal conditions or events occur. PLCs are
well suited for this task and in fact, many PLC manufacturers provide special instructions designed just for
this purpose. Some of these special instructions will be covered later in this chapter.
Alerting operating or maintenance personnel of abnormal conditions or problems saves time and increases
machine or process up‐time. When detailed alarming is provided, many problems can be resolved by
operators themselves rather than calling a technician to find the problem saving time and increasing
productivity.
When a PLC system is connected to one of the many HMI interfaces available on the market today, the HMI
can provide all of the alarming functions necessary with minimal additional PLC programming. Most HMI
software packages provide some form of alarming and event recording. These HMI systems continually
monitor the PLC’s internal data files or tags and based on how the HMI is programmed will alarm accordingly.
When HMI interfaces with built‐in alarming features are not part of the overall system or when events must
be captured faster than an HMI system can monitor, the alarming and event recording must be programmed
in the PLC. This chapter is dedicated to showing the reader some of the techniques and instructions used to
program alarm and event information in PLCs.
BASIC ALARM LOGIC
Alarms and events can be triggered from digital information such as a motor failing to start or run. They can
be triggered from process analog values such as a high temperature or low pressure. Whether monitoring a
digital or analog value the end result is the same, a bit or tag is typically set to a 1 or ON indicating that a
problem has been detected. Figure 23‐1 illustrates an example of this basic logic.
Figure 23‐1 Basic Alarm Logic Example
Rung 1 in Figurre 23‐1 monittors the motoor on/off swittch and corre sponding mo otor starter sttatus input to set
an
n alarm if the
e motor is nott running wheen the switch is in the ON position. Thee second rungg monitors an n
nalog temperrature input (N7:1) and alaarms if the temperature exxceeds 100° FF. In both rungs the outputt is
an
n internal bit or tag that, w
an when ON, indicates an abnnormal condittion. This inteernal bit or tag can be replaced
w
with an actual output that iilluminates a light, sounds a horn, or lefft as an intern
nal memory aaddress that iis
m
monitored by aan HMI interfface system.
Affter studying Rung 1 in Figgure 23‐1, you u should see aa basic probleem with this aalarm logic. W
When the mo otor
swwitch is turneed ON, the staatus input from the motor starter does not change sstate immediaately and
thherefore the m motor alarm will be ON for a fraction of a second ass the motor co ontactor chan nges state. Th
his
frraction of a se
econd may no ot seem like mmuch but it caan trigger falsse alarms that can cause p problems with h
otther PLC logicc that uses this alarm inforrmation or falsely turning on an alarm ooutput.
A similar probllem can be seeen in the seccond rung witth the over teemperature alarm. If the teemperature
reeached 101° ffor only a split second caussing the high temperaturee alarm to turrn ON shutting down the
prrocess, the op
perator may n not know what happened.
Bo bove can be ccorrected with some simp le changes to
oth problemss described ab ogic as shown
o the alarm lo
beelow in Figure
e 23‐2.
Figurre 23‐2 Enhan
nced Basic Alaarm Logic
In
n the first rung an On‐Delay Timer (TON N) has been ad dded that alloows for a smaall delay befoore the motorr
allarm is activated which is e
enough time for the motor contactor too change statte and preven nt a false alarrm.
Thhe second run ng uses a sealing circuit to
o seal‐in the aalarm until thee alarm is resset by the opeerator. In ourr
exxample we haave used the start push bu utton as the reset method.. Of course, the temperatu ure must be b below
th
he alarm set‐p point before tthe alarm cann be reset. Th he start buttoon can be repplaced with almost any dessired
acction. See Ch
hapter 22 for an example o of a motor fau ult and monittoring logic th hat can be useed to alarm
abbnormal motor conditionss.
C
CAPTURING
G ALARM EEVENTS
Caapturing and retaining alarm informatio on can be done in multiplee ways. A simmple method iis to use a seaaling
circuit as was sshown in Figu
ure 23‐2, Rungg 2 and some e means to reest the alarm. This method d is non‐reten
ntive,
m
meaning the alarm status w will be lost if the processorr loses power . Latching insstructions can
n be used to m
make
th
he alarm retentive as show wn in Figure 2 23‐3. Other m
methods, such as moving daata, will be discussed laterr in
th
his chapter.
Fiigure 23‐3 Lattching Alarm Logic
Yo
ou will notice
e in Figure 23‐‐3 that the alaarm reset (unnlatch) rung iss located abo
ove the alarm set (latch) ru ung.
Th
his is done to
o ensure that the alarm rem mains set for the entire PLLC program sccan if the starrt button is
pu
ushed while tthe alarm is still active.
A
ANALOG RA
ATE‐OF‐CH
HANGE ALA
ARM LOGIC
Soome applicatiions require tthat analog vaalues such as temperaturee, pressure, leevel, etc. be m monitored forr a
raapid rate of ch
hange and alaarm if such a condition exiists. The logicc in Figure 23‐‐4 uses a timeer, compare,
move, and bit instructions tto create a rate of change alarm. Rung 2 in Figure 233‐4 is a free running timer set
m
to
o the evaluatiion period (30 0 seconds). Th n period can be set to anyy desired value by simply
his evaluation
chhanging the timer preset vvalue. Rung 4 compares the current anaalog value sto ored in F8:0 wwith the previious
annalog value (FF8:1) that was stored at thhe end of the last evaluatioon period. The maximum aallowable rate of
chhange is storeed in F8:2 andd can be channged to any desired value. The alarm o output is latch
hed using the latch
in
nstruction and d requires a ccorrespondingg unlatch insttruction to resset the alarmm. Rung 1 is ussed to store tthe
cuurrent analogg value when the PLC is firsst started so tthat a false allarm is not geenerated the first time thee
timer is done. This logic mo onitors for a p
positive (incre
easing) rate off change, which can be eaasily changed to
allarm on a deccreasing rate of change or both if desire ed.
Figure 23‐4 Rate‐o
of‐Change Alaarm Logic
A
ANNUNCIA
ATOR LOGIC
C
Eaarly alarming methods use ed an annunciator board to o notify oper ators of probblems. These aannunciator
booards used a light behind aan opaque window. The opaque windoow would havve the name o of the alarm
enngraved on thhe window. W When the alarrm was active e the windoww would be illuuminated. Th
hese alarm
annnunciators w
would use thrree modes to indicate an aalarm conditioon. If the alarm had been triggered but not
yeet acknowledged by the op perator, the aalarm window w would flashh indicating th Once the alarm
he problem. O
w
was acknowled dged, the alarrm window w would stop flaashing and eitther remain illluminated orr turn off
deepending on the state of tthe alarm. Op perators could d monitor thee annunciatorr board and teell which alarrms
haad occurred ((flashing), which are still acctive (illuminated), and whhich were nott active (non‐‐illuminated)..
Th mic the early aannunciators is shown Figuure 23‐5. Herre we have ussed the same over
he PLC ladderr logic to mim
teemperature aalarm as was sshown in Figu ure 23‐2 and aadded the neecessary logicc so that the aalarm functions as
d On/Off inte rnal memoryy address. Seee Chapter 22 ffor an
deescribed abovve. The “Flassher” contact is a ½ second
exxample on hoow to program m this flasherr.
Figure
e 23‐5 Basic A
Annunciator TType Logic
Th
he over tempperature alarm
m could be a hardwired ou unciators board or it could be
utput to a lighht on an annu
an
n internal me
emory address monitored by an HMI that has been pprogrammed to mimic an annunciator
bo
oard.
If you only havve a handful oof alarms to p
program, then n the methodd shown in Figgure 23‐5 will work just fin ne.
But if you have e more than aa handful or e
even a few hu undred alarm s to deal with h, then this m
method may
beecome cumbersome requiiring addition nal programm ming time, meemory usage, and scan time. A much beetter
w
way to handle a large numb ber of alarms is to use bitwwise logic alonng with word and file movve instructions. If
yoou recall from
m Chapter 6 “Digital Logic GGates” that digital logic nootations such as AND, OR, XOR, etc. opeerate
att the bit level to make logical decisions. If you are no
ot familiar witth digital logiic notations then a review of
Chhapter 6 wou uld be strongly recommend ded before prroceeding.
In
n the example m logic for 166 alarms (one 16 bit word) by manipulaating
e that followss we will proggram the alarm
w
words of data. Later in this chapter we w w you can takee this basic approach and deal with
will show how
huundreds of alarms at one ttime. We will use the Alle
en‐Bradley PLCC‐5 for this exxample, but aany PLC with
w
word, file, and bitwise operrators can be used.
Th
he first step is to create fo
our (4) integerr memory wo
ords (16 bit) aand label as fo
ollows:
Word 1 (N7:0) Raw Alarms – thiss word contaiins the actuall alarm bits seet in your useer program.
Word 2 (N7:1) Current Alarms – contains all ccurrent alarm
ms that are eitther acknowleedged or
unackn nowledged.
Word 3 (N7:2) Ackn nowledged Alarms – contaains the statuss of all acknowledged alarrms.
Word 4 (N7:3) Unaccknowledged d Alarms – conntains the staatus of all unaacknowledged d alarms thatt are
still active.
Th
he second steep is to program each of yo
our raw alarm
m bits using oone of the 16 bits availablee in word N7:0
0 as
sh
hown in Figurre 23‐6.
Figure 23‐6 Alarm Staatus Logic Usiing N7:0 Bits
Th
he third step is to programm the logic to find all unackknowledged aand acknowleedged alarmss. In Figure 23 3‐7
w
we are using tw wo Compute (CPT) instrucctions to perfo orm this task.. You will notice in Figure 2
23‐7 that we are
ussing logical op
perators in th
he expression
ns of each com mpute instrucction to updatte the acknow wledged and
unnacknowledgged alarm words.
23‐7 Logic to Find Unackno
Figure 2 owledged andd Acknowledged Alarms
To erstand what each expresssion is doing iin the two CPPT instructions refer to thee matrix in Figgure
o better unde
23
3‐8a (unacknowledged) an nd Figure 23‐8
8b for acknowwledged alarm ms. Only the ffirst five bits of each wordd are
sh
hown for easyy of understanding.
Figure 2
23‐8a Unackn
nowledged Al arm Matrix
Figure
e 23‐8b Ackno
owledged Ala rm Matrix
In
n step four we
e program thee logic to cleaar the unackn
nowledged alaarms and move the curren nt alarms (N7
7:1)
in
nto the acknowledged alarrm word when the acknow wledged push button is preessed. See Figgure 23‐9.
ure 23‐9 Alarm
Figu m Acknowledgge Logic
Sttep five uses another CPT instruction to
o update the current alarm
m word (N7:1). See Figure 23‐10.
Figure
e 23‐10 16‐Bit Alarm Logicc Example
Reefer to the matrix in Figure
e 23‐11 to be
etter understaand the logicaal operation b
being perform
med in the lasst CPT
in
nstruction of FFigure 23‐10.
Figure 23‐11 Current Alarms Matrix
Rungs 3, 4 and 23‐10 monitorr all 16 alarms and providee the user witth status information on eeach
d 5 in Figure 2
allarm such as w whether the alarm has been acknowled dged, unacknnowledged, orr currently in an active alaarm
sttate. This info
ormation can be used in many differentt ways such ass turning on w warning lights or annunciaator
booards, or sounding a horn if there are aany unacknow wledged alarm ms. The real b
benefit to thiss type of alarm
m
lo
ogic is that it o
operates in a single scan and will trap the status of aany alarm eveen if the alarm
m was only on n for
onne scan.
M
MULTIPLE A
ALARM & EVENT CAPTURING LLOGIC
Too increase thee number of aalarms (above sixteen) is aa simple mattter of replacin ng the CPT insstructions witth file
tyype instructio
ons that operaate on multipple words at o one time suchh as the Allen‐‐Bradley FAL instruction. TThe
prrogram in Figgure 23‐12 repplaces the CPT, MOV, and CLR instructi ons with FAL, COP, and FLLL instructionss that
m
monitor the status of 80 (16 6x5) alarms. YYou can incre ease or decreaase the numb ber of alarms by simply
chhanging the leength or wordds to operatee on. It is reco
ommended thhat if you havve a large num mber of alarm ms or
pllan to increasse the numbeer in the futurre that you create a separaate file for each alarm stattus (raw, currrent,
unnacknowledgged and ackno owledged) as shown in Figure 23‐12.
N7:0 through N N7:4 contain the raw alarm ms that are prrogrammed i nto the user PLC logic. N10:0 through N
N10:4
ontain the staatus of all currrent alarms, both acknowledged and uunacknowledgged. N11:0 th
co hrough N11:4
co
ontains all ackknowledged aalarms and N12:0 through h N12:4 the unnacknowledgged alarms.
Figure 23‐12 Alarm Logic Example For Up To 80 Alarms
The reset output instruction that follows each FAL instruction ensures that the FAL is reset before the next
program scan so that no alarms are lost.
The examples shown so far in this chapter are only some of the many ways that alarming information can be
handled in the PLC. Most HMI systems today have very extensive alarming and event recording capabilities
that make programming alarm logic in the PLC almost obsolete. The questions you must ask yourself is, does
the HMI update fast enough to capture your alarms without adding additional PLC logic.
ALLEN‐BRADLEY LOGIX5000 ALMD & ALMA INSTRUCTIONS
The Allen‐Bradley Logix family of PLC processors has two alarm/event instructions designed specifically for
monitoring digital and analog data for abnormal conditions as programmed by the user. These Logix‐based
alarm instructions are available for use in relay ladder, structured text, and function block diagram programs.
The advantage to using these two instructions is that when an alarm is detected, the controller will publish
the event to FactoryTalk View Alarms and Events servers that propagate alarms to FactoryTalk View SE
clients (HMIs) that subscribe to receive notifications.
The Digital Alarm (ALMD) instruction detects digital alarms based on Boolean (true/false) conditions. The
instruction is an output instruction that obtains its alarm condition from the rung condition. Some of the
features of the ALMD instructions include alarm acknowledge, latch, minimum duration timer, alarm
counter, time stamp, severity, etc.. Figure 23‐13 Rung 1 shows and example of the ALMD instruction.
The Analog Alarm (ALMA) instruction detects analog alarms based on the level or rate of change of an analog
value. The instruction is an output instruction and is typically placed on an unconditional rung. Some of the
features of the ALMA instructions include alarm acknowledge, high and high/high limits, low and low/low
limits, dead band, rate‐of‐change, minimum duration timer, alarm counter, time stamp, severity, etc.. Figure
23‐13 Rung 2 shows an example of the ALMA instruction.
Because of the many features of both of these instructions it is not practical to include a complete
description here. Please refer to the manufacturer’s instruction manual for a complete description.
Figure 23‐13 A
F Allen‐Bradleyy ALMD and A
ALMA Instructtions
C
Chapter Summary
M
Many PLC applications requ uire some form of alarmingg when abno rmal conditio ons occur. Wh hen adequatee
allarming is pro
ovided, machine or process down‐time can be minim mized which in turn increases productivvity.
W
When program mming alarm logic, the proogrammer sho ould take intoo consideratio
on how alarmms will be
caaptured, annu unciated, acknowledged, aand reset. In ssmall PLC proogram applicaations the alarm logic can be
prrogrammed in conjunction n with the loggic that contro
ols the machiine or processs. On the othher hand, if th
he PLC
o create dedi cated alarm llogic to proceess and updatte all
prrogram is largge with manyy alarms it maay be easier to
allarms at one ttime which wwill save time, increase PLC
C scan time, aand decrease memory usagge. It is not
unncommon to find PLC proggrams that haave been creaated with deddicated program files for ju ust handling
allarms.
M
Most HMI systtems today haave extensive e alarming and d event captuuring featuress that can red
duce or elimin nate
th
he need for PLC programm med alarm loggic. These HM
MI systems cann be program mmed to moniitor the PLC tag
an
nd data files tthat contain tthe machine o
or process infformation succh as pressurre, level, runn
ning, fault, etcc.
R
Review Que
estions
1. What p pair of PLC instructions can be used to capture and retain alarmss?
2. How does the logical XOR instruction work?
3. Write the alarm loggic that will alarm if a process temperatture should riise above 250
0° F or fall bellow
100° F.
ure 23‐12 whaat would you change to inccrease the nuumber of alarrms to 128?
4. In Figu
5. In the PLC logic beloow, when will the flow alaarm be active??