isolutions

Writing values to a point using PI-SDK when that point is buffered by an external interface?

Discussion created by isolutions on Dec 3, 2009
Latest reply on Dec 8, 2009 by cescamilla

Good morning,

 

Recently I've encountered a scenario where it's become desirable to write a value to a PI tag (in a collective) while that point is buffered by a realtime interface. In this scenario, I had a recently created point with a value of PtCreated -no snapshot or archive values present. When attempting to write a value using the OSISoft SMT, Error -11414 buffered point does not accept new events... was raised. This is as expected. I hit upon the idea of using the PI-SDK as a work-around, using the PI-SDK UpdateValue()  function...

 

Attempting to write to the same tag a recent value via the UpdateValue() method was successful. I need to clarify the mechanism by which the write occurs. The SDK CHM states "Send a single value (snapshot or archive) to PI" as the method descriptor. In the case above, I would have expected the value to go to the snapshot (???) but instead it appears it was sent directly to the archive. I'm confused by the behaviour. I expected the UpdateValue() call to fail with -11414 error.

 

My deployment configuration is a PI collective with 5 servers. I can scale up my code to write values to all collective members individually since the SDK doesn't support buffered writes. But I only want to take this approach if I can be sure there are no cases where the UpdateValue() call would fail.

 

Setting aside the (valid) concerns associated with writing recent values to a buffered point, would the above approach of using UpdateValue() on each collective member work? Are there failure scenarios I have overlooked?

 

 

Outcomes