🔌 Modbus 主站 ¶
本文介绍 RLink 串口 Modbus 主站功能的定义、工作机制与配置方法。
1. 概述 ¶
RLink 串口通道支持 透传、Modbus 主站 与 Modbus 从站 三种工作模式。在 Modbus 主站 模式下,RLink 作为总线发起方,主动发起总线通信并管理外部从站设备,提供周期轮询、单次读写、总线探测与报文监控能力。
交互方式一览 ¶
Modbus 主站提供三种不同层次的总线交互机制:
| 交互方式 |
触发机制 |
总线占用特点 |
典型适用场景 |
结果处理 |
| 轮询任务 |
周期自动调度 |
长期循环占用时隙 |
生产监控、传感器数据连续采集 |
呈现于实时数据表;可保存配置至设备,下次打开主站时自动恢复 |
| 单次执行 |
手动单次触发 |
临时抢占当前总线 |
单点参数修改、控制指令下发、扩展功能码测试 |
展示请求与响应原始帧及解析值;读操作支持一键转为轮询任务 |
| 扫描从站 |
自动化步进探测 |
阶段性连续占用 |
现场未知从站地址排查、从站寄存器地图探测 |
结果暂存 10 分钟,支持导出 CSV 或批量转为轮询任务 |
核心工作机制 ¶
- 两阶段连接机制:采用物理连接与协议绑定解耦的分层设计。物理串口打开后,须点击开启「绑定」,Modbus 主站协议栈才会接管总线并启动调度。
- 草稿与增量生效:轮询任务配置采用草稿确认制,修改后点击「应用」生效。仅修改间隔或暂停时,点「应用」后生效且无需重连;增删任务或修改站号、功能码、地址、数量等核心参数时,应用后将断开并重连。
- 配置持久化与恢复:轮询任务及运行状态(暂停/运行)默认保存在设备运行内存中。若在状态栏中点击「保存配置」,设备会将当前配置写入内部存储。保存后,下次进入主站模式并打开串口绑定时自动恢复配置。若未保存,关闭串口或设备断电后修改将丢失。
2. 通信准备与连接 ¶
操作入口 ¶
- 进入 工具 -> 串口。
- 选择目标串口物理通道(如 UART 1、UART 2)。
- 模式选择 Modbus 主站。
- 点击通道旁 设置 配置通信参数。
通信参数配置 ¶
物理串口参数与 Modbus 协议参数分层管理,必须与总线从站设备保持严格一致:
| 配置分类 |
参数名称 |
范围 / 选项 |
默认值 |
说明与约束 |
| 串口基础参数 |
波特率 |
9600 ~ 3000000 |
115200 |
物理层波特率,须与总线从站一致 |
|
数据位 |
5、6、7、8 |
8 |
Modbus RTU 标准协议要求为 8 位 |
|
停止位 |
1、2 |
1 |
配合现场设备停止位要求 |
|
校验位 |
无校验、奇校验、偶校验 |
无校验 |
硬件物理层校验 |
| Modbus RTU 参数 |
响应超时 |
超时范围 10 ~ 10000 ms |
1000 ms |
单次请求等待从站应答的最长时间 |
|
重试次数 |
重试次数范围 0 ~ 8 |
0 次 |
仅对轮询读取有效;写入与发送指令不进行重试 |
- 注意:串口打开后,界面显示「串口已打开,参数只读」,如需修改通信参数请先关闭串口。
打开与协议绑定 ¶
- 启动流程:点击 打开 开启物理串口 -> 点击 绑定 激活 Modbus 主站协议栈。
- 状态流转:状态栏依次呈现 未绑定 -> 启动中 -> 运行中。
- 模式切换限制:串口打开后模式锁定,界面提示「模式切换需关闭串口」。如需更换工作模式,须先关闭串口。
3. 轮询采集 ¶
功能说明 ¶
轮询任务用于周期性向从站发起读取请求,并将应答数据连续解析更新至实时数据表。系统最多支持配置 64 条轮询任务。
任务参数规范 ¶
每条轮询任务包含以下配置项:
| 参数 |
取值范围 |
说明与规范 |
| 从站 ID |
从站 ID 范围 1 ~ 247 |
目标从站物理站号 |
| 功能 |
01、02、03、04 |
仅支持四类只读功能码:读线圈 (01)、读离散输入 (02)、读保持寄存器 (03)、读输入寄存器 (04) |
| 起始地址 |
0 ~ 65535 |
目标点位起始地址,起始地址 + 数量不得超过 65536 |
| 数量 |
线圈/离散: 1 2000 寄存器: 1 125 |
单次请求点位数,受 Modbus PDU 最大帧长约束 |
| 间隔 |
轮询间隔至少 10 ms (10 ~ 60000 ms) |
任务调度周期,默认 100 ms |
| 暂停 |
启用 / 暂停 |
单任务挂起开关,开启后调度器跳过该任务 |
操作步骤 ¶
- 点击 轮询任务,再点 添加。
- 配置从站 ID、功能码、起始地址、数量及间隔。
- 点击 应用 生效(修改后点击「应用」生效;若放弃未生效修改可点击 还原)。
运行控制与生效机制 ¶
- 变更应用:修改后点击「应用」生效。仅修改间隔或暂停无需重连;增删任务或修改站号、功能码、地址、数量时,界面提示「应用后将断开并重连」,重连后按新任务调度。
- 全局暂停:工具栏提供 暂停轮询 / 恢复轮询,可一键挂起或恢复整个主站的总线轮询。
- 多任务切换:每个轮询任务生成独立标签页(格式为
#编号 站号 功能 地址段),点击标签切换查看对应数据表。
4. 数据监视与解析 ¶
实时数据表 ¶
数据表按选中的轮询任务呈现点位明细,包含物理地址(十进制/十六进制)、自定义标签、数据类型、实时值、原始十六进制及趋势入口。
数据格式与字序解码 ¶
针对保持寄存器与输入寄存器,可点击点位所在行的 配置地址 设定解析格式与字序。
支持的数据格式 ¶
| 数据格式 |
占用寄存器数 |
适用场景 |
| U16 / I16 |
1 个 (16 位) |
常用 16 位无符号 / 有符号整数 |
| U32 / I32 |
2 个 (32 位) |
常用 32 位无符号 / 有符号整数 |
| F32 |
2 个 (32 位) |
单精度浮点数(工程量测量) |
| F64 |
4 个 (64 位) |
双精度浮点数(高精度计量) |
| HEX / BINARY |
1 个 (16 位) |
原始十六进制 / 二进制位串显示 |
- 注意:多寄存器类型受连续空间约束。若当前点位到任务末尾剩余寄存器不足,界面提示「剩余 n 个寄存器,仅显示适配类型」,超出数量的格式将不可选。
字节序与字序 (Endianness) ¶
多寄存器跨字读取时,高低字节与高低字的排列顺序决定数值解析是否正确:
- 大端 AB CD:高字在前,寄存器内字节不变(Modbus 标准大端)。
- 字交换 CD AB:对调两个寄存器;单寄存器不变(32 位工业设备常用模式)。
- 字节交换 BA DC:每个寄存器内高低字节对调。
- 全小端 DC BA:低字在前,寄存器内字节对调。
可在工具栏全局切换字序,也可在单个地址配置中独立指定,并借助「解析预览」核对原始 Hex 与解析数值。
数据质量状态 ¶
任务标签与数据表头提供点位质量指示:
- 正常:轮询正常刷新。
- 未刷新:通信异常未读回最新数据(可查看超时、异常应答、传输错误等原因)。
- 写后未读回:写入指令已下发,等待后续轮询周期读回确认。
- 未读:任务已建立,尚未完成首轮通信。
历史趋势 ¶
点击行内 趋势 展开趋势详情窗口。支持滚轮缩放,拖拽框选;触控双指缩放、单指平移,便于直观观察连续物理量变化。
5. 数据写入 ¶
写入权限与对象 ¶
- 读线圈 01 与 读保持 03:属于可写对象,操作列提供 写入 功能。
- 读离散 02 与 读输入 04:属于只读物理量,操作列不提供写入功能。
操作步骤 ¶
- 在可写任务的数据表中,点击目标点位的 写入。
- 录入写入值:
- 线圈:选择 0 (关) 或 1 (开)。
- 寄存器:输入十进制数值或
0x 前缀十六进制,系统按当前点位配置的显示格式校验与解析。
- 确认后指令立即抢占总线执行,下发成功后该点位标记为 写后未读回,待下个轮询周期读回后更新实时值。
注意事项 ¶
- 无重试机制:Modbus RTU 参数中的「重试次数」仅对轮询读取有效,写入与发送指令不进行重试。
6. 总线扫描与单次执行 ¶
总线扫描 ¶
总线扫描用于快速探测总线拓扑、在线从站与有效寄存器区间。前置条件:必须处于已绑定运行状态,且轮询未处于暂停状态。若轮询处于暂停,界面提示「轮询已暂停,请先恢复轮询」。
扫描模式 ¶
- 从站 ID 扫描:
- 设定起始从站 ID 与结束从站 ID(从站 ID 范围 1 ~ 247)及探测功能码(默认 03 读保持)。
- 单步超时范围 50 2000 ms,最大步数范围 1 4096。
- 快速探测总线上哪些站号存在在线响应。
- 地址扫描:
- 指定目标从站 ID、功能码与地址区间(0 65535)及步长(1 125)。
- 探测该从站有效寄存器地址段,支持勾选「合并连续地址」自动整合零散区间。
结果处理 ¶
- 扫描结果在内存中保留 10 分钟,超时后提示「扫描任务已结束或已过期」。
- 支持 复制 CSV 导出结果,或点击 加入轮询任务。加入后提示「已加入 n 条任务,点击「应用」生效」,须在轮询任务对话框中点击 应用 才能正式启动采集。
单次执行 ¶
用于临时调试、单次状态查询或高级控制,无需创建常驻轮询任务。
- 避免重复下发:这些提示只在单次执行对话框,表格行内「写入」没有。已有上一次结果时,标题下提示「再次发送将作为新请求,建议先读取确认」。未收到从站应答时提示「未收到从站应答,建议先读取核实,避免重复发送」。若上次是未决或已送出、仍要再次执行,确认框为「上次结果未确认,从站可能已写入。再次执行将发起全新请求,是否继续?」。
1. 标准功能码 ¶
支持 8 项 Modbus 标准核心功能码:
- 读取:读线圈 (01)、读离散 (02)、读保持 (03)、读输入 (04)。
- 写入:写单个线圈 (05)、写单个寄存器 (06)、写多个线圈 (15)、写多个寄存器 (16)。
- 广播规则:写功能码支持从站 ID 填 0(广播下发);读功能码严禁广播,填 0 提示「此功能不支持广播」。
- 超时保护:等待时间范围 100 ~ 5000 ms。若设置过短提示「等待时间过短,按当前波特率至少需要 n ms」,可点击「填入建议值」自动修正。
- 转为轮询:单次读取成功后,可点击 转为轮询,提示「已加入任务列表,点击「应用」生效」,在任务列表中应用后转入周期调度。
2. 其他功能码 ¶
支持高级诊断与扩展功能码:
- FC11:读取通信事件计数器
- FC17:报告从站标识
- FC22:掩码写寄存器
- FC23:读写多个寄存器 (Read/Write)
- FC43/14:读取设备标识 (Read Device ID)
- 支持填入自定义十六进制请求数据,其他功能码同样严禁使用广播站号 0。
7. 报文监控与配置保存 ¶
报文监控与统计 ¶
- 底层报文捕获:主界面底部实时捕获总线通信报文流。支持按方向(发送/接收/错误)及功能码进行筛选,展开单条报文可查看完整数据帧与字段解析,支持一键「复制数据」。
- 通信统计:状态栏实时统计总线 TX 帧数、RX 帧数及 Err 错误计数。点击「重置统计」可重置当前串口的收发统计,提示「仅重置通信统计,不修改寄存器数值」。
- 监控配置:点击状态栏监控配置图标,可调整推送间隔(推送间隔范围 20 5000 ms)、收发统计显示,以及报文日志捕获(在报文面板记录收发数据,速率上限范围 1 100 条/秒、突发容量范围 1 ~ 1000)。未绑定状态下修改提示「已保存,开启「绑定」后生效。」。
配置保存与清除 ¶
- 保存配置:
- 轮询任务与运行状态默认保存在运行内存中。
- 点击状态栏保存图标打开「保存配置」对话框,确认保存「轮询任务与运行状态」,提示「保存后,下次打开自动恢复。」。
- 点击「保存」将配置写入设备内部存储。保存后,下次进入主站模式并打开串口绑定时,设备会自动恢复该配置。
- 清除已保存配置:
- 如需清除设备内部保存的主站配置,必须在串口关闭状态下操作。串口处于运行中时按钮置灰,提示「清除配置需关闭串口」。
- 在串口关闭时点击「清除已保存配置」,弹出确认提示:「将清除设备保存的轮询、规则、仿真与寄存器默认值。当前未提交的修改将被放弃;串口设置中填写的参数保留。此操作无法撤销。」。确认后完成清除。
8. 常见问题 ¶
1. 串口打开后,数据表格未显示数据 ¶
- 现象:串口处于打开状态,但数据表格无响应,提示「串口已打开,开启「绑定」后查看数据」。
- 原因:RLink 采用物理串口与协议绑定解耦机制,仅打开物理串口未激活 Modbus 协议栈。
- 处理方法:点击工具栏的 绑定 开关,等待状态栏变为 运行中 即可。
2. 修改或添加轮询任务后,总线未开始采集 ¶
- 现象:在任务管理对话框中编辑或新建了任务,但数据未刷新。
- 原因:轮询任务修改在本地处于草稿状态,必须点击「应用」后才下发给底层调度器。
- 处理方法:打开 轮询任务 窗口,点击底部的 应用 按钮。
3. 多字节寄存器(如 F32、U32)解析数值异常 ¶
- 现象:读回的浮点数或 32 位整数出现极大、极小异常值或乱码。
- 原因:从站设备的高低字序或字节序与当前主站解码规则不一致。
- 处理方法:在工具栏切换 字节序与字序(常用 大端 AB CD 与 字交换 CD AB),或进入该点位的「配置地址」弹窗,通过解析预览核对原始 Hex 与解析值。
4. 点击扫描从站提示不可用 ¶
- 现象:点击 扫描从站 时操作被拦截,提示「轮询已暂停,请先恢复轮询」。
- 原因:总线扫描复用总线调度器,在全局轮询暂停状态下被锁定。
- 处理方法:在工具栏点击 恢复轮询,恢复总线正常工作状态后再启动扫描。
5. 单次执行写操作后未收到应答,能否立即重发? ¶
- 现象:指令发出后提示超时未收到从站确认。
- 原因:从站物理断连、站号不匹配、从站处理阻塞或通信受现场干扰。
- 处理方法:切勿盲目重复发送写指令,防止多次触发控制动作。应先使用单次读指令或查看实时数据表确认从站点位的实际状态。
6. 重新进入主站后,之前配置的轮询任务丢失 ¶
- 现象:关闭串口或退出后重新打开主站,任务列表为空或恢复为旧配置。
- 原因:配置任务后未点击「保存配置」写入设备。
- 处理方法:完成任务配置与应用后,点击底部状态栏的保存图标,在「保存配置」对话框中点击「保存」写入设备。保存后,下次进入主站打开串口绑定时将自动恢复。
7. 清除已保存配置按钮不可用 ¶
- 现象:点击清除配置时提示「清除配置需关闭串口」。
- 原因:串口当前正处于打开或运行状态。
- 处理方法:在工具栏点击 关闭 彻底关闭物理串口后,再打开保存设置弹窗执行清除配置。