Modbu s Rtu 通信协议(3,16 号命令) 1、 读取保持寄存器(单个和多个,以字为最小单位) 发送命令帧: 设备地址 功能码 地址H 地址L 数据量H 数据量L CRC H CRC L Addr0 3 H HoldStart DataNu m CRC 高位 CRC 低位 帧 长 度:8 个字节 设备地址:1~247 功 能 码:3H 数据地址:0~65535 具体范围与相关设备有关 数 量:1~65535 具体范围与相关设备有关 校 验 码:CRC16 校验 返回命令帧: 设备地址 功能码 数据量 数据1 数据N CRC H CRC L Addr1 3 H 返回数据的字节数N Data (1~N) CRC 高位 CRC 低位 帧 长 度:5+N 个字节 设备地址:1~247 功 能 码:3H 数 据 量:实际的读取数据数量 数 据:返回数据的意义 a=HoldStart n= DataNu m-1 VW a (VB a) VWa(VB a+1 ) … VW a+n(VB a+n) VWa+n(VB a+n+1) Data(1) Data(2) … Data(N-1) Data(N) 校 验 码:CRC16 校验 命令有误: 1) 没有任何返回 2) 返回异议帧 设备地址 功能码 错误信息 CRC H CRC L Addr1 83 H 一个字节的错误信息 CRC 高位 CRC 低位 2、 设置保持寄存器(多个,以字为最小单位) 发送命令帧: 设备地址 功能码 地址H 地址L 数据量H 数据量L 数据字节数 具体 数据 CRC H CRC L Addr0 10 H HoldStart DataNu m by tN 1~by tN CRC 高位 CRC 低位 帧 长 度:9+by tN 个字节 设备地址:1~247 功 能 码:10H 数据地址:0~65535 具体范围与相关设备有关 数 量:1~122 具体范围与相关设备有关 字 节 数:设置的字节个数 by tN= DataNu m×2 数 据:具体的字节数据 校 验 码:CRC16 校验 返回命令帧: 设备地址 功能码 地址H 地址L 数据量H 数据量L CRC H CRC L Addr1 10 H HoldStart DataNu m CRC 高位 CRC 低位 帧 长 度:8 个字节 设备地址:1~247 功 能 码:10H 数据地址:0~65535 具体范围与相关设备有关 数 量:1~122 具体范围与相关设备有关 校 验 码:CRC16 校验 命令有误: 1) 没有任何返回 2) 返回异议帧 地址 功能码 错误信息 CRC H CRC L Addr1 90 H 一个字节的错误信息 CRC 高位 CRC 低位 设置单个寄存器(06H) 发送命令帧: 设备地址 功能码 地址H 地址L 数据H 数据L CRC H CRC ...