🔌 Modbus 从站 ¶
本文介绍 RLink 串口 Modbus 从站功能的定义、工作机制与配置方法。
1. 概述 ¶
Modbus 从站是工业总线上的被动响应节点。在 Modbus 从站 模式下,RLink 监听总线并在收到匹配本机从站地址的主站请求时回复数据。RLink 从站具备线圈与寄存器本地存储、从站规则拦截以及信号仿真引擎,广泛应用于设备模拟、控制逻辑验证与上位机/PLC 联合调试。
核心能力一览 ¶
| 模块 |
核心机制 |
典型适用场景 |
| 线圈与寄存器数据区 |
完整覆盖 Modbus 四类标准数据区(线圈、离散输入、保持寄存器、输入寄存器),支持本机直接改写注入 |
模拟现场传感器测量值与执行器状态,供外部 PLC 或上位机读写;可保存启动默认值 |
| 从站规则 |
按优先级、功能码与地址匹配总线请求,支持延时应答、无应答或注入异常码 |
测试外部主站的超时容错、断线重试与异常处理能力 |
| 信号仿真 |
硬件引擎按周期自动生成正弦波、开关翻转、递增计数、随机数等物理变化规律 |
在无现场真实传感器时,提供连续动态测试数据 |
核心工作机制 ¶
- 全数据区本地可写:除标准可写区(线圈与保持寄存器)外,协议定义的只读区(离散输入与输入寄存器)在从站模式下同样支持本地直接改写与数据注入。改写后立即作为应答数据源,便于快速验证上位机或 PLC 的数据采集与联动逻辑。
- 规则优先裁决:总线请求优先经过规则引擎匹配。若命中规则,按设定的延时、静默丢弃或异常码处置;未命中任何规则时,按当前点位数值正常回复。
- 仿真冲突仲裁:当外部主站写入正在运行仿真的点位时,可配置「写入后冻结」、「保持写入值」或「忽略写入」,灵活模拟真实工业闭环工况。
- 配置持久化与恢复:从站规则、仿真信号及寄存器当前值默认驻留于设备运行内存中。点击状态栏「保存配置」后,设备将「规则与仿真」及「线圈、离散输入和寄存器」(作为启动默认值)写入内部存储。保存后,下次进入从站模式并打开串口绑定时自动恢复配置。若未保存,关闭串口或设备断电后修改将丢失。
2. 通信准备与连接 ¶
操作入口 ¶
- 进入 工具 -> 串口。
- 选择目标串口物理通道(如 UART 1、UART 2)。
- 模式选择 Modbus 从站。
- 点击通道旁 设置 配置通信参数。
参数配置 ¶
| 配置分类 |
参数名称 |
范围 / 选项 |
默认值 |
说明与约束 |
| 串口基础参数 |
波特率 |
9600 ~ 3000000 |
115200 |
物理层波特率,须与外部主站一致 |
|
数据位 |
5、6、7、8 |
8 |
Modbus RTU 标准协议要求为 8 位 |
|
停止位 |
1、2 |
1 |
配合外部主站停止位要求 |
|
校验位 |
无校验、奇校验、偶校验 |
无校验 |
硬件物理层校验 |
| Modbus RTU 参数 |
从站 ID |
从站 ID 范围 1 ~ 247 |
1 |
本机从站响应外部主站请求时的物理站号 |
- 注意:串口打开后,界面显示「串口已打开,参数只读」,如需修改通信参数请先关闭串口。
打开与协议绑定 ¶
- 启动流程:点击 打开 开启物理串口 -> 点击 绑定 激活 Modbus 从站协议栈。
- 状态流转:状态栏依次呈现 未绑定 -> 启动中 -> 运行中。
- 模式切换限制:串口打开后模式锁定,界面提示「模式切换需关闭串口」。如需更换工作模式,须先关闭串口。
3. 数据区与本地改写 ¶
四类标准数据区 ¶
从站提供 Modbus 协议定义的四类标准数据区,可通过工具栏顶部的切换栏快速选择:
| 数据区 |
区域代码 |
协议属性 |
本机改写权限 |
对应功能码 |
典型工业用途 |
| 线圈 (Coils) |
0x |
位(Bit)读写 |
支持 |
FC01 读,FC05/FC15 写 |
继电器输出、开关控制量等执行器状态 |
| 离散 (Discrete) |
1x |
位(Bit)只读 |
支持(本地改写/仿真注入) |
FC02 读 |
光电开关、行程限位、报警信号等开关量输入 |
| 保持 (Holding) |
4x |
16 位字读写 |
支持 |
FC03 读,FC06/FC16/FC22/FC23 读写 |
设定参数、控制字、调节输出等可读写寄存器 |
| 输入 (Input) |
3x |
16 位字只读 |
支持(本地改写/仿真注入) |
FC04 读 |
传感器测量值(温度、压力、电压等模拟量) |
视口显示范围 ¶
工具栏提供 起始地址(0 65535)与 数量(1 2000,默认 32)配置:
- 该参数说明为「当前显示数量,不限制主站读写寻址」,仅决定当前界面表格中展示哪一段地址。
- 外部主站可以在 0 ~ 65535 全地址空间内自由寻址读写,不受界面显示范围限制。
本地数据改写与注入 ¶
- 操作方法:在表格目标行点击 写入,输入数值后确认。
- 生效机制:改写后数据立即在运行内存中生效。外部主站下一次读取该地址时,将立即获取改写后的最新值。
- 未保存提示:本地改写后界面提示「数据已修改,尚未保存到设备」。若需下次打开时仍保留这些数值作为启动默认值,须在状态栏点击「保存配置」。
数据格式与字序 ¶
针对保持寄存器与输入寄存器,可点击行内 配置地址 设定解析格式:
- 数据格式:支持 U16、I16、U32、I32、F32、F64、HEX、BINARY。若剩余寄存器不足,提示「剩余 n 个寄存器,仅显示适配类型」。
- 字节序与字序:支持大端 AB CD、字交换 CD AB、字节交换 BA DC 与全小端 DC BA(低字在前,寄存器内字节对调)。
- 标签:支持设置点位业务别名(如“温度”),便于快速识别。
4. 从站规则 (总线拦截与故障注入) ¶
功能说明 ¶
从站规则用于干预特定总线请求的应答行为,可自定义延迟回复、静默无应答或回复指定异常码,专门用于测试外部主站与通信链路的容错与恢复能力。系统最多支持配置 16 条规则。
规则裁决机制 ¶
- 优先级裁决:规则按优先级数值降序匹配(数值越大优先级越高;数值相同时编号小的优先)。
- 首条命中即止:总线请求一旦命中某条规则,立即执行对应动作并结束裁决;未命中任何规则时,按本地数据表正常回复。
规则配置项 ¶
1. 匹配条件 ¶
- 匹配范围:本站与广播、仅本站、仅广播。
- 从站 ID 与功能码:可限定特定站号(0 ~ 255,0=广播)或特定功能码(留空为不限制)。
- 地址区间:设置起始与结束地址(0 ~ 65535)。FC11、FC17、FC43 等无地址功能码无需设置地址。未填写的条件不限制。
2. 触发条件 ¶
- 每次:每次匹配均执行动作。
- 每 N 次:每累计匹配 N 次触发 1 次(N ≥ 1)。
- 随机:按设定概率比例(比例范围 1 ~ 100)随机触发,说明为「按此概率触发执行」。
3. 响应方式 ¶
| 响应方式 |
行为机制 |
适用测试场景 |
关键参数 |
| 正常应答 |
正常回复对应点位的当前数值,可附加延时 |
测试主站对慢响应设备的处理 |
响应延时最大 500 ms(0 为无延时) |
| 无应答 |
静默丢弃,不向总线回复任何字节 |
测试主站超时检测与断线重试机制 |
无 |
| 异常应答 |
回复标准 Modbus 异常帧 |
测试主站对总线异常码的解析与报警 |
异常码范围 1 ~ 255 |
4. 时效与限制 ¶
- 有效时间:有效时间 1 ms ~ 24 小时,提示「留空永久有效」。
- 最多触发次数:达到限定次数后规则自动失效,提示「留空不限次数」。
生效控制 ¶
规则支持独立启用开关(关闭后不参与匹配)。配置或修改后,须在规则窗口中点击 应用 才能下发设备生效,提交成功提示「从站规则已应用」。
5. 信号仿真 ¶
功能说明 ¶
仿真引擎允许指定点位的数值按设定的物理规律自动连续更新,无需人工干预。系统最多支持 32 路仿真信号。
配置入口与步骤 ¶
- 在数据表中找到目标点位,点击 配置地址(空列表时仿真管理提示「可在数据表中点击「配置地址」开启」)。
- 展开 从站信号仿真,打开 启用 开关。
- 选择 变化规律 并配置波形参数。
- 设定 主站写入后 的冲突仲裁策略。
- 点击 应用 保存。
变化规律一览 ¶
| 规律类型 |
适用数据类型 |
核心参数 |
行为特征 |
| 开关翻转 |
仅线圈与离散输入 (BIT) |
初始电平 (高/低)、更新周期 |
在 0 与 1 之间周期性翻转 |
| 正弦波动 |
仅寄存器数值类型 |
基准中心值、波动幅度、相位 (°)、更新周期 |
连续平滑的正弦波形 |
| 计数递增 |
仅寄存器数值类型 |
最小值、最大值、步长、往返反弹、更新周期 |
累加步长变化;起点选填(默认从最接近 0 开始);勾选往返时在峰值反向递减 |
| 均匀随机 |
仅寄存器数值类型 |
最小值、最大值、更新周期、随机种子 |
在区间内生成离散伪随机数 |
| 运行计时 |
仅整数寄存器类型 |
起点 (毫秒) |
自启动起按毫秒连续累加(起点选填,默认 0) |
| 保持固定值 |
全部类型 |
固定值 |
持续锁定并保持该数值 |
- 更新周期:更新周期范围 20 ~ 60000 ms。
主站写入冲突仲裁 ¶
当外部主站向正在运行仿真的地址写入数据时,通过 主站写入后 策略仲裁控制权(仅作用于已启用仿真的地址):
| 策略 |
行为机制 |
适用场景 |
| 写入后冻结 |
主站写入后,该地址暂停仿真并维持写入值。冻结时长范围 0 ~ 60000 ms(提示「0 为持续冻结」) |
模拟阀门、设定点被手动覆盖后的锁定状态 |
| 保持写入值 |
主站写入后停住仿真并保持该写入值,不会按原规律继续变化。要恢复仿真,把策略改为「忽略写入」后再点应用 |
模拟设定值被保持、仿真暂停 |
| 忽略写入 |
忽略主站写入的值,仿真继续按原规律更新 |
模拟不可控外部物理量(如室温、压力) |
仿真全局管理 ¶
- 点击工具栏 仿真 打开管理窗口,可集中查看、编辑、删除已配置的仿真信号,支持一键 定位 跳转至对应数据表格。
- 仿真节拍:可配置全局节拍间隔(节拍间隔范围 20 ~ 1000 ms,默认 100 ms),作为所有信号共用的最短更新间隔。
- 修改后须在管理窗口中点击 应用 才能下发设备生效,提示「从站仿真已应用」。
6. 报文监控与配置保存 ¶
报文监控与统计 ¶
- 底层报文捕获:实时捕获外部主站发来的请求帧及本机回复的响应帧。支持按流向(发送/接收/错误)及功能码过滤,可展开查看完整数据帧与字段解析,支持一键「复制数据」。
- 通信统计:状态栏实时统计总线 TX 帧数、RX 帧数及 Err 错误计数。点击「重置统计」可重置从站收发统计,提示「仅重置通信统计,不修改寄存器数值」。
- 监控配置:可调整前台推送间隔(推送间隔范围 20 5000 ms)及报文捕获速率上限(速率上限范围 1 100 条/秒、突发容量范围 1 ~ 1000)。未绑定状态下修改提示「已保存,开启「绑定」后生效。」。
配置保存与清除 ¶
- 保存配置:
- 本地改写的数据、规则与仿真默认保存在运行内存中。
- 点击状态栏保存图标打开「保存配置」对话框,从站包含两项独立保存项:
- 规则与仿真
- 线圈、离散输入和寄存器(保存当前数值作为启动默认值)
- 界面提示「保存后,下次打开自动恢复。」。点击「保存」后将配置写入设备内部存储。保存后,下次进入从站模式并打开串口绑定时,设备会自动恢复该配置。
- 清除已保存配置:
- 如需清除设备内部保存的从站配置,必须在串口关闭状态下操作。串口处于运行中时按钮置灰,提示「清除配置需关闭串口」。
- 在串口关闭时点击「清除已保存配置」,弹出确认提示:「将清除设备保存的轮询、规则、仿真与寄存器默认值。当前未提交的修改将被放弃;串口设置中填写的参数保留。此操作无法撤销。」。确认后完成清除。
7. 常见问题 ¶
1. 外部主站通信超时,从站未应答 ¶
- 现象:主站发出的读写请求超时无响应,从站报文监控未见回复。
- 原因:
- 串口物理打开后未开启 绑定,从站协议栈未就绪。
- 主站请求中的从站 ID 与本机配置的 从站 ID 不一致。
- 请求命中了 从站规则 中的「无应答」丢弃策略。
- 处理方法:检查并开启绑定;核对双方站号;检查从站规则列表中是否包含拦截规则。
2. 外部主站读到异常应答,而非寄存器实际数值 ¶
- 现象:主站收到 Modbus 异常码(如 01、02、03 等)。
- 原因:总线请求命中了处于启用状态的 异常应答 规则。
- 处理方法:打开 从站规则 窗口,核对是否存在覆盖该功能码或地址段的异常规则,关闭或调整对应规则后点击 应用。
3. 为什么离散输入和输入寄存器允许在界面上写入? ¶
- 现象:协议规范中 1x 离散输入与 3x 输入寄存器为只读对象,但界面操作列提供了 写入 按钮。
- 原因:RLink 从站主要用于设备模拟与系统联调。在现场传感器或物理开关尚未连接时,支持通过本地写入注入模拟测试数据(如模拟现场温度测量值或报警开关状态)。改写后的数值将作为外部主站读取时的数据源。
- 处理方法:在对应行点击 写入 输入期望测试的模拟值即可。若需下次打开时仍保留这些数值,需点击状态栏保存配置。
4. 重新进入从站后,修改的数据与规则恢复了默认值 ¶
- 现象:关闭串口或重新进入从站后,之前改写的寄存器数据、规则或仿真丢失。
- 原因:修改仅驻留于临时运行内存中,未点击「保存配置」写入设备内部存储。
- 处理方法:完成数据与规则修改后,点击状态栏保存图标,在「保存配置」对话框中点击「保存」,将「规则与仿真」及「线圈、离散输入和寄存器」写入设备存储。保存后,下次进入从站打开串口绑定时将自动恢复。
5. 在仿真管理窗口中为什么找不到添加信号按钮? ¶
- 现象:打开仿真管理弹窗后未见新建按钮,提示「可在数据表中点击「配置地址」开启」。
- 原因:仿真信号与具体点位强绑定,须在数据表的具体地址上添加。
- 处理方法:在数据表中找到目标点位所在行,点击 配置地址 弹窗,展开底部的 从站信号仿真 启用并配置。
6. 清除已保存配置按钮不可用 ¶
- 现象:点击清除配置时提示「清除配置需关闭串口」。
- 原因:串口当前正处于打开或运行状态。
- 处理方法:在工具栏点击 关闭 彻底关闭物理串口后,再打开保存设置弹窗执行清除配置。