• Not Answered

Alarm Priority Capture

I have a requirment to capture all device (AI, Ti, TIC etc) alarms on the system with a priority of 13 and above to initiate a alarm beacon. Thes also have to be unacknowledged (not silenced). I can use the FIC101/AI/HI_PRI, FIC101/AI/HIHI_PRI etc etc but with 600 plus alarm would mean a potential of 4 or 6 if I include deviation per divice. Is their another way of capturing all alarm priority 13+ across the system. ps only 1 Area.

8 Replies

  • My idea would be to set a workstation to only annunciate priority 13 and above, then use VB to write to a controller parameter if any unacknowledged alarms were present. It does mean you need to interrogate all alarm areas to check if the area has an alarm, but would be less work than monitoring all relevant priority 13 alarms.
  • Each workstation has a "Horn" parameter that is equal to the priority of the highest "Un-silenced" alarm. This parameter can be referenced in a control module. But unfortunately for your needs, this parameter goes to 0 when the [Silence Horn] button is pressed. I don't believe there is a similar parameter for unacknowledged alarms. For whatever reason, Emerson has made it where this information can’t be obtained in a module (at least not in any manner I have found).

    Adrian’s idea of a VB on a workstation is the only method I know of. The parameter thisuser/unackcnt.f_cv could be referenced (this is the parameter used on the Alarm Summary to show the number of unacknowledged alarms.
  • In reply to AdrianOffield:

    Another possibility would be to use the Alarm Summary Utility. It's got a small icon in the alarm list view. When you mouse hover over it the tip tool says "Export Alarm Summary to Xml". Give it a try. It creates an XML file which is deposited in the folder DVData\AlmSummary_report. So depending on your needs and programming skills with xml files, it could possibly be what you need. When using the button on an alarm list the utility creates the file based on the current alarm list's filter criteria. However there is nothing to stop you from running the utility directly, say using the windows task scheduler, and specifying your own criteria such as alarms >= priority 13. The utility has a rich set of command line switches. Open a command window (CMD) and enter C:\DeltaV\bin\alarmsummaryutility.exe /? to view the set of command line switches.

    There is one pesky behavior to take note of with the utility. When it is launched, a window pops-up in DeltaV Operate indicating the utility is running, informing the operator where the xml file is being deposited. This popup window times out on its own, and the operator can close it immediately, but it's still potentially disruptive. To remedy that, in DeltaV V12 a new command line switch was added "/silent" to eliminate the popup. If you're not up to v12, there is a place in the registry to set the timeout that could also be used to set the popup timer to 0 seconds. You'd need to ask the GSC where in the registry. Another registry setting specifies the destination folder for the xml files.
  • In reply to David Nelson:

    Hi David, Thanks very much but the parameter thisuser/unackcnt.f_cv I'm assuming will as it suggests give a count of alarms rather than the requirement of unacknowledge priority alarms of 13 +
  • In reply to JimB:

    Jim,

    I believe David was suggesting using that along with the suggestion by Adrian of a dedicated workstation to give you the result you are looking for. You only need to make sure that there is always a user logged into this dedicated machine so the alarms would be active.
  • In reply to Matt Stoner:

    Hi Matt, I agree but using a WS collecting Priority 13+ alarm only and counting unacknowledged alarm using THISUSER is fine, but getting that count or indeed interrogating the unacknowledged comms from the controller to the graphics or visa versa is where the problem is. I need that count of unacknowledged priority 13+ to energise a beacon probably via a DO. But their seems no way of getting to that code, considering silencing the horn puts HORN.CV back to zero even though alarm NOT acknowledged
  • In reply to JimB:

    Jim,

    If all you want to do is drive a beacon, don't you just need to know if one alarm is 13+ is active to fire the beacon?

    So lets make sure that you are aware that the workstation can filter alarms via the UserSettings.grf VBA script. Seach this script for Alarm threshold and then you can change the values to only show 13 and higher alarms. (This is what we were describing as filtering the node to only show 13+ alarms). YOu would need to name this file COMPUTERNAME_Settings.grf and still in the Standard folder otherwise you would filter the alarms for all the nodes on your system.

    You can then create a unique Alarm banner for this 'special' workstation, create a variable that is linked to THISUSER/ALMCNT.F_CV, and put the logic when this variable changes to set the beacon output from the Alarm Banner.

    Private Sub BeaconVariable_OnChange()
    On Error GoTo ErrorHandler
       If frsReadValue("DVSYS.THISUSER/ALARMCNT.F_CV") <> 0 Then
           frsWriteValue "1", "DVSYS.BEACON_DST/OUT_D.F_CV"
       Else
           frsWriteValue "0", "DVSYS.BEACON_DST/OUT_D.F_CV"
       End If
    Exit Sub

    ErrorHandler:
       frsHandleError
    End Sub

    If you wanted to know the unacknowledged count, you can just look at the THISUSER/UNACKCNT.F_CV.

    All of this has no issue with the HORN being enabled or disabled but I would suggest commenting very well the Beacon DST that this I/O is being fired from the alarm banner.

    It isn't the most eligant solution but I believe this is the easiest way to accomplish your requirement.

    Regards,

    Matt

  • Working Code:
    ‘Object to capture, Alarm Priority >= 13 and Alarm Unacknowledged (silencing alarm does not acknowledge alarm but reverts Horn.CV from its alarm value to zero) to sound beacon'
    'System has only 1 Area'

    Dim intAlarmCount as Integer
    Dim alarmAck As Integer
    Dim Beacon As Integer
    Dim IngError as Long

    On Error GoTO ErrHandler

    intAlarmCount = frsReadValue (“DVSYS.AREA/ALARMS[1].F_PRI”, IngError)
    ‘First Alarm in Alarm list and its Priority. Alarm list display hierarchy is’
    ‘1.Unacknowledged’
    ‘2, Priority’
    ‘3. Time’

    alarmAck = frsReadValue (“DVSYS.VISTA_A/ALARMS[1].F_NALM”, IngError)
    ‘New unacknowledged Alarm’

    If (intAlarmCount >= 13 AND alarmAck =1) THEN ‘Unacknowledged alarm with Priority >= 13’

    Beacon = 1
    frsWriteValue Cstr(Beacon), “DVSYS.MODULE/PARAMETER.F_CV”

    Else
    Beacon = 0
    frsWriteValue Cstr(Beacon), “DVSYS.MODULE/PARAMETER.F_CV”

    End If

    Exit Sub

    ErrHandler:
    frsHandlerError