Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Notifications
Login / Register
Community
Community
Notifications
close
  • Forums
  • Knowledge Center
  • Events & Webinars
  • Ideas
  • Blogs
Help
Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Login / Register
Sustainability
Sustainability

We Value Your Feedback!
Could you please spare a few minutes to share your thoughts on Cloud Connected vs On-Premise Services. Your feedback can help us shape the future of services.
Learn more about the survey or Click here to Launch the survey
Schneider Electric Services Innovation Team!

GeoScada Hot-Standby pair IEC 60870-5-104 connection

EcoStruxure Geo SCADA Expert Forum

Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).

cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Home
  • Schneider Electric Community
  • Remote Operations
  • EcoStruxure Geo SCADA Expert Forum
  • GeoScada Hot-Standby pair IEC 60870-5-104 connection
Options
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Bookmark
  • Subscribe
  • Mute
  • Printer Friendly Page
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
Top Experts
User Count
sbeadle
Kirk sbeadle Kirk
308
AndrewScott
Admiral AndrewScott
98
BevanWeiss
Spock BevanWeiss
91
AdamWoodlandToo
Lt. Commander AdamWoodlandToo
37
View All

Invite a Colleague

Found this content useful? Share it with a Colleague!

Invite a Colleague Invite
Solved Go to Solution
Back to EcoStruxure Geo SCADA Expert Forum
Solved
powermos
Crewman powermos
Crewman

Posted: ‎2025-04-11 12:34 AM . Last Modified: ‎2025-04-11 01:31 AM

0 Likes
6
604
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-11 12:34 AM . Last Modified: ‎2025-04-11 01:31 AM

GeoScada Hot-Standby pair IEC 60870-5-104 connection

Hello everybody,

i am working on a new GeoScada project and it requires redundant servers. So i configured 2 servers as a Hot standby pair. I have to communicate with Siemens S7-1214 plc's with CP1243 Telecontrol Module. This works fine over  IEC 60870-5-104 and single server, but how to do it on the Hot-standby pair? Servers are on Win Server 2025. The two servers obviously have different IP's and the PLC's communicate over 1IP. Things i tried, that don't work:

1. Tried Network load balancing - i don't know why, saw is somewhere, that way i am creating a single virtual IP, but it doesnt work, probably because the NLB doesn't know who is the active master and may route the traffic to the standby server, so the comm is not working.

2. Tried sending data from the PLC's to the two server IP's. Doesn't work, for two reasons: 

 - the standby server is not communicating with the plc, because it is in standby mode. That means that the plc's will constantly buffer data and the buffer is constantly full. The connection to the Main server is fine, but there is no buffer left, so i am losing data on network failure. That way i am losing the best feature of IEC 60870-5-104 which is buffering over comm failure (which is absolutely required by the client)

- i am loosing half of my buffer anyways, because i have 2 connections

- This is a bad method anyways, since even if the standby server was accepting connections if i lose the connection to one server the buffer will fill up anyways. 1 ip is the way to go, but i don't know how to do it.

 

How to do a redundant connection to the server pair, so the plc's send data to only 1 ip and the redundancy works?

topology.png

Labels
  • Labels:
  • DNP3
  • Redundancy
  • RTU
  • Telemetry
  • Tags:
  • english
  • scada
  • SCADA app
  • SCADA software
  • SCADA tutorial
  • Telemetry and SCADA
Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

  • All forum topics
  • Previous Topic
  • Next Topic

Accepted Solutions
AdamWoodlandToo
Lt. Commander AdamWoodlandToo
Lt. Commander

Posted: ‎2025-04-11 04:40 PM . Last Modified: ‎2025-04-11 04:41 PM

0 Likes
0
548
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-11 04:40 PM . Last Modified: ‎2025-04-11 04:41 PM

There is a tag in the database on the root group call "ServerIsMain" which you can access via ODBC, OPC, .NET API calls, etc. You also have scxcmd (in C:\Program Files (x86)\Schneider Electric\ClearSCADA\) that you can use, "scxcmd showstate" will return the server's state. Might need to specify other parameters depending on your server setup like a username and password, check out "scxcmd /?".

 

Both options will work through PowerShell which is probably what you'd need to use for manipulating IPs in 2025.

 

You will need to add a secondary IP to the NIC (or if a separate subnet could use a second NIC). Changing the "real" IP address that Geo SCADA uses to sync between servers and provide access to clients won't work too well.

See Answer In Context

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

Replies 6
AdamWoodlandToo
Lt. Commander AdamWoodlandToo
Lt. Commander

Posted: ‎2025-04-11 04:48 AM . Last Modified: ‎2025-04-11 04:51 AM

0 Likes
0
572
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-11 04:48 AM . Last Modified: ‎2025-04-11 04:51 AM

I don't know IEC 60870-5-104 so can't help with any specifics on that, but I have used some NLBs.

 

Usually you need to configure some health check/monitor for the NLB so you should be able to configure it to monitor whatever the driver listen port is to see which is open to know which one to send the traffic to. Certain drivers like DNP3 run on the Standby too, so possible the 60870 one does too, but a quick check for the DNP3 driver the listen port is only opened on the Main

 

On DNP3 there is a setting on the channel called allow connection from any host, assuming there is the same on the 60870 channel you might need to enable that as the IP you configure in Geo SCADA to connect to the PLC will be different to the one the PLC connects to and there might be some validation on that that gets in the way.

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

