OPC规范范文(精选3篇)
OPC规范 第1篇
目前工业自动化控制功能已经越来越强大,工业生产自动化程度也越来越高,许多工业现场基本实现了无人值守,由智能化的控制系统完成过程的控制。虽然控制器的处理能力及功能算法(如PID算法、函数)得到较大提高,使用也越来越方便快捷,但是要实现更为强大的数据处理和高级算法(如人工智能、模糊算法及大量数据提取)还是远远不够的,还需要借助功能更为强大的计算机来完成。当前许多工业生产现场的专家系统、过程控制系统及生产报表系统都是在自动化控制器、过程控制计算机及数据库的配合下完成的。要完成这一复杂的功能首先必须要解决计算机与控制器之间的通讯,即计算机能自如读写控制器点名值供控制器及后台计算机使用。在传统系统中,读取数据的方法是为不同的应用程序编写不同的驱动程序,利用DDE等数据交换方式处理,效率低、成本高、通用性差。目前利用OPC规范接口实现与控制器数据交换已逐渐成熟,被业界所公认和使用。
1 OPC规范介绍
OPC是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的。O代表OLE(对象链接和嵌入),P(过程),C(控制)。从1996年1.0a诞生到的现在已经发展到3.0a。
OPC主要适用于过程控制和制造自动化等应用领域。OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来,有更多的精力完成应用功能。
2 OPC接口
应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口,OLE自动化标准接口。通常在系统设计中采用OLE自动化标准接口。OLE自动化标准接口定义了如下三层接口。OPC Server层获得OPC服务器对象类,并用于返回OPC Group类对象。OPC Group层存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。OPC Item层存储具体Item的定义、数据值、状态值等信息。
由于OPC规范基于OLE/COM技术,同时OLE/COM的扩展远程OLE自动化与DCOM技术支持TCP/IP等多种网络协议,因此可以将OPC客户、服务器在物理上分开,分布于网络不同节点上。OPC接口规范是个很全面、复杂的接口类定义,下面只简单介绍该主要接口及属性。
图1 OPC接口(参见下页)
2.1 OPC Server
OPC Server用于建立不同厂商的OPC服务器实例,如西门子的OPCServer.Win CC服务器,AB的RSLinks及西屋DCS系统的Ovation.OPC.4。它有多种属性,其中最主要的是OPC服务器名、Prog ID或者是服务器CLSID。只要更改不同的OPC服务器名就可以连接不同的服务器。也可以利用IOPCBrowse Server Address Space接口查找指定计算机上的OPC服务器,并连接。
只有建立服务器连接后才可以使用OPC Group对象中的方法,如添加或移走服务器组对象。服务器建立连接后返回连接句柄。
2.2 OPC Group
OPC Group主要用来管理OPC Item。通过OPC Group属性定义可以管理一组刷新周期、OPC服务器、数据读取方式相同的项。当应用程序与某OPC服务器建立连接后,可以新建OPC Group,然后利用IOPCItem Mgt接口类添加或移除OPC Item。
2.3 OPC Item
OPC Item对象代表过程变量的连接实例。它一般对应OPC服务器中要使用的点名对象。该对象的唯一接口是OPCItem Disp。通过OPC Item可以得到控制器点名的相关属性,如数值("Value")属性、存取路径("Access Path")属性和点质量("Quality")属性。
图4 OPC Item对象(参见右栏)
3 利用OPC规范读写控制器数据实现
利用OPC规范实现接口功能是一个标准的过程,本实例采用Delphi7.0下开发接口程序。首先必须
注册相关动态链接库,将如下动态库拷贝到系统目录下的system32目录,便于程序调用。也可以建立批处理,命令如c o p y.s d k*.d l l%windir%system32(拷贝的动态链接库位于本目录下SDK文件夹中)。然后拷贝已定义的类文件到项目文件中并应用[1]。
按照OPC的类模型,当对象方法调用OPC对象时必须遵循一定的顺序,首先建立OPC服务器连接,其次在建立链接的服务器实例下建立GROUP组对象,最后添加ITEM项实现数据读写操作。流程如图7所示。
3.1 OPC服务器实例化
本例以Ovation DCS系统OPC服务器为例,在建立OPC服务器对象前首先定义全局变量的服务器名Server Prog ID,实例化COM对象成功返回接口指针S e r v e r I f,失败赋值为空(N I L)。S e r v e r P r o g I D为COM服务器一字符串Prog ID,通过该字符串可以得到全球唯一的CLSID[2]。
3.1.1 OPC服务器对象建立
3.1.2 OPC服务器对象删除
Server If._Release;当关闭OPC通讯接口前一定要删除建立的OPC对象,释放内存。由于OPC服务在操作系统重新启动后服务启动较慢,接口程序必须在OPC服务启动后才能正确运行,在工程项目中为了实现系统重新启动后自动运行接口程序可通过定时器定时测试连接,连接成功关闭定时器的方法实现自动连接以避免接口软件运行错误[3]。
3.2 GROUP组建
OPC服务器COM对象建立后就可以建立组对象实例,函数如下:
该函数中定义了OPC对象、组名、刷新周期及组对象指针等,返回为内存管理指针HResult,判断建立成功与否。其中Group If为组对象接口指针,为ITEM项使用;Name为组对象名。
3.3 ITEM项添加
建立组对象之后就可以建立各ITEM对象接口指针,接口定义如下:
HR:=Group Add Item(Group If,s Item Name,x,VT_EMPTY,Item0Handle,Item Type);
其中Group If为组对象接口指针,s Item Name控制器标签名,Item0Handle为建立的ITEM对象指针。接口函数返回内存管理指针HResult。
3.4 Item数据读写
ITEM项接口对象建立后就可以对接口进行操作,通过组接口指针和ITEM接口指针就可以读取ITEM对象值,同时获取该对象的质量。
ith:Item0Handle;
HR:=Read OPCGroup Item Value(Group If,ith,Item Value,Item Quality);
Item Value为item标签名点值,Item Quality对象质量(GOOD或BAD)。
HR:=Write OPCGroup Item Value(Group If,ith,d Ser Id Value);
er Id Value为要写入的ITEM接口对象ith的点值。
4 结束语
严格按照OPC规范协议建立各COM组建对象,并合理规划接口程序标签组的属性,结合数据库存储标签点名称及组对象名称,可以高效开发适合工业使用的各类接口系统,本例中开发报表接口程序使用五年来性能稳定,完全满足工业需要,基本接口界面如图8所示。
参考文献
[1]李慧,刘欣.Delphi程序开发范例宝典[M].北京:人民邮电出版社,2012.
[2]柴方艳.服务器配置与应用[M].北京:电子工业出版社,2012.
OPC技术及远程访问OPC接口 第2篇
OPC协议是一个工业标准,是由OPC基金会制定的。它规范了过程控制和自动化软件与工业现场设备之间的接口。
OPC包括一整套接口、属性和方法的标准集,提供给用户用于过程控制和工业自动化应用。Microsoft的OLE/COM技术主要用于各种不同的软件部件如何分享数据和交叉使用,OPC能够提供通用的接口用于各种过程控制设备之间的通讯。复杂数据规范OPC技术的实现由两部分组成:OPC服务器和OPC客户应用部分。OPC服务器主要的任务是采集现场设备的状态信息,经过标准的OPC接口发送至OPC客户端作为应用。OPC客户端则通过标准的OPC接口接收相关现场设备状态信息,并进行显示。在不同的工作场合,用户可以挑选使用相应的规范。
2 OPC协议
OPC协议内容包括了数据访问规范、历史数据存取规范、报警和事件规范、数据交换规范、OPC安全性规范、合成数据规范、命令规范、公共I/O规范等。
OPC协议设计系统有以下的好处:
1)应用OPC协议标准的Windows体系接口,硬件制造商只需要为其设备提供一个接口程序,另软件开发商也只需要开发一套通讯接口程序而不需要考虑硬件;
2)各个子系统可以相对独立,同时分布于同一网络的不同节点上。因为OPC规范技术基础是OLE/COM/DCOM,而OLE/DCOM与TCP/IP等网络协议相互支持;
3)用户通过OPC可以从底层的开发中脱离。因为OPC按照面向对象的原则,这样使得客户对软件有透明的认识;
4)扩展了系统的应用范围。通过OPC远程调用,应用程序的分布与系统硬件的分布独立开来,系统硬件配置方便快捷,大大扩展了系统的应用范围;
5)便于系统的日常维护。采用OPC规范,系统的组态方便,大大简化系统复杂性,从而缩短软件开发周期,同时软件运行更加的可靠和稳定,便于系统的升级与维护;
6)实现了系统的开放性。OPC规范了接口函数,客户以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
OPC应用领域也很广泛:
OPC是为了提供数据信息源和用户之间连接的一个软件接口标准。数据信息可以来源PC、PLC,DCS,监控系统、条形码读取器等控制设备。不同构成的控制系统,数据源的OPC服务器可以是和OPC应用程序在本地OPC服务器,也可以是在远程OPC服务器。
3 远程访问OPC接口
综合以上技术可以实现远程访问OPC接口,在中控室直接访问装卸船机CMS电脑上的OPC Serve相关数据。该系统主要有3大部分:
1)PLC:收集现场设备数据,并实现控制;
2)CMS:服务器端的通用软件,安装有OPC Client,可以提供远程访问OPC接口;
3)客户机:通过远程访问OPC接口来获取数据,从而掌握设备现状;远程访问OPC接口的网络拓扑结构图如图1所示:
3.1 实现条件
1)为了统一设置DCOM,要访问OPC的电脑的登录用户名与密码必须公开;
2)要实现中控机访问CMS,中控机和CMS必须在同一局域网内,允许处于不同或者相同的工作组;同时由于DCOM通讯技术只支持局域网,故DCOM不能跨越网关和路由器。
3.2 具体实现
1)首先注册ABB的OPC ServeABB公司提供一个注册表文方便在客户机上注册ABB的OPC Serve。
2)配置DCOM
(1)打开开始运行键入dcomcnfg.exe;
(2)展开左侧目录数“控制台根目录”“组件服务”“计算机”“我的电脑”,点击落在菜单中选择“属性”;
(3)选择“默认属性”,“在此计算机上启用分布式COM”复选框前已打勾,同时设置“默认身份验证级别”为“无”;
(4)选择“COM安全”选项卡,单击“访问权限”中的“编辑默认值”按钮,然后选择“ANONYMOUS LOGON”的权限,确认远程访问的允许下打勾;
(5)重新启动计算机,才能使以上设置生效。
3.3 防火墙的设置
Windows操作系统会自动打开系统防火墙,要使DCOM设置生效,可选择以下方法中的一种:
最为直接的方式就是关闭防火墙;
开户防火的TCP/IP协议的135端口;
在防火中允许相关的OPC程序的运行。
4 结论
通过OPC接口,中控机可以实时高效的掌握装、卸船机的工作状态,为技术人员提供了实时的数据库数据。随着OPC协议的成熟及应用的推广,其应用也受到厂商高度的重视,很多公司都在原来产品的基础上添加了对OPC协议的支持。OPC协议统一了数据访问的接口,使控制系统进一步走向开放,实现信息的集成和共享,用户能够得到更多的方便。而且OPC协议技术改变了原有的控制系统模式,给工业自动化领域带来了勃勃生机,也给国内系统生产厂商提出了一个发展的机遇和挑战。而且在实时数据库开发中OPC协议的应用,也使得人们开发的实时数据库软件可以更好的符合实际的应用。应用OPC协议,可以高效实时的进行数据采集;在数据存储中,对实时数据和历史数据的存储都能保证实时性;在数据库管理中,能够及时对现场事件进行处理。同时通过远程访问OPC接口,使信息和资料更好更快的进行传递。
参考文献
[1]任思成,王书鹤,亓克贵.新一代工业过程控制软件接口标准—OPC技术-[J].仪器仪表学报,2002(S1).
利用OPC功能实现装置间数据共享 第3篇
阳煤集团淄博齐鲁第一化肥有限公司主要有尿素与辛醇两种最终产品, 配套装置有造气、净化、PSA、合成氨、合成压缩、普利森、尿素压缩、尿素主装置、辛醇压缩、辛醇主装置等。现造气装置由浙江中控ECS100系统的四对控制器控制, 净化、合成氨和辛醇二期PSA两装置由横河CS3000系统两对控制器控制, 尿素PSA及辛醇一期PSA两装置由浙江中控ECS100系统的两对控制器控制, 普利森由浙江中控ECS100系统的一对控制器控制, 辛醇压缩由浙江中控ECS100系统的一对控制器控制, 辛醇主装置由横河CS3000系统两对控制器控制, 这9套装置因生产需要皆有大量数据须实现共享。在2011年度检修期间, Honeywell TDC3000需进行更新改造, 原先的共享模式需打破, 利用OPC功能很好地解决了该问题。
1 原系统构成及共享方式
原造气、净化、PSA、普利森、辛醇压缩皆由浙江中控ECS100系统控制, 它们间的数据共享由ECS100系统控制器间通过消息传送来实现, 合成氨、合成压缩、尿素主装置、辛醇主装置与它们的数据共享通过系统间的硬点连接实现。
浙江中控ECS100系统将五套装置的控制器在SCnet II网络层通过光纤进行互连, 形成互为冗余的两条网络, 如图1所示 (以造气与净化两装置为例) 。
异型系统间因共享数据量较少靠硬点连接实现数据交换, 如Honeywell TDC3000系统将要传出的模拟量做量程处理后送一模拟输出点, 数据由该模拟输出点送出, 在浙江中控ECS100系统做一量程相同的模拟输入点将其接收。
浙江中控ECS100系统在发送端取数据组成消息, 发送消息;接收端接收消息将消息, 并分解后将不同类型的数据赋值给相应类型的变量。发送消息、接收消息、程序分别如图2、图3所示。
2 现系统构成及共享方式
因Honeywell TDC3000系统已到报废期且故障率明显增高, 利用2011年度检修将其更新为横河CS3000系统, 用于控制净化、合成氨及新上辛醇二期PSA装置。造气/净化两装置原先皆由浙江中控ECS100系统实现控制, 大量的数据共享靠同系统控制器间消息传送实现;现属异型系统间数据共享, 且数据量较多, 靠原先的硬点连接方式既浪费系统资源, 又带来两系统逻辑共地问题, 为系统的可靠运行埋下隐患。为此, 采用OPC功能来实现异型间数据的通信, 达到共享的目的。
具体方案:造气、尿素PSA、普利森、辛醇一期PSA、辛醇压缩五装置皆为浙江中控ECS100系统控制, 故保持原共享方式 (控制器间消息传送) , 而其与净化、合成氨及辛醇二期PSA的数据共享 (即与横河CS3000系统的通信) 由OPC功能实现。
将造气与普利森需外送数据通过原通信方式集中到普利森装置控制器上, 在该系统操作站上安装中控OPC服务器软件包将数据开放, 并将自主开发的OPC客户端安装于本地, 通过该客户端将共享数据写入横河CS3000系统对应控制器实现每台操作站皆能监视。而净化、合成氨及辛醇二期PSA需外送的数据 (在横河CS3000系统上) 由横河操作站上的OPC服务器将数据开放, 再由造气装置ECS100系统操作站通过二次计算点 (取OPC数据形成) 显示。辛醇主装置与净化、合成氨及辛醇二期PSA的数据共享靠安装在辛醇主装置横河CS3000系统操作站上的OPC客户端实现, 客户端连接的两端操作站上都必须安装横河OPC服务器软件包将数据开放。
3 系统数据共享的实现
3.1 OPC客户端
在普利森装置ECS100系统操作站及辛醇主装置CS3000系统操作站上安装的OPC客户端采用Dephi语言开发, 所连接服务器名、变量都写入一配置文件, 该配置文件可通过文本编辑器编辑, 以便于日后根据工艺要求改变作调整。OPC客户端界面如图4所示。
造气装置ECS100系统操作站上二次计算点建立时调用其内嵌的OPC客户端, 如图5所示。
3.2 OPC服务器
(1) OPC服务器软件需单独安装, 安装完后需单独启动, 且软件需要指定组态文件路径用作配置文件, 在数据读写过程中OPC服务器软件不能退出。参数设置界面如图6所示。