Alarm Summary


Terry

Recommended Posts

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.

Link to comment
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.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.