Alarm Containers

In order for attached Alarm tags to contribute their values and alarm states to your custom tag, you must provide the variables to which they can connect.

ContributorAdded and ContributorDeleted

Declare "ContributorAdded" and "ContributorDeleted" as plugins:

  [ (PLUGINS);
    Shared ContributorAdded   = "ContributorAdded";
    Shared ContributorDeleted = "ContributorDeleted";
  ...

Required Variables

Declare all of the following variables:

  { List of variables handling points contributing to this one }
AlarmActive       { This is an array of alarm priorities for all
                    active alarm contributors.  Any alarm
                    contributors which are not active will set
                    their element to invalid. };
AlarmUnacked      { This is an array of alarm priorities for all
                    unacknowledged alarm contributors.  Any
                    acknowledged alarm will set its element to
                    invalid.  This array is a 1 to 1
                    correspondence to the AlarmActive array. };
AlarmContributors  { This is the "handle" used by the VTScada code
                    to maintain a list of the alarm contributors };
AlmSetpointPtrs   { This is an array of Pointers to the setpoints
                    of each of the alarm contributors };
AlmPriorityPtrs   { This is an array of Pointers to the
                    Priorities of each of the alarm contributors };

Configuration Panel, Alarm Tab

No additional variables are needed in the configuration module. The state where alarm contributors are shown and added will look like the following:

Alarm [
  If Current != X Switch;
 
  {***** Alarm contributor list *****}
  GUITransform(80, 250, 420, 50,
               1, 1, 1, 1, 1            { No scaling                     },
               0, 0, 1, 0               { No movement; visible; reserved },
               0, 0, 0                  { Not selectable                 },
               \DialogLibrary.PContributor("AlarmContributors" { holder },
                 \Root,
                 Parms[\#ContributionType] { contrib type }, 
                "AlarmPoint" { point type },
                 \GetPhrase("AlarmContribLabel"), 1 { & 2 - ID }));
]