卢 化1 范海东2

(1、浙江省电力试验研究所;2、台州发电厂)

摘要:本文主要针对PI实时数据库的接口,介绍了基于OPC规范和基于PI-API两种不同的接口技术,并对接口系统配置过程中的重点内容进行了阐述。

关键词:SIS 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接口的应用

OSI专门为PI开发了能支持OPC 2.0规范的接口程序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数据库中点的属性LOCATION 4决定。例如

/f=00:00:01 ^

/f=00:00:03 ^

/f=00:00:05 ^

/f=00:00:10

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

在配置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。

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

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

PI实时数据库接口技术的应用相关推荐

  1. PI 实时数据库系统

    PI 实时数据库系统(Plant Information System)是由美国 OSI Software 公司开发的基于C/S.B/S结构的商品化软件应用平台,是工厂底层控制网络与上层管理信息系统连 ...

  2. PI.实时数据库系统---详细介绍

    PI 实时数据库系统(Plant Information System)是由美国 OSI Software 公司开发的基于C/S.B/S结构的商品化软件应用平台,是工厂底层控制网络与上层管理信息系统连 ...

  3. OSI PI实时数据库系统

    OSI PI实时数据库系统 PI 实时数据库系统 (Plant Inhrmation System) 是由美国 OSI Software 公司开发的基于 C/S.B/S 结构的商品化软件应用平台,是工 ...

  4. 如何通过C#读取PI实时数据

    今天来说说PI实时数据库.PI 实时数据库系统(Plant Information System)在自动化行业的应用,可以说是最广泛的. 美国 OSI Software 公司开发.这个玩意确实很强大, ...

  5. 如何实现最佳的跨平台游戏体验?Unity成亮解密实时渲染技术!

    7月31日,2018云创大会游戏论坛在杭州国际博览中心103B圆满举行.本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术.新实践,如AR.区块链.安全.大数据等. Unity大中华区技术经理 ...

  6. 单分子实时测序技术的原理与应用

    The principle and application of the single-molecule real-time sequencing technology [题 名]单分子实时测序技术的 ...

  7. 内核功能导致重启_红帽RHEL Linux 7.7正式版发布 支持内核实时修复技术无需重启...

    现归属国际商业机器公司旗下的红帽目前已经推出新的功能版本,新的版本提供跨云基础的增强以及控制等. 这个版本也是红帽企业版 RHEL Linux 7.x 系列最后的功能版本,后续7.x主要将提供错误修复 ...

  8. NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术

    NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术 导读 带你玩转python实现的语音实时识别技术(包括音频混音.回声消除.噪音滤除.杂音消除.静音检测等方法) 视频观看: 软 ...

  9. 嵌入式linux实时化技术,嵌入式Linux实时化技术

    引言 Linux支持PowerPC.MIPS.ARM.DSP等多种嵌入式处理器,逐渐被用于多种关键性场合.其中实时多媒体处理.工业控制.汽车电子等特定应用对Linux提出了强实时性需求.Linux提供 ...

最新文章

  1. .NET 进程和线程
  2. Java rp api_Java初级--常用的API
  3. 7.4.3 矩阵极分解和平方根分解
  4. Hadoop入门基础教程 Hadoop之伪分布式环境搭建
  5. 漫谈边缘计算(四):赢家是软还是硬
  6. 【小超_Android】GitHub源码项目整理,希望对大家有帮助
  7. 数学建模常用模型之秩和比综合评价法
  8. 怎么用计算机按键弹歌谱,键盘钢琴及谱子(弹钢琴练打字一举两得)
  9. Lattice Diamond软件使用
  10. 求最大值 最小值 下标 及格率 c语言,输入某班的C语言成绩,计算输出其及格率...
  11. 【C语言基础学习笔记】+ 【C语言进阶学习笔记】总结篇(坚持才有收获!)
  12. springboot admin 解决 client 注册不到 server
  13. 三色旗java_经典算法-(四)三色旗
  14. 裸辞闹了个乌龙,就当做个题提升自己吧
  15. 基于Lumerical FDTD的等离子体光子晶体分析
  16. 虚拟机安装systemc
  17. 点餐系统-----数据库设计
  18. 关于htons和htonl
  19. 壹连科技冲刺深交所:年营收14亿 65%收入来自宁德时代
  20. 通达信板块监控指标_通达信辅助判断指标公式行业板块看盘幅图

热门文章

  1. 腾讯通服务器临时文件,腾讯通详细使用教程
  2. 刚子扯谈:未完待续的微信5.0
  3. Matlab坐标轴标注和特殊字体
  4. 触动精灵获取某东代付的链接
  5. 【3D人脸】Mediapipe Vs Persona
  6. 北理工计算机学院新闻,北理工计算机学院召开物联网工程本科专业建设研讨会...
  7. 运放的选取标准和规则
  8. Typescript 史上最强学习入门文章 ( 2w 字)
  9. 国内唯美花海 新娘绝美婚纱照
  10. 汽车电子系统网络安全指南与汽车信息物理融合系统网络安全指南