Alarm Handing

cjd1965

Lifetime Supporting Member
Join Date
Apr 2007
Location
UK
Posts
1,659
Hi
I need the following

When a condition arises, turn on an alarm. The alarm must remain even if the alarm condition is cleared, until it is acknowledged (from HMI)
I must also sound a alarm siren if an unacknowledged alarm is present.
I need 256 of these. The PLC is only cheap and does not support indirect addressing. Was also thinking of XORing HMI Alarm bits with Alarm Acked bits for the Audible

Any improvments/suggestions welcom



Alarm Condition HMI Alarm
-----| |------------------------------------( )
|
HMI Alarm Alarm Acked |
-----| |------|/|------------

HMI Alarm HMI Ack Bit Alarm Acked
-----| |------|-------| |------------------( )
| |
| Alarm Acked |
-----| |------- -

HMI Alarm Alarm Acked Audible
-----| |----------|/|-----------------------( )



 
Last edited:
Hi
I need the following

When a condition arises, turn on an alarm. The alarm must remain even if the alarm condition is cleared, until it is acknowledged (from HMI)
I must also sound a alarm siren if an unacknowledged alarm is present.
I need 256 of these. The PLC is only cheap and does not support indirect addressing. Was also thinking of XORing HMI Alarm bits with Alarm Acked bits for the Audible

Any improvments/suggestions welcom



Alarm Condition HMI Alarm
-----| |------------------------------------( )
|
HMI Alarm Alarm Acked |
-----| |------|/|------------

HMI Alarm HMI Ack Bit Alarm Acked
-----| |------|-------| |------------------( )
| |
| Alarm Acked |
-----| |------- -

HMI Alarm Alarm Acked Audible
-----| |----------|/|-----------------------( )




PLC is cheap OK, but what type?
And HMI type?

I would suggest you use an extra button to switch off the beeper - then the operator can calmly check and ack the alarms.

You could use word-logic to make the code more compact. In S7 it could look something like this (32 alarms):

L 0
T LD0 // Zero help data

A AnAlarmNo1
= L 0.0
:
A AnAlarmNo32
= L 3.7

L ALDB.ALDD0 // Alarm status to HMI
INVD // Invert all bits
L LD0 // New status
AD // Anding old and new to check rising edges
A <>0 // (not sure if this works here - no Step7 at hand)
S BEEPER

L ALDB.ACKDD0 // Alarm ack-command
INVD // invert
L ALDB.ALDD0 // Alarm status to HMI
AD // Reset acked
T ALDB.ALDD0 // Alarm status to HMI

L LD0 // Active alarms
L ALDB.ALDD0 // Alarm status to HMI
OD // Setting the new alarm bits
T ALDB.ALDD0 // Alarm status to HMI


NB! It is not tested, just intended to give you an alternative idea.
icon12.gif


Kalle
 
Hi
It is all IDEC (PLC is a pentra) and supports only ladder code. With regard to the alarm it must resound if a new alarm comes on so a "switch" would not work.

In S7 I have a alarm DB and a acked alarm DB that i look through and check, written in SFC code. But alas, IDEC is ladder only. I would say moving the alarm words to ack words and comparing those words for a difference would work for the buzzer.

This is an old school programming problem like i used to do 25 years ago but my brain hasnt restored the backup yet lol

It maybe I can use bits from the HMI for unacknowledged alarm detection.... I need to read the manual for the HMI
 
Do you seriously need to acknowledge each alarm individually? Machine operators will hate you. I usually just have one 'alarm reset' pushbutton that resets ALL the alarms. Any that still exist automatically re-engage, but at least the siren turns off.

