基于OPC的组态王和MATLAB的数据交换接口设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第19卷 第10期长 春 大 学 学 报

V o.l 19 N o .10 2009年10月

J OU RNAL OF CHANGCHUN UN I VER SI TY

O ct .2009

收稿日期:2009 05 12

基金项目:吉林省教育厅教研项目(SJ YB08-03)

作者简介:李学军(1968 ),女,山东临沂人,副教授,博士,主要从事控制理论与控制应用方面研究。

基于OPC 的组态王和MATLAB 的数据交换接口设计

李学军,张化勋,张玲霞

(长春大学 电子信息工程学院,吉林 长春 130022)

摘 要:采用OPC 技术设计MAT LAB 和组态王的数据交换接口程序,解决组态王数据处理能力弱,以及MAT LAB 未能应用于实际控制系统的问题。充分利用M ATLA B 实现复杂的控制算法,结合工控组态软件达到较好的控制效果。

关键词:OPC 技术;组态王;M ATLAB ;数据交换中图分类号:TP274+2 文献标志码:A

文章编号:1009-3907(2009)10-0033-03

由于 自动控制原理 、 控制技术与系统 等控制类课程涉及复杂的控制理论和数学推导,控制机理比较抽象难懂,学生对控制系统的动态和稳态特性的理解不深刻。因此,利用计算机仿真技术,将抽象化为形象,将复杂的数学公式化为曲线、图表,生动直观地显示控制决策的生成、各种控制变量的作用以及控制系统的运行状态,这有助于学生对控制理论的理解。而且也可通过调整控制器参数或改变控制策略,来增强学生的分析问题的能力,为使理论知识和工程应用相结合奠定基础。

图形组态软件

[1]

可提供友好的人机交互界面,

强大的通信功能,已广泛应用于控制系统的实时监控中。但是它实现复杂控制算法的能力较弱,复杂工业对象、高水平的自动控制算法及高精度的控制要求无法直接在通用的组态软件中实现。而MATLAB 语言提供了强大的科学运算能力,运用它的各种工具箱可进行复杂算法的实现。但MATLAB 自身的人机界面设计

[2]

不方便、没有提供与计算机硬件的接口、

无法获取现场的实时数据,不能实现实时监控。

随着OPC 技术的广泛应用[3]

,国内流行的监控组态软件全面支持OPC 技术;另一方,MATLAB 在其推出的7.0版本中提供OPC 工具箱

[4]

,支持

OPC 基金会数据访问标准的设备中读取、写入和记录OPC 数据,该工具箱允许将对象数据采集到MATLAB 环境中用于分析、仿真和快速算法开发。因此本文以图形组态作为OPC 服务器采集数据,通过OPC 接口传给作为OPC 客户端的MATLAB 应用程序。采集到的数据通过MATLAB 算法程序处

理后(即控制决策量)再通过OPC 接口写入MCGS ,

从而实现对现场的控制。这种将MATLAB 和组态软件相结合,利用OPC 作为二者的数据交换载体来搭建的虚拟实验平台(如图1所示),完成数据的实时采集和处理,实现人机对话和以动画的方式显示控制设备的运行状态等监控功能。采用MATLAB 语言作为后台程序扩充组态王的编程功能,实现系统的控制算法。

图1基于OPC 数据交换框图

1 OPC 技术

OPC 是OLE for Process Control 的缩写,即把OLE 应用于工业控制领域。它采用客户/服务器体系,其标准是在客户和服务器之间建立一种通信和数据交换的工业标准机制。其实质是在硬件供应商和软件开发商之间建立了一套完整的!规则∀,只要准守规则,数据交换对两者而言是透明的。OPC 由OPC 服务器与OPC 客户组成,OPC 服务器是数据的供应方,负责为OPC 客户提供所需的数据;OPC 客户是数据的使用方,处理OPC 服务器提供的数据。OPC 服务器一般并不知道它的客户来源。由OPC 客户根据需要,接通或断开与OPC 服务器的连接。OPC 数据访问接口(OPC DA,OPC Data A ccess I n terface)是OPC 3类接口中的一种,它用于客户端与服务器之间的数据存取。OPC 数据存取服务器主

要由服务器对象(Ser ver)、组对象(G roup)和数据项对象(Ite m )组成。组对象拥有本组的所有信息,同时包容并在逻辑上组织OPC 数据项。OPC 数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。客户不能直接对OPC 数据项进行操作,所有操作都通过组对象进行。客户可对组对象进行读写,还可设置客户端的数据更新速率。当服务器缓冲区内数据发生改变时,OPC 将向客户发出通知,客户得到通知后再进行必要的处理。

