ImageVerifierCode 换一换
格式:PDF , 页数:5 ,大小:154.60KB ,
资源ID:9964871      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9964871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Modbus功能码一览.pdf)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Modbus功能码一览.pdf

1、Modbus 功能码一览 Modbus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包 括软件。它可应用于各种数据采集和过程监控。下表 1 是 ModBus 的功能码定义。 表 1 ModBus 功能码 功能码 名称 作用 01 读取线圈状态 取得一组逻辑线圈的当前状态( ON/OFF) 02 读取输入状态 取得一组开关输入的当前状态( ON/OFF) 03 读取保持寄存器 在一个或多个保持寄存器中取 得当前的二进制值 04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值 05 强置单线圈 强置一个逻辑线圈

2、的通断状态 06 预置单寄存器 把具体二进值装入一个保持寄存器 07 读取异常状态 取得 8 个内部线圈的通断状态,这 8 个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短 报文适宜于迅速读取状态 08 回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴 09 编程(只用于 484) 使主机模拟编程器作用,修改 PC 从机逻辑 10 控询(只用于 484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9 的报文发送后,本功能码才发送 11 读取事件计数 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产

3、生通信错误时 12 读取通信事件记录 可是主机检索每台从机的 ModBus 事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误 13 编程( 184/384 484 584) 可使主机模拟编程器功能修改 PC 从机逻辑 14 探询( 184/384 484 584) 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能 13 的报文发送后,本功能码才得发送 15 强置多线圈 强置一串连续逻辑线圈的通断 16 预置多寄存器 把具体的二进制值装入一串连续的保持寄存器 17 报告从机标识 可使主机判断编址从机的类型及该从机运行指示灯的状态 18 ( 884

4、和 MICRO 84) 可使主机模拟编程功能,修改 PC 状态逻辑 19 重置通信链路 发生非可修改错误后,是从机复位于已知状态,可重 置顺序字节 20 读取通用参数( 584L) 显示扩展存储器文件中的数据信息 21 写入通用参数( 584L) 把通用参数写入扩展存储文件,或修改之 22 64 保留作扩展功能备用 65 72 保留以备用户功能所用 留作用户功能的扩展编码 73 119 非法功能 120 127 保留 留作内部作用 128 255 保留 用于异常应答 Modbus 网络只是一个主机,所有通信都由他发出。网络可支持 247个之多的远程从属控制器,但实际所支 持的从机数要由所用通信

5、设备决定。采用这个系 统,各 PC 可以和中心主机交换信息而不影响各 PC 执行本身的控制任务。表 2 是 ModBus 各功能码对应的数据类型。 表 2 ModBus 功能码与数据类型对应表 代码 功能 数据类型 01 读 位 02 读 位 03 读 整型、字符型、状态字、浮点型 04 读 整型、状态字、浮点型 05 写 位 06 写 整型、字符型、状态字、浮点型 08 N/A 重复 “ 回路反馈 ” 信息 15 写 位 16 写 整型、字符型、状态字、浮点型 17 读 字符型 ( 1) ModBus 的传输方式 在 ModBus 系统中有 2 种传输模式可选择。这 2 种传输模式与从机 P

6、C 通信的能力是同等的。选择时应视所用 ModBus 主机而定, 每个 ModBus 系统只能使用一种模式,不允许 2 种模式混用。一种模式是 ASCII(美国信息交换码),另一种模式是 RTU(远程终端设备)这两种模式的 定义见表 3 表 3 ASCII 和 RTU 传输模式的特性 特性 ASCII(7 位) RTU(8 位) 编码系统 十六进制(使用 ASCII可打印字符: 0 9, AF) 二进制 每一个字 开始位 1 位 1 位 符的位数 数据位(最低有效位第一位) 7 位 8 位 奇偶校验(任选) 1 位(此位用于奇偶校验,无校应则无该位) 1 位(此位用于奇偶校验,无校应则无该位)

7、 停止位 1 或 2 位 1 或 2 位 错误校验 LRC(即纵向冗余校验) CRC(即循环冗余校验) ASCII 可打印字符便于故障检测,而且对于用高级语言(如 Fortan)编程的主计算机及主 PC 很适宜。 RTU 则适用于机器语言编程的计算机和 PC 主 机。 用 RTU 模式传输的数据是 8 位二进制字符。如欲转换为 ASCII 模式,则每个 RTU 字符首先应分为高位和低位两部分,这两部分各含 4 位,然后转换成十六进 制等量值。用以构成报文的 ASCII 字符都是十六进制字符。 ASCII 模式使用的字符虽是 RTU 模式的两倍,但 ASCII 数据的译玛和处理更为容易一些, 此

8、外,用 RTU 模式时报文字符必须以连续数据流的形式传送,用 ASCII 模式,字符之间可产生长达 1s 的间隔,以适应速度较快的机器。表 4 给出了以 RTU 方式读取整数据的例子 以 RTU 方式读取整数据的例子 主机请求 地址 功能码 第一个寄存器的高位地址 第一个寄存器的低位地址 寄存器的数量的高位 寄存器的数量的底位 错误校验 01 03 00 38 00 01 XX 从机应答 地址 功能码 字节数 数据高字节 数据低字 节 错误校验 01 03 2 41 24 XX 十六进制数 4124 表示的十进制整数为 16676,错误校验值要根据传输方式而定。 ( 2) Modbus 的数据

9、校验方式 CRC-16(循环冗余错误校验) CRC-16 错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位 和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位( MSB)首选 发送。报文先与 X16 相乘(左移 16 位),然后看 X16+X15+X2+1除, X16+X15+X2+1 可以表示为二进制数 11000000000000101。整数商位忽略不记, 16 位余数加入该报文( MSB 先发送),成为 2 个 CRC 校验字节。余数中的 1 全部初始化,以免所 有的零成为一条报文被接收。经上述处理而含有 CRC字节的报文,若无错误,到接收设备后再被同一多项式( X1

10、6+X15+X2+1 )除,会得到一个 零余数(接收设 备核验这个 CRC 字节,并将其与被传送的 CRC比较)。全部运算以 2 为模(无进位)。 习惯于成串发送数据的设备会首选送出字符的最右位( LSB-最低有效位)。而在生成 CRC 情况下,发送首位应是被除数的最高有效位 MSB。由于在运算中不 用进位,为便于操作起见,计算 CRC 时设 MSB 在最右位。生成多项式的位序也必须反过来,以保持一致。多项式的 MSB 略去不记,因其只对商有影响而不影响 余数。 生成 CRC-16 校验字节的步骤如下: 装如一个 16 位寄存器,所有数位均为 1。 该 16 位寄存器的高位字节与开始 8 位字

11、 节进行 “ 异或 ” 运算。运算结果放入这个 16 位寄存器。 把这个 16 寄存器向右移一位。 若向右(标记位)移出的数位是 1,则生成多项式 1010000000000001 和这个寄存器进行 “ 异或 ” 运算;若向右移出的数位是 0,则返 回 。 重复 和 ,直至移出 8 位。 另外 8 位与该十六位寄存器进行 “ 异或 ” 运算。 重复 ,直至该报文所有字节均与 16 位寄存器进行 “ 异或 ” 运算,并移位8 次。 这个 16 位寄存器的内容即 2 字节 CRC 错误校验,被加到报文的最高有效位。 另外,在某些非 ModBus通信协议中也经常 使用 CRC16作为校验手段,而且产

12、生了一些 CRC16 的变种,他们是使用 CRC16 多项式 X16+ X15+X2+1 ,单首次装入的 16 位寄存器为 0000;使用 CRC16 的反序 X16+X14+X1+1 ,首次装入寄存器值为 0000 或 FFFFH。 LRC(纵向冗余错误校验) LRC 错误校验用于 ASCII 模式。这个错误校验是一个 8 位二进制数,可作为 2 个 ASCII 十六进制字节传送。把十六进制字符转换成二进制,加上无循环进 位的二进制字符和二进制补码结果生成 LRC 错误校验(参见图)。这个 LRC在接 收设备进行核验,并与被传送的 LRC 进行比较,冒号(:)、回车符号 ( CR)、换行字符

13、( LF)和置入的其他任何非 ASCII 十六进制字符在运算时忽略不计。 表 5 LRC 生成范例读取 02 号从机的前 8 个线圈 十六进制 二进制 地址 0 2 0000 0010 功能码 0 1 0000 0001 起始地址高位 0 0 0000 0000 起始地址低位 0 0 0000 0000 单元数量 0 0 0000 0000 0 8 + 0000 1000 0000 1011 变成补码 1111 0101 错误校验 F 5 F 5 接受 PC 把所有收到的数据字节(包括最后的 LRC)加在一起, 8 位应全部为 0(注意:和可能超过 8 位,应略去最低位) 0000 0010 0000 0001 0000 0000 0000 0000 0000 0000 0000 1000 错误校验 1111 0101 和 0000 0000

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报