Welcome to the new Schneider Electric Community

It's your place to connect with experts and peers, get continuous support, and share knowledge.

  • Explore the new navigation for even easier access to your community.
  • Bookmark and use our new, easy-to-remember address (community.se.com).
  • Get ready for more content and an improved experience.

Contact SchneiderCommunity.Support@se.com if you have any questions.

Close
Invite a Co-worker
Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
Send Invite Cancel
84322members
353483posts

Alarm Banner filter via Global Script

EcoStruxure Geo SCADA Expert Forum

Find out how SCADA systems and networks, like EcoStruxure Geo SCADA Expert, help industrial organizations maintaining efficiency, processing data for smarter decision making with IoT, RTU and PLC devices.

Solved
joshribbons
Crewman
Crewman
0 Likes
7
1617

Alarm Banner filter via Global Script

Hello brains trust.

 

Just going through the release notes for Jan 2021 update and saw "New Feature: Added support for setting the Alarm Banner filter via Global Script".

 

I've looked at the help file which doesn't seem to have been updated for this feature. Is there any info available on how this is done?

 

Cheers,

Josh


Accepted Solutions
AndrewScott
Commander
Commander
0 Likes
3
1595

Re: Alarm Banner filter via Global Script

Here are some examples of getting / setting the alarm banner filter and default filter from a global script:

 

public Sub SetAlarmFilterHigh
	Dim ParseError
	ParseError = AlarmBanner.SetFilterForSystem("My System", "MinSeverity=""500""&MaxSeverity=""1000""")
	If ParseError <> "" Then
		MsgBox "Filter", "Failed to set the filter. Parse Error: " & ParseError
	End If
End Sub

public Sub GetCurrentAlarmFilter
	MsgBox "Alarm Banner Filter", "Current Filter: " & AlarmBanner.GetFilterForSystem("My System")
End Sub

public Sub GetDefaultAlarmFilter
	MsgBox "Alarm Banner Filter", "Default Filter: " & AlarmBanner.DefaultFilter
End Sub

 

NB. The original version of this post incorrectly showed an early version of the API which didn't support clients connected to multiple systems.


Andrew Scott, Lead Engineer, AVEVA

See Answer In Context

7 Replies 7
BevanWeiss
Spock
Spock
0 Likes
2
1613

Re: Alarm Banner filter via Global Script

I've had a look through the online help, and have tried a few options myself, like:

AlarmBanner.Filter = ..

AlarmBanner.Alarms.Filter = ...

 

Neither worked unfortunately.

I'd say this is something that you should raise with your local Tech Support also, so that it gets into the correct Schneider systems.

It's possibly an error in the Release Notes, or it's an issue in that the help hasn't been updated to reflect the change mentioned in the Release Notes.

 

I would have expected it to be something of the form AlarmBanner.Filter = ... (where the filter string would match what the embedded Alarm Lists would also expect).

 

@JChamberlain@sbeadle or @AndrewScott  might have some additional guidance. 


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
JChamberlain
Schneider Alumni (Retired)
Schneider Alumni (Retired)
0 Likes
1
1609

Re: Alarm Banner filter via Global Script

I knew it was being worked on but hadn't realised it had been backported! This is what I get for not reading release notes properly, well spotted @joshribbons.

 

Possibly it's still subject to change; I'm sure we will release documentation when it makes sense to.

joshribbons
Crewman
Crewman
0 Likes
0
1606

Re: Alarm Banner filter via Global Script

Ahh, all good. Getting ahead of myself as usual.

 

If I could put my 2c in here, I reckon it'd be even more useful if the alarm banner filter was configurable from any client scrips.

AndrewScott
Commander
Commander
0 Likes
3
1596

Re: Alarm Banner filter via Global Script

Here are some examples of getting / setting the alarm banner filter and default filter from a global script:

 

public Sub SetAlarmFilterHigh
	Dim ParseError
	ParseError = AlarmBanner.SetFilterForSystem("My System", "MinSeverity=""500""&MaxSeverity=""1000""")
	If ParseError <> "" Then
		MsgBox "Filter", "Failed to set the filter. Parse Error: " & ParseError
	End If
End Sub

public Sub GetCurrentAlarmFilter
	MsgBox "Alarm Banner Filter", "Current Filter: " & AlarmBanner.GetFilterForSystem("My System")
End Sub

public Sub GetDefaultAlarmFilter
	MsgBox "Alarm Banner Filter", "Default Filter: " & AlarmBanner.DefaultFilter
End Sub

 

NB. The original version of this post incorrectly showed an early version of the API which didn't support clients connected to multiple systems.


Andrew Scott, Lead Engineer, AVEVA
BevanWeiss
Spock
Spock
0 Likes
2
1562

Re: Alarm Banner filter via Global Script

Thanks Andrew, good to know.

 

It would have been 'nicer' if the interface had of remained standard against the Alarm List animation properties however, i.e. it was possible to both 'Get' and 'Set' the AlarmBanner.Filter 'Property'.

 

Perhaps this could be added in a future release, with the SetFilter() left as a legacy method


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
AndrewScott
Commander
Commander
0 Likes
1
1547

Re: Alarm Banner filter via Global Script

Bevan, I made a mistake with my original post and showed an early version of the API. The final version doesn't have Filter property and SetFilter method, instead it has GetFilterForSystem and SetFilterForSystem methods to support clients connected to multiple systems.


Andrew Scott, Lead Engineer, AVEVA
BevanWeiss
Spock
Spock
0 Likes
0
1543

Re: Alarm Banner filter via Global Script

Ahh, makes more sense now.

And yes, .Filter wouldn't work well with Systems taken into consideration.

 

Is there an ability to SetFilterForSystem and have it apply to ALL systems? i.e.

AlarmBanner.SetFilterForSystem("*", "Source=Water.*")

 

It wouldn't be needed for the GetFilterForSystem method (since retrieving an individual filter string per System would suffice here).

 

Thoughts are that in combined systems we will often want to have a simple filter like 'Severity >= High' and would want that to be applied to all the Systems the user is connected to, but we may not easily know the name of them all (both because the system might be named differently on each client, and also because at original development time we simply don't know how many, or the names of, all the remote systems).


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..