modbus功能码格式一览

发布日期:2022-11-17
modbus功能码格式一览

电工优优今天要和大家分享的modbus功能码格式一览相关信息,接下来我将从modbus功能码,modbus功能码详解,modbus功能码对应地址这几个方面来介绍。

一:Modbus寄存器种类说明

1:线圈状态

输出端口,可设定端口的输出状态,也可以读取该位的输出状态;

2:离散输入状态

输入端口,通过外部设定改变输入状态,可读但不可写;

3:保持寄存器

控制器运行时被设定的某些参数,可读可写;

4:输入寄存器

控制器运行时从外部设备获得的某些参数,可读不可写;

二:Modbus功能码简述

功能码可以分为位操作和字节操作,位操作的最小单位是Bit,字节操作的最小单位为2个字节(Byte).

1:位操作指令

读线圈状态01H、读离散输入状态02H、写单个线圈05H、写多个线圈0FH.

2:字节操作指令

读保存寄存器03H、读输入寄存器04H、写单个保存寄存器06H、写多个保存寄存器10H.

三:Modbus寄存器PLC地址 和 寄存器协议地址简述

1:寄存器PLC地址

PLC地址是控制器中的地址,采用十进制数表示,共5位,第一位表示寄存器的类型,详见下表;

2:寄存器协议地址

由于功能码和PLC地址的前缀(5位数据的最高位)相对应,所以不区分前缀,用后边的四位数据表示,且需要转换成16进制;

四:Modbus汇总

1、“01”读取线圈状态

发送:

功能代码 1字节 0x01 起始地址 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字节 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字节 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:向保持寄存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)

以上就是"电工优优"为大家介绍的modbus功能码的相关信息,想了解更多"modbus功能码格式一览,modbus功能码,modbus功能码详解,modbus功能码对应地址"相关知识,请收藏电工无忧吧。