MODBUS指令使用说明

  • 格式:doc
  • 大小:122.50 KB
  • 文档页数:5

MODBUS指令使用说明

一、指令形式(都为16位指令,常开/闭、边缘触发):

功能码 功能 MODBUS指令 操作数

01H 读线圈指令 COLR OP0:从站站号

OP1:MODBUS线圈地址

OP2:线圈个数

OP3:本地线圈地址

02H 读输入线圈指令 INPR OP0:从站站号

OP1:MODBUS线圈地址

OP2:线圈个数

OP3:本地线圈地址

03H 读寄存器内容 REGR OP0:从站站号

OP1:MODBUS寄存器地址

OP2:寄存器个数

OP3:本地寄存器地址

04H 读输入寄存器内容 INRR OP0:从站站号

OP1:MODBUS寄存器地址

OP2:寄存器个数

OP3:本地寄存器地址

05H 写单个线圈指令 COLW OP0:从站站号

OP1:MODBUS线圈地址

OP2:本地线圈地址

06H 写单个寄存器指令 REGW OP0:从站站号

OP1:MODBUS寄存器地址

OP2:本地寄存器地址

10H 写多个寄存器指令 MRGW OP0:从站站号

OP1:MODBUS寄存器地址

OP2:寄存器个数 OP3:本地寄存器地址

0FH 写多个线圈指令 MCLW OP0:从站站号

OP1:MODBUS线圈地址

OP2:线圈个数

OP3:本地线圈地址

注:当从站站号填写0时,以广播模式进行发送。

二、MODBUS通讯协议:

RTU格式

三、通讯变量的地址分配:

位元件 Modbus地址

(16进制) 字元件 Modbus地址

(16进制)

M0~M1535 0000H~05FFH D0000~D7999 1000H~2F3FH

X0~X377 4000H~40FFH D8000~D8255

3000H~30FFH

Y0~Y377 4800H~48FFH T0~T255 3C00H~3CFFH

S0~S999 5000H~53E7H C0~C199 3E00H~3EC7H

M8000~M8255 6000H~60FFH C200~C255 (32位) 3F00H~3F37H

T0~T255(线圈) 6C00H~6CFFH

C0~C255(线圈) 6E00H~6EFFH

T0~T255(触点) 6D00H~6DFFH

C0~C255(触点) 6F00H~6FFFH

四、MODBUS指令占用寄存器:

资源占用 用途

自由协议相关寄存器被占用

D7000~D7199 报文收发区

D7994 通讯状态编码显示

D7995 从站正确返回的报文个数 D7996 从站错误返回/超时的报文个数

D7997 最后一个不能正常通讯的从站地址

D7998 本站站号设置(000-为主站,001-254为从站)

M8128 成功通讯状态位

M8129 失败通讯状态位

五、MODBUS通信状态编码(D7994记录)

编码(16进制) 含义

00H 正常状态

01H 功能码错误

02H 非法变量地址

03H 错误数据

(读写个数与字节数不匹配情况;写单个线圈时数据≠oxff00或ox0000)

04H 变量个数越界(从站响应)

(读写个数=0或>最大个数或起始地址+个数>上限地址情况)

11H 发送校验错误(从站响应)

81H 从站号错误

82H 变量个数越界

83H 通信超时

84H 接收校验错误

六、使用MODBUS指令需知:

1. 在第一个扫描周期对通讯参数进行设置(D8120),对本站站号进行设置(D7998)。

D8120可设置参数如下:

H040X: 波特率57600

H043X: 波特率9600

H044X: 波特率38400

H045X: 波特率19200 X = 7: 8数据位,偶校验,1停止位

X = 3: 8数据位,奇校验,1停止位

X = 9: 8数据位,无校验,2停止位

X = 1: 8数据位,无校验,1停止位

X = E: 7数据位,偶校验,2停止位

X = A: 7数据位,奇校验,2停止位

X = 6: 7数据位,偶校验,1停止位

X = 2: 7数据位,奇校验,1停止位

X = 8: 7数据位,无校验,2停止位

主站设置示意图:

从站设置示意图:

2. 在第一个扫描周期所有MODBUS指令均不会被执行。

3. 变量个数限制:位型变量200个,字型变量32个。

4. 若用户使用MODBUS功能,梯形图禁止使用:

① 梯形图自由协议功能函数及其资源区;

② RS485通讯协议网络;

③ MODBUS接收区/发送区。

如不遵循以上规则,可能导致MODBUS通讯出错。

5. 通信方式

① 广播模式(同步性较好):

注:广播站号为0,所有下位机响应但是不会回复,注意广播不能进行读操作。

广播模式状态显示寄存器无相关记录(D7994~D7997)

② 指令顺序缓存方式(最大缓存12条指令)

③ 步序方式(推荐方式)

注:需要通过M8128/M8129的状态来确认当前MODBUS指令是否执行完毕,

读取状态后需复位M8128/M8129

MCLW X0

K0 K1000 K3 M10