Sign in to follow this  
Terry

Alarm Summary

Recommended Posts

New at this. I was surprised and disappointed that DAQF does not include an alarm banner on the operating screen showing all active alarms. What is typically done to allow easy access to alarm information to the operator? 

Thanks,

Terry

 

Share this post


Link to post
Share on other sites

This is because everyone seems to want something different.  So instead of a lot of high level built in controls, we give access to allow you to create exactly what you want.  The next step, hopefully coming soon, is the ability to create your own sort of modules, so stay tuned on that.

But as to alarm info,  it depends on whether you want to display the status of all alarms at once (usually for smaller alarm counts), or a running list of active alarms as they occur.  These are, at least, the two most common.  You may want something different.

Share this post


Link to post
Share on other sites

Probably the best way is to create a sequence function for each possible alarm status, i.e. fire, reset, and ack.  So, for example, AlarmFire.  You'd need to create a global string variable declared in a startup sequence, for example:

global string alarmStatus

Alternatively, you could create a String Test channel with the same name.

Then, create a sequence called alarmFired:

function alarmFired(string desc)
   alarmStatus.addValue("FIRED: " + desc)

Do the same for alarmReset, and alarmAck if desired.

Next, in each alarm, go to the Fire Event and put:

alarmFired(strDescription)

In the ResetEvent put:

alarmReset(strDescription)

and likewise for the Ack event if desired.

Finally, you can use a table component to display the alarmStatus variable.  You probably want to have the first column be time.  That expression would be:

formatdateTime("%c", getTime(alarmStatus))

while the second column would just be:

alarmStatus

Finally, you'll need to set the Description field for each alarm based on what you how you want it described in that table. 

It might seem a little cumbersome at first, but it will give you A LOT of flexibility.  For example, you could, down the road, add email alerts, or handle a stack light or horn without minimal changes.

That said, I might actually pass a few other items to the alarmFired/Reset/Ack functions, so:

function alarmFired(string desc, priority, string help)

Then the Fired event would be:

alarmFired(strDescription, Priority, strHelp)

You don't have to use priority or help, but at least it is being passed in so if you need it down the road it is already there.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this