配色: 字号:
AB PLC与MODBUS网络的通信
2012-06-10 | 阅:  转:  |  分享 
  
《微计算机信息》(测控自动化)2004年第20卷第6期

ABPLC与MODBUS网络的通信

ThecommunicationbetweenABPLCandM0DBUSnetwork

摘要:介绍了应用3l0o/3l50一MCM模块实现ABP1C与

M0DBUS网络通讯的方法.该方法使用M0DBUS协议.通过

开发ABPLC的应用程序.从而实现主从结构网络通信

关键词:3lo0/3150一MCM模块;ABPLC;MODBUS;主从通



中图分类号:TP393.12文献标识码:A

文章编号:1008—0570(2004)06—0012—03

Abstract:Thispaperintroducestheapplicationof3100/3150一

MCMinthecommunicationbetweenABPLCandMODBUS

network.ByusingMODBUSprotocoland【kvelopingprogramof

PLC,amaster-slavestructurenetworkcanbesetup.

Keywords:3lO0,3l50一MCM;ABPLC;MoDBUS;master—

slavecolnlnunication

1引言

目前的工业控制现场大量使用了PLC和各种智能仪表用

于生产过程控制。随着控制规模的扩大和控制功能的复杂化,常

需要多台PLC及一定数量的外设仪表组成…个控制系统,

MODBUS是美国MODICON公司制订的一种串行输协

议.可实现主从命令响应型通信。作为‘种工业通信和分布式控

制系统协议.已经得到多家公司的PLC和智能仪表支持、

A—B公司(Allen—Bradley)是美国生产可编程控制器的主要

厂家之….具有先进的通信和数据处理功能。在水处理行业中,

使用大量的可编程控制器用于生产过程控制.其中A—B公司的

PLC占了相当的比重。

由于不同硬件厂商支持不同的丁业通信和分布式控制系统

协议.要实现ABPLC与MODBUS仪表组成控制网络,实现设备

的连网,就存在着互相通信协议转换问题

3100/3150一MCM模块是PROSOFFTECHNOLOGY公司推

出的在ABPLC通用框架上安装的MODBUS通信接口模块该

模块可以实现ABPLC与MODBUS现场设备之间的通信,从而

使ABPLC通信能力得到增强.灵活实现ABPLC与MODBUS

网络的互连.完成复杂的控制要求。

本文基于自来水厂泵站集散控制系统的设计‘,着重介绍AB

公司的SLC系列的PLC通过3150一MCM模块和MODBUS网络

连接的实现方法。

2系统联网方案

自来水厂泵站集散控制系统,不仅实现…般的逻辑控制,还

具备了包括模拟量在内的数值处理和网络通信等功能。在现场

的实际应用中,系统使用的电机保护装置Sepam2000采用了

MODBUS通信协议.出于系统控制功能的需要,要求在ABPLC

中实现对MODBUS协议的支持。我们利用3150一MCM模块建立

起MODBUS设备网。

(西村水厂)曾永基

Ceng,Yongji

系统的络结构遵循MODBUS协议的规范.采用标准简单

的__1.从总线构,以PIC作为主机发起通信.多台电机保护装

置Sepam2000作为从机.各从机在进行传输之前必需要等待来

自土机的允许信号。主机可以发送和接收来自通信链上从机的

信息.而从机则始终处于被动状态.随时准备响应来自主机的通

信请求设备层部分网络结构如图1。

图1设备层拓扑结构示意图

3Sepam2000及MODBUS协议的介绍

Sepam2000作为电机保护装置.提供了所有保护、测量、控

制、通信等功能Sepam2000与远程监控系统之间的通信是采用

MODBUS协议的通信方式。

MODBUS的通信采用的是一种主/从式数据传输,在主从结构

的通信方式中.有一台主机.多台从机,主机可与各个从机作双向

通信.而各从机之间不能通信。主机与各个从机通信的报文形式为

请求/响应帧方式。每次通信均由主机发起,不需握手。主机发出请

求帧后,等待从机返回响应帧直至响应时间超时。从机只能通过提

供数据响应主饥的请求,或根据请求做出相应的动作。

MODBUS协议定义了主机请求的格式.包括:请求的编址,

要求动作的功能编码,传输数据和错误校验等。请求中的编址

