Download the solution AlarmsAreas.dbsln.

Built with v10.

This example illustrates how to create and use hierarchical `AlarmAreas` in your application.


Summary

This example demonstrates how to configure and visualize hierarchical alarm structures with AlarmAreas. It makes possible to enable, disable, acknowledge, count and filter Alarms based on the Area they are linked to, simplifying the management of complex solutions.


Technical Information

This sample includes the following features:
- Annotation and alarm markers
- Pens group and multiple Y-axis scales
- Zoom, pan, and real-time update options

You can also refer to the TrendChart documentation to explore all available runtime properties and customization options.

Creating and Applying AlarmAreas

To create an AlarmArea, go to Alarms / Areas. It is possible to create SubAreas by selecting an existing AlarmArea and creating a new one inside of it. In order to apply AlarmAreas, go to Alarms / Items configuration, right-click on the column headers, enable the Area column, and assign each AlarmItem to its corresponding Area by editing the column.

Active Alarms Count by Area

Each AlarmArea maintains its own count of active alarms and provides methods to acknowledge or disable all associated alarms. You can link these functions to buttons for alarm management. To explore how it’s configured, double-click the buttons in the example using Draw mode and examine their Dynamics and Text properties.

Filter Alarms by Area

Additionally, Areas can be used to filter AlarmItems, simplifying and organizing the contents of AlarmViewers. To do this, go to Displays / Draw / Modules, select an AlarmAreas component and place it on the desired display. Set the SelectedArea field to a text tag, and then apply it to the AlarmAreas through the display’s CodeBehind, like this:

public async void ApplyFilterButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    if(String.IsNullOrEmpty(@Tag.SelectedArea))
        @Tag.AlarmFilter = "";
    else
        @Tag.AlarmFilter = @Alarm.Area[@Tag.SelectedArea].GetFilterAsync();
}

This code retrieves the Area selected by the user through the AlarmAreas component. The GetFilterAsync method then generates a text filter that includes the selected Area and all of its SubAreas. This filter is assigned to the AlarmFilter text tag, which is applied to the AlarmViewer by double-clicking on it in Draw mode and setting its Filter field to {Tag.AlarmFilter}.


Reference Information

Check out Alarm Areas and AlarmAreas Control for more information on the purpose and behavior of AlarmAreas.


In this section:

  • No labels