How the Independent Feature Works
The Independent feature affects how Geo SCADA Expert applies the Disable Alarms and Enable Alarms actions. It is designed to stop conflicts that may occur when multiple User Types attempt to enable or disable an item’s alarms at the same time.
For example, with Independent disabled, a user can select the Disable Alarms action for a point, and (depending on the server configuration) define a duration. The user expects the Disable Alarms action to apply to the point for the duration. But if a Logic program, Schedule, or Method Call triggers the Enable Alarms action for the point, the point’s alarms become re-enabled, even if the duration has not expired. With Independent enabled, this situation cannot occur—the Enable Alarms action that is triggered by the Logic program, Schedule, or Method Call has no noticeable effect if the item’s alarms are currently disabled by a User.
To understand how the Independent feature works, you need to be familiar with the:
- Internal User Types—Geo SCADA Expert uses internal User Types to categorize the type of items that can trigger the Enable Alarms and Disable Alarms actions. The internal User Types are:
- User (a ViewX, Virtual ViewX, or Original WebX user, which could be a user-created User account or the Guest)
- Logic
- Schedule
- Method Call
- ‘Disable Alarms’ Flags—Each internal User Type has a ‘Disable Alarms’ flag, which can be set to 0 or 1 (0 being Disabled Alarms is off, 1 being Disabled Alarms is on).
- Overall ‘Disable Alarms’ State—This is calculated as being 0 or 1 based on the ‘Disable Alarms’ flags. The Overall ‘Disable Alarms’ state indicates whether the item’s alarms will appear to be enabled or disabled in ViewX and Virtual ViewX (0 is appear enabled, 1 is appear disabled).
Geo SCADA Expert sets the internal flags when Disable Alarms or Enable Alarms is triggered. So if a Logic program triggers Disable Alarms, Geo SCADA Expert sets the Logic flag to 1. It then calculates the Overall ‘Disable Alarms’ state, which is used to determine whether the item’s alarms appear to be disabled or enabled in ViewX and Virtual ViewX.
- If Independent is disabled, the Overall ‘Disable Alarms’ state changes whenever Enable Alarms or Disable Alarms is triggered.
- For example, a user disables the alarms on a point and sets a variable duration of 5 minutes. Geo SCADA Expert sets all of the flags to 1, and so the Overall ‘Disable Alarms’ state is calculated as 1 (disabled). The point’s alarms are disabled and the user expects them to remain disabled for 5 minutes.
- After 2 minutes, a Logic program triggers Enable Alarms for the same point. Geo SCADA Expert sets all of the flags to 0 and calculates the Overall ‘Disabled Alarms’ state as 0. The point’s alarms are re-enabled, even though the disable alarms duration had not been reached. This is because when the Logic program triggered the Enable Alarms action, all of the flags were set to 0, not just the flag for the Logic User Type.
- If Independent is enabled, triggering Enable Alarms changes the ‘Disable Alarms’ flag for whichever User Type triggered the action (User, Logic, Schedule, or Method Calls). However, the Overall ‘Disable Alarms’ state does not necessarily change:
- If any of the User Type flags are 1 (Disable Alarms on), Geo SCADA Expert calculates the Overall ‘Disable Alarms’ state as 1. The item’s alarm features appear to be disabled in ViewX and Virtual ViewX.
- If all of the User Type flags are 0 (Disable Alarms off), Geo SCADA Expert calculates the Overall ‘Disable Alarms’ state as 0. The item’s alarm features are enabled for all User Types and so appear to be enabled in ViewX and Virtual ViewX.
Having Independent enabled allows Geo SCADA Expert to stop conflicts between the internal User Types. This is because with Independent enabled, an internal User Type cannot affect the flag of another internal User Type. For example, if a Logic program triggers Disable Alarms for a point, the point’s alarms cannot be re-enabled overall by a User, Schedule or Method Call (as these User Types cannot affect the Logic flag). When Users, Schedules and Method Calls trigger Enable Alarms, it only affects their own individual flags—for the Overall ‘Disable Alarm’ state to be calculated as 0, all of the flags have to be 0 (so the point’s alarms cannot be re-enabled until a Logic program has called Enable Alarms, which will set the Logic flag back to 0).
Examples:
Example 1 - Independent Enabled, Logic Triggers Disable Alarms
A system is configured so that the alarms and events feature and the Independent feature are enabled.
A new point is created. As a new item, it has its alarm features enabled by default.
Alarms are generated for the point. The alarms are shown on the Alarm Banner, Alarms Lists etc., and the alarm response actions are available in ViewX and Virtual ViewX.
A Logic program is configured. As part of its program, it triggers the Disable Alarms action for the new point.
The Logic program runs and the Disable Alarms action is triggered. This causes the point’s Disable Alarms flags and ‘Disable Alarms’ state to change from:
User 0, Logic 0, Schedule 0, Method Calls 0, (Overall 0)
to:
User 0, Logic 1, Schedule 0, Method Calls 0, (Overall 1).
As the Overall ‘Disable Alarms) state is calculated as 1(disabled), the point’s alarm features are disabled. The alarms for the point are removed from the various alarm displays, and users can no longer access its alarm response actions (Acknowledge, Unacknowledge etc.)
Example 2 - Independent Enabled, Logic Triggers Enable Alarms
A system is configured so that the alarms and events feature and the Independent feature are enabled.
A new point is created. As a new item, it has its alarm features enabled by default.
Alarms are generated for the point. The alarms are shown on the Alarm Banner, Alarms Lists etc., and the alarm response actions are available in ViewX and Virtual ViewX.
A user selects the Disable Alarms action for the point, as the point is only being used for testing. This causes the point’s Disable Alarms flags and Overall ‘Disable Alarm’ state to change from:
User 0, Logic 0, Schedule 0, Method Calls 0, (Overall 0)
to:
User 1, Logic 0, Schedule 0, Method Calls 0, (Overall 1).
A Logic program is configured. As part of its program, it triggers the Enable Alarms action for the new point.
The Logic program runs and the Enable Alarms action is triggered. The point’s Disable Alarms flags and Overall ‘Disable Alarms’ state remain as:
User 1, Logic 0, Schedule 0, Method Calls 0, (Overall 1).
This is because the Logic flag was already set to 0 (Disable Alarms off), so the flag does not change. As the Independent feature is enabled, and one of the flags is 1 (Disable Alarms on), the Overall ‘Disable Alarms’ state is calculated as 1. The point’s alarms are disabled whenever any of the internal User Type flags are 1.
A Schedule is configured to triggers the point’s Disable Alarms action and then trigger the point’s Enable Alarms action an hour later. At the Scheduled time, the Disable Alarms action is triggered. The user has not yet triggered the Enable Alarms action, so the flags and Overall ‘Disable Alarms’ state change to:
User 1, Logic 0, Schedule 1, Method Calls 0, (Overall 1).
As part of the testing process, the user wants some new alarms to be raised for the point, and so selects the Enable Alarms action. The flags and Overall ‘Disable Alarms’ state change to:
User 0, Logic 0, Schedule 1, Method Calls 0, (Overall 1).
The point’s alarms remain disabled, even though the user has triggered Enable Alarms. This is because the Schedule flag is still set to 1 (and can only be set to 0 by a Schedule triggering the Enable Alarms action for the point).
An hour has passed since the Schedule triggered the Disable Alarms action. The Schedule now triggers the point’s Enable Alarms action. The flags and Overall ‘Disable Alarms’ state change to:
User 0, Logic 0, Schedule 0, Method Calls 0, (Overall 0).
The point’s alarm features are enabled as there are no conflicts - all of the User Types have their flags set to 0.
Example 3 Independent Disabled, Logic Triggers Enable Alarms
A system is configured so that the alarms and events feature and the Independent feature are enabled.
A new point is created. As a new item, it has its alarm features enabled by default.
Alarms are generated for the point. The alarms are shown on the Alarm Banner, Alarms Lists etc., and the alarm response actions are available in ViewX and Virtual ViewX.
A user selects the Disable Alarms action for the point, as the point is only being used for testing. This causes the point’s Disable Alarms flags and Overall ‘Disable Alarms’ state to change from:
User 0, Logic 0, Schedule 0, Method Calls 0, (Overall 0)
to:
User 1, Logic 0, Schedule 0, Method Calls 0, (Overall 1).
A Logic program is configured. As part of its program, it triggers the Enable Alarms action for the new point.
The Logic program runs and the Enable Alarms action is triggered. This causes the point’s Disable Alarms flags and Overall ‘Disable Alarms’ state to change from:
User 1, Logic 0, Schedule 0, Method Calls 0, (Overall 1)
to:
User 0, Logic 0, Schedule 0, Method Calls 0, (Overall 0).
As the Independent feature is disabled, Geo SCADA Expert does not consider the individual flags. When any of the flags change, Geo SCADA Expert changes the other flags automatically. This means that Enable Alarms and Disable Alarms are both applied immediately.
The point’s alarms are enabled, even though the user had set them to be disabled.