Alarm

Don Diego

Member
Join Date
Apr 2017
Location
Tema
Posts
22
I want an alarm / indicator when a contact fail to close in stipulated time , I am finding it difficult writing this rung. Need help


Wisdom Samlafo
Facebook /Wise Samlafo
Ghana
 
This is probably more than the OP asks for; remove the blue code sections for the bare minimum.


Behavior

  • An Event occurs at time T
  • If The_Coil closes before time (T+10000ms), then there will be no alarm
  • If The_Coil does not close before time (T+10000ms), then there will be an alarm.
    • The alarm is triggered by the PLC output Alarm_Out changing from 0 to 1
    • If there is an alarm, it will not clear until Alarm_Reset_Button is pressed, even if The_Coil closes.


External devices
  • Event
    • Physical contact that initiates the process
  • The_Coil
    • Physical relay that must close within 10000ms of contact Event
  • Coil_feedback
    • Physical contact feedback on The_Coil, that closes when The_Coil closes
  • Alarm_Reset_Button
    • Momentary button to reset alarm

PLC Inputs
  • Event_In
    • NO: input that detects (becomes 1 on) closure of contact Event
  • Alarm_Reset_In
    • NO: input that detects (becomes 1 on) closure of contact Alarm_Reset_Button
  • Contact_in
    • NO: input from Coil_feedback that detects (becomes 1 on) closure of The_Coil
    • N.B. this is related to, but separate from, Contact_Out

PLC Outputs

  • Contact_Out
    • Output to drive The_Coil, which The_Coil should close] within 10000ms after Event_In becomes 1
    • This output, and the blue branch below, are not necessary if external device Event is physically wired to close The_Coil, external to the PLC
  • Alarm_Out
    • Output to alarm if input Contact_In does not become 1 (indicating that The_Coil has not closed) within 10000ms after Event_In becomes 1




Sections in blue are optional and extra bells and whistles:


Code:
    Event_In        Contact_in     _____________
