Revival of repeated topic- Tag History OnChange using PLC timestamp

Reference back to OPC UA tag history "on change" not working - #19 by SBL_MC and many other similar posts.

Tag history OnChange (default) sample mode will use a timestamp from the PLC or third party OPC server to store in the database. Cycle/tag group use the Ignition server timestamp. In some cases, time synching PLCs is outside of our control- the PLCs are just not going to get time synched, period. So they can be badly off in my most recent case, history samples in the future, which caused massive confusion in the trending systems and subsequently to the observing users. The only option is to which from OnChange to use periodic/tag group sampling, which removes most of the advantages OnChange gave us.

  • Can we restore an option to use the SERVER timestamp with OnChange, in the case that the PLC timestamp is irreparably wrong. Make it an override choice.
  • Through observation with the same tag using OnChange, I have seen a MIXTURE of samples with the bad time stamp and samples with correct server timestamps. I suspect that the "Max Time Between" override mechanism IS using the server timestamp, while at the same time a change is getting the PLC timestamp. So it is the worst case- not just collecting samples in the future, but they are not ALL consistently in the future, they are some in the future and some correct......the interpolation system had no idea what to do wiith that and was causing VERY strange behavior.

When you talk about a "PLC timestamp" are you talking about a PLC with an embedded OPC UA server, or a specific protocol that actually includes timestamps like DNP3?

I'm not familiar with the problem but if I understand the situation is:

  • The PLC timeclock is wrong and you can't change it.
  • You're using the PLC's OPC server to provide tag data (and timestamp).
  • Tag history timestamps are wrong as a result.

If I had to sort it out I might try this:

  • Remove the history binding from each of the OPC tags but let them run as normal.
  • Create an expression tag for each of the OPC tags and have its expression point to the OPC tag.
  • Enable tag history on the expression tags.

I would expect the expression tag to have the value of the OPC tag but the timestamp of the Ignition gateway.

I don't have any way to test the theory!