Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Alarm and Event system

Alarms and Events in the PROMOTIC system represents terms for catching and controlling technological actions.
- Alarm is a caught action (e.g. breakdown of valve) that arises, expires, and there is need to take notice of it by the operator, by so called acknowledgement.
- Event is a simplier type of action (e.g. actions of operator) that only arises and there is need just to record it.

Because both terms are very similar, this area is covered together by the PmAlarmEvent object in the PROMOTIC system. Such objects can be in an application more than once - so you can create more groups of alarms/events (e.g. when you want to separate communication and technological alarms or events from a boiler-room and a drying-room, etc.) There must be specified already before its creating whether such object serves for controlling alarms or events. Thus one single object cannot be assigned for events and at the same time for alarms.

 
Creating of the concrete alarm/event:

Specific alarm/event can be created (i.e. define it for later activation/deactivation/acknowledgement, etc.) by various ways:

- Data extension: To use Data extension is the most standard and easy way for alarm/event creating. This is defined in data item of the PmData object. System controls limit exceeding and by this it activates/deactivates alarm. Data extension of the type ExtAlarmAnalog, ExtAlarmBinary, ExtEvent can be used.
- Static alarm/event: Alarm and event can be defined directly in PmAlarmEvent object in List configuration page. These alarms/events must be activated by script using the Activate method.
- Dynamic alarms/events: To avoid alarms/events to have to be defined in advance, then it is possible to define so called template in the List page (see the configurator "Template for dynamically created items") and then such alarms/events can be created dynamically in the script by the PmAlarmEvent.RegisterNew or PmAlarmEvent.ActivateNew methods.
 
Creating a group by more objects:

If you want to have only one group of alarms/events (so that you could, for example, view all these alarms together) but you want to create it by more PmAlarmEvent objects (e.g. you want to have one PmAlarmEvent object for each boiler-room), then it can be done by the following process: You create one PmAlarmEvent object which will serve as the base (root) for all further objects. You parametrize it accordingly but you don't need to create even single alarm/event in it. Then you create next PmAlarmEvent objects on other relevat suitable places where you check the Parent enabled configurator and you set the path to the base object. Then you create required alarms/events in these objects.

Thus you'll maintain these alarms/events with these objects but internaly they are "pointed" to the base object. All alarms/events can be viewed together, they can be stored in one file, etc.

 
Local group (server) and remote group (client):
- Local group (server) - the most common case when the alarm/event represents a place in the application where alarm/event items really arise and they are stored on a disk. The "Text file (*.al, *.ev)" or "dBASE III file (*.dbf)" type of storage is used - see the configurator "Storage type".
- Remote group (client) - the case when the application displays alarms/events that arise and they are stored in another application (server) that can run on another computer. The "Remote connection over WEB" type of storage is used - see the configurator "Storage type".
 
Viewing alarms/events:

It is possible to view the current state and the history.

By means of the PmAlarmEvent.WndState method it is possible to view the current state. This is handy especially for alarms. Here you can see always the last state of the alarm, its activation time, acknowledgement time, etc. Here you can also acknowledge alarms.

By means of the PmAlarmEvent.WndHistory method it is possible to view the history. This is handy for alarms and events. The items are ordered by the activation time and you can see how alarms/events arose one after the other in the time.

 
In the next the description of alarms and events differs. That's why we'll describe them separatelly:
 

Alarms

An alarm means signaling the state that wouldn't happen at normal conditions (e.g. a technological limit excess of the certain variable, communication outage, etc.).
 
Basic terms:
Alarm activation: is an action when the alarm becomes active. For example a pump breaks down. The alarm can be activated by the following ways:
1. In a script by calling the PmAlarmEvent.Activate or PmAlarmEventItem.Activate methods - useful for existing alarm/event items.
2. In a script by setting the PmAlarmEvent.Activate property - useful for simple activation/inactivation.
3. In a script by calling the PmAlarmEvent.ActivateNew method - useful for creating new alarm/event items from template.

By the PmAlarmEventItem.Active property we can find out if the alarm is active.

Alarm inactivation: is an action when the alarm stops to be active. For example the pump leaves the perturbance. The alarm can be inactivated by the following ways:
1. In a script by calling the PmAlarmEvent.Inactivate or PmAlarmEventItem.Inactivate methods.
2. In a script by setting the PmAlarmEvent.Activate property - useful for simple activation/inactivation.
Alarm acknowledgement: is an action when the operator acknowledges the alarm in the application. For example he acknowledges that he takes into account that the pump is (or was) broken down. The alarm can be acknowledged by the following ways:
1. By alarm acknowledgement in the window with an outline of the alarm states for the specified group.
2. In a script by calling the PmAlarmEvent.Acknowledge or PmAlarmEventItem.Acknowledge methods.

