Hi, I am currently working with WinCC OA and would like to categorize alarms by specific areas within the system. However, I am unsure about the best approach to achieve this effectively.
Could you please share any methods, best practices, or examples on how to categorize alarms by area? Any guidance or resources you could provide would be greatly appreciated, as this functionality is essential for my project.
Thank you for your assistance!
WinCC OA 3.20 I'm struggling in categorize alarms by areas.
- ccmelo
- Posts:4
- Joined: Mon Oct 13, 2025 4:00 pm
WinCC OA 3.20 I'm struggling in categorize alarms by areas.
- nmnogueira
- Posts:125
- Joined: Thu May 05, 2011 12:59 pm
Re: WinCC OA 3.20 I'm struggling in categorize alarms by areas.
I also had that issue before, and this is what I currently do:
- The DPE names should reflect the areas (e.g. using a prefix that allows you to filter by area)
- I create a DPT, which has a DPE .sumalert, of type text. This is a sumalert, and is configured with a filter that will match the alerts that I want to count. You can add another DPE. named .numAct, to save the number of active alarms.
- Create a DP for each area, and adapt the sumalert filter config accordingly for each of them.
- Create a script that connects to each of the sumalerts:
Code: Select all
dpConnectUserData("updateAlerts", dp, TRUE, names[i]+".sumalert:_alert_hdl.._summed_states",
names[i]+".sumalert:_alert_hdl.._act_state_color",
names[i]+".sumalert:_alert_hdl.._act_state_fore_color");- and the callback that sums them
Code: Select all
updateAlerts(string dp, string dp1, dyn_int states, string dp2, string color, string dp3, string colorFg)
{
int numAct = 0, numUna = 0;
int state;
int i;
if(dbgL>1) DebugTN(dbgHeader,"DBG", "updateAlerts", dp);
for(i=1; i<=dynlen(states); i++)
{
switch(states[i])
{
case DPATTR_ALERTSTATE_APP_NOT_ACK: numAct++; numUna++; break; // CAME or CAME/unacknowledged
case DPATTR_ALERTSTATE_APP_DISAPP_NOT_ACK: numUna++; break; // CAME/WENT/unacknowledged
case DPATTR_ALERTSTATE_DISAPP_NOT_ACK: numUna++; break; // WENT/unacknowledged
case DPATTR_ALERTSTATE_APP_ACK: numAct++; break; // CAME/acknowledged
case DPATTR_ALERTSTATE_NONE: break; // no alert
}
}
if(color == "")
color = "_Transparent";
if(colorFg == "")
colorFg = "black";
dpSet(dp+".una", numUna,
dp+".act", numAct,
dp+".color", color,
dp+".colorFg", colorFg);
}- gschijndel
- Posts:376
- Joined: Tue Jan 15, 2019 3:12 pm
Re: WinCC OA 3.20 I'm struggling in categorize alarms by areas.
Check out the panel topology/group alert facility as it might provide what you are looking for