(即地址码)提供接收主机报文的从机地址,从机根据地址判别

是台接受该请求。用户必须设置每台从机的地址。功能编码告诉

指定编址的从机完成什么样的动作。数据字段中包含了从机执

行仟务时所需的附加信息。例如,功能编码03表示读取从机的

保持寄存器返回其中的内容,数据区中的信息就必须告诉从

机从哪个寄存器开始读,需要读的寄存器数。错误校验字段为从

机提供了信息完整性校验的方法。同样,响应的格式也是采用

MODBUS协议结构.从机响应的功能编码与接受的请求的功能

编码相对应,数据字段包含根据请求返回的数据,错误校验字段

允许主机确认信息内容是否有效。

MODBUS协议共有24种功能编码,但是并不都适用于Sep—

am2000,实际』监用中Sepam2000只是支持下面有限的几种:

01读取牟f-;j出状态

02读取输入状态

03读取内部寄存器内容

04读取输入寄存器内容

中国自控网:hRp:l!vvwvv.autocontro1.com.ca

—l2—120元,年邮局订阅号:82.946

电话

控制系统

05强制.个输出状态

06刷新个寄彳『器内弈

07读取异常事ft状态

08诊断测试

11读取计数器和状念字

15强制多个输出状念

16刷新多个寄存器内容

如果l机希望读取2号Sepam2000从帆{奇仃器0805h一

080Ah的内容.则需要调用功能03}机if求利从机J、的lIl『{!

格式如下:

请求帧

地址功能号数据起始寄存器编址寄存器数1]错误投验,毁

03OCO5I1I](l6

响帧

字节数据寄存器数据寄仔器校地址功能号

计数(0805)(0S0a)验,段

O3OCDatalI]ata6fRfl()

如果主机希望刷新2号Sepam2000从机-}奇081Oh

的内容并把寄存器内容设置为l000.衍要调用功能06,{fJL

请求千¨从机响应的帧格式如下

请求帧:

地址功能号寄存器编址没胃ffl错误校验段

060COEl0O0CRC16

响应帧:(返回收到的请求帧)

地址功能号寄存器编址设置『fl错误校验字段

06OCOEl000CRC16

Sepam2000的帧格式以及所执行的功能部仃明确的定义,

能随意更改。在通信过程中,要确f机和从fJl的埘天系

i}确。此外,用户可以根据实际需要配置合适的传输波特卒、7

待奇偶校验、停止位的个数等通信参数设

4ABPLC中MODBUS协议的实现

1.MCM模块的通信控制

PROSOFTTECHNOLOGY公司的3100/_3150一MCM迎f寿妖

块.相当于网络接口,PLC通过MCM模块-.jMOI)BUS总线连

MCM模块能快速、可靠地在ABPLC中实现MODBUS协议

3100/3l50一MCM通信模块可供用,选择使用主帆幔式

者从机模式当MCM模块设定为机,它对连接到总线¨内从

机进行控制.支持MODBUS协议中(O1、02、03、04、05、06、15、l6)

8种功能编码.可以发送多达一百条定制的请求指令.行支”以

“广播”方式发出请求。当MCM模块指定为从机,它响士机的

请求.此时能够支持MODBUS协议中(01、02、03、04、05、06、08、

15、16)9种功能编码。同时.无论是土机模式或青是从机模式.

3100/3150一MCM通信模块都支持ASCII和RTU两种输模式

当ABPLC配置了3100/3150一MCM通信模块作为主机模

式时.PLC采用周期扫描方式.按请求指令的序与从机交换数

据。每次扫描期间.处理器使用逻辑写指令将主机内存中要输出

到各从机的数据传送到3100/3150一MCM通信模块中的发送缓

冲区.模块根据存储的功能指令.发送纠指定的从机;各从机

响应后返回的数据.3100/3150一MCM通信模块将其先存放侄接

