切换深色模式
串口脚本采集
R12 提供 4 条用户脚本,编号 1~4,每条最多 40 字节。0 号槽用于系统/心跳类用途,不是第 5 条用户脚本。当前上位机脚本框可能显示“80 B”,但本机固件每条上限仍为 40 字节;不要按界面计数扩展到 80 字节。脚本是一段串口报文,不是 JavaScript 程序;仪表回复仍需按其自身协议解析。
联调前检查 扩展参数 → 调试配置中的 RS485 调试开关,正式采集时关闭无关打印并保存。调试文字可能混入总线,串口日志中的文本不能直接当作仪表协议回复。
操作视频
适用型号:RTU R12(类型 13,HEX)。不适用于其他 RTU 型号。
本片从 R12 连接开始,指出脚本填写位置,使用脚本行下方 MODBUS 生成并回填,再设置端口、启用、周期和可选事件。未接仪表、未保存、未做串口测试或无线采集。
1. 找到脚本输入位置
- 连接并读取 R12,点击 应用参数。
- 点击端子板的 RS232 / RS485区域,打开脚本表。
- 找到脚本 1 的横向报文输入框,按需要选择 HEX 或 ASCII。
- Modbus RTU 可在 HEX 模式点击该行下方 MODBUS,生成并填入;也可直接粘贴完整指令,两种方式任选其一。
- 选择实际接线的 RS485端口,打开脚本启用开关。

行内生成器参数使用十六进制:从站地址和功能码各一字节,寄存器地址两字节,长度/数据按仪表指令填写。例如从站 1、功能码 03、地址 0、读取两个寄存器,分别填 01、03、0000、0002。生成预览包含 CRC,复制完整报文后核对不超过 40 字节。ASCII 按 UTF-8 字节计数,结束符也需包含。

2. 设置周期触发
点击本行 触发 / 周期区域,打开周期采集开关,周期范围 1~86400 秒。脚本总启用和周期触发是不同设置;仅填写报文或只打开某个事件源,并不等于已经开启周期采集。
例如 60 秒读取一次温湿度:脚本 1 填入该仪表资料确认的完整读请求,端口 RS485,脚本启用,周期采集启用,周期 60 秒。温湿度寄存器地址、字序和倍率必须按本机仪表手册,不照抄其他型号。

3. 设置事件触发
在同一触发设置中打开 事件触发,选择本机有效源和条件:AI1/AV1 用超过上限、低于下限或范围报警,DI1/DI2 用低到高、高到低或双向,DO1/DO2 用输出变化方向。
只需事件采集时关闭周期采集、保留脚本启用和事件触发;需要周期兜底时,两种触发可同时配置。先启用源通道并设置有效阈值和输入稳定性。模拟量变化阈值属于主动上报条件,不直接作为此处的范围触发条件。
持续保持同一条件通常只触发一次;重新触发需离开后再进入或出现新的匹配边沿。启动时源状态已经满足条件,也可能记录一次待执行请求,并非一定等到下一次人工翻转。命中也会记录相应源事件,即使源通道独立主动上报未勾选,也可能产生事件包。触发只是记录待执行请求,不表示已经收到仪表回复。
4. 设置串口与等待
- 在应用参数中的串口配置找到实际端口,设置与仪表一致的波特率、8 数据位、校验位及停止位。
- 在应用参数 采集参数 中设置等待。当前界面的 采集延迟 对应 R12 发送请求后的接收等待,按仪表完整回复时间设置;不是脚本周期,也不能仅按“上电后等待”的界面提示理解。电源等待时间是在每轮串口采集开始前预留的等待,不会自动生成 DO 供电规则。
- 确认报文 CRC、从站地址和寄存器范围,点击 保存修改,按提示处理重启。
- 按需使用脚本区域 串口测试,核对 TX/RX 的内容;有 RX 不等于地址、CRC 和业务数值都正确。

| 等待参数 | 固件允许范围 | 出厂值 | R12 实际用途 |
|---|---|---|---|
| 采集延迟 | 0~15000ms | 500ms | 每次发出请求后,等待再读取接收字节 |
| 电源等待时间 | 20~60000ms | 100ms | 每轮串口采集开始前预留等待 |
当前固件一轮在没有收到字节时最多发送 2 次请求;一旦收到非空字节就结束本轮尝试,不自动证明 Modbus CRC 或寄存器内容正确。优先使用仪表允许重复执行的读取指令,避免把会改变仪表状态的写命令当作普通采集脚本。
改变业务速率后应按保存速率连接;按键双击会临时切到 9600 / 8N1,可能影响仪表测试。优先使用本机 Micro-USB 独立配置方式,避免电脑和仪表总线争用。测试不替代恢复运行后的周期与无线验收。
5. 上报与执行顺序
脚本 1~4 的回复分别用 FPort 1~4,载荷保留仪表原始字节;本轮没有收到字节时会上报 ASCII 文本 collection failed(17 字节),不能按正常测量解析;具体字节见脚本结果协议。这些载荷不是 R12 的 18 字节状态包,即使开头碰巧是 13 也不能只凭首字节判断。
事件触发脚本后,设备先记录待执行,再按调度采集。可能先收到源通道事件包,随后收到脚本结果;已经采集好的结果会优先发送。不能把“脚本结果优先”理解成所有未执行脚本都先于事件。
RTU 的事件与状态合并不等于 DTU 的 Modbus 合并采集。 不套用 DTU FPort 33 四字节报告头、16 条任务或其解析函数。R12 的 FPort 33 是 18 字节事件状态包。