2 基于OPC 实现组态王与MATLAB 的通信

控制系统中的MATLAB 和组态软件实时进行

交换数据,通过OPC 把组态软件获取的硬件设备的实时数据及时传给作为OPC 客户端的MATLAB 应用程序

[5]

,在MATLAB 中进行计算,把结果通过

OPC 接口回传给组态显示,同时通过组态板卡送到底层的执行机构对被控对象进行控制。2.1 组态王的OPC 实现

组态王充分利用了OPC 服务器的强大性能,在作为OPC 服务器的组态王中定义相关的变量并和采集数据的硬件进行连接;然后在充当客户端的其他应用程序中与OPC 服务器建立连接,添加数据项目。在应用程序运行时,客户端将按照指定的采集频率对组态王的数据进行采集。OPC 实现的是系统中进程间的通讯,其采用VC 中的COM 和DCOM 技术实现接口,调用非常方便。OPC 之间的通讯以变量为单位。组态王作为服务器其所有变量都可对外部的客户端进行访问,访问的对象是变量和变量的域。启动组态王将自动启动OPC 服务器功能。服务器标志是K i n g V ie w.V ie w .1(K i n gV ie w .V ie w ),当用户选择此对象就可与之建立连接。作为OPC 服务器,组态运行环境的服务器名为K i n g V ie w.V ie w .1;组对象的创建和管理由组态在后台进行,用户只需指定服务器,就可以通过直接浏览来查看所有可用的数据项。其项目名就是各个变量的名字,即在组态王6.5数据字典中建立内存变量Fro mk0、Fro mk1、Fro mk2、Fr o m k3和Tok0、Tok1、Tok2、Tok3,分别表示供MATLAB 读和写的数据变量。2.2 MATLAB 作为OPC 客户端与组态王的通信

设计

在MATLAB 7.0以上版本中,MATLAB 为OPC 提供了专门的接口程序,创建和配置OPC 对象,读写和记录数据。它是一个客户端软件,提供了一种服务器和客户端互访的通用机制,应用于OPC 客

户端数据访问,通过OPC 工具箱不需了解OPC 服

务器的内部配置和具体操作,就能连接任何一个OPC 数据访问服务器

[3]

,可以方便地对连接的OPC

服务器数据进行读写,每个OPC 数据访问服务器由唯一的I D 号确定。建立连接后的OPC 客户端和OPC 服务器之间的关系如图2所示。借助于MAT LAB OPC Too lbox 可以方便地实现MATLAB 客户端与组态王服务器端之间的数据通信。

图2 OPC 客户端和OPC 服务器之间的关系图

利用MATLAB OPC Too l b ox 实现MATL AB 与MCGS 实时通讯的准备工作是:

1)安装OPC 的核心组件。在MATLAB 环境中使用opcreg ister(#i n stall ∃)来安装能在网络上浏览其他计算机并能与之通讯的核心组件。

2)环境设置。为使OPC Too lbox 中的对象和OPC 服务器对象之间建立连接,还需要在OPC 服务器和OPC 客户端进行分布式COM 的环境设置。

3)在组态王的工程中建立一个M CGS 工程,创建工程的数据输入、输出对象后,在设备窗口中选择相应的设备,建立相应的通道连接。

4)在MATLAB 客户端利用MATLAB OPC Too l box 实现MATLAB 与MCSG 的实时数据通讯。

利用MATLAB OPC toolbox ,建立MATLAB 客户端和组态王OPC 服务器数据交换流程图,如图3所示。

与组态王通信的MATLAB 客户应用程序如下:1)MATLAB 获取组态王OPC 实时数据程序clear ;

Da =opcda (#l o calhost ∃,

#K i n gV ie w .V ie w .

1∃);%创建一个OPC 服务器对象,可以选择本站点也可选择某个网络节点,在服务器端的组态王软件下先进行DCOM 设置;

connect(Da);%建立连接,如果组态王没有事先运行现在会自动启动;

grp=addgroup(Da);%创建组对象;it m 1=addite m (grp ,#v1∃);%创建数据项;it m 2=addite m (grp ,#v2∃);%创建数据项;%it m n=addite m (grp ,#vn ∃);

34长 春 大 学 学 报 第19卷

相关文档
最新文档