-----] [------+--------]/[--------[TON        DN]-----+-----
              [COLOR=blue]|[/COLOR]                   [Name  the_ton]     [COLOR=Blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [PRE     10000]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [Acc         0]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                    -------------      [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]    [B][COLOR=blue]Contact_Out                        [/COLOR][/B][COLOR=blue]|[/COLOR]
              [B][COLOR=blue]+--------( )----------------------------+[/COLOR][/B]


       the_ton.DN       [COLOR=Blue][B]Alarm_Reset_In[/B][/COLOR]    Alarm_Out
----+-----] [-------+---[COLOR=blue][B]------]/[-----[/B][/COLOR]-------( )--------
    [COLOR=blue][B]|               |[/B][/COLOR]
    [COLOR=blue][B]|   Alarm_Out   |
    +-----] [-------+[/B][/COLOR]
Minimal case:

N.B. this assumes Event is wired directly to The_Coil


N.B. in this case, when Event_In is 1 and an alarm has been triggered, that alarm will stop if the The_Coil closes.



Code:
    Event_In        Contact_in     _____________
-----] [---------------]/[--------[TON        DN]-----------
                                  [Name  the_ton]
                                  [PRE     10000]
                                  [Acc         0]
                                   -------------


       the_ton.DN           Alarm_Out
----------] [------------------( )--------
 
I thought some more about this, and my previous post #4 may have the reset logic in the wrong place, as it allows the operator to suppress the alarm by laying a wrench on the reset button.


Corrected logic is below.




Behavior

  • ..
  • If The_Coil does not close before time (T+10000ms), then there will be an alarm.
    • The alarm is triggered by the PLC output Alarm_Out changing from 0 to 1
    • If there is an alarm, it will not clear until Alarm_Reset_Button is pressed, after either The_Coil closes or Event_In becomes 0.


External devices
  • ..
  • Alarm_Reset_Button
    • Momentary button to reset alarm after either Event becomes 0 or The_Coil closes (Contact_In becomes 1).




Code:
    Event_In        Contact_In     _____________
-----] [------+--------]/[--------[TON        DN]-----+-----
              [COLOR=blue]|[/COLOR]                   [Name  the_ton]     [COLOR=Blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [PRE     10000]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [Acc         0]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                    -------------      [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]    [B][COLOR=blue]Contact_Out                        [/COLOR][/B][COLOR=blue]|[/COLOR]
              [B][COLOR=blue]+--------( )----------------------------+[/COLOR][/B]


       the_ton.DN                            Alarm_Out
----+-----] [------------------------+-----( )--------
    [COLOR=blue][B]|                                |[/B][/COLOR]
    [COLOR=blue][B]|   Alarm_Out    [/B][/COLOR][COLOR=blue][B][COLOR=Blue][B]Alarm_Reset_In[/B][/COLOR]  |
    +-----] [------------]/[---------+[/B][/COLOR]
 
Last edited:
I thought some more about this, and my previous post #4 may have the reset logic in the wrong place, as it allows the operator to suppress the alarm by laying a wrench on the reset button.


Corrected logic is below.




Behavior

  • ..
  • If The_Coil does not close before time (T+10000ms), then there will be an alarm.
    • The alarm is triggered by the PLC output Alarm_Out changing from 0 to 1
    • If there is an alarm, it will not clear until Alarm_Reset_Button is pressed, after either The_Coil closes or Event_In becomes 0.


External devices
  • ..
  • Alarm_Reset_Button
    • Momentary button to reset alarm after either Event becomes 0 or The_Coil closes (Contact_In becomes 1).




Code:
    Event_In        Contact_In     _____________
-----] [------+--------]/[--------[TON        DN]-----+-----
              [COLOR=blue]|[/COLOR]                   [Name  the_ton]     [COLOR=Blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [PRE     10000]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [Acc         0]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                    -------------      [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]    [B][COLOR=blue]Contact_Out                        [/COLOR][/B][COLOR=blue]|[/COLOR]
              [B][COLOR=blue]+--------( )----------------------------+[/COLOR][/B]


       the_ton.DN                            Alarm_Out
----+-----] [------------------------+-----( )--------
    [COLOR=blue][B]|                                |[/B][/COLOR]
    [COLOR=blue][B]|   Alarm_Out    [/B][/COLOR][COLOR=blue][B][COLOR=Blue][B]Alarm_Reset_In[/B][/COLOR]  |
    +-----] [------------]/[---------+[/B][/COLOR]

Both versions work, so nothing "wrong", although the first version would prevent the alarm if the reset is held, while the second version will allow the alarm even if the reset is held. (Held could be a short, broken button contacts, etc). All a matter of preference or requirement.
 
Both versions work, so nothing "wrong", although the first version would prevent the alarm if the reset is held, while the second version will allow the alarm even if the reset is held. (Held could be a short, broken button contacts, etc). All a matter of preference or requirement.




Good point; it will depend on the application.


Thanks.
 
But on your Alarm Out I would add a branch and put a 32 second timer, then if that timer gets DN activate the Operator Training Collar Transmitter (Pet Supplies Plus sells them)
 
Plaudits

This is probably more than the OP asks for; remove the blue code sections for the bare minimum.


Behavior

  • An Event occurs at time T
  • If The_Coil closes before time (T+10000ms), then there will be no alarm
  • If The_Coil does not close before time (T+10000ms), then there will be an alarm.
    • The alarm is triggered by the PLC output Alarm_Out changing from 0 to 1
    • If there is an alarm, it will not clear until Alarm_Reset_Button is pressed, even if The_Coil closes.


External devices
  • Event
    • Physical contact that initiates the process
  • The_Coil
    • Physical relay that must close within 10000ms of contact Event
  • Coil_feedback
    • Physical contact feedback on The_Coil, that closes when The_Coil closes
  • Alarm_Reset_Button
    • Momentary button to reset alarm

PLC Inputs
  • Event_In
    • NO: input that detects (becomes 1 on) closure of contact Event
  • Alarm_Reset_In
    • NO: input that detects (becomes 1 on) closure of contact Alarm_Reset_Button
  • Contact_in
    • NO: input from Coil_feedback that detects (becomes 1 on) closure of The_Coil
    • N.B. this is related to, but separate from, Contact_Out

PLC Outputs

  • Contact_Out
    • Output to drive The_Coil, which The_Coil should close] within 10000ms after Event_In becomes 1
    • This output, and the blue branch below, are not necessary if external device Event is physically wired to close The_Coil, external to the PLC
  • Alarm_Out
    • Output to alarm if input Contact_In does not become 1 (indicating that The_Coil has not closed) within 10000ms after Event_In becomes 1




Sections in blue are optional and extra bells and whistles:


Code:
    Event_In        Contact_in     _____________
-----] [------+--------]/[--------[TON        DN]-----+-----
              [COLOR=blue]|[/COLOR]                   [Name  the_ton]     [COLOR=Blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [PRE     10000]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                   [Acc         0]     [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]                    -------------      [COLOR=blue]|[/COLOR]
              [COLOR=blue]|[/COLOR]    [B][COLOR=blue]Contact_Out                        [/COLOR][/B][COLOR=blue]|[/COLOR]
              [B][COLOR=blue]+--------( )----------------------------+[/COLOR][/B]


       the_ton.DN       [COLOR=Blue][B]Alarm_Reset_In[/B][/COLOR]    Alarm_Out
----+-----] [-------+---[COLOR=blue][B]------]/[-----[/B][/COLOR]-------( )--------
    [COLOR=blue][B]|               |[/B][/COLOR]
    [COLOR=blue][B]|   Alarm_Out   |
    +-----] [-------+[/B][/COLOR]
Minimal case:

N.B. this assumes Event is wired directly to The_Coil


N.B. in this case, when Event_In is 1 and an alarm has been triggered, that alarm will stop if the The_Coil closes.



Code:
    Event_In        Contact_in     _____________
-----] [---------------]/[--------[TON        DN]-----------
                                  [Name  the_ton]
                                  [PRE     10000]
                                  [Acc         0]
                                   -------------


       the_ton.DN           Alarm_Out
----------] [------------------( )--------

Drbitboy, I think the second Program is much user friendly. It work perfectly on the simulator but, but a reset button between ton. DN and Alarm out will make it even better
 
Drbitboy, I think the second Program is much user friendly. It work perfectly on the simulator but, but a reset button between ton. DN and Alarm out will make it even better


A momentary button, between [the_ton.DN] and [Alarm_Out], that needs to be pressed and held is not a reset button; it is a [temporary silence/disable alarm]. That's why I improved the code from post #4 to post #5. This may be acceptable, or even necessary if a audible alarm needs to be temporarily silenced.



And a push (or toggle or maintain) button, that stays in once pressed, is also not a reset button; it is an [alarm disable] i.e. it disables the current and all future alarms. This is probably not a good idea; if an audible alarm needs to be silenced then there should be a separate rung, with temporary* logic, for the audible alarm but the HMI alarm should remain.



The way the second set of rungs are written, the alarm is only reset when either

  • the delayed The_Coil finally closes and [Contact_In] becomes 1,
  • OR
  • the trigger event ends and [Event_In] becomes 0.
* "temporary" means it stops the audible alarm for the current alarm, but the audible alarm would be re-enabled for the next such event.
 
A momentary button, between [the_ton.DN] and [Alarm_Out], that needs to be pressed and held is not a reset button; it is a [temporary silence/disable alarm]. That's why I improved the code from post #4 to post #5. This may be acceptable, or even necessary if a audible alarm needs to be temporarily silenced.



And a push (or toggle or maintain) button, that stays in once pressed, is also not a reset button; it is an [alarm disable] i.e. it disables the current and all future alarms. This is probably not a good idea; if an audible alarm needs to be silenced then there should be a separate rung, with temporary* logic, for the audible alarm but the HMI alarm should remain.



The way the second set of rungs are written, the alarm is only reset when either

  • the delayed The_Coil finally closes and [Contact_In] becomes 1,
  • OR
  • the trigger event ends and [Event_In] becomes 0.
* "temporary" means it stops the audible alarm for the current alarm, but the audible alarm would be re-enabled for the next such event.

Drbitboy, the problem with the post #5 is the alarm the alarm is still energized with the Alarm _Reset _In open. As long as the _TON _DN is set , the alarm will still be audible even if Akarm_Reset_In is open.
Have you done the simulation, I tried and that's a problem
 
Last edited:
Drbitboy, the problem with the post #5 is the alarm the alarm is still energized with the Alarm _Reset _In open. As long as the _TON _DN is set , the alarm will still be audible even if Akarm_Reset_In is open.
Have you done the simulation, I tried and that's a problem




That is intentional: there is a difference between alarm reset and alarm disable. If it can be disabled, what is the point of having an alarm?
 
That is intentional: there is a difference between alarm reset and alarm disable. If it can be disabled, what is the point of having an alarm?




An alternative would be to call it an Alarm Acknowledge, so the operators must acknowledge that there was an alarm condition. It depends on the severity of the condition, i.e. is it important to know that it happened?
 
An alternative would be to call it an Alarm Acknowledge, so the operators must acknowledge that there was an alarm condition. It depends on the severity of the condition, i.e. is it important to know that it happened?

....I concur

Different ways of going about acknowledging the alarm , it depends on the application.

Sorry for the late feedback after the initial post; I have been busy all week. I work 12 hours daily from 6am - 6pm at an oil mill as an industrial Electrician, very little free time at my disposal
 
....I concur

Different ways of going about acknowledging the alarm , it depends on the application.

Sorry for the late feedback after the initial post; I have been busy all week. I work 12 hours daily from 6am - 6pm at an oil mill as an industrial Electrician, very little free time at my disposal


no need to apologize, one of the benefits of a forum is that the conversation is asynchronous, so people can participate as much or as little as they can.
 

Similar Topics

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
37
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
74
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
126
FactoryTalk View ME running on PanelView Plus 7, connected to Compact GuardLogix 5380 PLC Customer is asking for a physical push button to be...
Replies
6
Views
169
Hi all. I´ve got a little problem with my FT View SE alarm window. On my PLC program, I have 200 SINT for alarms, in which every bit is for one...
Replies
2
Views
134
Back
Top Bottom