Modbus在某拖动控制系统中的应用
2010-07-03许晖柯常国沈枫
许晖 柯常国 沈枫
(中国船舶重工集团公司712研究所, 武汉 430064)
1 引言
随着自动化系统中设备分布日趋分散,现场总线系统的应用日益普遍。现场总线系统实现了数字和模拟输入/输出模块、智能信号装置和过程调节装置与可编程逻辑控制器(PLC)和 PC之间的数据传输,把I/O通道分散到实际需要的现场设备附近,使安装和布线的费用开销减少到最小,从而使成本费用大大地节省。另外,标准化的现场总线具有“开放”的通信接口,允许用户选用不同制造商生产的分散I/O装置和现场设备[1]。Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,不同厂家的控制器之间可以通信,不同厂商生产的控制设备可以连成工业网络,进行集中监控。在众多的使用场合,普遍存在各种专用控制系统混合使用的情况,这些专用控制系统包括PLC、数据采集器和各种智能仪表,几乎所有控制系统都具有Modbus 通讯接口,使得系统间变得相对简单。
某拖动系统由变频器、异步电动机、上位监控系统组成,该拖动系统采用 HARSVERT-A高压变频器驱动异步电动机,变频器采用西门子S7-200系列PLC。
上位监控系统采用施耐德 M340控制器,M340通过Modbus与变频器S7-200进行数据交换。M340通过Modbus对变频器进行远程遥控启动、停止、频率给定等控制,并实时将变频器的运行状态和相关电气参数读取回来。控制网络如图1所示。
图1 控制网络
2 Modbus简介
通讯协议是对数据传送方式的规定,包括数据格式和数据位的定义等通讯双方必须共同遵守才能正确地传送数据,完成特定的控制功能。Modbus通讯协议是一种适用于工业控制的主从结构式串口通讯协议,可用于实现简单的主从结构式网络监控,协议具有两种传输模式:RTU模式和 ASCII模式,其中 RTU模式信息帧中的 8位数据包括两个4位16进制字符,相对于ASCII模式表达相同的信息只需较少的位数,在相同通讯速率下较ASCII模式具有更大的信息量。所以通常情况下较多采用RTU模式[2,3]。
在一个通讯系统中,只能选用一种通讯方式,两种方式不能并用。在我们的应用系统中一般使用RTU 的通讯方式,后面的叙述都是以RTU通讯方式为基础。
Modbus RTU通讯协议的报文格式如表1所示,它没有起始位,也没有停止位,而是以至少3.5个字符间隔时间标志开始和结束,信息帧包括站地址、功能码、数据和CRC校验构成,所有字符位由16进制组成。如下表1所示。Modbus 通讯协议将通讯的双方规定为“主站”(MASTER)和“从站”(SLAVE)。每台从站都有自己的唯一编号,这个编号被称作从站地址,地址范围为1-254,通讯时先由主站发出通讯申请指令字符串,指令字符串由从站地址开头,从站只接受与自己地址相同的指令字符串,然后根据功能码类型,做出相应的回答,对发送给其他从站的指令字符串则不予理会。
表1 RTU模式下的信息帧格式
3 S7-200的Modbus从站设计
S7-200系列小型 PLC可应用于各种自动化系统。紧凑的结构、低廉的成本以及功能强大的指令集使得S7--200 PLC成为各种小型控制任务理想的解决方案。S7-200产品的多样化以及基于Windows的编程工具,使您能够更加灵活地完成自动化任务。
使用 S7--200的自由端口功能,支持大部分常用 Modbus功能。以下是 S7-200所支持的Modbus功能如表2:
表2 功能码
S7-200 CPU上的通信口Port0、port1均可以实现Modbus通讯,西门子提供port0作为RTU从站的库函数,通过安装Tool Box可以获得RTU从站库进行调用。作为 RTU从站,S7-200需要调用程序库“MBUS_INIT”和“MBUS_SLAVE”[4]。
编程时使用SM0.1调用子程序 MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。关于参数的详细说明如下:
图中参数意义如下:
图2 调用Modbus RTU通信指令库
由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库内存数据区有任何重叠,否则在运行时会产生错误,不能正常通信。另外,Modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。
例子中,设定Modbus 保持寄存器区从 VB0开始(HoldStart=VB0),并且保持寄存器为1000个字(MaxHold=1000),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB0~VB1999共2000个字节。因此分配库指令保留数据区时至少要从VB2000开始。当然保持区不一定要从VB0开始。
包含Modbus RTU从站指令库的项目编译、下载到CPU中后,在编程计算机(PG/PC)上运行一些Modbus 测试软件(比如MODSCAN)可以检验S7-200的Modbus RTU通信是否正常,这对查找故障点很有用。测试软件通过计算机串口(RS-232)和PC/PPI电缆连接CPU。如果必要,须将PC/PPI电缆设置在自由口通信方式。
4 M340的Modbus主站设计
M340是施耐德电气UNITY家族的新成员,性能介于TWIDO和Premium之间,M340充分支持工业和基础设施自动化控制系统的“透明就绪”架构,成为Modicon Premium和Quantum系列产品线的最佳拓展。Modicon M340具有卓越的运算能力,能精确进行整数或浮点数运算,每毫秒可处理7K条指令。CPU 拥有高达4MB程序空间,最多处理70K条指令,自带8MB存储卡,方便程序备份。除了集成USB口、CPU模块,还内置了2个通讯接口( CANOpen、Ethernet或Modbus),能够方便高速地连接外部设备和网路[5]。
本系统CPU采用P34 2010,带有Modbus通讯口和CANOpen。在硬件配置中设置如图3所示。主要设置参数如下:
图3 M340的Modbus设置
硬件设置完成后,通讯连接建立。通过软件编程来实现通讯的数据交换。通过调用READ_VAR和 WRITE_VAR来进行数据交换。M340作为主站,通过调用 READ_VAR和WRITE_VAR支持的功能如下表3。
表3 M340的Modbus主站功能
本系统中,与变频器的数据交换通过功能 3和功能16完成,从变频器读回来的数据从40004到40015,共12个字,包括运行状态和电气参数等,发送到变频器的数据从40000到40003,共4个字,主要包括启动停止控制指令和频率给定等。程序如图4、图5所示。
5 结束语
选用 Modbus现场总线来构造控制系统网络,不仅降低改造成本,减少接线,提高了系统的智能化和自动化程度,系统监控信息更加丰富,而且使整个系统的控制性能得到了很大的提高。经试验验证,提高了系统的可靠性、可用性、抗干扰性和可维护性。
图4 读数据程序
图5 写数据程序
[1]阳宪惠. 现场总线技术及其应用. 北京:清华大学出版社, 1999.
[2]Modicon. Inc. Modicon Modbus Protocol Reference Guide, 1996.
[3]GB/Z 19582-2004基于Modbus协议的工业自动化网络规范. 中华人民共和国国家标准化指导性技术文件, 2004,9.
[4]SIMATIC S7-200可编程序控制器系统手册,西门子公司,2008.
[5]Modicon M340 Unity Pro 串行链路用户手册,施耐德电气,2006.11.