Ground floor Block D Gillooly’s View Office Park 1 Osborne Road Bedfordview Tel: 0861-WONDER Fax: (011) 607-8478 Alarm Display Tips & Tricks DIANA SMIT Table of Contents 1. Introduction ............................................................................................................................ 3 2. Creating customised Alarm Displays.................................................................................... 4 2.1. Creating the Alarm Page and Alarm Display ...................................................................... 4 2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.1.5. 2.2. Configuring the AlarmViewCtrl ActiveX............................................................................................4 Linking the designed Alarm Display ....................................................................................................6 Querying the Alarm ActiveX................................................................................................................6 Displaying the respective graphic page ................................................................................................8 Acknowledge the Selected Alarm ........................................................................................................9 Creating the other 6 Alarm Displays .................................................................................. 10 2.2.1. 2.2.2. Generate a SmartSymbol ....................................................................................................................10 Querying the Alarm ActiveX..............................................................................................................10 3. Filters and Queries using the Alarm Viewer Controllers ................................................. 12 3.1. Displaying Critical Alarms .................................................................................................. 12 3.1.1. 3.1.2. 3.2. Displaying the Critical Alarms ...........................................................................................................12 Displaying the Default Query - all Alarms.........................................................................................13 Filter on Device Level ........................................................................................................... 15 2 1. Introduction This document will describe in detail how to do the following: • • Create you own customised Alarm Displays • Displaying the latest seven Alarms in a fixed Window • Only show the Date, Tagname and Description of each Alarm • Create an action on each Alarm, so that when selected it will display the respective graphic page • With creating an action, when selecting an Alarm, the selected Alarm will be acknowledged. Create Filters on the Wonderware Alarm Display • By creating an action, the Alarm display must only show the critical Alarms • By creating Filters, the Alarm display will be able to filter up to device level. 3 2. Creating customised Alarm Displays 2.1. Creating the Alarm Page and Alarm Display Inside the InTouch Application create a window. Design the Layout of the first Alarm Display: 2.1.1. Configuring the AlarmViewCtrl ActiveX Because the Alarm Object will be referenced, place an AlarmViewCtrl ActiveX on you window as well. • Place the ActiveX anywhere on the window • Double click on the ActiveX to open up the Property Dialog Box: • Replace the default ControlName, with a more descriptive and appropriate name: 4 • Un-tick the “Visible” tick box, so that the ActiveX will not be visible in Runtime. • Select the Query Tab • Assign the following properties: Priority Select from priority 1 to priority 999 Alarm State Select Unack. We only want to see the latest alarms, and that will be unacknowledged alarms. Query Type Select Summary, so that the ActiveX automatically updates with new alarms and alarm statuses. Alarm Query If you are using InTouch Alarms; the query will be \InTouch!$System If you are using ArchestrA Alarms; the query will be \Galaxy!”Main Area Name” Sort Column This is the Primary Sort Column; you can either hardcode it in the object or by scripting. Select Time to sort your Alarms according to Time. Secondary Sort Column This is the Secondary Sort Column; you can either hardcode it in the object or by scripting. Select State to sort your Alarms according to the state of your Alarm. Sort Direction Select Ascending so that the latest time will be displayed at the top of the list and then the Alarm State will be sorted according in alphabetical order (A-Z) 5 • 2.1.2. Select OK at the bottom of the Property Dialog Box to Save and Close the changes you have made. Linking the designed Alarm Display The object will only be linked to Memory Tags. • Animate your designed object (link on the # symbols): Object 2.1.3. Animation Expression Tag Type String Value Display Line1_Time Message Memory Discrete Text Colour Line1_Return == "UNACK_RTN" Message Memory String Value Display Line1_Tag Message Memory Discrete Text Colour Line1_Return == "UNACK_RTN" Message Memory String Value Display Line1_Desc Message Memory Discrete Text Colour Line1_Return == "UNACK_RTN" Message Memory Querying the Alarm ActiveX By getting (reading) data from the ActiveX, the result will be assigned to the Memory Tags that was created. The only way of getting data from the ActiveX is by using the ActiveX Methods and Properties through scripting and to prevent from getting Errors when there is no data in the Controller to query, you will need to see if there is an alarm in the specific row, before querying the row. To see how many Alarms are displayed in the Controller, use the TotalAlarms() Method/Property. And to get data from an Controller, use the GetItem( "Long", "String") Method/Property. • Create a While Showing Window Script (1000 ms) • Get the Total of Alarms showing in the Controller and return the answer to a Memory Integer Tag (total): • Assign the Memory Tags to the following ActiveX Method/Property using the button located in the Menu Bar. Use the correct ActiveX (remember the ControlName you changed) to select the TotalAlarms() and GetItem() method/property: 6 • Select the • Define Line1_Row as a Memory Integer Tag. • Create an On Show Window Script • Assign a row number to the Line1_Row Tag that was created: Note: Button, to check if the script is correct. The first line (row) in an Alarm ActiveX is always row 0. The second line (row) will be row 1 etc. Save all Windows and Test the results in InTouch View: InTouch Maker InTouch Viewer 7 In Maker, the Alarm ActiveX and Alarm Object must be visible, but in View, only the Alarm Object that was created must show. And if there are no entries in the Alarm Controller, your object will look similar to: 2.1.4. Displaying the respective graphic page Assign every Alarm Group (area) to a specific graphic page. In the example each Alarm Group/Area is assigned to an Area Overview. Alarm Group/Area InTouch Window Area_001 Overview - Area1 Area_002 Overview – Area2 Area_003 Overview – Area3 Area_004 Overview – Area4 Area_005 Overview – Area5 Area_006 Overview – Area6 Draw ‘n Rectangle around the Alarm Object. This will be used the open up the correct window as well as to Acknowledge the Tag. Alarm Group/Area Animate the Rectangle: Animation Touch Pushbutton Action Expression IF Line1_Group == "Area_001" THEN Tag Type Memory Message 8 InTouch Window (On Left Click Down) Show "Overview - Area1"; ENDIF; Memory Message Tag Duplicate above script for rest of the Area’s! Save all Windows and test if the correct Window opens, when selected in InTouch View. 2.1.5. Acknowledge the Selected Alarm To acknowledge a selected alarm, use the Method/Properties of the Alarm ActiveX. When Acknowledging a Selected Alarm, the alarm must be first selected and then Acknowledged; so 1. The first Method that will be used to select the Alarm: a. SelectItem( "Long"); - where “Long” is the Row Number. 2. The second Method that will be used to acknowledge the selected Alarms: a. AckSelected( "String"); - where “String” is the result of the SelectItem Method. Use the same Rectangle as what was used to open the respective page. Add the following Animation: Animation Expression Touch Pushbutton Action Line1_Tag = #TestMe.SelectItem(Line1_Row); (On Right Click Down) #testme.AckSelected(Line1_Tag); Save all Windows and test the Right Click Action in View. 9 2.2. Creating the other 6 Alarm Displays 2.2.1. Generate a SmartSymbol After everything is tested, and working properly: Group the Alarm Object into a cell. Generate the Alarm Object into a SmartSymbol. Place the other six Alarm SmartSymbols on the Window: Link the SmartSymbols to the appropriate Line, thus creating the necessary tags in the process of linking: 2.2.2. Querying the Alarm ActiveX On the “While Showing” Window Script, duplicate the 5 Methods for the other six lines, so that the necessary information can be displayed through the SmartSymbols: 10 On the “On Show” Window Script, assign a row number to the other 6 Row-Memory Tags: 11 3. Filters and Queries using the Alarm Viewer Controllers It is up to the user to decide how the Filters and Queries are going to be triggered: 1. Buttons on a window 2. Key Scripts With both cases, the Filtering and Queries will work exactly the same. 3.1. Displaying Critical Alarms There are different ways of displaying only the critical alarms in the Alarm View Controller and / or in the Alarm Database View Controller. For the example: 3.1.1. • There’s a Window called Alarm – Summary (displays the AlarmViewCtrl) and another Window called Alarm – History (displays the AlarmDBCtrl). • By using one Key Script, depending on what Window is open, the ActiveX must only show the Critical Alarms (Priority 1 to 100). • By using another Key Script, depending on what Window is open, the ActiveX will show the Default Query – no filtering. Displaying the Critical Alarms Create a new Key Script: 12 Returns the Window Status of the specified Window Performs the query as specified by its parameters Alarm Query, From and To Priorities, State of alarms to query for, and the type of alarms to retrieve. Name of the Query Filter created in the AlarmDBCtrl. When a Window is open, the state of that Window is one (1), and only for that window, must the Query change to specified above. 3.1.2. Displaying the Default Query - all Alarms Create a new Key Script: 13 Applies the Default Query specified in the AlarmViewCtrl. Name of the Query Filter created in the AlarmDBCtrl to display all alarms. When a Window is open, the state of that Window is one (1), and only for that window, must the Query change back to Default. 14 3.2. Filter on Device Level In the Alarm Viewer Controller, instead of Querying an Area, with InTouch 9.5, you will be able to Query up to a device level. The Query will look similar to the following: \Galaxy!AreaName!DeviceName A Wildcard (*) can be used to expand the Device Levels, but only at the end of a “Partial Tagname”, for example: \Galaxy!Area!My_Valve* All Tags that start with My_Valve will be displayed in the Controller. 15