Types

 

In the Workbench, Hyper Alarm Server Alarm Types are located under the Types folder in the root of the Hyper Alarm Server provider's configuration section. To configure alarm sources, at least one alarm type must be configured. To start Type creation, you can create a new type instance by either right-clicking on the Types folder or using the ribbon’s button. A new alarm type form appears, and the “General” page is selected.

 

To Add a Type

  1. Start the Workbench, then expand your project. Next, expand the Alarms and Notifications node to show the Hyper Alarm Server node. Expand the Hyper Alarm Server node to show the Types node.

  2. Right-click the Types node in the navigation tree and select Add Type, as shown in the figure below.

Add Type from the Project Explorer

 

-OR-

 

Select the Types node in the Project Explorer, then click on the Add Type button, shown below, in the Edit section of the Home ribbon in the Workbench.

 

Add Type Button

  1. This opens the Type properties window, shown below, beneath the Project Details section in the Workbench. Enter a unique name in the Name text entry field.

Type Properties

Note: The next sections follow logical steps, which should be adhered to when creating a new alarm type. Next, select the “Inputs” tab, as shown below.

Inputs Tab

Inputs Tab

 

Each input value represents a single configuration value accessible in alarm source configuration form. In other words, alarm source configuration form is autogenerated based on input values properties.

 

At minimum, one input value should be configured to allow alarm type customization, maximum number of input values is not limited.

 

Input values should specify source data point(s), limits and other settings, which can be different for different instances of alarm sources related to the same alarm type.

Triggers Tab

Triggers Tab

 

The alarm source evaluation does not happen automatically but is driven by triggers. Thus, at minimum, one trigger must be configured. There is no upper limit for the number of configured triggers. However, it should be kept on some reasonable level since each trigger consumes host computer resources and the set of triggers is usually created for each configured alarm source.

When Time Trigger Type is Selected:

When "One time only" is Selected:

When "Time interval" is Selected:

When "Specific dates and time" is Selected:

When Data Change Trigger Type is Selected:

Fields Tab

Fields Tab

 

This represents all the values sent to an alarm client with every alarm state change. There are two basic types of field values: Custom and Predefined. Custom fields are identified by name. The only limitation is that it must be unique within the same alarm type. Predefined types have this name fixed and thus cannot be changed.

Conditions Tab

Conditions Tab

 

Each condition is identified by an integer number with value between -1000 and 1000. The value of 0 represents “normal condition” while all other values represent alarm conditions. At minimum, two conditions must be configured: one “normal condition” and one “alarm condition”.

Values Tab

Values Tab

 

This tab shows the relationships between conditions and fields in a tabular form. Conditions are represented by lines. Fields are columns in this tabular view. Except for condition names, all other columns are editable. Default values, which were defined for each field are shown in blue color. Modified values are black. Every editable value in this table is an expression, which can use inputs to create actual value for the combination of active condition and field. An Expression Editor is also available, via a button that appears when a value is being edited.

General Tab

General Tab

 

Even though this tab is shown on the very first position, it should be configured as the last step in the alarm type configuration procedure. This tab allows users to configure alarm source logic – i.e. based on input values to generate condition value code. It also allows users to select one of the predefined alarm transition type entities.

Hyper Alarm Server supports ISA 18.2 state machine in two modifications: Full, as shown on the next picture, and Without “Latch” State.  

 

Full Modification

 

Alarm Message Fields Updates (ISA 18.2 State Machine)

 

The following table shows all state transitions in the ISA 18.2 state machine where each column specifies if alarm message fields are read updated from theirs related inputs (YES) or stays unmodified (NO) – i.e. evaluated in from previous state. N/A marks not supported transitions.

 

           Target

Source

A

B

C

D

E

F

G

H

I

A – Normal

N/A

YES

N/A

N/A

N/A

N/A

YES

YES

YES

B – UnackAlarm

N/A

YES

NO

NO

NO

N/A

NO

NO

NO

C – AckAlarm

NO

YES

N/A

N/A

N/A

NO

NO

NO

NO

D – RTN Unack

NO

YES

N/A

N/A

N/A

N/A

NO

NO

NO

E – Latch Unack

N/A

N/A

N/A

NO

N/A

NO

NO

NO

NO

F – Latch Ack

NO

N/A

N/A

N/A

N/A

N/A

NO

NO

NO

G – Shelved

YES

NO

NO

NO

NO

NO

N/A

N/A

N/A

H – Suppressed By Design

