tinklerj

Using AF SDK RDA to write to tags

Discussion created by tinklerj on Feb 7, 2013
Latest reply on Feb 12, 2013 by rdavin

Forgive possible newbie questions, I am just starting to get to grips with the new RDA features.

 

I am using AFListData.UpdateValues with a list of AFValue objects to write values to multiple PI tags in one call (the aim being to cut down on server roundtrips).  The tags do not come from AF data reference attributes.

 

1. AFValue objects seem to be tied to AFAttributes (ie. I have to create dynamic AFAttribute objects to associate the AFValue objects with.  If the Attribute property in the AFValue is null it doesn't work.  Why is this since RDA is supposed to work without recourse to an AF server?  Is it just that there is no mechanism in the OSIsoft.AF.PI namespace for writing to multiple tags at present?  For reading multiple tags I can use PIPointList.methods.  Will there one day be a PIPointList.UpdateValues method?  Does PIPoint.UpdateValue also require dynamic AFAttributes, or is it just because AFListData is in a different namespace?

 

2. If a string value to be written does not correspond to a valid digital state (ie in the SYSTEM set, or in the tag's set if it is digital) I would like to detect this before doing the UpdateValues call and substitute something like "Bad Input" - otherwise I simply get an error object and nothing is written to the tag.  Any guidelines for doing this in AF SDK?

 

On a separate issue, if I call PIPoint.Snapshot, the returned AFValue has a PIPoint property that is null, so cannot be used to get PIPoint properties or to write back to the tag. I have to set it myself using the PIPoint object that I used for the original call.  Is this just an oversight or is there a reason?

Outcomes