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.

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

[Imported] Change main server based on a analog point

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.

Janeway Janeway

[Imported] Change main server based on a analog point

>>Message imported from previous forum - Category:Scripts and Tips<<
User: mchartrand, originally posted: 2018-10-25 19:29:13 Id:281
This is a re-posting from the obsoleted (October 2018) "Schneider Electric Telemetry & SCADA" forum.


Hi, I want to make sure that when a variable count (analog point), it stops and does not change the value make the switch to the redundant server. You can help me?_**



There a method on the root object you might be able to call from a logic program. I have never done it and I'm not sure that swapping the main server on logic is a good solution. There is probably some setting in the configuration that can help you instead.

Whatever you do here should be confirmed through tech support though.


As Dustin mentioned, it might not be the right solution to change servers.

Perhaps you can give us more information on what the issue is that makes you think changing servers is the right choice, and we might be able to assist further.


If the variable does not change means that software inside your PC is not working anymore so I have to use the other server.
I do a cyclic control that in case of failure retry 5 times and switch to the other server
Can you show me an example?_**


Now it makes a bit more sense. You are monitoring software on the server that needs to be running. When that software fails/stops running then fail over the ClearSCADA server. I still do not think this is the right solution but I understand the necessity of it now.

I do not have an example of triggering the 'swap main' method on the root through logic. But I would imagine you could figure it out if you needed to using the help file and some of the structured text examples there.


An example would be:

_PROGRAM ChangeServer
ChangeServerMethod AT %M($Root.ChangeMainServer) : STRING;
ChangeServerMethod( 'NewServerName' );

As to how to get the 'NewServerName'... this is an exercise left to the reader 😉
It would be worth looking at the properties / aggregates attached to the CRootGroup object ($Root) to find various standby server names/running states etc.

There is no "toggle main server" function, as this doesn't make sense with the ClearSCADA redundancy... there can be two hot-standby servers, so 'toggle' isn't a valid concept.

I still don't believe you're architecting this system quite right. Having two servers in a redundant pairing, but where each must have another service running locally is asking for reliability issues. It would be better if you could communicate ClearSCADA with either the local instance of the 3rd-party app, or with the remote instance (on the other ClearSCADA server). If this is OPC then you can do exactly this with the Advanced OPC Driver (ClearSCADA 2014 and above), which would be the recommended way to have this configured. That way you only need one of the ClearSCADAs running, and one of the OPC Servers running (regardless if they are on the same box or not).

If there is another connectivity used, then please provide some more details and we can possibly help out further.


Excuse me, unfortunately I've been out and I've got to read. The third-party software is an OPC. The logic is that if the value doesn't change for 5 times means that the system is "down" and have to use the other server. The CS version is 2013. I know it is a forced redundancy... Can you explain exactly where and how to insert the script?_**


Would it be possible to upgrade the ClearSCADA version?
ClearSCADA 2015R2 is about to come out very soon..

I would very strongly recommend that you upgrade to a more recent version of ClearSCADA that supports the AdvancedOPC Driver and use the functionality provided by this.

You can then setup a pool of OPC servers (it sounds like you only have two currently), and handle the switching between them much more reliably.

You will get much better alarming, and an overall more reliable solution.


Can you elaborate , or possibly point me toward more information, on the AdvancedOPC driver? I'm currently using a few tens of thousands of OPC points, and in many circumstances find the behavior lacking depending on what I'm doing. I would very much like to find out more information on this.
Currently I'm running 2013R2.1 and will be updating to a newer one, though not as recent as 2015.
Thanks for any help


As with the other Advanced drivers there's an entire section in the help about it, the 'Advanced OPC Driver Guide'.
Without just copying and pasting that, I'm not sure what other inforamtion I can provide you.

I guess if you're using OPC servers, then using the Advanced OPC driver is a *better* option than using the Simple OPC driver. That would be the one sentence 'explanation' 😉