《微计算机信息》(测控自动化)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
电话
|
|