Join our "Ask Me About" community webinar on May 20th at 9 AM CET and 5 PM CET to explore cybersecurity and monitoring for Data Center and edge IT. Learn about market trends, cutting-edge technologies, and best practices from industry experts.
Register and secure your Critical IT infrastructure
EcoStruxure Geo SCADA Expert Forum
Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).
Link copied. Please paste this link to share this article on your social media post.
Posted: 2025-05-12 01:08 AM
Hello all,
Is there some way to trigger a re-evaluation of alarm escalation on one point based on the change of state on another point?
The reason I am trying to do this is that we have some points that are related in the field and we want escalations based on if the field states changed correctly. For example, we have Mains Failed and Genset Running points set up as below.
Mains Failure:
Triggers a low-level alarm by default
Generator Running:
Triggers low-level alarm by default
We disable escalation 1 of Mains Failure when the generator is running (as things have worked as meant and the generator turned on automatically) but problem comes when we try enable escalation 3 of generator running when mains is restored (as we want to know if the generator has stayed on after it should have turned off). While we can cause this escalation to be enabled it misses its trigger condition and therefore never triggers this earlier alarm escalation. I know you can trigger a re-evaluation on the same point when state changes (using alarm redirection> change priority action), but im unsure how to go about triggering it on one point based on the change of another point.
If anyone knows how to do this or has some advice on an alternative/more effective way to trigger this behaviour i would love to hear.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2025-05-13 12:56 AM . Last Modified: 2025-05-14 09:40 PM
Hey Adam,
Thanks for your reply. Your right there is the RestartRedirection function which I overlooked the first time, thinking it was for only if you had stopped redirection. I found this Knowledge Base useful Restarting Alarm Redirection - Schneider Electric Community.
I ended up creating a script which I execute whenever mains available changes state, and in this I enable/disable the redirection. I made it so that all of the redirections that are enabled/disabled are in the 'Conditional' group allowing me to turn them on and off.
(*Triggered by change of state on Mains Available point
will enable the redirection on genset running for if both genset and mains are running*)
PROGRAM UpdateRedirectionsOnMainsSupplyChanges
METHOD
RestartGensetRunningRedirections AT %M(..Points.Digital Outputs.Genset Running.RestartRedirections):STRING;
CancelGensetRunningRedirections AT %M(..Points.Digital Outputs.Genset Running.CancelRedirections):STRING;
END_METHOD
VAR
mainsAvailable AT %I(..Points.Digital Outputs.Mains Supply Available): BOOL;
gensetWithMainsRedirection AT %Q(..Points.Digital Outputs.Genset Running.AlarmRedirection.TriggerType7): SINT;
END_VAR
IF mainsAvailable THEN
(*Whenever mains becomes available enable the redirection and then force all 'conditional' redirections to be re-enabled/reevaluated.*)
gensetWithMainsRedirection:= 3;
RestartGensetRunningRedirections('Conditional');
ELSE
(*Whenever mains is failed disable the redirection and force all 'conditional' redirections to be cancelled.*)
gensetWithMainsRedirection:= 0;
CancelGensetRunningRedirections('Conditional');
END_IF;
(*Note: This 'conditional' group for redirection is manually setup an will affect all redirecrtions of this group on a specific object*)
END_PROGRAM
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2025-05-12 08:42 PM . Last Modified: 2025-05-12 08:42 PM
There is a RestartRedirections method on CAlarmObject that may do what you want but I haven't use it in a long time to see if there are nuances with it. You could can call this directly or from logic triggered as a redirection action when cleared rather than on change?
The issue will be the mapping of the source to target, i.e. which points need to clear to restart redirections on a target? Hard-coding it is one option but probably not scalable.
If RestartRedirections doesn't work, one less neat option is calling the reprioritise action twice, once -1 and once +1, and restart redirections from that shuffle
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2025-05-13 12:56 AM . Last Modified: 2025-05-14 09:40 PM
Hey Adam,
Thanks for your reply. Your right there is the RestartRedirection function which I overlooked the first time, thinking it was for only if you had stopped redirection. I found this Knowledge Base useful Restarting Alarm Redirection - Schneider Electric Community.
I ended up creating a script which I execute whenever mains available changes state, and in this I enable/disable the redirection. I made it so that all of the redirections that are enabled/disabled are in the 'Conditional' group allowing me to turn them on and off.
(*Triggered by change of state on Mains Available point
will enable the redirection on genset running for if both genset and mains are running*)
PROGRAM UpdateRedirectionsOnMainsSupplyChanges
METHOD
RestartGensetRunningRedirections AT %M(..Points.Digital Outputs.Genset Running.RestartRedirections):STRING;
CancelGensetRunningRedirections AT %M(..Points.Digital Outputs.Genset Running.CancelRedirections):STRING;
END_METHOD
VAR
mainsAvailable AT %I(..Points.Digital Outputs.Mains Supply Available): BOOL;
gensetWithMainsRedirection AT %Q(..Points.Digital Outputs.Genset Running.AlarmRedirection.TriggerType7): SINT;
END_VAR
IF mainsAvailable THEN
(*Whenever mains becomes available enable the redirection and then force all 'conditional' redirections to be re-enabled/reevaluated.*)
gensetWithMainsRedirection:= 3;
RestartGensetRunningRedirections('Conditional');
ELSE
(*Whenever mains is failed disable the redirection and force all 'conditional' redirections to be cancelled.*)
gensetWithMainsRedirection:= 0;
CancelGensetRunningRedirections('Conditional');
END_IF;
(*Note: This 'conditional' group for redirection is manually setup an will affect all redirecrtions of this group on a specific object*)
END_PROGRAM
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.
With achievable small steps, users progress and continually feel satisfaction in task accomplishment.
Usetiful Onboarding Checklist remembers the progress of every user, allowing them to take bite-sized journeys and continue where they left.
of