Scan Class Questions

If I have a tag that uses the same scan class for live data and historical scanning are there any issues with doing that?

On the same token if I have a tag that has two different scan classes for historical and live, but they are the same rate does that tag get read twice?

Just trying to do some optimization on my part and knowing the answer to the above will help.


You can use the same scan class for live data and historical, but it is recommend that you create separate scan classes. Functionally there’s no issue, but experience shows that at some point you’ll probably want to have separate rates for live and historical, hence it’s recommended to have separate scan classes.

Someone can correct me if I’m wrong, but when the historical scan executes it does not poll the OPC server for the value, rather it logs the current value that is in Ignition.

For historical scan classes I usually create classes with the rate in the name, History01sec, History10sec, History60sec, etc.

For tag scan classes there are lots of ways to optimize, if I’m using KEPware then I create a separate scan class for each Channel in the OPC server, sometimes a separate scan class for each PLC, sometimes multiple scan classes per PLC, sometimes just one scan class will do, it all depends on the network.


You’re correct, the historical scan class does not affect data reading/subscribing/polling at all. It simply captures the current value.

Using the same scan class is fine. In some regards it’s good, because you don’t have two timing situations at play. The primary reason we’ve created separate scan classes is because usually you’ll want history to be updated more slowly than realtime.

In 7.7, there’s a new option: “On Change Evaluation” instead of a historical scan class. This is essentially the same as using the realtime scan class for history, but goes just a bit further and actually processes all changes. This is rarely important, but for example, if you have a memory tag that you’re writing to, previously it would have been very difficult to log all values.