Skip to main content

i4scada Knowledge Base

i4scada Studio Alarming

Abstract

The i4scada Alarm Manager is an essential part of i4scada Runtime. It links online process values in real time with the stored alarm rules to online alarms.

Alarms in the i4scada Studio are always members of two important grouping entities: Alarm Groups and Alarm Types. These entities allow alarms structuring based on their type and any other grouping factor suitable for the project (for example, location). So before setting up any alarm the infrastructure needs to be configured.

Tip

For a quick video guide, please also visit our YouTube channel.

WEBfactory i4scada Studio: Using Alarms

Defining Alarm Groups

Present section describes the alarm groups definition using the dedicated view, available in the Alarming section of the Studio. The alarm groups view displays the list of existing alarm groups and allows the user to add or edit alarm groups.

Capture1580.jpg

Alarming section

The alarm groups help the user to create a logical structure of alarms by grouping them together based on the project's requirements. For example, all the alarms from the devices on the production floor can be grouped in the "Production Floor" alarm group.

To create new alarm groups, follow the next steps:

  1. Right-click on the Alarm Groups node in the tree menu or inside the alarm groups view and select New.

  2. Name your new alarm group and provide descriptions for all the languages defined in the system (by default German and English). The descriptions translations are added using the Group Details panel.

  3. Store the new alarm group using the Save button.

    Capture1581.jpg

    Group details panel

Defining Alarm Types

New alarm types can be defined using the dedicated view, available in the Alarming section of the Studio. The alarm types view displays the list of existing alarm types and allows the user to add or edit alarm types.

Capture2075.jpg

Defining Alarm Types

The alarm types help the user to group together same types of alarms and separate them from other types of alarms. For example, all the Warning alarms can be grouped under the Warning alarm type, and Error alarms can be grouped under the Error alarm type.

To create new alarm types, follow the next steps:

  1. Right-click on the Alarm Types node in the tree menu or inside the alarm types view and select New.

  2. Name your new alarm type and provide descriptions for all the languages defined in the system (by default German and English). The descriptions translations are added using the Type Details panel.

  3. Enable or disable the Automatic alarm acknowledgement for this type of alarms. If enabled, the alarms will be acknowledged by the system as they appear.

  4. Store the new alarm type using the Save button.

Defining Alarm Conditions

The Alarm Conditions view displays the list of alarm conditions and allows the user to create and set up new alarm conditions or edit the existing ones. An alarm condition is the logic for triggering an alarm. The conditions can be based on constants, ranges or other signal values.

Alarm_condition.jpg

To create new alarm conditions, follow the next steps:

  1. Right-click on the Alarm Conditions node in the tree menu or inside the alarm conditions view and select New.

  2. Name your new alarm condition.

  3. Select the Criteria, the logical condition that, when returning true, will trigger the alarm.

  4. Enter a Constant value that will be used in equating the state of the Criteria.

  5. Enter, if required by the selected Criteria, a Constant to value, that will be used in equating the state of range based Criteria.

  6. Choose the String comparison in order to compare if two strings are true or not. For more information, please visit the following article: String comparison

  7. Select a Signal that will be used in equating the state of certain Criteria that requires another signal value for comparison.

  8. Store the new alarm condition using the Save button.

