(Apologies if some of the terminology I use here is wrong - I'm new to this stuff!)
I'm working on a project to create some client services that interact with a PI Server:
- a read service where the user specifies a number of tags (as a csv) and we use the PI sdk to get (what we assume is) the current value of these tags on the server
- a polling service which uses a list of tags (including wildcards) to poll the PI Server every specified interval and return values for any tags that have changed since the last interval. This uses the AF SDK.
We are using tags created on the PI Server that use the random ® point source to test our services. After some trail and error and googling we worked out how to get tags that updated every second (by modifying the /f flags on the random service).
That's our basic setup but I'm struggling with a few things:
1 - Currently our polling service seems to work like this:
I subscribe to 10 tags whose data is changing every second. I set my polling interval to 5 seconds. What I would expect is to get one piece of data for each tag that has the current value at the polling interval. Instead we get multiple bits of data for the same tags - i.e. 5 entries for each tag for each of the 5 changes that happened to the tag in the polling interval. Is this what people would expect? Our thoughts were that the use case here would be that you should just get the latest value every polling interval.
2 - Can you make the random interface do subsecond updates?
If I try to specify a parameter to the random interface that specifies milliseconds e.g. /f 00:00:00:004, this is interpreted as 4 seconds...
3 - Can PI Server display timestamps that include milliseconds?
All the tools we are using - e.g. the SMT tool on the server, or the PI SDK utility on the client show timestamps with whole seconds only - is it possible to get the server/tools showing milliseconds?
Any advice would be greatly appreciated
Sam R