MODBUS指令使用说明.doc
文本预览下载声明
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 发送校验错误(从站H 从站号错误 82H 变量个数越界 83H 通信超时 84H 接收校验错误
六、使用MODBUS指令需知:
在第一个扫描周期对通讯参数进行设置(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停止位
主站设置示意图:
从站设置示意图:
在第一个扫描周期所有MODBUS指令均不会被执行。
变量个数限制:位型变量200个,字型变量32个。
若用户使用MODBUS功能,梯形图禁止使用:
梯形图自由协议功能函数及其资源区;
RS485通讯协议网络;
MODBUS接收区/发送区。
如不遵循以上规则,可能导致MODBUS通讯出错。
通信方式
显示全部