基于单片机的modbus协议转换器设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的modbus协议转换器设计 modbus协议介绍 简介 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。Modbus协议是应用于电子控制器的一中通用语言。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中控制。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。 Modbus具有以下几个特点:    (1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。 (2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。    (3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。 传输方式 Modbus定义了两种标准的传输协议,分别是ASCII或RTU。 ASCII模式 当以ASCII模式通信时,在消息中的每个字节都是作为一个ASCII码发送。优点是时间间隔达到一秒而不产生错误。消息中的每个ASCII字符都是一个十六进制字符组成。校验方式为LRC(纵向冗长检测)方式。  代码系统    · 十六进制,ASCII字符0...9,A...F    · 消息中的每个ASCII字符都是一个十六进制字符组成    每个字节的位    · 1个起始位    · 7个数据位,最小的有效位先发送    · 1个奇偶校验位,无校验则无   1个停止位(有校验时),2个Bit(无校验时)    错误检测域    · LRC(纵向冗长检测) RTU模式 当以RTU方式通信是,在消息中的每个字节包含两个十六进制字符。这种方式的优点是比ASCII方式传送数据更快。 代码系统    信息帧结构 地址码 功能码 数据区 错误校验码 8位 8位 N × 8位 16位 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。    功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作。 代码 含义 操作 03 读取数据 读取当前寄存器内一个或多个二进制值 06 重置单一寄存器 把设置的二进制值写入单一寄存器 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。 例如 请求 功能码 1 个字节 0x03 起始地址 2 个字节 0x0000 至 0xFFFF 寄存器数量 2 个字节 1 至 125(0x7D) 响应 功能码 1 个字节 0x03 字节数 1 个字节 2×N* 寄存器值 N*×2个字节 请求 功能码 1 个字节 0x06 寄存器地址 2 个字节 0x0000 至 0xFFFF 寄存器值 2 个字节 0x0000 至 0xFFFF 响应 功能码 1 个字节 0x06 寄存器地址 2 个字节 0x0000 至 0xFFFF 寄存器值 2 个字节 0x0000 至 0xFFFF 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 软件流程

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档