文档详情

Modbus-RTU简介.ppt

发布:2018-02-21约2.49千字共16页下载文档
文本预览下载声明
* Modbus RTU简介 主要内容 1、Modbus由来、国标 2、Modbus串行链路应用协议 Modbus是Modicon(现为施耐德电气公司的一个品牌)在1979年开发的一项在ISO模型第7层的应用层报文传输协议,在过去几十年已被大量地应用于工业控制领域的开放的、标准的、免费的网络通信协议。它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信:在串行链路上取决于TIA/EIA标准(232-F和485-A),在TCP/IP上取决于IETF标准(RFC793和RFC791)。 Modbus国家标准:GB/T 19582-2008《基于Modbus协议的工业自动化网络规范》。 Modbus由来、国标 三种传输模式 Modbus RTU Modbus ASCII Modbus TCP/IP Modbus在串行链路上的帧结构 Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或者网络上的Modbus协议能够在应用数据单元(ADU)上引入一些附加字段,如下图所示: 地址域 功能码 数据 差错校验 ADU PDU Modbus协议描述 地址域: 单个设备的地址范围是1~247;网络上的每个从设备必须具有唯一的地址;主设备通过将要联络的从设备的地址放入消息中的地址域来选通设备;当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 地址0是用作广播地址,以使所有的从设备都能认识,不需要响应。当Modbus协议用于更高水准的网络时,广播可能不允许或者以其它方式代替。 Modbus协议描述 功能码: 作为主机的请求发送时,通过功能码告诉从机执行什么动作;作为从机的响应发送时,从机响应的功能码与主机请求的功能码一样,表明从机已经正确地响应主机的操作;如果从机发送的功能码的最高位为1(功能码127),表明从机响应异常。 数据: 随功能码的不同,数据区也发生变化。 差错校验: CRC-16(循环冗余错误校验),用于RTU模式; LRC(纵向冗余错误校验),用于ASCII模式。 Modbus数据编码规则 Modbus使用最高有效字节在低地址存储的方式表示地址和数据项。这就意味着当发送多个字节时,首先发送最高有效字节。例如: 16 bits 0x1234 将为 0x12 0x34 32 bits 0 将为 0x12 0x34 0x56 0x78 Modbus常用功能代码 公共功能代码 功能码 十进制码 十六进制码 比特访问 物理离散量输入 读离散量输入 02 02 内部比特或物理线圈 读线圈 01 01 写单个线圈 05 05 写多个线圈 15 0F 16比特访问 物理输入寄存器 读输入寄存器 04 04 内部寄存器或输出寄存器 读保持寄存器 03 03 写单个寄存器 06 06 写多个寄存器 16 10 读/写多个寄存器 23 17 屏蔽写寄存器 22 16 读FIFO队列 24 18 文件记录访问 读文件记录 20 14 写文件记录 21 15 ... ... ... ... ... 注:标记为蓝色的部分为智能仪表常用的功能代码。 Modbus 03读保持寄存器应用方法 请求 功能码 1个字节 0x03 起始地址 2个字节 0x0000 to 0xFFFF 寄存器数量 2个字节 1 to 125(0x007D) 响应 功能码 1个字节 0x03 字节数 1个字节 2 x N 寄存器值 N x 2个字节 ... 错误 差错码 1个字节 0x83 异常码 1个字节 01或02或03或04 Modbus 03读保持寄存器应用说明 使用该功能码从远程设备中读保持寄存器连续块的内容。请求PDU指定了起始寄存器地址和寄存器数量。在PDU中,从零开始寻址寄存器。因此,编号1~16的寄存器被寻址为0~15. 将响应报文中的寄存器数据按每个寄存器两个字节进行打包,这个二进制内容正好填满每个字节。对于每个寄存器,第一个字节包括高位位,第二个字节包括低位位。 Modbus 03读保持寄存器实例 这是一个请求读寄存器108~110的实例 请求 响应 域名 十六进制 域名 十六进制 功能 03 功能 03 起始地址Hi 00 字节数 06 起始地址Lo 6B 寄存器值Hi(108) 02 寄存器数量Hi 00 寄存器值Lo(108) 2B 寄存器数量Lo 03 寄存器值Hi(109) 00 寄存器值Lo(109) 00 寄存器值Hi(110) 00 寄存器值Lo(110) 64 Modbus 0
显示全部
相似文档