The Alarm Condition Criteria is the equation that activates the assigned alarm when returning true. The following equations are available as criteria:

  • Signal Value > Alarm Constant - compares the Signal value to the alarm constant, therefore, the alarm is triggered when the Signal value is higher than the constant value;

  • Signal Value < Alarm Constant - compares the Signal value to the alarm constant, therefore, the alarm is triggered when the Signal value is less than the constant value;

  • Signal Value > Alarm Signal Value - compares the Signal value to the value of another signal, therefore, the alarm is triggered when the Signal value is higher than the value of the other signal;

  • Signal Value < Alarm Signal Value - compares the Signal value to the value of another signal, therefore, the alarm is triggered when the Signal value is less than the value of the other signal;

  • Out of Range - sets an interval between Constant and Constant to, therefore, the alarm is triggered when the Signal value is out of the defined range;

  • Inside Range - sets an interval between Constant and Constant to, therefore, the alarm is triggered when the Signal value is within the defined range;

  • Signal Value = Alarm Constant - compares the Signal value to the alarm constant, therefore, the alarm is triggered when the Signal value is equal to the constant value;

  • Signal Value <> Alarm Constant - compares the Signal value to the alarm constant, therefore, the alarm is triggered when the Signal value is different from the constant value;

  • Signal Value & Alarm Constant (Bitwise);

  • Signal Value = Alarm Constant (string) - compares the Signal value to the alarm string constant, therefore, the alarm is triggered when the Signal value is equal to the String constant value;

  • Signal Value <> Alarm Constant (string) - compares the Signal value to the alarm string constant, therefore, the alarm is triggered when the Signal value is different from the String constant value;

  • Signal values starts with Alarm constant (string) - compares the Signal value to the alarm string constant, therefore, the alarm is triggered when a match between the start of the Signal value and the String constant value is found;

  • Signal value ends with Alarm constant (string) - compares the signal value to the alarm string constant, therefore, the alarm is triggered when a match between the ending part of the Signal value and the String constant value is found;

  • Signal value contains Alarm constant (string)- compares the Signal value to the alarm string constant, therefore, the alarm is triggered when a match between the contents of the Signal value and the String constant value is found;

  • Signal value does not contain Alarm constant (string) - compares the Signal value to the alarm string constant, therefore, the alarm is triggered when a match between the contents of the Signal value and the string constant value is not found;

  • Signal value matches Alarm constant (regex) (string) - compares the Signal value to the alarm string constant, therefore, the alarm is triggered when a match between the contents of the Signal value and the string constant value is found. However, this Alarm condition criteria allows the user to apply regular expression syntaxes (regex) to define the Alarm constant. For more details about the Regex alarm constant definitions, please visit the dedicated article, here;

  • Signal value starts with Alarm signal value (string) - compares the Signal value to the value of another signal, therefore, the alarm is triggered when a match between the start of the Signal value and the value of the other signal is found;

  • Signal value ends with Alarm signal value (string) - compares the Signal value to the value of another signal, therefore, the alarm is triggered when a match between the ending part of the Signal value and the value of the other signal is found;

  • Signal value contains Alarm signal value (string) - compares the Signal value to the value of another signal, therefore, the alarm is triggered when a match between the contents of the Signal value and the value of the other signal is found;

  • Signal value does not contain Alarm signal value (string) - compares the Signal value to the value of another signal, therefore, the alarm is triggered when a match between the contents of the Signal value and the value of the other signal is not found;

  • Signal value is NULL - the alarm is triggered when the Signal value is "NULL";

  • Signal value is not NULL - the alarm is triggered when the Signal value is "NOT NULL".

Notice that some of the equations will require different comparators: a single constant (Constant) for direct comparison, two constants for defining an interval (Constant and Constant to) or another signal value (Signal).

Defining Alarms

The Alarms view displays the list of alarms and allows the user to create and set up new alarms or edit the existing ones. The alarms are events defined by a signal that is monitored and a condition that triggers the alarm. The alarms settings can be edited in the Alarm details panel at the bottom of the Alarms view.

Alarms_General_TAB.jpg

Defining Alarms

To create a new alarm event, follow the next steps:

  1. Right-click on the Alarms node in the tree menu or inside the alarm view and select New.

  2. In the Signal Browser, select the signal that will monitor and will trigger the alarm if the conditions match.

  3. The new alarm will have predefined settings applied. Use the Alarm Details panel to set up the alarm as required for your scenario. Read the Setting the Alarm Properties article, to learn more about setting up alarm properties.

  4. Store the new alarm event using the Save button.

An alarm event is defined by a combination of properties. All these properties can be edited using the Alarm Details panel. You can learn more about the alarm properties in the dedicated topic: Setting the Alarm Properties.

Alarm Groups View Actions and Options

This section of the topic describes the actions that can be performed in the Alarm Groups view.

Tree menu contextual menu

Right-clicking on the Alarm Groups item in the Alarms tree menu will open the contextual menu. The Alarm Groups contextual menu provides a single option for creating new alarm groups.

Capture1582.jpg

Alarm Group contextual menu

Contextual menu of Alarm Group

Description

New

Creates new alarm group

Main panel contextual menu

Right-clicking on an alarm group listed in the main panel will open the contextual menu, providing the user with the options to edit the column in which the contextual menu is opened, copy, add or delete alarm groups, expand or collapse the Group Details panel and refresh the alarm groups list.

Capture1584.jpg

Group details panel

UI Option

Description

Edit

Edits the cell in which the contextual has been opened (where the user right-clicked).

Copy

Copies the selected alarm group for the desired amount of times.

Capture1585.jpg

Copy alarm groups

New

Creates new alarm group.

Delete

Deletes the selected alarm group.

Group Details

Expands / collapses the Group Details panel.

Refresh

Reloads the list of alarm groups.

Alarm Types View Actions and Options

This section of the topic describes the actions that can be performed in the Alarm Types view.

Tree menu contextual menu

Right-clicking on the Alarm Types item in the Alarms tree menu will open the contextual menu. The Alarm Types contextual menu provides a single option for creating new alarm types.

Capture1603.jpg

Alarm Types contextual menu

Contextual menu of Alarm types node

Description

New

Creates new alarm type

Main panel contextual menu

Right-clicking on an alarm type listed in the main panel will open the contextual menu, providing the user with the options to edit the column in which the contextual menu is opened, copy, add or delete alarm types, expand or collapse the Type Details panel and refresh the alarm types list.

Capture1604.jpg

Listed Alarm Types contextual menu

UI Option

Description

Edit

Edits the cell in which the contextual menu has been opened (where the user right-clicked)

