I know this is a PLC forum, but I've seen some HMI issues brought forth here and have received good answers from the forum in the past.
Has anyone set Citect up in a redundant configuration and developed a graphic to indicate the online status of each server? The problem we are finding is that, when using IODeviceInfo() in a constantly-running cicode function to get device status, we are getting different return values as it runs on the individual servers. Basically, when both servers are up and running and we execute the code from the primary, we get a '1' back from each device, indicating that they are 'running'. When executing it on the secondary, we get a '1' from the primary and a '66' from the secondary, indicating that the secondary is in 'stand-by write' mode. When writing these values back to a tag for display purposes, this tag constantly toggles between '1' and '66' as the code executes on each machine.
We could just say if it's '1' or '66', just say it's '1', but we were thinking it would be more sound code to only run the code from the machine where the IOServer is active (to avoid different values). However, there doesn't seem to be a function to see which one is active! There is a hardware alarm indicating this, but we haven't found a way to access this (but at least this shows there's got to be a way).
Any ideas?
Has anyone set Citect up in a redundant configuration and developed a graphic to indicate the online status of each server? The problem we are finding is that, when using IODeviceInfo() in a constantly-running cicode function to get device status, we are getting different return values as it runs on the individual servers. Basically, when both servers are up and running and we execute the code from the primary, we get a '1' back from each device, indicating that they are 'running'. When executing it on the secondary, we get a '1' from the primary and a '66' from the secondary, indicating that the secondary is in 'stand-by write' mode. When writing these values back to a tag for display purposes, this tag constantly toggles between '1' and '66' as the code executes on each machine.
We could just say if it's '1' or '66', just say it's '1', but we were thinking it would be more sound code to only run the code from the machine where the IOServer is active (to avoid different values). However, there doesn't seem to be a function to see which one is active! There is a hardware alarm indicating this, but we haven't found a way to access this (but at least this shows there's got to be a way).
Any ideas?