|
3 API接口函数的应用
PI API提供一个公共的编程接口,用C/C++或VB、甚至连PI-PROCESSBOOK中内嵌的VBA都可以对PI系统进行数据读写。
用API开发PI的接口一般有两种方法。
一是用接口程序去控制一切与PI数据库有关的操作,这些操作包括建点和属性配置工作、数据读写工作等等,这样要用到PI-API和PI-SDK,对数据读写可以利用PI-API,建点和属性配置工作可以利用PI-SDK。这种方法用起来比较复杂,对编程要求很高,同时由于绕开了数据库管理员对数据的管理,对数据库的安全性也构成了影响。所以只有在特殊场合才用到这种方法。
二是借鉴OPC方式,接口程序只负责数据的读写,建点和属性配置工作放到PI服务器端由数据库管理员人工完成。这种方式下在配置PI的点及相关属性时,比OPC方式下的配置工作要简单得多:TAGNAME与INSTRUMENTTAG可取相同名,数据类型、量程、工程单位和死区范围等可按常识配置,其它属性都可用默认值。以下用VB为例说明PI API的大致用法。
在编程之前,先要安装OSI提供的PI-API,安装后会生成\\PIPC\LIBRARY\PIAPI32.DLL和\\PIPC\INCLUDE\PIAPI32.BAS两个文件。
然后在VB中引用上面所提的PIAPI32.BAS,将它作为一个公用模块。
准备工作完成后,就可按照以下步骤依次调用API函数,完成对PI数据库的写操作:
pilg_registerapp “piapi32.dll”
注册动态连接库,否则将不能调用下面的函数pilg_login。
pilg_login(登入PI的句柄,用户名,服务器名,密码,权限)
到指定的PI服务器中注册用户,以获取存取权限。
Pipt_findpoint(标签名,点号)
根据标签名获得点号,以后程序中对该标签的引用都用这个点号。
Pipt_pointtype(点号, 点类型)
根据点号获取该点的数据类型。
Pitm_parsetime(时间戳字符串,0,时间戳值)
将常用的时间字符串转换为在PI内部所用的时间值。
Piar_putvalue(点号,实型值,整型值,时间戳值)
对PI数据库进行写操作。
4 结束语
我们经过一段时间的开发应用,对PI的接口部分有了一定的认识。总的说来,OSI在PI的接口方面考虑得还比较周全,象OPC、OLEDB、ODBC这些常用的接口技术,它都支持,同时,用OSI提供的PI-API、PI-SDK开发的接口程序运行很稳定。另外,OPCINT所提供的运行状态信息也很丰富。
不足之处也发现几个:一是OPCINT居然还是DOS版的,在当今WIN2000、WIN XP横行的天下,OPCINT看上去太老了,它运行时提供的信息虽多,但翻看起来比较麻烦。二是OPCINT对中文字符串支持不够,一旦传送中文字符串,接口程序就会报错。不知OSI公司会不会推出新版的OPCINT,克服以上问题。 上一页 [1] [2]
|