So we have a client with a Siemens S7-1500 and Ignition 8.1. There is a heartbeat bit that the PLC sets to 1 and Ignition resets to 0 (via a Tag Change Script). The issue they ran into today was the heartbeat in the PLC timed out because the value in the PLC was 1, but ignition wasn’t resetting the value to 0 because the value in Ignition was already 0. Now, when we checked the tag quality, it was listed as ‘Good’ with a time stamp of ~10:25 PM last night (this was at about noon today). Checking the logs from yesterday there are several clock drift entries for both positive and negative time of about an hour, so I think that was the initial cause of the lapse in communication, and the entry “Bad(“Bad_NotConnected: The variable should receive its value from another variable.”)” was logged for the heartbeat.
However once communication was restored (seemed to rectify itself as no one was around at the time) and the connection was at least partially working, the heartbeat still didn’t have the correct value in it even with ‘Good’ quality. We had to disable the Device connection, then re-enable it to get the heartbeat working again. The tag is in the default tag group with a 1000 ms poll rate. Why didn’t the value update (as other tags seemed to be correct) and why didn’t the quality go to ‘Bad’ when the value didn’t update?