We created a PI point that stores the daily values coming from an analysis. This analysis is triggered at midnight. This analysis turns a real time measurements into one daily value by using the TagTot function.

The screenshot above shows the daily values created by this analysis for October 2019.

At the bottom, I added the monthly total (manually in Excel) by adding up all daily values.

Once a month, there is a another analysis that summarizes all the daily values into a monthly value. The result of this analysis is sometimes deviating from the expected result when you add up all daily values manually.

For October for example, the analysis returns 154874,125 instead of the 154874,127.

As you can see in the image above, there is a ‘rounding error’ it seems.

For your information, the result (monthly value) is written back to begin of period (being the 1st day of the month) on request of our client.

Now comes the strange part, if I click the ‘Evaluate’ button in PI System Explorer the result is 100% correct:

As you can see in the screenshot above, I use the ‘new’ function for TagTot to get an event weighted calculation.

I also used the ‘old’ way by combining TagMean() * EventCount() and the result is the same.

A strange and unexpected behavior by the PI analysis server that I’m not able to solve myself that’s way I reach out the you on this forum.

Does anybody have a clear answer/solution to get rid of this issue? Did anyone encounter the same problem?

Looking forward to some feedback...

I found the solution to this issue. The point type of the input tags of the analysis were set at 'float64' while the point type of the output tag of my analysis was set at 'float32'. I clearly ran into the float point precision issue.