modbus 功能码

来源:互联网 发布:pdg for mac 编辑:程序博客网 时间:2024/06/01 09:48
1、“01”读取线圈状态
发送:
功能代码1字节0x01起始地址2字节0x0000~0xFFFF线圈数量2字节1~2000(0x7D0)接收:
功能代码1字节0x01字节数1字节N线圈状态n字节n = N/N+1N=读取线圈个数 / 8  ,如果余数不为0则N=N+1
出错时的返回:
功能代码1字节0x81错误代码1字节01/02/03/04

 
2、“02”读取输入状态
发送:
功能代码1字节0x02起始地址2字节0x0000~0xFFFF输入点数量2字节1~2000(0x7D0)接收:
功能代码1字节0x02字节数1字节N输入点状态n字节n = N/N+1N=读取输入点个数 / 8  ,如果余数不为0则N=N+1
出错时的返回:
功能代码1字节0x82错误代码1字节01/02/03/04

 
3、“03”保持型寄存器读取
发送:
功能代码1字节0x03起始地址2字节0x0000~0xFFFF寄存器数量2字节1~125(0x7D)接收:
功能代码1字节0x03字节数1字节2*N寄存器值N*2字节

N=寄存器数量
出错时的返回:
功能代码1字节0x83错误代码1字节01/02/03/04

 
4、“05”写单一线圈
发送:
功能代码1字节0x05线圈地址2字节0x0000~0xFFFF写入值2字节0x0000或0xFF00接收:
功能代码1字节0x05线圈地址2字节0x0000~0xFFFF写入值2字节0x0000或0xFF00出错时的返回:
功能代码1字节0x85错误代码1字节01/02/03/04

5、“06”写单一寄存器
发送:
功能代码1字节0x06寄存器地址2字节0x0000~0xFFFF写入值2字节0x0000~0xFFFF接收:
功能代码1字节0x06寄存器地址2字节0x0000~0xFFFF写入值2字节0x0000~0xFFFF出错时的返回:
功能代码1字节0x86错误代码1字节01/02/03/04
 
6、“15(0x0F)”写多线圈
发送:
功能代码1字节0x0F起始地址2字节0x0000~0xFFFF写入线圈个数2字节0x0001~0x07B0写入字节数1字节N写入值N字节

N=写入线圈个数 / 8  ,如果余数不为0则N=N+1
接收:
功能代码1字节0x0F起始地址2字节0x0000~0xFFFF写入线圈个数2字节0x0001或0x07B0出错时的返回:
功能代码1字节0x8F错误代码1字节01/02/03/04
 
7、“16(0x10)”写多寄存器
发送:
功能代码1字节0x10起始地址2字节0x0000~0xFFFF写入寄存器个数2字节0x0001~0x007B写入字节数1字节2*N写入值N*2字节

N=写入寄存器个数
接收:
功能代码1字节0x10起始地址2字节0x0000~0xFFFF写入寄存器个数2字节0x0001或0x007B出错时的返回:
功能代码1字节0x90错误代码1字节01/02/03/04 
例子:
4.支持的MODBUS功能码
   功能码02H: 读取开关量输入(读实遥信和虚遥信)。

  功能码03H:读取保持寄存器(读事件记录等)

  功能码04H:读取输入寄存器(读远动遥测)

  功能码05H:强制单点继电器输出(远方复归、单步的遥控跳闸、遥控合闸)。

  功能码06H:向保持寄存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)

功能码10H: 向保持寄存器(内存区)写多个16位的字(通讯对时)。
0 0
原创粉丝点击