收缓冲区.然后PLC使用逻辑读指令把数据移入卡}{的输入数

据存储区周而复始.使主机与从机中的数据得剑周期t的删

’1川~PI(指令MCM缓冲MCMMODBUS

f2MCM模块数据流程示意图

!.MCM摸:MODBUS的硬件连接

MCM模块他用的是与RS232C兼容的标准通讯接口.但在

J·}-由要实现多点通信,所以采用RS485方式。图3

足3150一MCM块9芷=串行口与MODBUS的连接图

31卜MCM

冬】33150-MCM端口~MQDBUS连接示意图

3,MCM模块的缓冲区管理

PIC_LJMCM模块之间是通过模块输入输出映像文件进行

数据传送PIC。j数据时.将数据写入输出映像文件.然后3100/

3150一MCM通信模块把数据映射到相应的缓冲区位置上:PLC

读数时,根据射地址.从输入映像文件中读取模块缓冲区中

对f、地址的数扔映像文件的数据传送单化为‘个50字节的数

槲块.PLC必须循环地‘次传送一个数据块、

MCM把缓冲按数据传送的单位大,j、.分为若干个块。并

J‘弓.J1]块对起来.并且划分为=t个区。分别用于数据、

指令、参数设置数据存储区从0块号开始,结束于79块号,中间

仃4000个宁节的-.用于存储接收的数据和发送的数据,是主

机、从机交换数据的场所:指令存储区从第8O块至第99块,共

l000个宁,用存储土机模式下,模块的功能指令表,每次扫描,

顺宁按功能指令列表向从机发出请求帧;第255块号前4O个字节

fJllJ1j定义为模块设置参数存储区,用于初始化模块。

在通信过中.首先要对主机进行初始化.即对第255块号

对的缓泔内容进行参数配置.主要是定义通信端口的设置,

模块缓冲的许细划分设置的宵以下参数:

(1>定义MCM通信模块两个独立的通讯接口设置。包括:

选扦l:机模式或者从机模式、定义字符奇偶校验、停止位的个

数.传输的波特车,响应延时等参数。

<2)定义械块的缓冲【X中存储接收数据的数据存储区。包

括:接收数据存储区的起始块号,存储区的连续块数。

(3)定义块的缓冲区中存储发送数据的数据存储区。包

括:发送数据存储区的起始块号,存储区的连续块数。

<4)定义模块的缓冲区中指令存储区。由于指令存储区固定

从8O号数据块FF始,所以只需指定存储区的块数:

4.MCM模块的功能指令设胃

MCM模块处于主机模式下时.功能指令列表存放在模块缓

冲中的指令储区主机向从机发出请求时,模块从指令存储

区逐条读出功能指令.并按照MODBUS请求帧格式发送数据。

指令存储:中每条功能指令的具体内容如下:

/n\中国自控网·http://www,autocontro1.cn

国自控闻邮局订阅号

:82-;i;120元/年一13~

+一一

《微计算机信息》(测控自动化)2004年第20卷第6期

l模块通信端口选择

从机的站地址。从机在接收数据时将本站编址的值与收到的站

地址比较,以此判定信息是否是发给本站的。而主机住接收时

则将收到的站地址与发送的站地址比较,以判断是否是ni确的

从机响应

3指令的功能编码

4源地址。即主机要发送或接收的数捌在缓冲区巾的起始数据地



0数据长度。即主机要发送或接收的数据的字节数

6目的地址。即从机要接收或响应的数据的寄存器地址

数据的类型。用于标不读、写的数据是叔字节的浮点数还是单

字节的整数

8轮询时间

如果主机希望在1号通讯接口读取2U-Sepam2000从机中

寄存器0805h一080Ah的内容并存放到模块缓冲第5O个字节

丌始的连续6个字节中.功能指令内容如

端口号l从机地址II力能编码I源地址I数据长度1目的地址1类型时间

lzlsl50I。lsl。O

5.ABPLC通讯程序的开发

程序执行时.在第一个扫描周期,都必须设胃MCM的状

态,即初始化MCM模块。

通信程序中.PLC在输入、输出映像文件中为MCM缓冲

设置当前以及后续读写指针.分别指向当前MCM缓冲数据

块号.后续缓冲区数据块号。若MCM处数据送允许状态,

即I1:1/0:1,00:1/0:0时.PLC判别当前读写指针,调用卡}If

读写逻辑指令。如果指针指向接收数据的数据存储,【J!IJPLC

从MCM模块中接收数据;如果指针指向发送数据的数据存储

区.则PLC向MCM模块发送数据:如果指针指向指令存储,

则PLC向MCM模块传送功能指令每次执行个数块的传