The way I do it is to have each alarm condition SET a bit in an alarm word. When the alarm word is not equal to zero, an alarm is present. This triggers the alarm lamp/siren. Siren is triggered by a one-shot, and latches itself. The alarm reset button breaks the latch (N.C. one-shot so the operator doesn't tape down the button). This makes the siren shut up until another alarm condition occurs.

Basic example:
|   ALARM            ALARM
| PRESENT ACKNOWLEDGE
| (1-SHOT) (1-SHOT)
|----] [-------+------]/[----------------(SIREN)
| |
| SIREN |
|----] [-------+

When the acknowledge button is pressed, it writes all zeros to the alarm word. This RESETs all the alarms, but if an alarm is still present, that bit is automatically re-SET immediately.

🍻

-Eric
 
This maybe? But you need alot of them right...set M coils to bits and just use registers? Use move commands? Hmmm maybe i will just stay out of this convo from now on....:confused:

AlarmHandling.JPG
 
Hi All
Eric Nelson, it will be a common alarm reset. The idea is that any alarm will enable the siren, and the ack will silence the siren and ack all active alarms. Any new alarm will reactivate the siren.

This is like old code I did on old PLC2/15s and Mitsubishi A series long time ago, I am just trying to dredge my brain lol.
I will look deeper into what you suggest, it looks sensible to me.

The iDEC does have quite a comprehensive instruction set.

I_is_a_noob, Any idea ia welcome... you using GE Machine Edition Software? looks familiar.


thanks for ideas so far.
 
Eric Nelson
I have read what you wrote a few times and have a question

Say Alarm 1 is bit 1 of word 1, and Alarm 2 is bit 2 of word 1

Alarm 1 is trigerred, bit 1 is set, Word 1 is not 0 so the siren is sounded .... op acks the alarm, Alarm 1 condition still active so bit 1 set and siren quiet.

Alarm 2 is triggerd, bit 2 is set. Word 1 is still not 0 so 1 shot will not fire again to enable the siren....... or am i missing something. Maybe PDF a couple of rungs when you get the time

Thanks
 
I do something similar to what Eric does. I use an alarm word or words, depending on how many alarms I have, and if it is not equal to zero then then I turn on a bit I call "Alarm Active". This bit will turn on both the alarm light and horn in separate rungs. Each alarm has it's own rung that has the alarm bit, a one shot, and then a MOVE instruction. Each time an alarm occurs it moves a 1 into the integer in the move instruction. When the alarm is acknowledged I use a CLR instruction to set the integer to zero. Then when a new alarm occurs the the integer is set to 1 again. I use an EQUAL instruction based on the state of the integer in conjuction with the "Alarm Active" bit to turn on the light and the horn. I also use additional code to flash the light and sound the horn when a new alarm occurs, and silence the horn and make the light steady after acknowledging. Hope this makes sense.
 
For a small PLC, I would go with your first effort. It's easy to read, easy for just about anyone to understand.

For a large system, with many alarms, and needs to be modified easily, I might do with an alarm word, and's, and compares. But for most of my systems, I do almost exactly as your OP.
 
Eric Nelson
I have read what you wrote a few times and have a question

Say Alarm 1 is bit 1 of word 1, and Alarm 2 is bit 2 of word 1

Alarm 1 is trigerred, bit 1 is set, Word 1 is not 0 so the siren is sounded .... op acks the alarm, Alarm 1 condition still active so bit 1 set and siren quiet.

Alarm 2 is triggerd, bit 2 is set. Word 1 is still not 0 so 1 shot will not fire again to enable the siren....... or am i missing something. Maybe PDF a couple of rungs when you get the time

Thanks
You are correct. The siren will not be enabled if a new alarm occurs while there is an existing alarm.

On my machines, I never have an 'existing' alarm. ALL alarms must be acknowledged before you can restart the machine (alarm word = 0). Therefore, the siren will trigger when a new alarm occurs.

You could still use my example though. Instead of just looking for 'alarm word' not equal to zero, you could look for the value to change. Copy the alarm word to a spare register ever scan, then compare the alarm word value to this spare register the next scan (located BEFORE the copy instruction). If it's different (and still not equal to zero), then you know a new alarm has occurred. This would be used to re-trigger the siren.

The ladder in you latest post is fine, but if you are only writing a 1 or a zero to a D register, then why not just use a bit address (M)? In other words, you have 16 bits in a D register, but you're only using 1... o_O

🍻

-Eric
 

Similar Topics

Hi folks, in the alarm manager of Rslogix 5000, the tag-based alarm has been created. But when I tried to change the condition, it was found the...
Replies
0
Views
13
From the Red Lion website, after some customer enquiries in the last week or so... Rev. March 25, 2024 [18:30] Just thought it might help a...
Replies
9
Views
258
I'm a newbie who started a job as a repair tech recently. I've had plenty of luck with ABBs, Allen Bradleys, and a few others, but I can't seem to...
Replies
1
Views
156
Hello, I made a change in alarm setup in factory view studio, where I changed a alarm message text. After that I made a run application and...
Replies
0
Views
125
I am trying to enable an external alarm via computer speakers for Factory Talk Network Distributed Edition. I am using Alarm and Events setup. I...
Replies
7
Views
164
Back
Top Bottom