Reliability of WW Intouch v9.5 IO failover function?

wildswing

Member
Join Date
May 2005
Location
Sault Ste Marie, Ontario
Posts
281
Hi fellas,

I'm currently running Wonderware's Intouch v9.0 P2 and am having trouble deciding on how to do an IO failover. My apps run on twin redundant nodes, each running identically configured AB CIP DAServers, talking to 2 independant (read: different) AB PLC5s through one of two redundant ethernet/dh+ bridges. This set up results in 4 possible paths for any one single access name (node1 das > bridge 1, node1 das > bridge 2, node2 das > bridge 1 & node2 das > bridge 2). I have 4 such HMI/PLC networks.

I realize that each node can go get it's own data. After all, it's only 2 Intouch nodes and 2 PLCs and we're only talking about maybe 2500 tags in each app. That's how I'm running them right now. However, when both nodes poll the 2 PLCs for the identical data I do see an increase in update times in View. Don't forget, I'm still on 57k "dial up" dh+ on the PLC side of the bridges. Setting it to 230k is not an option because the CLX DHRIO module will only support 230 on one channel and disables the other. I'd have to buy 4 more cards. I don't have room for them. Anyhow, when I set up one node as the IO server and the other as the client I see an improvement in update time. That's how I'd like to run, but won't go there until I have a good IO failover routine written.

I've been running a small test app with scripts and such as suggested by WW tech notes i.e. an access name for each possible path with one tag each (S:23 heartbeats), as well as tags to watch IOStatus, $SYS$Status and such for each access name, but keeping track of what path I'm using, how to indentify a failure, how to identify a healthy backup path and then how to failover and then failback is getting confusing. I think I'm over engineering this. I need to stop aiming and pull the trigger!

My vender tech rep tells me V9.5 has a built in failover. I've subsequently read the v9.5 user manual and it would simplify my choices it into either primary or secondary path, i.e node1 das > bridge 1 OR node2 das > bridge 2.

I just upgraded from v7.11 and KT cards to v9.0 with daservers and CLX bridges, so before I go through another upgrade, I have a few questions:
1 - How reliable is this new failover feature?
2 - A post in WW's tech forum states that either failover or failback changes the access name to "advise all", then asks if this is a bug or not. There's been no reply. Anyone have an answer?

Any suggestions, comments or insights would be much appreciated. Thanks in advance!
 
If it were me I would roll my own failover routine. You’ll have more control over the routine and you might have more paths than InTouch v9.5 supports. I haven’t worked with InTouch’s failover feature, but I’d still roll my own routine. To be honest I’m not very happy with InTouch v9.0 or v9.5, I’ve found a few problems with both versions, but I'm still using it and have no plans on switching.

Forget about using IOStatus and $SYS$Status, all you need is to use a heartbeat in the PLCs. Wonderware tech article on how to set-up heartbeats, it’s more complicated than it needs to be. Basically you need a heartbeat tag and a status tag for each path and each PLC that you want to keep track of. So if you want to keep track off all the paths and both of the PLCs connected to those paths you need to have (8) heartbeat and (8) status tags. I’ll assume that both of the PLCs are connected to both of the bridges as follows -

node1>bridge1>PLC1
node1>bridge1>PLC2

node1>bridge2>PLC1
node1>bridge2>PLC2

node2>bridge1>PLC1
node2>bridge1>PLC2

node2>bridge2>PLC1
node2>bridge2>PLC2

So I would create (8) heartbeat I/O tags like HB_N1_B1_PLC1, HB_N1_B1_PLC2, and so on. These I/O tags point to a discrete bit in the PLC that turns on and off each second.

Now you create a status tag for each of the heartbeats. These tags are memory discrete tags. So I would create the following tags Status_N1_B1_PLC1, Status_N1_B1_PLC2, and so on.

Now you create a Condition Script for each of the Heartbeat tags.

Condition: HB_N1_B1_PLC1 == 1
On True: Status_N1_B1_PLC1 = 1;
On False: Status_N1_B1_PLC1 = 1;
While True: Status_N1_B1_PLC1 = 0;
While False: Status_N1_B1_PLC1 = 0;

You set the time to execute in the While True and While False scripts to the amount of delay before you determine the Status is dead. So if I decided that if the heartbeat is down for 10 seconds the link is bad, I would enter 10000 in both the While True and While False scripts.

Now with these (8) status tags you can create and execute a logic matrix. You first start by creating a QuickFunction script, like LinksUpdate. This determines what actions to take based on all the Status tags. Then you create a QuickFunction for each of the actions to be taken. So if all the status tags to bridge 1 are false, then bridge 1 is down, run QuickFunction SwitchToBridge2. If all the status tags to node 1 are false, then node 1 is down, run QuickFunction SwitchToNode2. If all the status tags to PLC1 are false then PLC1 is down, QuickFunction Whatever. And so on. Finally you need to create a Condition script for each of the Status tags. Use the Condition script to call the LinksUpdate QuickFunction script.

So the Status tags are used to identify the good and bad links. The LinksUpdate script is used to identify a healthy backup path. The LinksUpdate script will call the action script that is used to switch to a healthy backup path. By putting the action scripts in separate QuickFunctions allows you to manual switch Links by using a pushbutton or such to call the action script.

Man this is good stuff, I might even use it on my own applications.
 
Last edited:

Similar Topics

I have come to the conclusion that ME datastore plus is not very reliable at doing what it is supposed to do. Please prove me wrong so that I can...
Replies
9
Views
2,285
I have been looking at trying a Compactlogix 5380 system with some point I/O attached to it, does anybody have experience with the newer 5380? I...
Replies
6
Views
2,885
Hello everybody! I always read this forum, but this is the first time I write here. I would like to ask you what do you think about reliability...
Replies
7
Views
4,768
I have a pin stamper to stamp a serial number & barcode onto parts. The serial number contains date and time among other things. Is the...
Replies
7
Views
3,200
Dear Sirs Currently we are evaluating a PLC architecture make up for Contrologix (ENBT) and ethernet Flex I/Os. We would like to know your...
Replies
10
Views
3,175
Back
Top Bottom