送.并在传送后.把后续读写指针‘覆盖当前读写指针,从而存:卜

个扫描周期进行下一个数据块的传送PLC自动周期性{1]描,按

照编定的功能指令向从机的输入/输出数据进行发送/接收.以

满足数据传输的要求。

根据PLC的逻辑指令及MCM的通信原理.画出了4所

示的主机通信程序结构框图。

图4PLC程序框图

5结束语

经过现场调试,实现了1台ABPLC与13台SEPAM2000

组成的MODBUS网络连接。实际应用证明.这种方式组成的系

统结构简,f世用方便,能满足复杂的控制需要。

参考文献

[113100/3150MCMUSERManual,ProSoflTechnology,1997.

[2]ABPLCProgrammingReferenceManua1.AB。1997.

[3]Sepam2000(;ommunicationprotocol,Schneider,1999.

作者简介:曾永基:(1975.3~),男,广东省台山市人。1998年毕

f华南理].久学自动控制专业。现在广州市自来水公司工作.

土要从事水处理行业自动控制系统的设计开发工作。E—mail:

ira2000@21CBcon1.电话:13189028145

(510160广东省广州市环市西路水厂路3号西村水厂)曾永基

f收稿日期:2003.12.11)

(接第94页)更高的要求。在这种形式_卜,要提高开发的效率,必

须采用IP复用技术来进行大规模FPGA的开发设计。

IP即知识产权(IntellectualProperty),是预先设计好的电路

功能模块。IP核可以分为软核.硬核和固核。软核是用RTL级或

门级HDL描述的功能模块,软核不涉及具体的硬件实现。硬核

是结合特定的工艺参数经过电路布局布线后的设计。而固核则

是介丁硬核车lI软核之间的IP,是完成了综合的功能块.它允许

用户重新设定关键性能参数。大多数的FPGA厂商都有自己的

IP晖,这些库往往是谁它们的开发工具一起提供的。随着IP产

业的发展.一大批IP的专业开发公司不断开发出新的高性能的

IP模块,因此,IP资源应该是相当丰富的。当我们采用自顶向下

的方式进行人规模FPGA开发的时候,为了提高开发的效率.应

该优先考虑将各个功能模块用现成的IP模块来实现.因为这些

IP模块的功能是经过验证的.从而可以人大的节省开发时间.

同时提高系统的性能。如果采用传统的设计方法.是很难在较短

的时间内设出高性能的大规模FPGA应用系统的。

参考文献:

【1】F国,周端.高性能低功耗微控制器IP软核设计综述.计算机应用

与研究第二期2003

f21夏宁闻.复杂数字电路与系统的VerilogHDL设计技术.北京:北京航

空航天夫学出版社.1998.

作者简介:袁奉荣(1980.3.12一),男,-7义族,湖北石首人,北京理工

人学计算机科学与工程系计算机软件应用专业硕士研究生,主

要研究方向:模式识别、图像处理;E—maihybr312.student@sina.

(.om:于机:13810364226;>~J万春(1949一),男,河北栾县人,教授,

{l要研究方¨:图像分析与理解、数据挖掘。贾云得(1962一),男,

l“西人同人.敦授.博士生导师,主要研究方向:人工智能、计算

机觉、人机交互技术;朱玉文(1950一),女,四川邛崃人,副教

授.上要研究方向:图像分析与理解;

Authorbriefintroduction:Yuan,Benrong,Mar.12,l980,theHan

natinnality.nitiveplaceofShishoucity,Hubeiprovince,Dept.of

C()mputerScienceandEngineer.schoolofBeijingInstituteof

Technology.majorofComputerApplication,MasterDegree,re—

searchfieldofPatternRecognitionandimageprocess.

r100081北京理工大学计算机科学工程系2001级硕士1

班)袁本荣刘万舂贾云得朱玉文

(DepartmentofComputerScienceandEngineering,Beijing

InstituteofTechnology,Beijing100081,China)Yuan,Ben-

rongLiu,VCanchunJia,YundeZhu,Yuwen

f收稿日期:2003.12.2)

中国自控网:http://www.autocontro1.com.ca

一14—120元,年邮局订阅号:82-946

电话

献花(0)
+1
(本文系科技以人为...首藏)