Copy

Copies the selected alarm type for the desired amount of times.

Capture1608.jpg

Copy alarm types

New

Creates new alarm type.

Delete

Deletes the selected alarm type.

Type Details

Expands / collapses the Type Details panel.

Refresh

Reloads the list of alarm types.

Alarm Conditions View Actions and Options

This section of the topic describes the actions that can be performed in the Alarm Conditions view.

Tree menu contextual menu

Right-clicking on the Alarm Conditions item in the Alarming tree menu will open the contextual menu. The Alarm Conditions contextual menu provides a single option for creating new alarm conditions.

Capture1576.jpg

Alarm Conditions contextual menu

Contextual menu of Alarm Conditions

Description

New

Creates a new alarm condition.

Main panel contextual menu

Right-clicking on an alarm condition listed in the main panel will open the contextual menu, providing the user with the options to edit the column in which the contextual menu is opened, copy, add or delete alarm conditions, expand or collapse the Condition Details panel and refresh the alarm conditions list.

Capture1577.jpg

Listed Alarm Conditions contextual menu

UI Option

Description

Edit

Edits the cell in which the contextual menu has been opened (where the user right-clicked)

Copy

Copies the selected alarm condition for the desired amount of times.

Capture1578.jpg

Copy alarm conditions

New

Creates new alarm condition.

Delete

Deletes the selected alarm condition.

Condition Details

Expands / collapses the Condition Details panel.

Refresh

Reloads the list of alarm condition.

Alarms View Actions and Options

This section of the topic describes the actions that can be performed in the Alarms view.

Tree menu contextual menu

Right-clicking on the Alarms item in the Alarms tree menu will open the contextual menu. The Alarms contextual menu provides a single option for creating new alarms.

Capture1586.jpg

Alarms contextual menu

Contextual menu of Alarm node

Description

New

Creates a new alarm.

Main panel contextual menu

Right-clicking on an alarm listed in the main panel will open the contextual menu, providing the user with the options to edit the column in which the contextual menu is opened, copy, add or delete alarm groups, export and import alarms, expand or collapse the Alarm Details panel and refresh the alarms list.

Capture2044.jpg

Listed Alarms contextual menu

Contextual menu of Listed Alarms

Description

Edit

Edits the cell in which the contextual menu has been opened (where the user right-clicked)

Copy

Copies the selected alarms for the desired amount of times. 

New

Creates new alarm.

Delete

Deletes the selected alarm.

Alarm Details

Expands or collapses the Alarm Details panel.

Refresh

Reloads the list of alarms. 

NOTE

When deleting a large amount of alarms, is selected for deletion, alarms are split into chunks. Each chunk is afterward deleted in a bulk delete operation. Following SQL queries are executed, when an alarm is deleted:

  • delete entries from Collective Alarms table (an alarm can be used as a collective alarm);

  • delete symbolic text translations associated with the alarm;

  • delete alarm itself;

  • delete symbolic texts associated with the alarm;

By default, an SQL command has a default timeout set to 30 seconds. If the operation is not completed in this period, an exception is thrown by the .NET. The problem was that the "delete symbolic texts" took longer than 30 seconds timeout, so the operation crashed and it was rolled back.

The following parameters may be found in the Studio configuration file:

  • LengthOfChunkOfAlarmsToDelete: defines the length (number of alarms to delete) of a single chunk. The minimum value is 1 (delete one by one). The maximum value is int.MaxValue = 2147483647. The default is 5000 (this value was obtained by testing different scenarios).

  • DeleteCollectiveAlarmsOfAlarmsCommandTimeOut: the time in seconds to wait for the command (delete entries from collective alarms for the current alarm to be deleted) to execute. The minimum value is 0 = no limit (an attempt to execute a command will wait indefinitely). The maximum value is int.MaxValue = 2147483647. The default is 30 seconds.

  • DeleteSymbolicTextTranslationsOfAlarmsCommandTimeOut: the time in seconds to wait for the command (delete entries from symbolic text translations for the current alarm to be deleted) to execute. The minimum value is 0 = no limit (an attempt to execute a command will wait indefinitely). The maximum value is int.MaxValue = 2147483647. The default is 30 seconds.

  • DeleteAlarmsCommandTimeOut: the time in seconds to wait for the command (delete alarms) to execute. The minimum value is 0 = no limit (an attempt to execute a command will wait indefinitely). The maximum value is int.MaxValue = 2147483647. The default is 30 seconds.

  • DeleteSymbolicTextsOfAlarmsCommandTimeOut: the time in seconds to wait for the command (delete entries from symbolic texts for the current alarm to be deleted) to execute. The minimum value is 0 = no limit (an attempt to execute a command will wait indefinitely). The maximum value is int.MaxValue = 2147483647. The default is 30 seconds. By increasing the time out value for DeleteSymbolicTextsOfAlarmsCommandTimeOut to a higher value, the command will be executed and no exception will be thrown.