How to schedule the ACE calculation to run exactly at specific interval.

Discussion created by HemanthKumar on Jan 13, 2014
Latest reply on Jan 16, 2014 by HemanthKumar



I am building 2 PI ACE calculations in VB.net.


Currently we have PI Server collective with 2 nodes and PI ACE Server is on a different machine. PI ACE calculated data is been sent to two nodes of PI server collective using PI BufferSubsystem .


The first PI ACE calc should be designed to run once a day at “00:01:00”(hh:mm:ss) . When it runs the calculation should take the data of the previous day from “00:00:00” to “23:59:59” and write the single value to previous day time stamp at “23:59:59” the PI server collective .


For example if I have 1 Input tag called “ Sinusoid” and 1 output tag called “ACEOutputtag”. The PI ACE calculation running on 2-JAN-2014  00:01:00 should take all the values from 1-JAN-2014 00:00:00 to 1-JAN-2014 23:59:59  and write the final output Value (Single Output value) to the PI server collective at  “1-JAN-2014 23:59:59” . (ACE is not writing values at the time stamp when it is running)


The second PI ACE calcs is same as first but when it runs it should it should write multiple values to PI ACE output tag .


Keeping PI server HA in mind Could you please help me  in sorting below issues.


1 . Is there a way to schedule the PI ACE calcs to run every day exactly at specific time interval.( say “ 2-Jan-2014  00:01:01”). As I need to schedule exactly at second level I am not able to Clock schedule it.


2. Is there a way to schedule the PI Ace calcs to run every day exactly at  sub second level 23:59:59.999(hh:mm:ss.sss).


3.  How do I write multiple values to the Single output tag with different timestamps.  I tried using PutValue method to do this. But  when I tried to write a value at “ 1-Jan-2014 10:30:15” the value is been stored at different time stamp “ 1-Jan-2014 10:30:16” .(Adding 1 second to given time stamp). Is there a better way to store  multiple values to single PI ACE output tag. 


Please share if there is any VB.net code available for this.