YES

NO

NO

NO

NO

NO

N/A

N/A

N/A

I – Out Of Service

YES

NO

NO

NO

NO

NO

N/A

N/A

N/A

Settings Tab

Settings Tab

 

This section allows users to configure all remaining settings that are independent on fields or conditions. Currently, management of all “suppressed” states and alarm delay times is supported.

 

All settings are optional. All not configured values use default values as shown in the following table.

Setting Type

Description

Default Value

Enable User Out of Service

Enables User to manually set “Out of Service” state

False

Out of Service

Directly controls the state of “Out of Service” via input value(s) or constants. “Enable User Out of Service” must be disabled to make this work

Disabled

Enable User Suppressed by Design

Enables User to manually set “Suppressed by Design” state

False

Suppressed by Design

Directly controls the state of “Suppressed by Design” via input value(s) or constants. “Enable User Suppressed by Design” must be disabled to make this work

Disabled

Enable User Shelved

Enables User to manually set “Shelved” state

False

Shelved

Directly controls the state of “Shelved” via input value(s) or constants. “Enable User Shelved” must be disabled to make this work

Disabled

Alarm On-Delay

For how long alarm source waits before it switches to “alarm” state. Delay is in seconds.

0 – no delay

Alarm Off-Delay

For how long alarm source waits before it switches to “normal” state. Delay is in seconds.

0 – no delay

Re-Alarm Time

For how long an alarm can stay in alarm-acknowledged state. Delay is in seconds.

0 – re-alarm disabled

Maximum Time in Shelved State

Maximum time an alarm can stay in Shelved suppress state. Delay is in seconds.

0 – no limit

 

Alarm Type Expressions

All expressions used within alarm types (condition evaluations, fields, settings) can use historical and generic method call functions. Thus, it is possible to define alarms based on certain data point(s) history, e.g., to monitor a value trend. These calls are not limited to GENESIS64 products only, such as Hyper Historian, but may call third-party servers via OPC UA or OPC HDA interfaces.

 

These methods can be found under the “Data Point Functions” menu item in the root of the “Functions” menu, as shown below.

 

Data Point Functions

 

The following table shows a list of “Data Point” expression functions. Parameters in the square brackets are optional.

 

Function Name

Description

tagmethod(

              pointName,

              methodName,

              inputArgs...)

Invokes a server method with a set of input arguments and returns an array of values representing output method arguments.

 

Parameters:

              pointName: A text representing data point name.

              methodName: A text representing server's method name.

              inputArgs: Zero or more values passed as input arguments to server method call.

 

Returns:

              Returns an array of output method arguments.

tagat(

              pointName,

              reqTimes...)

Reads historical values at specified times.

 

Parameters:

              pointName: A text representing data point name.

              reqTimes: One or more DateTime values to define the specific timestamps for which values are to be read.

 

Returns:

              Returns one or more values with specified timestamps.

tagraw(

              pointName,

              start,

              end,

              maxValues)

Reads historical values in specified time domain up to specified maximum number of values.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              maxValues: Maximum number of values to return in single function call. Value must be between 1 and 1000.

 

Returns:

              Returns zero or more raw values organized in array of values.

tagagg(

              pointName,

              aggregateType,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Calculates one or more resampled values for specified aggregate type name.

 

Parameters:

              pointName: A text representing data point name.

              aggregateType: Aggregate type name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

              slopedExtrapolation: Indicates how the server interpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagavg(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],               [resamplePeriod],               [uncertainAsBad])

Returns average value for all raw values in resample interval.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagtavg(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],               [uncertainAsBad],               [slopedExtrapolation])

Returns time weighted average value for resample interval.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

              slopedExtrapolation: Indicates how the server interpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagsum(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],               [uncertainAsBad])

Returns sum value for all raw values in resample interval.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagtotal(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],               [uncertainAsBad],               [slopedExtrapolation])

