EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Alarms vs. Interlocks Re: How to implement simple control algorithm
From: "Kasemir, Kay" <[email protected]>
To: Kalantari Babak <[email protected]>, "Ilya V. Kitaev" <[email protected]>
Cc: [email protected]
Date: Wed, 03 Dec 2008 09:10:21 -0500
Hi:

As this example shows, EPICS makes it quite easy to  configure
HIHI/HIGH/LOW/LOLO alarm limits on an analog record,
then use another calc to monitor the alarm state
and cause for example a bo record to do something in response to alarm.

What you're doing here is some sort of
interlock or automated response
together with alarm generation, because
the analog record could be added to an alarm handler.

When you get deeper into alarm handling, however,
this combination of alarm generation and
interlock handling can cause problems.

Once the interlock or automated response reacts,
it's already somewhat too late to generate the alarm.
It might have been more useful to alarm on tighter
low/high value limits where operators still
had time to do something about it.
B. Hollifield, E. Habibi in
"Alarm Management: Seven Effective Methods for Optimum Performance"
describe this as the difference between
  "Mommy, I really need to gooo!!"
where you have 5 minutes to save the world vs.
  "Mommy, I went"
where it doesn't really matter if you first get a cup of coffee.

Alarm limits might change or get disabled, and when you link
interlocks that are supposed to protect the machine to
alarms that are meant to assist operators, such an alarm
limit change can compromise your interlock operation.

So long story short it might be better to have your calcout
look at $(YOUR_BO_REC).VAL and the interlock limits,
using the CALC to compare value and limits to compute
the interlock,
while the AI records alarm limits are totally separate.

-Kay


On 12/3/08 08:30 , "Kalantari Babak" <[email protected]> wrote:
> You do not need to write your own CA application for that.
> 
> Monitor alarm status of your "ai" with a "calcout" record and write to
> your "bo" upon occurrence of the conditions.
> This can be done for example as the following:
> 
> record(calcout, "$(ALGORITHM)")
> {
>         field(INPA,"$(YOUR_AI_REC).STAT CP") # monitoring
>         field(INPB,"$(YOUR_BO_REC).VAL NPP")
>         field(CALC, "A=3?1:A=5?0:B")
>         field(OOPT, "On Change")
>         field(OUT,"$(YOUR_BO_REC) PP")
> }
> 
> Alarm status value for HIHI is 3 and for LOLO is 5.
> 
> HTH,
> Babak
>> -----Original Message-----
>> From: [email protected]
> [mailto:[email protected]]
>> On Behalf Of Ilya V. Kitaev
>> Sent: Mittwoch, 3. Dezember 2008 12:33
>> To: [email protected]
>> Subject: How to implement simple control algorithm
>> 
>> Hello.
>> 
>> Could anyone give me advice how to implement following control
>> algorithm: I have IOC with two records, for instance, "ai" and "bo";
>> ai record with periodic scan, "bo" with passive scan.  How do i turn
>> on "bo" record when, for example, HIHI alarm on "ai" record triggered,
>> and turn off when LOLO alarm on "ai" record triggered?
>> Should i implement this as standalone Channel Access application,
>> which will monitor "ai" record and force "bo" record, or it can be
>> implemented by connecting records together(how, which records) in IOC
>> database?
>> 
>> Thanks.
> 


References:
RE: How to implement simple control algorithm Kalantari Babak

Navigate by Date:
Prev: RE: How to implement simple control algorithm Kalantari Babak
Next: Re: compile error about gateway Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: How to implement simple control algorithm Kalantari Babak
Next: Records not in Base David Dudley
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·