I didn’t receive an answer to my previous question on the topic so here it is again a little more succinctly.
I have a meter logging compressed air usage. I want to report usage by the hour. The tables below show the raw data stored in the historian and my attempt at a periodic report by the hour.
As far as I can see from the documentation, interpolation should calculate what the values would have been on the hour. It doesn’t. It shows the first or the last as-stored reading for that period depending on the aggregate setting. I’ve tried each of the options but none interpolate and give a calculated reading for on-the-hour.
Can anyone explain how to get interpolation to work? Can we disable aggregation and just use interpolation?
I have no idea, but wouldn’t be easier to just record on the hour ? Or do you need the other entries as well for something else ? Event then, you could just add a record on the timing you want, on top of the usual recording.
I’ve had to do that for some projects and it gives great control but the historian is supposed to be able to interpolate so I want to get my money’s worth!
Changing from Periodic | 1 hour to Periodic, 1 minute gives interesting results.
Now we can see that the first reading at midnight is lower than the first reading on the as-stored table as would be expected if interpolation is happening. Similarly the 00:10:00 reading is a little higher than the 00:09:54 reading as would be expected.
What’s going on here? Why does a 1 minute period seem to interpolate but a 1 hour period doesn’t?
Maybe this will help explain the problem.
If I’m able to retrieve the interpolated data I can manipulate it with a transform to obtain the air consumed or parts made per hour, the rate, etc.
Is it possible to retrieve interpolated data from a tag history binding?
While I don’t know the answer to this, and I would have a similar expectation as you, I’m wondering if it has anything to do with frequency of recorded values vs data resolution requested when querying the data. What I mean by this is I wonder if when the query is querying a period of time larger than the recorded values if it just grabs the first value after the queried time interval, but when requesting a higher resolution/smaller time interval than what’s recorded if that’s when it starts doing interpolation because it doesn’t have a high enough resolution stored to give non-repetitive values.
Again, that’s just my theory on what’s happening, but it would be nice to have it interpolate no matter what resolution is requested.