利用Modbus协议实现无线通信.doc_第1页
利用Modbus协议实现无线通信.doc_第2页
利用Modbus协议实现无线通信.doc_第3页
利用Modbus协议实现无线通信.doc_第4页
利用Modbus协议实现无线通信.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用Modbus协议实现无线通信Modbus Protocol Apply on Remote radio Communication许文辉 周宇航Xu,Wenhui Zhou,YuHang摘要:本文介绍了Modbus的控制网络及协议特点,着重分析Modbus ACSII模式的消息帧组成、校验码的计算及主要的功能。并对利用Modbus协议实现远程无线通信的有关要点作了说明。关键词:Modbus网络;Modbus协议;LRC校验码;无线数传modem;半双工;中图分类号:TP311 文献标识码:BAbstract: This paper introduces the features of Modbus control network and protocol. Emphasize analyses messages frame,error checkout method and the main function of Modbus ASCII. Give some advice of used Modbus Protocol to build the remote radio communication.Keywords: Modbus control network, Modbus Protocol, LRC error checking, radio transmission modem, half duplex1 引言利用数传无线电台进行远程通信可以通过多种编程方法来实现。但是如果在通信可靠性、兼容性和组网的灵活性方面有要求,那么就不是一般通信程序能实现的。最好是能利用一个现成的、应用最广泛的、可靠性较高的、通信效率较好的、实现较容易的、经过充分实践证明的通用通信协议来完成。Modbus协议正是完全符合上述要求的诸多通信协议中的一种。Modbus协议是由美国可编程控制器制造商莫迪康(Modicon Inc.)公司出品的一种应用于工业通信和分布式控制系统的协议。现已被众多的硬件厂商所支持,已经成为一通用工业标准。通过此协议,控制器之间、控制器经由网络(例如以太网)和其它设备之间可以通信。由于Modbus协议完全公开、实现简单、硬件要求低、可靠性好等特点,已成为构建低速网络(数据采集、仪表等)通信的最佳选择。2 Modbus协议2.1 协议简介Modbus协议通信使用主从技术,即仅有一台设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应回应。图1是Modbus协议的询问应答环路。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。设备地址功能代码数据校验码主设备查询消息设备地址功能代码数据从设备回应消息图1 主从查询回应周期表校验码主设备发送的一个含有指定编址的请求报文到通讯线路上;从设备则从通讯线路上检测报文是否含有自身编址。如果报文编址与自身编址相同则接收此报文进行处理。从机报文处理的过程是,如果报文正确,则按报文要求执行任务,然后再将正确的回应报文返回给发送者;否则只返回一个错误信息报文给发送者。Modbus协议上允许1台主机和至多247台从机。只有主机才能启动事务处理程序。事务处理可以是应答式(只对一台从机寻址),亦可是广播式(无应答,对所有从机寻址)。事务处理程序由询问和应答帧组成,或由一个广播帧组成。Modbus协议提供两种传输模式供用户选择。一种模式是ASCII(美国标准信息交换代码),另一种模式是RTU(远程终端设备)。这两种模式从实现通信的功能上看是完全一样的。ASCII模式主要优点是字符发送的时间间隔可达到1秒而不产生错误,较为适用于长距离、低速率的通信应用(如无线电台通信等)。RTU模式则较为适用于短距离、高速率的通信应用。在控制系统中应用较多。由于本文主要是利用Modbus协议的ASCII模式来实现无线通信。因此着重介绍Modbus协议的ASCII模式。2.2 ASCII模式格式使用ASCII模式,消息以冒号(:)字符(ASCII码 3AH)开始,以回车换行符结束(ASCII码 0DH,0AH)。其它域可以使用的传输字符是十六进制的0.9,A.F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。一个典型消息帧如下所示:起始位设备地址功能代码数据LRC校验结束符1个字符2个字符2个字符n个字符2个字符2个字符图2 ASCII消息帧起始位字段表示一帧报文的开始。地址码字段表示接收主机报文的从机地址。用户必须设置每台从机的地址。功能码字段通知从站应执行何种功能。数据字段含有从机执行某项具体功能的信息,或含有从机应答询问的信息,这些信息可以是数值、地址参数或范围。校验码字段是用来检查通讯报文有无错误。2.3 LRC校验ASCII模式采用LRC方法进行错误校验。具体为:A、 LRC域检测了消息域中除开始的冒号及结束的回车换行号外的内容。B、 LRC域是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。C、 LRC方法是将消息中的8Bit的字节连续累加,丢弃了进位。LRC简单函数如下:static unsigned char LRC(auchMsg,usDataLen)unsigned char *auchMsg ; /* 要进行计算的消息 */unsigned short usDataLen ; /* LRC 要处理的字节的数量*/ unsigned char uchLRC = 0 ; /* LRC 字节初始化 */while (usDataLen-) /* 传送消息 */uchLRC += *auchMsg+ ; /* 累加*/return (unsigned char)(-(char_uchLRC) ;3 功能描述3.1功能概述Modbus协议总共有24种功能。其中主要的有8种,分别如图3所示:功能代码相应功能说明01(01H)读输出位(O)状态02(02H)读输入位(I)状态03(03H)读保持型寄存器组(16Bit/寄存器)04(04H)读输入寄存器组(16Bit/寄存器)05(05H)写单个输出位(O)06(06H)写单个寄存器(16Bit/寄存器)15(0FH)写多个输出位(O)16(10H)写多个寄存器(16Bit/寄存器)图3 Modbus协议主要功能Modbus协议原意是为了实现可编程控制器的高效联网通信。在此8种功能中其通信功能有所重复。有考虑到实现的简易性,在无线通信应用中,其实只需功能04及功能16即可。3.2 读输入寄存器组(功能码04)例如:读8号从机的寄存器组。起始地址是30123,寄存器个数是2个的报文格式如图4所示:读输入寄存器组询问报文:地址功能起始寄存器高位起始寄存器低位寄存器数量高位寄存器数量低位校验码0804007A000287读输入寄存器组应答报文:地址功能字节计数寄存器高位(30123)寄存器低位(30123)寄存器高位(30124)寄存器低位(30124)校验码0804041234567823图4 读输入寄存器组报文格式3.3 写多个寄存器(功能码16)本功能可以修改控制器内多个寄存器的内容,不用的高位必须置0。本功能码支持广播模式(即从机地址为0)。例如:将08从机的40210、40211寄存器置成0835h和0312h的报文如图5所示。写多个寄存器询问报文:地址功能起始高位起始低位寄存器数高位寄存器数低位字节计数数据高位数据低位数据高位数据低位校验码081000D10002040835031240写多个寄存器应答报文:地址功能起始高位起始低位寄存器数高位寄存器数低位校验码081000D10002EA图5写多个寄存器报文格式4 Modbus协议在无线通信中的实现4.1 Modbus口与无线数传modem口的连接Modbus口及无线数传modem口均采用标准9芯串行口方式,使用其中部分引脚。如图6所示4.2 通信方式的全双工转半双工Modbus本身属于半双工的通信协议,而无线数传modem一般只能工作于半双工方式。无线数传modem工作时,当RTS控制线为低电平,modem处于发送状态,将TXD的信号以载波的方式发送出去;当RTS控制线为高电平时,则modem处于接收状态,将接到的载波信号经检波后送回Modbus口。如果所有的主从设备均采用半双工方式通信时则用Modbus协议实现无线通信较为容易。然而如果在整个通信网络中有部分从机采用全双工方式工作时,则必须将此部分从机的通信机制改为半双工。例如一个远程主机与一个以Modicon TSX SCP 111通信卡为从机的PLC进行 Modbus无线通信时,就必须在Modicon TSX SCP 111侧增加一块全双工转半双工卡。原因,Modicon TSX 111无论RXD是否存在有用信号均在每个通信周期均使CTS出现一次低电平(使电台发射),扰乱了正常的通信。Modbus口DCDRXDTXDDTRGNDDSRRTSCTSRI123456789123456789NCRXDTXDNCGNDNCRTSCTSNC无线数传modem口图6 Modbus口与无线数传modem口的连接5 结论湛江市自来水公司寸金加压站无人值守控制系统就是利用上述方法成功地实现了远程无线遥控加压站的机泵操作。实践证明:运用Modbus协议来实现无线通信,使得通信可靠,系统结构简单,扩展性好,能满足多数工程的实际需要。参考文献:1 MODICON, Inc., In

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论