I’m currently encountering and interesting problem and I’d like to get any advices here.
The ACE program I was maintaining often gave me a “Calc Failed” recently, and then I found it was caused by an “No Data” event by PrevValue function.
The issue is, by further investigation, the Time of PI Server and ACE Server is not corresponding, ACE Server is several minutes behind of PI Server (e.g. 1:00 PM on ACE Server while 1:05 PM on PI Server)
Then, in my program, PrevValue and PrevEvent are mostly applied. And I dumped intermediate variant into my log. Then I notice that in the following codes:
myMessage = Now.ToString & ": " & "Level Tag - " & Level.Tag.ToString
WriteMyLog(tankName, myDate, myMessage)
PrevLevelTime = Level.PrevEvent
ArcLevelTime = Level.PrevEvent(PrevLevelTime)
Now is 1:00:00 PM, while PrevLevelTime is 1:03:00 PM and ArcLevelTime is 1:03:00 PM
I think normally it isn’t possible that PrevLevelTime and ArcLevelTime is behind of Now and secondly PrevLevelTime and ArcLevelTime shouldn’t be the same
I know this should be caused by time drift between PI Server and ACE Server, but I cannot tell the detail because I’m not pretty clear on the calculation mechanism.
Could anyone give me some suggestion on this?