1.MODBUS功能代码概要
下表列出了MODBUS支持的部分功能代码。 用十进制表示。
表1.1 MODBUS的部分功能代码
代码
中文名称
寄存器PLC地址
位操作/字操作
操作数
01
读取线圈的状态
00001-09999
位操作
单个或多个
02
读取离散输入状态
10001-19999
位操作
单个或多个
03
读保持寄存器
40001-49999
字操作
单个或多个
04
读取输入寄存器
30001-39999
字操作
单个或多个
05
写单个线圈
00001-09999
位操作
个
06
写入单一保持寄存器
40001-49999
字操作
个
15
写多个线圈
00001-09999
位操作
复数
16
写入多个保持寄存器
40001-49999
字操作
复数
1.1功能码说明功能码可以分为位操作和字操作两种。 位操作的最小单位是位,字操作的最小单位是2个字节。
位操作包命令包括线圈状态01H的读出、输入状态02H的读出(离散)、单个线圈06H的写入、多个线圈0FH的写入。
字操作命令包括读取保持寄存器0至3h、写入单个寄存器0至6h和写入多个保持寄存器10H。
1.2寄存器地址分配表1.2 MODBUS寄存器地址分配
寄存器PLC地址
寄存器协议地址
适用的功能
寄存器的种类
读写状态
00001-09999
0000H-FFFFH
01H 05H 0FH
线圈状态
可写入
10001-19999
0000H-FFFFH
02H
离散输入状态
可读取
30001-39999
0000H-FFFFH
04H
输入寄存器
可读取
40001-49999
0000H-FFFFH
03H 06H 0FH
保持寄存器
可写入
1.3寄存器类型说明
表1.3 MODBUS寄存器类型说明
寄存器
种类
说明
电脑
类比
举例说明
线圈状态
输出端口。 可以设定端口的输出状态,也可以读取该位的输出状态。 分为保持型和边沿触发型两种不同的执行状态。
DO
数字量输出
电磁阀输出、MOSFET输出、LED显示等。
离散
输入状态
输入端口。 通过外部设定改变输入状态,可以读取但不能写入。
DI
数值输入
拨盘开关、接近开关等。
保持
寄存器
输出参数或保持参数、控制器运行中设定的部分参数。 能读写。
帅府
模拟输出
模拟输出设定值、PID运行参数、变量阀输出尺寸、传感器警报上限、下限。
输入
寄存器
输入参数。 执行控制器时从外部设备获取的参数。 但是,不会写。
人工智能
模拟输入
模拟输入
1.4 PLC地址与协议地址的区别PLC地址可理解为协议地址的变种,广泛应用于触摸屏和PLC编程。
1.4.1寄存器PLC地址寄存器PLC地址是存储在控制器中的地址,这些控制器可以是PLC、触摸屏、文本显示器。 PLC地址一般用十进制表示,共有5位,是其中第1位的代码寄存器类型。 第一位数字和寄存器类型的对应关系如表1所示。 PLC地址例如是40001、30002等。
1.4.2寄存器协议地址寄存器协议地址是指通信时所使用的寄存器地址,例如PLC地址40001对应于地址0x0001,40001对应于地址0 x 0001,寄存器地址为例如,PLC寄存器地址40003对应于协议地址0002,而PLC寄存器地址30003对应于协议地址0002,则在两个PLC寄存器通信时使用同一地址,但通过不同的命令进行访问