从事PI几年,以自己的经历谈谈PI的入门和进阶,个人一家之言,仅供参考

1、从PROCESSBOOK开始,这是通常的入门第一课,画些图,作些曲线,如果没有专门的测点,可以使用PI提供的几个测点如SUNUSOID等,要点:值图、趋势图、多状态

2、作报表,用DATALINK作些报表,要点:分清出在哪个场合下用哪些公式,内插值、历史值、存档值等概念

3、熟悉了以上两个产品后,在好好看看PI的有关资料,对于大多数第一次接触实时数据库的人来说,都想了解实时数据库和关系数据库的区别,所以要特别了解实时数据库的概念、PI组成模块,具体螺旋门算法和压缩算法不必太了解,只要知道有这么回事就行了。要点:PI组成模块,实时数据库

4、如果讨厌用命令行的方式,那就用PI的SMT,对PI系统进行些管理和设置(测试机上练习,不要拿客户的服务器作试验)

5、试着新建些测点,了解测点的基本属性,要点:测点名、类型、描述

6、试着用下ACTIVEVIEW,在网页上发布PDI;要点:网页知识

7、可以参考写个简单的接口,不要非VC、VB的,哪个顺手用哪个,这时要多参考PI API和PI SDK文档

8、标准化接口,完善接口,不断调试,这时需要熟悉PI测点的高级属性,属性API或SDK的高级应用

9、试着用VBA进行PROCESSBOOK和DATALINK的功能扩展,用下MDB(个人认为MDB这东西一点没用,就是个XML而已,且占用许可点)等东东,要点:VBA、MDB

10、离开PI,对你来说,如果到了这个阶段,你不想做过PI的专家,应该离开PI了,这东西不过这么回事,你更需要关注业务,关注应用





利用其提供的api函数进行其数据读取:

定义基本数据类型结构:

type 
 
     int32=integer; 
 
     TDynamicInt32Array = array of int32; 
 
     TDynamicSingleArray = array of Single; 
 
     TDynamicCharArray=array of char;



PI_API主要有下面这几种类:

Archive Functions

Archive Functions provide a means of examining and modifying values in the PI Data Archive database. The PI-API contains the following Archive Functions:

主要是为了检测和修改历史TAG点的数据。

在piapi中以piar_开头
包括如下:

piar_calulation      Retrieve evenly spaced events based on calculation expressions 
 
                                    通过表达式获取数据。 
 
 piar_compvalues Retrieve compressed Archive data 
 
                                   获取压缩后历史数据 
 
 piar_deletevalue   Retrieve filtered, compressed Archive data 
 
                                    获取经过过滤压缩后历史数据 
 
 piar_intervalues   Retrieve sampled (evenly spaced) Archive data


                                 得到样本(均匀的间隔)历史数据,获取某控制点某时刻的数据主要用这个! 此函数返回的数据至少为2笔,第一笔为你指定的时间,第二笔如果没有指定时间,刚返回TAG点最后一笔数据!

piar_intervaluesfil Retrieve filtered, sampled (evenly spaced) Archive data 
 
                                 得到样本过滤后的(均匀的间隔)历史数据 
 
 piar_panvalues  Retrieve the time of an event a specified number of events from a reference time 
 

 piar_plotvalues   Retrieve Archive data appropriate for plotting 
 
 piar_putvalue    Put a value in the archive 
 
 piar_replacevalue Replace an existing value in the Archive 
 
 piar_summary    Return a calculated Archive value: total, minimum, maximum, stdev, range, mean, or average 
 
 piar_timedvalues Retrieve Archive data for specified times 
 
 piar_timedvaluesfil  Retrieve filtered Archive data for specified times 
 
 piar_timefilter Return the amount of time an expression was true 
 
 piar_value Retrieve an Archive value for a specific time