Caution: The operator must have the Acknowledge right. By means of the PmAlarmEventItem.Acknowledged property you can find out if the alarm is acknowledged.

 
Each alarm can find itself in one of the following states:
Alarm state: Description:
active unacknowledged (red) An alarm that has been activated and no inactivation occurred nor the operator acknowledged it.
active acknowledged (yellow) An alarm that has been activated, no inactivation occurred and the operator acknowledged it. It doesn't happens at alarms that have the Acknowledge type configurator set to "2 = acknowledgement and automatic inactivation".
inactive unacknowledged (blue) An alarm that has been inactivated but the operator hasn't acknowledged it. It doesn't happens at alarms that have the Inactivate type configurator set to "2 = inactivation and automatic acknowledgement".
inactive acknowledged (green) An alarm that has been inactivated and if needed, the operator has even acknowledged it.

The PmAlarmEvent.onStateChange event fires for each change in state of each alarm in PmAlarmEvent object where the alarm is defined.

 
Suspicious alarms (delayed activation and deactivation):

It is set in the Activate delay [sec] and Inactivate delay [sec] configurators that allows not to activate/deactivate the alarm right immediately but instead of this to set it into the suspicious state for activation or deactivation. The suspicion changes into the real activation/deactivation of the alarm or the suspicion expires after the specified time.

By this method it is possible to prevent unnecessary activation/inactivation of alarms caused by some swings of values of the watched variable, for example, by the the interference or failure of the communication. By this method it is also possible to implement alarms for the actions with the 'timeout', when the alarm is activated with delayed activation before such action and after detection of the successful termination of the action, the alarm is inactivated. If the action is not successfully terminated in the set time, the alarm in the suspicion is activated automatically in the set time.

 
In the viewer of current states (PmAlarmEvent.WndState) each alarm is stated only once in most cases. For each alarm there is always the most current state of it.

If the alarm has checked Delete inactive acknowledged (green) in configuration, then the alarm from the list of active alarms disappears if it becomes inactive acknowledged (green).

If the value in Number of inactive, unacknowledged alarms (blue) to keep configurator of the PmAlarmEvent objekt is greater than 1, then alarms that wait for the acknowledgement, remain in the list even after activation of new alarm with the same name. In this only case a situation when there are more the same alarms in state browser, can occur.

 
In the running application the list of alarm groups can be viewed by clicking the "Alarms" icon. The icon is in the toolbar that is automatically created on creation of new application.

In the window with the alarm groups list there is an outline of all alarm groups. There is stated the number of

- unacknoledged - inactive unacknowledged (blue) and
- sounded alarms in each group.

By double-clicking the name of any alarm group (or in the script by calling the PmAlarmEvent.WndState method) an outline of alarm states in the group is opened. There is possible to view and acknowledge alarms in this window. If it is enabled, there is also possible to set and save ("Settings" and "Save") columns width, color of alarm states, format of displayed time, etc.

But each line of the viewer informs only about the time of the last activation/inactivation/acknowledgement of the alarm. The whole history of all alarms can be displayed by clicking the "History" button or in the script by calling the PmAlarmEvent.WndHistory method. By this the window for all history overview of all alarms from the group is opened. In this window it is possible to view the history of all alarms in the specified group.

Events

Event is a notification about the execution of the operation (e.g. starting, ending or a success rate about the process, etc.). This notification is written into the disk for later viewing. Something like a "chronicle" about running the technology is created.
 
In contradistinction to alarms, events are only activated. The terms "deactivation" and "acknowledgement" needn't be used here as you can imagine it so that events are deactivated and acknowledged already during its activation. The events activation is performed in a script by means of the PmAlarmEvent.ActivateNew, PmAlarmEvent.Activate or PmAlarmEventItem.Activate methods.
 
In the running application it is possible to view the list of event groups by clicking the "Events" icon. The icon finds itself in the toolbar that is created automatically on creating a new application.

There is an overview of all event groups in the window with the list of event groups. By double-clicking the name of any event group (or in the script by calling the PmAlarmEvent.WndHistory method) a window with the history overview of the group is opened. In this window it is possible to view the history of all events in the group.

See also:
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice