logo资料库

ModBusRTU标准协议和指令代码.pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
MODBUS 协议整理 整理 徐凯 江南大学 机械工程学院 Email xukai19871105@126.com
MODBUS 协议整理 MODBUS 部分功能代码 操作数量 单个或多个 单个或多个 单个或多个 单个或多个 00001-09999 30001-39999 40001-49999 字操作 位操作 位操作 位操作 10001-19999 位操作/字操作 寄存器信息地址 00001-09999 下表列出 MODBUS 支持的部分功能代码:以十进制表示。 代码 中文名称 01 读线圈状态 02 读(开关)输入状态 03 读保持寄存器 04 读输入寄存器 05 写单个线圈 06 写单个保持寄存器 15 写多个线圈 16 写多个保持寄存器 功能码说明 功能码可以分为位操作和字操作两类 位操作包指令包括,读线圈状态01,读(开关)输入状态 02,写单个线圈06 和写多个线圈 15。 字操作(2 个字节)指令包括:读保持寄存器 03,写单个寄存器 06,写多个保持寄存器 16。 Modbus 寄存器地址分配 表 MODBUS 部分功能码 单个 单个 多个 多个 字操作 位操作 字操作 40001-49999 00001-09999 40001-49999 字操作 寄存器信息地址 (PLC 地址) 00001-09999 10001-19999 30001-39999 40001-49999 寄存器种类 读写状态 线圈状态 可读可写 (开关)输入状态 输入寄存器 保持寄存器 可读 可读 可读可写 适用功能码 (10 进制) 01 05 15 02 04 03 06 16 2
寄存器种类说明 寄存器种 说明 类 MODBUS 协议整理 举例说明 PLC 类比 线圈状态 输出端口,按位操作,可设定端 DO 电磁阀输出,MOSFET 输出,LED 口的输出状态,也可以读取该位 显示等。 的输出状态。 开关 输入状态 保持 寄存器 输入端口,按位操作, 通过外部 DI 拨码开关,接近开关,机械开关等 设定改变输入状态,可读不可写。 输出参数或是保持参数,控制器 AO 模拟量输出设定值,PID 运行参数, 运行时被设定的某些参数。可读 AD 转换采样频率等参数。 可写。 AI 模拟量输入 设备获得的参数 输入参数。控制器运行时从外部 输入 寄存器 特别说明 寄存器信息地址(PLC 地址) 寄存器信息地址指的是存放于控制器中的地址,这些控制器可以是 PLC,也可以使触 摸屏,或是文本显示器。例如 40001、30002 等,这些地址一般使用 10 进制描述。 寄存器寻址地址(协议地址) 寄存器寻址地址指的是通信时使用的寄存器地址,例如信息地址 40001 对应寻址地址 0x0000,40002 对应寻址地址 0x0001,寄存器寻址地址一般使用 16 进制描述。再如,信息 寄存器 40003 对应寻址地址 0002,信息寄存器 30003 对应寻址地址 0002,虽然两个信息寄 存器通信时使用相同的地址,但是需要使用不同的命令才可以访问,所以访问时不存在冲突。 3
MODBUS 协议整理 01 读线圈状态 描述 读从机离散量输出口的 ON/OFF 状态。离散量输出口可以为继电器输出口,也可以为 MOSFET 输出接口,这些接口本质上都是位操作。 查询 查询信息规定被访问的线圈起始地址和线圈数量。 例:请求从机设备 17 读 00020-00056 线圈。其中 00020-00056 为线圈的寄存器信息地 址,这些线圈的寄存器寻址地址为 0019 – 0055,共访问 37 个线圈。 从机地址 功能码 寄存器起始地址高位 寄存器起始地址低位 寄存器数量高位 寄存器数量低位 CRC 校验高位 CRC 校验低位 Hex 11 01 00 13 00 25 表 读线圈状态-查询 4
MODBUS 协议整理 响应 响应信息中的各线圈的状态与数据区的每一位的值相对应,1 代表 ON;0 代表 OFF。 若返回的线圈数不是 8 的倍数,则在最后的数据字节未使用的位中全部填充 0,字节数区说 明全部数据的字节数。 从机地址 功能码 返回字节数 数据 1(线圈 00027-线圈 00020) 数据 2(线圈 00035-线圈 00028) 数据 3(线圈 00043-线圈 00036) 数据 4(线圈 00051-线圈 00044) 数据 5(线圈 00056-线圈 00052) CRC 校验高位 CRC 校验低位 Hex 11 01 05 CD 6B B2 0E 1B 表: 读线圈状态-响应 线圈 27-20 的状态用 CDH 表示,二进制值为 11001101,该字节的最高位为线圈 27,最 低位为线圈 20。线圈从左(27)向右(20)状态分别为 ON-ON-OFF-OFF-ON-ON-OFF-ON。下一 个字节的线圈应为 35 至 28。 地址 状态 00027 00026 00025 00024 00023 00022 00021 00020 ON ON OFF OFF ON ON OFF ON 表 线圈 00027 到 00020 状态 最后一个数据字节中,56-52 线圈的状态为 1BH(或二进制 00011011),线圈 56 是左数 第 4 位,线圈 52 是该字节的最低位,所线圈 56 至 52 的状态分别为 ON-ON-OFF-ON-ON, 3 个剩余位全部填 0。 地址 状态 00059 00058 00057 00056 00055 00054 00053 00052 填充 填充 填充 ON ON OFF ON ON 表 线圈 00056 到 00052 状态 5
MODBUS 协议整理 02 读输入位状态 说明 读从机离散量输入信号的 ON/OFF 状态。 查询 查询信息规定了要读的输入起始地址,以及输入信号的数量。 例:请求读从机设备 17 的 10197-10218 的输入位状态。 从机地址 功能码 寄存器地址高位 寄存器地址低位 寄存器数量高位 寄存器数量低位 CRC 校验高位 CRC 校验低位 Hex 11 02 00 C4 00 16 表 读输入位状态-查询 6
MODBUS 协议整理 响应 响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1 代表 ON;0 代表 OFF。第一个数据字节的 LSB(最低位)为查询的寻址地址,其他输入口按顺序在该字节中由 低位向高位排列,直至 8 位为止。下一个字节中的 8 个输入位也是从低位到高位排列。 若返回的输入位数不是 8 的倍数,则在最后的数据字节中的剩余位直至字节的最高位全 部填零。字节数区,说明了全部数据的字节数。 从机地址 功能码 返回字节数 数据 1(开关 10204-开关 10197) 数据 2(开关 10212-开关 10205) 数据 3(开关 10218-开关 10213) CRC 校验高位 CRC 校验低位 Hex 11 02 03 AC DB 35 1B 表 读输入位状态-响应 输入位 10204-10197 的状态用 35H (或二进制 00110101) 表示。输入位10218 为左数第 3 位, 10213 输入位为 LSB,输入位10218-10213 的状态分别为 ON-ON-OFF-ON-OFF-ON,最后 2 个剩余位填零。 地址 状态 地址 状态 地址 状态 10204 10023 10022 10021 10020 10019 10018 10017 0 0 1 1 0 1 0 1 10212 10211 20210 10209 10208 10207 10206 10205 1 1 1 0 1 0 1 1 10220 10219 10218 10217 10216 10215 10214 10213 填充 填充 1 1 0 1 0 1 表 开关输入位 10204 到 10017 状态 7
MODBUS 协议整理 03 读保持寄存器 说明 读从机保持寄存器的二进制数据。 查询 查询信息规定了寄存器起始地址及寄存器的数量。 从机地址 功能码 寄存器地址高位 寄存器地址低位 寄存器数量高位 寄存器数量低位 CRC 高位 CRC 低位 Hex 11 03 00 6B 00 13 表 读保持寄存器-查询 8
分享到:
收藏