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规范的客户应用程序实现石林锁,王涛,刘顺波(第二炮兵工程学院机电工程系,陕西西安 710025)摘要:介绍了过程控制领域中引进的一种新技术-OPC数据访问标准,论述了OPC相关概念、基础及OPC标准接口,并以OPC数据访问定制接口规范(1.0A)为蓝本,给出了利用Visual C++实现OPC客户应用程序的详细步骤。
关键词:过程控制;OPC规范;接口;客户应用中图分类号:TP 文献标码:AThe Realization of Client Application Based on OPC SpecificationSHI Lin-suo,WANG Tao, LIU Shun-bo(Dept. of Mechanical and Electronic, 2nd Artillery Engineering College, Xi’an 710025, China)Abstract: The paper introduces the OPC data access standard which was introduced into process control field recently, and discusses relative concepts, fundamentals and standard interfaces of OPC (Ole for Process Control). On the basis of OPC Data Access Custom Interface Specification (1.0A), the author gives out the detailed procedures to realize OPC client application using Visual C++.Key Words: Process control; OPC specification; Interface; Client application随着计算机技术与控制技术的不断发展,现代工业过程控制系统逐渐发展成为由现场设备管理、过程管理和商业管理三个层次组成的系统。
在这种新的过程工业信息体系结构中,从现场设备管理层、过程控制管理层到商业管理层包含了各种信息。
为了实现整个过程控制系统的信息集成,需要解决许多问题,其中最重要的是通信兼容问题。
因为现场管理层中大量的现场数据信息必须以一致的形式提供给用户或应用程序;过程管理层必须将现场管理层送来的信息及时加以处理并递交商业管理层;在商业管理层中这些信息又以一致的形式送给客户应用程序以简化信息的综合过程。
所以,解决这些问题的关键在于为过程控制系统的数据访问提供一种开放有效的通信标准。
在传统系统中,解决客户应用程序从数据源(如:现场设备、SCADA系统等)读取数据的方法是为不同的客户应用程序编写不同的驱动程序。
但是,这种方式存在许多问题,如同一个设备为适应不同的应用程序可能需要多种驱动程序,不同的驱动程序之间存在着不一致性,驱动程序对硬件存在着极大的依赖性等等。
为了解决这些问题,一些与微软公司合作的自动化硬件和软件供应商联合制定了一套称为OPC规范的OLE/COM接口协议,以此来提高过程控制工业中的自动化/控制应用程序,现场系统/设备以及商业/办公室应用程序之间的互操作性。
可以说OPC是工业监控软件的现场总线,其基本思想是:每个硬件供应商为其设备开发一个通用的数据接口(即OPC Server),供其它系统读写信息,客户应用软件也可以通过OPC规范的接口来读写硬件设备的信息(作为OPC Client)。
由于硬件供应商通常将硬件驱动程序封装成OPC Server单独出售,这样作为OPC数据客户端的上层应用,可以不包含任何通讯接口程序,不必关心底层硬件内部的具体细节,只需遵循OPC数据接口协议,就能够从不同的硬件供应商提供的OPC数据服务器中取得数据。
OPC规范提供了两套接口方案,即定制接口和自动化接口。
定制接口效率高,通过该接口,客户能够发挥OPC服务器的最佳性能,采用C++语言的客户一般采用定制接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB等语言的客户一般采用自动化接口。
本文详细介绍了在V isual C++环境下,使用OPC定制接口访问OPC服务器的通用实现方法。
1 OPC的基本结构OPC由两套接口组成:OPC定制接口和OPC自动化接口,如图1所示。
OPC服务器必须实现定制接口,可选择实现自动化接口。
这两套标准接口的制定极大地方便了服务器和用不同语言开发的客户应用之间的通信,使用户对开发工具的选择有了较大的自由。
图1OPC接口OPC接口可以潜在地应用在许多应用程序中。
它们可以用于从最低层设备中读取未加工的数据,再转化至SCADA或者DCS系统;也可以用于从SCADA或者DCS系统中采集数据输入到应用程序中。
OPC是为从某一网络节点中的某一服务器中采集数据而设计的,同时又能够形成OPC服务器。
该服务器允许客户应用软件在由许多不同的OPC供应商提供的服务器中传输数据,并可通过单一的对象在不同的节点上运行,其工作特点如图2所示。
图2 OPC客户/服务器关系2 OPC定制接口用C或C++编写OPC客户应用程序时可以使用定制接口,也可以使用自动化接口。
由于定制接口具有更高的性能,建议尽可能使用定制接口。