OPC标准—你知道吗?
这些文章都是左抄右摘而得的,并不是我写的文章,我只不过是个汇总者。但无论如何,还是希望你能从这篇文章中了解到OPC标准。
什么是OPC
OPC (OLE for Process Control——用于过程控制的OLE)是一个工业标准,它是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。这个标准定义了应用Microsoft操作系统在基于PC 的客户机之间交换自动化实时数据的方法。管理该标准的组织是OPC基金会。该基金会的会员单位在世界范围内超过220个。包括了世界上几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。OPC基金会的先驱——一支由Fisher-Rosemount、Rockwell软件公司、Opto 22、Intellution和Intuitive Technology公司组成的“特别工作组”——在经过一年工作后,开发出一个基本的、可运行的OPC规范。简化的第一阶段的标准在1996年8月发布。
随着1997年2月Microsoft公司推出Windows95支持的DCOM技术,1997年9月新成立的OPC Foundation对OPC规范进行修改,增加了数据访问等一些标准,OPC规范得到了进一步的完善。 OPC是基于Microsoft公司的Distributed Internet Application (DNA)构架和Component Object Model (COM)技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。 OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
OPC的效率
从OPC标准的制定到现在已历经了5年的时间。在这过去的5年中,众多业界领先的制造商已开发了多种OPC服务器和客户机应用。在实际工程中也历经了多方面的测试和考验。以瑞士的TetraPak为例,其基于OPC服务器技术的数据采集系统,保证了对超过500个数据点的更新时间为200毫秒。
在Softing公司的OPC服务器性能测试中,分别对基于本地的OPC应用和基于DCOM的分布式应用进行了测试。
为了保证测试的可信程度,特别选用了两台低档配置的计算机。其配置如下:
硬件:
CPU:奔腾90MHz处理器
RAM:48或64M
软件:
Windows NT 4.0
在本地测试中,OPC客户机测试应用程序和OPC服务器安装在同一台PC上。在基于DCOM的分布式OPC应用测试中,OPC客户机测试应用程序在第二台远程PC上运行。
测试结果:无论是在本地还是两台计算机之间,5000个过程变量的变化值能在1秒内在OPC服务器和客户机之间传送。对于只有500个过程变量的情况,只需100毫秒时间。因而,OPC被认为是非常适合于在很短的更新速率内采集大量的动态过程变量的应用场合。
OPC的优势
采用OPC规范设计系统的好处:
采用标准的Windows体系接口,硬件制造商为其设备提供的接口程序的数量减少到一个,软件制造商也仅需要开发一套通讯接口程序。即有利于软硬件开发商,更有利于最终用户。
OPC规范以OLE/DCOM为技术基础,而OLE/DCOM支持TCP/IP等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。
OPC按照面向对象的原则,将一个应用程序(OPC服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
OPC实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置,使得系统的应用范围更广。
采用OPC规范,便于系统的组态,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。
OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
OPC相关知识
1. COM -- Common Object Model 组件对象模型
2. OLE -- 对象链接和嵌入
3. OLE Automation -- OLE 自动化
4. DCOM -- 分布式组件对象模型
5. ActiveX
6. DDE —— 动态数据交换(Dynamic Data Exchange)
OPC技术规范
OPC技术规范是以Microsoft的OLE/COM技术为基础,定义了一组接口规范。它包括OPC自动化接口(Automation Interface)和OPC定制接口(Custom Interface)。另外,OPC技术规范定义的是OPC服务器程序和客户机程序进行通讯的接口或通讯的方法。
1 OPC对象与接口:
OPC服务器对象提供了对数据源进行存取(读/写)或通讯的方法,而数据源可以是现场的I/O设备,也可以是其它的应用程序。通过接口,OPC客户应用程序可以同时连到由一个或多个厂商提供的OPC服务器上。如图1所示。OPC服务器封装了与I/O控制设备进行通讯和访问数据的类型与名字及进行设备操作的代码。
2 OPC数据存取(Data Access)规范:
总体来说,OPC数据存取规范包含几个对象:服务器对象(Server Object)、组对象(Group Object)、项对象(Item Object)。OPC服务器对象维护着服务器的信息,同时也是OPC组对象的包容器。OPC组对象维护着它自己的信息并提供包容OPC项的机制,同时管理OPC项。
OPC组提供客户应用程序组织数据的机制,例如:一个组可以包含一个显示面板所有数据的项,并可对数据进行读写。在一些特殊情况下,还可以在组里建立客户应用程序与项的连接,并可以根据需要禁止或允许这种连接。OPC客户应用程序还可以修改OPC服务器向OPC客户应用程序提交数据变化的刷新数率。
OPC组有两种类型:公共组(Public)和局部组(Local or Private)。公共组可以为多个客户程序共享,而局部组只为某一个客户程序所有。在每个组里,客户程序可以定义多个OPC项。如图2所示。
OPC项代表了与服务器里数据源的连接。从定制接口(Custom Interface)角度来看,一个OPC项不能被OPC客户程序作为一个对象来进行操作,因此,在OPC项中没有定义外部接口。所有对OPC项的操作都是利用OPC项的包容器 (OPC组)或OPC项的定义来进行的。
每个OPC项包含值(Value)、品质(Quality)和时间标签(Time Stamp)。值(Value)的类型是VARIANT,品质的类型是SHORT。
应当注意的是项不是数据源,而只是与数据源的连接。例如:在DCS系统中定义的可以让OPC客户程序访问的标签。OPC项应该被看成是数据地址的标示,而不是数据的物理源。
2.3 OPC报警与事件(Alarm and Event)规范:
OPC报警与事件规范接口提供了一种机制。通过这种机制,当I/O设备中有指定的事件或报警条件产生时,OPC客户应用程序能得到通知。通过OPC报警与事件规范接口,OPC客户应用程序可以设置OPC服务器支持的事件和条件,并获的其当前状态。
这里使用了过程控制中常用的报警和事件的概念,在不严格的场合,报警和事件在意义上差别不是非常明显,二者可以互换。
在OPC中,一个报警就是一个非正常情况(Condition),因此是一种特殊情况。一个情况是OPC事件服务器(Event Server)或其所包容的对象中命名了的一个状态,而这个状态对OPC客户应用程序来说是有用。例如:标签FC101可以有以下几种相关情况:上限报警、上上限报警、正常、下限报警、下下限报警。
另一方面,一个事件是某种可以检测到的变化,而这种变化对OPC服务器及其所表示的I/O设备或OPC客户来说是非常重要的。一个事件可能是和某种情况相关的,也可能和任何情况都无关。例如:系统从正常情况变化到上限报警或从上限报警变化到正常情况,这是和某种情况相关的事件。但是,操作人员的动作、系统配置的更改、系统故障就是与情况无关的事件。OPC客户程序可以得到这类特殊事件发生的通知。
OPC事件服务器接口类IOPCEventServer提供的方法可以使OPC客户程序完成如下功能:
● 决定OPC服务器支持的事件类型。
● 对某些特定事件进行登记,以便OPC客户能在这些事件发生时得到通知,也可以采用过滤器定义这些事件的一个子集。
● 对OPC服务器实现的情况进行存取或处理。
除了IOPCEventServer接口外,OPC事件服务器还支持其它接口,可以对服务器实现的情况进行浏览和对公共组进行管理
2.4 OPC历史数据存取(Historical Data Access)
历史数据引擎能够把那些必须分散存储的信息组合成一个额外的数据源并把它们提供给对它们感兴趣的用户或OPC客户程序。当前大部分历史数据系统采用自己专用的接口分发数据,这种方式不能提供即插即用的功能,从而限制了其应用的范围和功能。
为了将历史数据和各种不同的应用系统进行集成,可以将历史信息认为是某种数据类型的数据。
目前,OPC规范支持以下几种历史数据服务器:
● 简单趋势数据服务器。这种服务器只提供原始数据和简单的存储功能。数据一般是OPC数据存取服务器提供的数据类型,常常是[数值,品质]元组的形式。
● 复合数据压缩和分析服务器。这种服务器能够提供与原始数据存储一样的数据压缩功能,还能提供数据汇总和数据分析功能,如平均值、最大值、最小值等。支持数据刷新及历史记录的刷新,另外,保存历史数据的同时还可以记录对数据的注释信息。
OPC的安装
这些文件都是从OPC基金会网站上下载来的 www.opcfoundation.org
opc_aeps.dll
opccomn_ps.dll
opchda_ps.dll
opcproxy.dll
aprxdist.exe
opcenum.exe
它们都是OPC的接口代理文件
客户端和服务器端都必须要安装这些文件
*************************************************************
******* 安装时千万不要把新版本的文件也覆盖掉了.**************
************************************************************
安装步骤:
1. 将所有文件拷贝到Windows的System32目录. 例如:
copy opcproxy.dll c:\winnt\system32
copy opccomn_ps.dll c:\winnt\system32
copy opc_aeps.dll c:\winnt\system32
copy opchda_ps.dll c:\winnt\system32
copy aprxdist.exe c:\winnt\system32
copy opcenum.exe c:\winnt\system32
2. 安装代理DLL文件
REGSVR32 opcproxy.dll
REGSVR32 opccomn_ps.dll
REGSVR32 opc_aeps.dll
REGSVR32 opchda_ps.dll
3. 如果你的Windows系统目录下不存在actxprxy.dll文件,请运行aprxdist.exe程序
aprxdist
4. 注册opcenum.exe
opcenum /regserver
欲了解更多的OPC标准,请参阅以下网址:
OPC基金会 http://www.opcfoundation.org