Returns total value for resample interval (normalized to milliseconds).

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

              slopedExtrapolation: Indicates how the server interpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagstart(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the value at the start time for the interval by calculating the Simple Bounding Values for the interval.

 

See tagtotal for parameter description.

tagend(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the value at the end time for the interval by calculating the Simple Bounding Values for the interval.

 

See tagtotal for parameter description.

tagdelta(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the difference between the Start Bound and the End Bound Aggregates with the exception that both the start and end must be good values.

 

See tagtotal for parameter description.

tagrawstart(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad])

Returns the earliest raw value within the interval and returns that value with the timestamp at which that value occurs.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagrawend(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad])

Returns the latest raw value within the interval and returns that value with the timestamp at which that value occurs.

 

See tagrawstart for parameter description.

tagrawdelta(

              pointName,

              start,

              end,

              [resamplePeriod],

              [uncertainAsBad])

Returns the difference between the earliest and latest good raw values in the interval.

 

See tagrawstart for parameter description.

tagmin(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the minimum good value for each interval, Simple Bounding Values are included.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

              slopedExtrapolation: Indicates how the server interpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagmax(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the maximum good value for each interval, Simple Bounding Values are included.

 

See tagmin for parameter description.

tagrange(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the difference between the maximum and minimum values in the interval, Simple Bounding Values are included.

 

See tagmin for parameter description.

tagpctgood(

              pointName,

              start,

              end,

              [resamplePeriod])

Returns percent of good values for each interval (time weighted).

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagpctbad(

              pointName,

              start,

              end,

              [resamplePeriod])

Returns percent of bad values for each interval (time weighted).

 

See tagpctgood for parameter description.

tagtimegood(

              pointName,

              start,

              end,

              [resamplePeriod])

Returns the sum of the duration of all good regions (each good region starts with good value sample).

 

See tagpctgood for parameter description.

tagtimebad(

              pointName,

              start,

              end,

              [resamplePeriod])

Returns the sum of the duration of all bad value regions (each good region starts with bad value sample).

 

See tagpctgood for parameter description.

tagworstqual(

              pointName,

              start,

              end,

              [resamplePeriod])

Returns the worst status of the raw values in the interval where a Bad status is worse than Uncertain, which is worse than Good.

 

See tagpctgood for parameter description.

tagtimezero(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the time Duration during the interval that the Variable was in the zero state.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

              slopedExtrapolation: Indicates how the server interpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

tagtimenonzero(

              pointName,      

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad],

              [slopedExtrapolation])

Returns the time Duration during the interval that the Variable was in the non-zero state.

 

See tagtimezero for parameter description.

tagcount(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns a count of all the raw values within an interval.

 

Parameters:

              pointName: A text representing data point name.

              start: DateTime value indicating begin of the time interval to process data for.

              end: DateTime, TimeSpan or Numeric milliseconds value offset against start time, indicating end of the time interval to process data for.

              pctGood: Numeric value in range 0-100 indicating percentage of good samples in given time interval to return good status code for processed value.

              pctBad: Numeric value in range 0-100 indicating percentage of bad samples in given time interval to return bad status code for processed value. When NaN value is used then percentBad is calculated as 100.0 - percentGood.

              resamplePeriod: TimeSpan value representing aggregate resample period. When zero then it calculates aggregate for the whole-time interval specified by start and end times.

              uncertainAsBad: Indicates how the server treats data returned with a StatusCode severity Uncertain with respect to Aggregate calculations.

 

Returns:

              Returns one or more resampled values. Single resampled value can be accessed directly while multiple values are returned as an array of values.

taganncount(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns a count of all Annotations in the interval.

 

See tagcount for parameter description.

 

tagntrans(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns a count of the number of transition the Variable had during the interval.

 

See tagcount for parameter description.

tagstddev(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns standard deviation of the sample in the interval (N - 1).

 

See tagcount for parameter description.

tagvariance(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns variance of the sample in the interval (N - 1).

 

See tagcount for parameter description.

tagstddevppl(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns population standard deviation in the interval (N).

 

See tagcount for parameter description.

tagvarianceppl(

              pointName,

              start,

              end,

              [pctGood],

              [pctBad],

              [resamplePeriod],

              [uncertainAsBad])

Returns population variance in the interval (N).

 

See tagcount for parameter description.

tagdescription(pointName)

Returns configured description text for specified data point name.

 

Parameters:

              pointName: A text representing data point name.

 

Returns:

              Returns a text value representing data point's description.

tagunits(pointName)

Returns configured engineering units for specified data point name.

 

Parameters:

              pointName: A text representing data point name.

 

Returns:

              Returns a text value representing data point's engineering units.

tagvaluerange(pointName)

Returns configured value range for specified data point name.

 

Parameters:

              pointName: A text representing data point name.

 

Returns:

              Returns an array of two values, where first value represents low range and second value high range.

  1. Once you have completed setting your properties, click Apply to save them and Close to return to the Workbench.

See Also:

About Hyper Alarm Server

Areas

Tags