7.15.11 配置的端口作为Modbus主站进行通信
功能
- Modbus_RTU_Master指令可通过由Modbus_RTU_Config指令配置的端口作为Modbus主站进行通信
注意
- 无法为Modbus_RTU_Master指令的背景数据块保持(Retain)
LD图形
参数说明
参数名 | 类别 | 类型 | 说明 |
---|---|---|---|
REQ | INPUT | BOOL | TRUE: 向Modbus Slave从站发送请求并等待响应。 |
MB_ADDR | INPUT | USINT | Modbus RTU从站地址。 |
MODE | INPUT | USINT | 模式(读取 / 写入)。 0: 读取,对应功能码0x01 ~ 0x04。 1: 写入,对应功能码0x05, 0x06,0x15, 0x16。 |
START_ADDR | INPUT | UINT | 从站中的起始地址。 线圈:1 ~ 9999 离散输入量:10001 ~ 19999 输入寄存器:30001 ~ 39999 保持寄存器:40001 ~ 49999 |
DATA_LEN | INPUT | UINT | 数据长度,即访问的字或位的个数。 |
DATA_PTR | INOUT | ANY_TYPE | 指向要数据写入或数据读取的数据块地址。 |
MB_RTU_CONFIG | INOUT | Modbus_RTU_CONFIG | 指向绑定的Modbus RTU串口配置 |
DONE | OUTPUT | Bool | 请求处理结束,无错误。维持一个周期。 |
BUSY | OUTPUT | Bool | 请求处理中。 |
ERROR | OUTPUT | Bool | 请求过程中出现错误,具体错误原因见STATUS。维持一个周期 |
STATUS | OUTPUT | WORD | 状态码 |
状态码说明
状态码 | 含义 | 解决方案 |
---|---|---|
0x0000 | 初始状态,无任务 | |
0x7000 | 请求成功 | |
0x7002 | 请求超时,重试中,直至达到RETRIES次数 |
参数校验错误码 | 含义 | 解决方案 |
---|---|---|
0x8006 | 绑定的Modbus RTU串口未配置或已失效 | 重新调用MODBUS_RTU_CONFIG请求,配置串口 |
0x8007 | 其他Modbus_RTU_Master实例正在使用该RTU_CONFIG | 其他实例请求完成后重试 |
0x8008 | 输入请求模式无效,支持0和1用于读取和写入 | 检查输入参数 |
0x8009 | 请求寄存器/位数量无效 | 检查输入参数 |
0x800A | 访问从站起始地址无效 线圈:1 ~ 9999 离散输入量:10001 ~ 19999 输入寄存器:30001~39999 保持寄存器:40001 ~ 49999 | 检查输入参数 |
0x800B | 访问从站地址与模式组合无效。例如,使用写入模式操作地址30001的输入寄存器 | 检查输入参数 |
0x800C | 功能码解析失败 | 检查输入参数 |
0x800D | 绑定数据区域容量小于请求所需空间 | 检查输入参数 |
0x800E | 请求过于频繁,间隔小于3.5字符+RTUConfig参数REQ_GAP的时间 | 重新请求 |
请求和响应过程错误码 | 含义 | 解决方案 |
---|---|---|
0x8010 | 与串口连接断开 | 重新配置串口 |
0x8011 | 等待回应报文失败 | 系统内部错误,重新配置或重试 |
0x8012 | 与串口连接断开 | 重新配置串口 |
0x8013 | 读取回应报文失败 | 系统内部错误,重新配置或重试 |
0x8016~0x8017 | 发送请求失败 | 重新请求 |
0x8019 | 重试RETRIES次数后,接收回应报文超时 | 重新请求,或合理设置超时时间后重试 |
0x801A | 回应报文数据超过最大长度 |
Modbus_RTU_Master检查回应报文内容错误码 | 含义 | 解决方案 |
---|---|---|
0x801B | 回应报文从站地址不匹配 | 重新请 求 |
0x801C | 回应报文校验码不匹配 | 重新请求 |
0x801D | 回应报文与发送报文功能码不匹配 | 重新请求 |
0x801E | 回应报文为异常报文,异常码无效 | 重新请求 |
0x801F | 回应报文与发送报文数据和地址不匹配 | 重新请求 |
0x8020 | 回应报文不合法 | 重新请求 |
Modbus RTU 协议异常报错码 | 含义 | 方案 |
---|---|---|
0x8022 | 功能码无效 | |
0x8023 | 请求地址无效,例如从站中包含128个保持寄存器,请求访问地址为130的寄存器 | |
0x8024 | 请求数据无效 | |
0x8025~0x802C | 从站响应的其他异常码 |