powermos
Crewman powermos
Crewman

Posted: ‎2025-04-11 07:20 AM

0 Likes
0
559
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-11 07:20 AM

The Channel in GeoScada for IEC 104 doesn't support "Accept connections from any host"

About the health monitor for the NLB, i will research into that next week, great suggestion.

I also have another idea that might work - is there a tag or something which shows which station is Main and which is Standby? I can use this to actively change the ip of the computer with a shell command so the Main has the correct ip to communicate and i can assign some spare ip to the standby.

 

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

AdamWoodlandToo
Lt. Commander AdamWoodlandToo
Lt. Commander

Posted: ‎2025-04-11 04:40 PM . Last Modified: ‎2025-04-11 04:41 PM

0 Likes
0
549
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-11 04:40 PM . Last Modified: ‎2025-04-11 04:41 PM

There is a tag in the database on the root group call "ServerIsMain" which you can access via ODBC, OPC, .NET API calls, etc. You also have scxcmd (in C:\Program Files (x86)\Schneider Electric\ClearSCADA\) that you can use, "scxcmd showstate" will return the server's state. Might need to specify other parameters depending on your server setup like a username and password, check out "scxcmd /?".

 

Both options will work through PowerShell which is probably what you'd need to use for manipulating IPs in 2025.

 

You will need to add a secondary IP to the NIC (or if a separate subnet could use a second NIC). Changing the "real" IP address that Geo SCADA uses to sync between servers and provide access to clients won't work too well.

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

powermos
Crewman powermos
Crewman

Posted: ‎2025-04-14 01:10 AM

0 Likes
0
511
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-14 01:10 AM

Didn't figured it out how to do NLB health check on windows. So i made a simple powershell script that checks with scxcmd if this is the Main server and swaps the ip with the target ip that the plc expects, or if it isn't Main, then it just replaces is with a spare ip. That happens cyclically, every 15sec. I tested it and it seems to work good. I don't know if this will be my final solution, but it seems better than buying two communication modules on every cpu, instead of one. I already have 2 NIC's on the servers, so the comm between them and the clients is not affected. I might add 3rd NIC for redundant comm between the servers, though. Thank you, very much for the help.

while ($true) {
    try {
        # Define the full path to SCXcmd.exe
        $scxCmdPath = 'C:\Program Files (x86)\Schneider Electric\ClearSCADA\SCXcmd.exe'

        # Run the command with the "status" argument
        $output = & "$scxCmdPath" status

        # Determine the desired IP address based on the command output
        if ($output -match "Main") {
            $desiredIP = "192.168.0.2"
        } else {
            $desiredIP = "192.168.0.3"
        }

        # Get the current IP assigned to the adapter "PLANTBUS"
        $adapterIP = (Get-NetIPAddress -InterfaceAlias "PLANTBUS" -AddressFamily IPv4 -PrefixOrigin Manual -ErrorAction SilentlyContinue).IPAddress

        if ($adapterIP -ne $desiredIP) {
            Write-Host "Changing IP to $desiredIP"
            netsh interface ip set address name="PLANTBUS" static $desiredIP 255.255.255.0
        } else {
            Write-Host "IP already set to $desiredIP, no change needed"
        }

    } catch {
        Write-Error "An error occurred: $_"
    }

    Start-Sleep -Seconds 15
}

 

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

AdamWoodlandToo
Lt. Commander AdamWoodlandToo
Lt. Commander

Posted: ‎2025-04-14 01:19 AM

0 Likes
0
509
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-14 01:19 AM

Glad you got it working, does seem crazy that in 2025 you have to do something like this but I guess you're in the hands of what those PLCs support!

Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

AdamWoodlandToo
Lt. Commander AdamWoodlandToo
Lt. Commander

Posted: ‎2025-04-14 04:51 PM

0 Likes
0
483
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

Posted: ‎2025-04-14 04:51 PM

Had some thoughts over night:

 

  • If neither server is Main (yet, for example on boot of both, or a timing issue on changeover, etc) then your script looks like it'll set both servers to have the same IP and cause a IP conflict which is probably not helpful. Maybe fixed 15 seconds later but maybe not (and if for some rare reason they both fail having a conflict might get in the way of fixing the problem). It may be better to have that else statement host dependant, i.e. one host would get .3 and the other .4 if not the Main
  • Another option might have been Test-NetConnection to the listen port of the 60870 driver
Reply
Contact Support

Link copied. Please paste this link to share this article on your social media post.

Preview Exit Preview

never-displayed

You must be signed in to add attachments

never-displayed

 
To The Top!

Forums

  • APC UPS Data Center Backup Solutions
  • EcoStruxure IT
  • EcoStruxure Geo SCADA Expert
  • Metering & Power Quality
  • Schneider Electric Wiser

Knowledge Center

Events & webinars

Ideas

Blogs

Get Started

  • Ask the Community
  • Community Guidelines
  • Community User Guide
  • How-To & Best Practice
  • Experts Leaderboard
  • Contact Support
Brand-Logo
Subscribing is a smart move!
You can subscribe to this board after you log in or create your free account.
Forum-Icon

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.

Register today for FREE

Register Now

Already have an account? Login

Terms & Conditions Privacy Notice Change your Cookie Settings © 2025 Schneider Electric

This is a heading

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