Alert on disconnect from OPCUA/when a value has NOT changed?

Very infrequently (maybe once every 4 months or so) we’re encountering an issue where Ignition 7.3.3 will become disconnected from our OPC Server (KepServer 7.7.84). KepServer lists the Clients as 0, and Active tags as 0. Typically if our number of active tags or connected OPC clients drops to 0 for some reason, all components within ignition will have the “Bad Tag” or similar overlay so it’s really obvious to our operators that there is an issue. The only reason this was picked up on was that our HVAC technician happened to be checking the overnight CRAC unit history, and saw that all of our graphs were flat-lined for about 4 hours of time. Besides that, nobody would have known that we weren’t collecting data.

The solution tends Disconnecting/connecting KepServer, and then restarting the Ignition gateway to get the connection back up. I’m wildly guessing that KepServer is the culprit as we’ve had a number of problems with it crashing/freezing/eating config files/etc. in the past. I’m currently in the process of converting our KepServer configuration over to Ignition’s OPC-UA module. I would try to upgrade Ignition/Kepserver to see if that would fix the problem, but we would strongly prefer to hold off on any upgrades until we’re ready to remove KepServer completely.

As a temporary fix until we remove Kepserver and upgrade Ignition, is there any way that we can get an alert that if one of our values which are constantly changing doesn’t change for a period of time? For example, we use a significant amount of power at all of our facilities 24/7/365, so we should see our total consumption constantly rising. Since Ignition still functions, if the total consumption doesn’t increase after a short period of time, that’s a good indicator that something’s going on. I’ve tried setting an alert for if the number of active tags drops below a certain amount, but that does not work for this situation as Ignition can’t actually pull an updated active tag count since it is disconnected. Any suggestions on how to go about this?

I’ve done something very similar for checking communications with Inverters already. Basically I set up two expression memory tags, one labeled “Previous Value” and one labeled “Difference”. I set up the previous value tag to look at a constantly changing value but set it to a scan class that was longer than the scan class of the tag I was looking at. Then I put an expression in the Difference tag that subtracted the current value of the constantly fluctuating tag and the value of the Previous Value tag.

Since the scan classes are different the value of the Difference tag is always fluctuating around 0, but never is zero (for very long) unless there is a communication issue. Then I just set up an alarm on the Difference tag that if it’s value is 0 for 5 minutes or something like that it will send out an e-mail and activate an alarm. You could probably set up something very similar.

Just did a quick preliminary test of this, and it looks like it should work out quite nicely! Thanks a lot for sharing this! :thumb_left: