文档库 最新最全的文档下载
当前位置:文档库 › MATLAB与PLC之间的通讯技术

MATLAB与PLC之间的通讯技术

5自动化技术与应用62005年第24卷第12期PLC与DCS

PLC and DCS

MATLAB与PLC之间的通讯技术

张昆,段其昌,张从力

(重庆大学自动化学院,重庆400030)

摘要:MATLAB被广泛应用与科学计算、数学建模与仿真,而始终未能应用于实际的控制系统中。本文采用DDE通讯技术和OPC 技术,详细介绍了MATLAB直接和PLC的数据交换方法,实现MATLAB在实际工业控制系统中的应用。

关键词:MATLAB;DDE;OPC;RSLin x;PLC

中图分类号:TP336文献标识码:B文章编号:1003-7241(2005)12-0054-03

The Com m unicatio n betw een MATLAB and PLC

ZHANG Kun,DUA N Qi-chang,ZHANG Cong-li

(Automation Faculty of Chongqing University,Chongqing400030,China)

Abstract:MATLAB has been widely used in scientific calculation,math modeling and si mulation.This paper introduces the method of communication between MATLAB and PLC by using the DDE communication technology and the OPC technology.

Key words:MATLAB;DDE;OPC;RSLinx;PLC

1引言

在工业控制领域,如何有效地实现控制算法一直是人们普遍关心的问题。MATLAB语言以矩阵和向量为基本单位,提供了强大的科学运算,灵活的程序设计流程,便捷的与其他程序的接口,可以实现复杂的智能控制算法,如模糊控制、神经网络、参数整定、信号处理等,同时,MATLAB语言还配备有各种各样的工具箱,可以解决许多特定的课题和数学建模问题。在工业控制中,PLC以其高可靠性、逻辑运算能力强而著名,然而通过梯形图语言来实现智能算法比较困难,因此,采用MATLAB语言来实现复杂的智能控制算法,PLC进行定时数据采样和输出控制,实现二者的优势互补是自控领域研究的热门话题。

在工控领域中采用MATLAB来实现复杂的控制算法需要解决的关键问题是MATLAB与可编程逻辑控制器之间的通讯问题。MATLAB主要提供了两种通讯接口,一种是DDE(dynamic data exchange)通讯接口,另一种是ActiveX通讯接口[1]。本文以罗克韦尔自动化的PLC为对象,提出了两种MATLAB与PLC传送数据的方法:DDE方式和OPC方式。

收稿日期:2005-08-152MATLAB与P LC的通讯接口

Rockwell自动化公司的RSLinx是一个通讯驱动程序,为所有Rockwell自动化的网络和设备提供通讯支持,RSLinx的Gate-way版本支持DDE接口和符合OPC规范[2],MATLAB可以通过RSLinx来访问控制器内的数据。这就使得MATLAB可以与PLC 方便地使用上面两种通讯接口进行数据交换,其数据交换的总体框图如图1所示。

图1MATLAB和PLC数据交换的总体框图

3MATLAB与P LC的DDE通讯

动态数据交换(DDE)是一种嵌入在Windows系统中的通讯规范,这种规范允许支持DDE的Windows程序在彼此之间进行数据交换。所有的通讯都发生在Windows环境之内,对用户来说,这种通讯是透明的,使用的方法也极为简单。

以RSLin x作为服务器、MATLAB作为客户端建立DDE链

54|Tech n iq ue s o f Au to mat io n

PLC 与DCS

PLC and DCS

5自动化技术与应用62005年第24卷第12期

接的具体通信过程如图2

所示。

图2 MATLAB 与RSLinx 的DDE 链接

MATLAB 作为客户端程序,而RSLinx 作为服务器应用程序,由MATLAB 向RSLinx 请求和发送数据。RSLinx 作为服务器时,其服务器名为RSLin x ,主题名为Micro,在RSLinx 的帮助文件中详细介绍了主题名的设置方法,item 选择要传送数据的PLC 中的tag ,即有效的PLC 数据表地址,这样就可以实现MATLAB 与PLC 之间动态数据的交换,具体步骤如下:

1在RSLinx 中创建topic,topic 代表某台PLC 。o编制m 文件,部分程序如下:

channel=DDEINIT (.RSLinx .,.Micro .);%初始化DDE 会话通道,返回通道句柄;会话service 是-.,topic 是-Micro .。

data=ddereq(channel,.B1.)%从PLC 中请求数据赋给变量data,-B1.是PLC 中的标记。

rc1=ddepoke (channel,.temp .,1);%往PLC 中的标记-temp .写入数据1,rc1=1表示写入成功,rc1=0表示写入失败。

rc2=ddeterm(channel);%终止会话通道,rc2=1表示终止会话成功,rc2=0表示失败。

4 MATLAB 与PLC 的OPC 通讯

OPC(用于过程控制的OLE)是一个工业标准,管理这个标准的国际组织是OPC 基金会。OPC 基于微软的OLE (现在的ActiveX)、COM(部件对象模型)和DC OM (分布式部件对象模型)技术,包括一整套接口、属性和方法的标准集,用于过程控制和制造自动化系统。ActiveX P COM 技术定义了各种不通的软件部件如何交互使用和分享数据。不论过程中采用什么软件和设备,OPC 为多种多样的过程控制设备之间进行通讯提供了公用的接口。

Rockwell Software 的RSLinx 内置了OPC 工具箱,充当服务器时不需要进行专门的设置。RSLinx 2.0或者更高的版本支持OPC 规范。MATLAB 7.0或者更高版本中集成了OPC Toolbox ,参照MATLAB 中的OPC T oolbox 对象模型

[3]

,以RS L i nx 为OPC 服务

器,MATLAB 为客户端建立OPC 通讯的流程图如图3

