Hello, I have a remote site that is running a Geo SCADA standalone to a RTU. I also have a Enterprise SCADA running GeoSCADA. These two sites poll the same controller for DNP3 events, however the systems aren't sync'd in any way (Other than the DNP3 events being polled via radio).
I need to know from the Enterprise SCADA who modified a setpoint or clicked a button. Only way I can think to achieve this is to create a script on the local Geo SCADA that would lookup who is logged on and update a DNP3 point based on user ID. Two questions:
Question 1: Is there a better way to sync these two SCADAs without having to write a script (Keeping in mind the Enterprise SCADA is on Radio comms)
Question 2: My script below works, however it could be better in that if users are added I would have to update the script. How do I determine who is logged on via ST, other than my current approach?
PROGRAM ActiveUser
VAR
u01on AT %I(System.Security.Users.Engineer.IsLoggedOn): BOOL;
u01id AT %I(System.Security.Users.Engineer.Id): DINT;
u02on AT %I(System.Security.Users.Operator.IsLoggedOn): BOOL;
u02id AT %I(System.Security.Users.Operator.Id): DINT;
u03on AT %I(System.Security.Users.Supervisor.IsLoggedOn): BOOL;
u03id AT %I(System.Security.Users.Supervisor.Id): DINT;
u04on AT %I(System.Security.Users.SysAdmin.IsLoggedOn): BOOL;
u04id AT %I(System.Security.Users.SysAdmin.Id): DINT;
Output AT %M(System.Security.ActiveUserID): DINT;
END_VAR;
IF u01on = 1 THEN
Output := u01id;
ELSIF u02on = 1 THEN
Output := u02id;
ELSIF u03on = 1 THEN
Output := u03id;
ELSIF u04on = 1 THEN
Output := u04id;
ELSE
Output := 99;
END_IF;
END_PROGRAM
Thank you!