Is there a way to determine if a graphic has an active alarm via a singe parameter?

Hello All,

I'm making an overview graphic with popups that show if each area/graphic has an active alarm. Is there any parameter I could look at that would tell me this for each graphic?

I know the AcknowledgeAllAlarms subroutine is capable of interacting with only the alarms on a single graphic, is there any way to read the status of all alarms on a single graphic?

Thanks!

  • Use the following to determine if a area has an alarms in conjunction with the alarm color table. Replacing AREA_A with the name of the area. Reference "The ALARMS parameter" in BOL
    DVSYS.AREA_A/ALARMS[1].F_PRI Alarm priority
    DVSYS.AREA_A/ALARMS[1].F_NALM New Alarm
  • We have a customer that approximates this behavior by making a classless unit module for each graphic. On their toolbar they then pull the count of each unit module to show the alarms active per graphic. You can use the unit modules and reference the same alarm array that ICMbill references in his post. Classless unit modules do not require any additional licensing.
  • In reply to Matt Forbis:

    I've wondered about this. Of course, the easiest way is to let the system do it.

    The prevailing HMI design calls for L1, L2, L3 and L4 displays. L1 being an overview of an operator's span of control. L2 I would equate to Plant Areas. L3 displays equate to Units, or equipment groupings in a given Plant area.

    So, taking what Matt indicates, you would setup Units, class based or classless, and group control modules for the Unit, and the L3 display for this unit would use the Unit Alarm for its Alarm information and display role up. And with all the units in a plant Area, the L2 display would have the Plant Area alarm information for its roll up information as suggested by ICMBbill.

    In a plant area, there are control modules that might be common to multiple Units. Where do we put those? I would leave them at the same level as the Units in the Plant Area. These would roll up to the L2 display, rather than one of the units. You can place this module on all the Unit displays, and it would show its alarms in these displays for convenience, but these modules would have the L2 display for their Primary control display, as this would give the operator a view of the module and all the units affected by it. All the modules in a Unit should have the Unit L3 display as their Primary control display.

    So I'm going through BOL to find some more info for you, and I can't find it. The help information in the DeltaV Browser dialog will show you the Workstation Parameter Help information. This has info on the Area, ThisUser and Unit parameters available only in workstations.

    For L2/Area displays, use Plant Area workstation parameters.

    DVSYS.AREA/ALMCNT.F_CV. ( there is a limit of 50 alarms per Area)
    and
    DVSYS.AREA/ALARMS[1].F_PRI or some of the other fields associated with the top priority alarm in that area.

    For L3/Unit displays, you can use the following syntax to read Unit information:

    DVSYS.U$/UNIT_NAME/ALMCNT.F_CV (There is a limit of 50 alarms per unit)
    DVSYS.U$/UNIT_NAME/OPSUPCNT.F_CV
    DVSYS.U$/UNIT_NAME/UNACKCNT.F_CV
    and to know the highest priority alarm:
    DVSYS.U$/UNIT_NAME/ALARMS[1].F_PRI
    There are other fields for ALARMS[1] to show module name, Time in alarm, description etc.

    You might have to rethink how you layout your modules in DeltaV Explorer, and align your L2 and L3 displays with Plant Areas and Units, but if you do, the system provides you with the Alarm groupings to match.

    If you like a challenge, and don't want to align displays with Units and Areas, you can look at mining the Primary Control Display form the MODT.SCR file, and then find active alarms in the Alarm list to roll them up by Primary Control Display. I don't know how feasible that would be.

    Or you could manually create your module list per display and find all modules with alarms based on the ThisUser alarms[x] and roll your own independent list.

    I'm thinking that adding a bit of structure to DeltaV Explorer would be the easiest way to go and to manage long term.

    Andre Dicaire