PI实时数据库的OPC和API接口浅析

更新时间:2023-07-27 05:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析

PI实时数据库的OPC和API接口浅析

1引言

随着电厂信息化要求越来越高,SIS系统的建设逐渐走上历史舞台,很多电厂开始着手搭建自己的SIS网,而SIS的核心部分就是实时数据库系统。说到实时数据库系统,目前的产品有很多,PI是其中重要的一员,由于它先进的旋转门压缩数据技术、加上运行稳定的特点,尽管价格高昂,它还是在国内拥有很大的市场占有率。

SIS系统的另一重要组成部分是实时数据库系统与现场设备之间的接口,衡量一个实时数据库系统的优劣,其接口系统是否具有开放性、灵活性和方便性是很重要的一方面。在这点上,PI也具备了一流实时数据库系统应该具备的特点,它提供了对OPC、ODBC以及OLE DB的支持,另外,它还有C/C++、VB环境下的SDK开发工具包和PI-API接口函数库,利用PI-API和SDK,我们可以比较方便地开发我们自己的专用接口。

在台州发电厂的SIS项目实施过程中,我们用API开发了几个专业接口(如RTU系统的接口、电量统计系统的接口等),也利用了PI的OPC接口,完成了全电厂范围的数据采集,为今后SIS系统的进一步开发打好了基础。以下就对OPC接口的应用和API接口函数的应用做一些介绍。

2 OPC接口的应用

OPC(OLE FOR PROCESS CONTROL)是一个开放性的工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的,是微软公司的OLE在过程控制方面的应用。

OPC以COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准。采用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发符合标准的OPC SERVER程序,而软件开发者不用再关心硬件驱动方面的技术问题,只要按标准

PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析

开发OPC CLIENT程序就可完成与硬件的连接,这样不但提高了系统的开放性,也提高了软件开发的效率,使软件开发人员可以有更多的精力投入到其核心产品的开发上。

OSI专门为PI开发了能支持OPC 2.0规范的OPC CLIENT接口程序OPCINT,OPCINT是DOS环境下运行的程序,一般通过编辑并运行OPCINT.BAT来启动。配置PI的OPC接口需做两件事,一是配置OPCINT.BAT,使接口OPCINT既能从OPC SERVER取到数据,又能根据PI的需要将数据提交出去;二是在PI SERVER端配置点及相关属性。在运行OPCINT之前,需安装PI-API,安装后,在\\PIPC\目录下会生成一些有用的文件供OPCINT调用。

在配置OPCINT.BAT时,重点注意以下项的配置:

/ps=

定义数据源,可以用任意字母及组合表示。一个PI数据库可以有多个OPC接口,我们可以用此项来区分这些接口。

/id=

定义数据标记,可以用任意数字表示。

/TF=

定义表示时间的格式,一般用“ccyy/mn/dd hh:mm:ss.000" 格式。

/SERVER=

指定OPC SERVER的服务名,用HOSTNAME::SERVERNAME表示。如果OPC SERVER和OPCINT在同台机上,只需定义SERVERNAME即可。

/host=

指定PI服务器的IP地址及端口号,端口号一般用5450,用IPARRESS:5450 表示。

/f=

PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析

定义数据刷新周期,用“时:分:秒”表示,可以定义多个,到底哪个起作用由PI数据库中点的属性LOCATION 4决定。例如

/f=00:00:01 ^

/f=00:00:03 ^

/f=00:00:05 ^

/f=00:00:10

定义了4个不同的刷新周期,当PI数据库中点tag1的LOCATION4属性等于2时,刷新周期就定成了3s。

在配置PI的点及相关属性时,重点注意以下属性的配置:

TAGNAME:标签名。

当其它应用程序从PI数据库取数据时,用它来关联数据。比如用PROCESSBOOK组态画面时,点名就必须与PI中的TAGNAME一致。

INSTRUMENTTAG:设备标签名。

OPC SERVER提供数据给OPC接口程序时,每个数据都有点名,当我们用OPC CLIENT程序去查看这些数据时,一般会看到这些点名还包含分组信息。PI数据库中点的INSTRUMENTTAG属性必须与我们在OPC CLIENT中所看到的相应点名完全一致。

POINTSOURCE:点的数据源。

POINTSOURCE与OPCINT.BAT中定义的“/ps=”项相匹配。

LOCATION1:与OPCINT.BAT中定义的“/id=”项相匹配。每个接口所涉及的数据可以在逻辑上分成若干类,LOCATION1可以起到区分这些类的作用。

LOCATION3:一般是0或1,它与OPC SEVER的工作模式有关。当OPC SERVER端主动提供数据时,该属性应置为1,否则为0。

PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析

LOCATION4:决定数据刷新周期,与OPCINT.BAT中定义的“/f=”项相关。

其它属性较普通,根据常识去配置一般不会错。

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服务器中注册用户,以获取存取权限。

PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析PI 时时数据库 PI实时数据库的OPC和API接口浅析

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,克服以上问题。

本文来源:https://www.bwwdw.com/article/iemm.html

Top