Martin.Thivierge

PI ACE - Arcmode property not behaving properly

Discussion created by Martin.Thivierge on Jul 15, 2009
Latest reply on Jul 22, 2009 by andreas

Hey guys,

 

This is my first post on this blog.

 

I'm having some issues with the way my PIACE points behave during a normal calculation.  Here's a short description of the problem:

 

1- Create a calculation that stores result in the ACE point.

 

I simply used the following runtime creation of PIACE point to insert my data in PI.  Work perfectly.

Dim ACEptAudit As New PIACEPoint

ACEptAudit.SetTag(myPIPoint.Server.Name, myPIPoint.Name + "_Audit", TagAliasUsedType.TagAliasAsOutput)
ACEptAudit.AdjustClockOffset = False
ACEptAudit.ArcMode = PISDK.DataMergeConstants.dmInsertDuplicates
ACEptAudit.Value(InsertDate) = CDbl(myMetric.MetricValue.Value)

ACEptAudit.SendDataToPI = True
ACEptAudit.PutValue()

 

Where InsertDate is a PITime data type.

 

I'm calling this procedure many time (once for every 30min interval within a day).  This create a simple series of entry in the PI server with a time stamps at 00 and 30 minutes of every hour during the day.

 

Where things get tricky is if I rerun this same procedure for the exact same time interval, by using the 'ACEptAudit.ArcMode = PISDK.DataMergeConstants.dmInsertDuplicates' I expect to have an audit trail to be kept on my PI data.  This mean that with PI-OLEDB, I'll end up reading the same results as before plus a new entry for each timestamp with an _index = 2 (in picomp2 table).

 

For some reasons, no data get written in PI and I get the following error in the message log on the PI server:

 

PIarcmgr::addevent failed, mode: 0 ptid: 163 recid: 130259 status: [-109] Value at This Time Already Existsevent time: 28-Jun-09 14:00:00 Value: 0.

 

Only the last call to this procedure seems to work OK since I have my _index =2 and 3 and 4 and so on everytime I run the calc for this entry only.

 

MY SPEC

 

PI Server 3.4.370.76

 

PI ACE 2.1.12

 

PI SDK 1.3.6.363

 

My destination point is a type Float64 with no compression and no exception (compdev and exdev = 0).

 

Same behaviour is experienced with a float32.

 

Anybody see something I'm missing?  It's like the InsertDuplicate is only performed on the last entry in PI before the ACE application terminate.

 

Thanks for any help.

 

Cheers,

 

Martin Thivierge

Outcomes