利用modbus协议实现无线通信.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Modbus协议实现无线通信 导语:?Modbus的控制网络及协议特点,着重分析Modbus ACSII模式的消息帧组成、校验码的计算及主要的功能。并对利用Modbus协议实现远程无线通信的有关要点作了说明 摘 要:本文介绍了Modbus的控制网络及协议特点,着重分析Modbus ACSII模式的消息帧组成、校验码的计算及主要的功能。并对利用Modbus协议实现远程无线通信的有关要点作了说明。 关键词:Modbus网络;Modbus协议;LRC校验码;无线数传modem;半双工 1 引言 利用数传无线电台进行远程通信可以通过多种编程方法来实现。但是如果在通信可靠性、兼容性和组网的灵活性方面有要求,那么就不是一般通信程序能实现的。最好是能利用一个现成的、应用最广泛的、可靠性较高的、通信效率较好的、实现较容易的、经过充分实践证明的通用通信协议来完成。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。网络上的设备不断侦测:字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。 一个典型消息帧如下所示: 图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 (us

文档评论(0)

汪汪队 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档