所示。

图3 MATLAB 的OPC 通讯流程图

下面详细分析MATLAB 和PLC 之间实现OPC 通讯的具体步骤:

1在RSLinx 中创建topic,topic 代表某台PLC 。

o在MATLAB 中使用命令-opcregister .安装OPC 基金会核心组件。

?在MATLAB 中使用函数-opcserverinfo .获取计算机上可用的主机名和server ID 。这里HOST =-localhost .,server ID =-RSLinx Remote OPC Server .。

?编制m 文件,部分程序如下:

da =opcda(.localhost .,.RSLinx Remote OPC Server .);%建立OPC 数据访问对象模型。

connect(da);%连接到服务器。

grp =addgroup(da);%在OPC 数据访问模型中建立组对象模型。

itm1=additem(grp,.[Micro]temp .);%增加item,.[Micro]temp .是对应PLC 中的tag,其中.Micro .是topic,.temp .是PLC 中数据表地址。

r =read(itm1);%读itm1数据结构,并把值赋给data 。data=r.Value

itm2=additem(grp,.[logix]temp2.);%增加i tem,.temp2.是PLC 中的另一个tag 。

write(itm2,1);%往.temp2.中写入数据1。di sconnect(da);%断开OPC 连接。delete(da);%删除OPC 数据访问对象。

(下转第58页)

55

es of Aut oma tio n &Ap plicat io ns |

5自动化技术与应用62005年第24卷第12期

PLC 与DCS

PLC and DCS

3 P LC 控制系统网络构成

磨矿系统每个系列各设1个主站点,5个系列共设5个主站。系统网络图如图2所示

:

图2 系统网络图

以一个系列为例,PLC 控制系统由SIMAT IC S7-300为主站,E T200M 远程I P O 为从站,并配以PROFIB US 网线组成。PLC S7-300主站的C PU 上DP 口可直接与远程I P O 从站E T 200M 上的通讯模块IM 153通过PROFIB US 网线相连,传输协议为PROFI -BUS 协议。这样ET200M 远程I P O 从站可在现场就近安装,大大减少了电缆的敷设,并减少维护工作。PLC 通过PROFIB US 总线同分散的设备交换数据,其过程是周期性的。DP 网络最多可连接127个站点,数据传输最大速率为12Mbps P S,满足了系统实时性的要求。

5个主站点之间通过CP342-5通讯处理模块以PROFIBUS 总线进行信息交互,通讯介质为西门子专用PROFIB US 屏蔽紫色线。两台主站之间通过FDL(FIELD Data Link)进行通讯。FDL 一般用于两台无主从关系(Master P Slave)的主站之间相互通讯的场合。例如,粒度仪检测的矿浆浓度和粒度值,是磨矿过程的重要生产指标,球磨机的给矿量必须以粒度的变化为基础。为了

满足实时控制的要求,粒度仪控制系统中央处理器的CPU314必须将粒度值不间断地传给各系列的PLC 控制器CPU315)2DP 。PLC 程序设计中,应用STEP 7软件中/AG

SEND 0和/AG

RE -

C V 0模块可实现两台主站之间数据的发送和接收。在通讯时,应注意收发双方通讯速度的匹配。

上位机PC 通过CP 5611通讯卡与PLC 通讯,采用密码通信与校验,避免信号干扰。

控制过程和网络通讯中,PLC 程序周而复始循环执行,通过PROFIB US 网络通讯程序将PLC 程序中指定的变量或参数,经DP 网络传送至多个站点,实现对现场设备的自动控制。该方式中,数据的传送与接收简化为对PLC 变量V 区内的I P O 数据映射区的读写操作,编程简洁。

此外,通过交换机Switch 还可与车间主任、车间调度联网,从而使管理层及时了解底层的生产和设备运行情况,实现企业生产的管控一体化。上位机采用美国Intellution 公司Fix 工控组态软件i Fix,运行环境为Windows2000。网络软件采用FixWeb,服

务器以Windows2000Server 为操作系统,运行iFix 和FixWeb,实现网上信息发布。

4 结语

目前,该控制系统已在上海宝钢集团梅山选矿厂磨矿车间中得到成功应用,生产经济效益得到显著提高,具有一定的推广价值。

5 参考文献:

[1] 李启衡.碎矿与磨矿[M ].北京:冶金工业出版社,1983[2] 邵裕森.过程控制系统及仪表[M ].北京:机械工业出版社,1993

[3] 西门子公司.S7-300P 400PLC 编程手册[Z].北京:西门子(中

国)有限公司自动化部,1998

[4] 王洪猛,等.基于PLC 的过程控制系统设计与实现[J].自动化技术与应用,2004,23(7):25-27

作者简介:何晓峰(1977-),男,江苏泰兴人,东南大学自动控制系硕士研究生,主要从事过程控制,智能控制等领域的研究。

(上接第55页)

5 结论

上述代码基于MATLAB 7.0在Rock well 自动化的Contro-l Logix 平台上调试通过。MATLAB 使用DDE 通讯和OPC 技术,实现了与PLC 直接通讯的两种通讯方式,从而可以在MATLAB 中实现复杂的智能控制算法,并大大简化了控制系统中采用梯形图语言实现复杂控制算法的编制及运算过程。

6 参考文献:

[1] 刘志俭,等.Matlab 应用程序接口用户指南[M ].北京:科学出版社,2000

[2] Rockwell Automation 公司。RSLi nx for Rockwell Automation Net -works and Devices[Z].1999

[3] MA TLAB OPC Toolbox 帮助文件[Z]

作者简介:张昆(1981-),男,贵州遵义人,硕士研究生,主要研究方向是基于网络的电梯群控。

58|Tech n iq ue s o f Au to mat io n

相关文档
相关文档 最新文档