Modbus功能码及其格式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能代码
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、“011
起始地址
2字节
0x0000~0xFFFF
线圈数量
2字节
1~2000(0x7D0)
接收:
功能代码
1字节
0x01
字节数
1字节
N
线圈状态
n字节
n = N/N+1
N=读取线圈个数/ 8,如果余数不为0则N=N+1
出错时的返回:
功能代码
1字节
0x81
错误代码
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字节
0x85
错误代码
1字节
01/02/03/04
例子:
5、“06”写单一寄存器
发送:
功能代码
1字节
0x06
寄存器地址
2字节
0x0000~0xFFFF
写入值
2字节
0x0000~0xFFFF
接收:
功能代码
1字节
0x06
寄存器地址
2字节
0x0000~0xFFFF
写入值
2字节
0x0000~0xFFFF
出错时的返回:
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字节
2*N
写入值
N*2字节
N=写入寄存器个数
接收:
功能代码
1字节
0x10
起始地址
2字节
0x0000~0xFFFF
写入寄存器个数
2字节
0x0001或0x007B
出错时的返回:
功能代码
1字节
0x90
错误代码
1字节
01/02/03/04
例子:
功能代码
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字节
1字节
01/02/03/04
例子:
2、“02”读取输入状态
发送:
功能代码
1字节
0x02
起始地址
2字节
0x0000~0xFFFF
输入点数量
2字节
1~2000(0x7D0)
接收:
功能代码
1字节
0x02
字节数
1字节
N
输入点状态
n字节
n = N/N+1
N=读取输入点个数/ 8,如果余数不为0则N=N+1
出错时的返回:
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、“011
起始地址
2字节
0x0000~0xFFFF
线圈数量
2字节
1~2000(0x7D0)
接收:
功能代码
1字节
0x01
字节数
1字节
N
线圈状态
n字节
n = N/N+1
N=读取线圈个数/ 8,如果余数不为0则N=N+1
出错时的返回:
功能代码
1字节
0x81
错误代码
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字节
0x85
错误代码
1字节
01/02/03/04
例子:
5、“06”写单一寄存器
发送:
功能代码
1字节
0x06
寄存器地址
2字节
0x0000~0xFFFF
写入值
2字节
0x0000~0xFFFF
接收:
功能代码
1字节
0x06
寄存器地址
2字节
0x0000~0xFFFF
写入值
2字节
0x0000~0xFFFF
出错时的返回:
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字节
2*N
写入值
N*2字节
N=写入寄存器个数
接收:
功能代码
1字节
0x10
起始地址
2字节
0x0000~0xFFFF
写入寄存器个数
2字节
0x0001或0x007B
出错时的返回:
功能代码
1字节
0x90
错误代码
1字节
01/02/03/04
例子:
功能代码
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字节
1字节
01/02/03/04
例子:
2、“02”读取输入状态
发送:
功能代码
1字节
0x02
起始地址
2字节
0x0000~0xFFFF
输入点数量
2字节
1~2000(0x7D0)
接收:
功能代码
1字节
0x02
字节数
1字节
N
输入点状态
n字节
n = N/N+1
N=读取输入点个数/ 8,如果余数不为0则N=N+1
出错时的返回: