做声学测试的设备,内部往往已经在一条 RS485 总线上用 Modbus RTU 广播自己的工况数据 —— 温度、电机负载、风扇转速、状态位;网络型设备则走 Modbus TCP。谛耳用一根普通的 USB-RS485 线 (或电脑网口)就能把这些数据读进来,与声学、振动通道同文件存储、同一时间轴。
| 界面 | 作用 |
|---|---|
| 工具 › Modbus 总线监视器 | 勘察工具,不进采集链路。到现场先用它摸清串口参数、从站地址、哪些寄存器在动, 也可把原始样本记成 CSV。在这里做的任何事都不会进入测量文件。 |
| 通道设置 › RS485 / Modbus 源 | 生产入口。这里配好的点位会变成通道:出现在通道表和在线监视器里,并随录制写进文件。 |
常规顺序是先勘察、后配置:用监视器把参数找出来,再在源配置弹窗里填一次。
适配器A 接 A、B 接 B —— 与 RS232 不同,这两根线不交叉。地线也要接上; 桌面短线不接往往也能通,但不接地会偶发误码,很容易被误判成软件问题。短距离、常用波特率下 不需要加终端电阻。
FTDI 芯片出厂默认的响应延时(latency timer)是 16 ms —— 它是"攒够一批字节再上报主机"的等待上限。软件会自己发现这件事: 配好串口源后,通道设置面板的 Modbus 区会给出提示,旁边一个按钮即可改成 1 ms。 点一下会弹一次管理员确认(该值在系统注册表里,必须管理员才能写), 之后软件自动让设备重新枚举 —— 不必拔插、不必进设备管理器、不必开终端。
录制过程中该按钮不执行 —— 设备重新枚举会短暂断开串口。请先停止录制。
这个选择往往直接决定你能不能看到数据。
| 模式 | 适用 | 后果 |
|---|---|---|
| 被动旁听 | 设备自身的控制器已经在轮询总线。 | 谛耳一个字节都不发,只是旁听。在运行中的总线上完全安全。 |
| 主动轮询 (我方作主站) |
设备是纯从站 —— 没有别人在问它要数据。 | 谛耳自己发读请求。只用只读功能码,绝不写设备。 |
Modbus RTU 规定一条总线只能有一个主站。设备自身控制器正在轮询时,不要启用主动轮询 —— 两个主站会撞车。反过来,如果用被动旁听接上去什么都看不到,那正是纯从站 设备的典型症状:改用主动轮询。
波特率与字符格式必须与设备一致。不知道就点 Auto Scan:它会在各常用波特率上分别监听, 报出哪一档能收到有效 Modbus 帧;8N1 全都不中时会自动再试其余字符格式。
字符格式比看上去重要。Modbus RTU 规范其实要求的是 8E1(偶校验),而实际现场 8N1 最常见。 用 8N1 去听 8E1 的总线,会产生大量帧错误、几乎收不到有效帧 —— 这看起来就像 "这台设备不是标准 Modbus"。状态栏一旦报出帧错误,先换格式再下结论。
这是唯一一件谛耳替你办不到的事。寄存器地址、换算系数、数据类型全由设备厂自定,没有任何标准。 直接向厂家要寄存器映射表 —— 写固件的研发手里一定有。
点表是一个 CSV 文件,一行一个点位:
slave,address,name,type,scale,offset,unit[,function][,min,max] 1,0x0010,热端温度,u16,0.1,0,degC,4,0,300 1,0x0100,累计运行时长,u32,1,0,s,3 1,0x0000,风扇运行,bit,1,0,,1 1,0x0040,故障标志,bit3,1,0,,3
| 列 | 含义 |
|---|---|
slave | 从站地址,1–247。 |
address | 寄存器或位地址,十进制或 0x 十六进制。
请确认厂家文档用的是不是"40001 起"的偏移记法 —— 照抄那套编号会让所有地址整体偏移。 |
name | 点位名称,不可重复。落盘数据按名称分组, 两行同名会被静默合并成一条通道。 |
type | u16 s16 u32 s32 f32。
32 位量若非大端,追加字节序后缀:_cdab(字交换)、_badc(字内字节交换)、
_dcba(全反)。bit = 线圈或离散输入,地址是位地址。bit0…bit15 = 寄存器里的某一位(状态字),
地址是寄存器地址,bit0 为最低位。 |
scale offset | 工程值 = 原始值 × scale + offset。 寄存器存 2105 表示 210.5 °C 时,scale 填 0.1。 |
unit | 工程单位。无量纲量可留空。 |
function | 可选。1 = 线圈,2 = 离散输入, 3 = 保持寄存器,4 = 输入寄存器。 |
min max | 可选的合理量程,工程单位。见下节。 |
加载点表时谛耳会做一次预检,把那些"不报错但会毁数据"的问题指出来 —— 点名重复、32 位点位与相邻点位地址重叠、scale 填成 0 等。
总线繁忙时,前一帧的尾巴与后一帧的头有极小概率凑成一段校验恰好通过的字节;字节序选错则会产生 数量级离谱的值。两种情况的结果都是曲线上突然出现一个台阶,而且事后极难判断那个台阶 是真实工况还是解码事故。
填了 min/max 之后,超范围的采样会被丢弃,曲线保持上一个有效值。被丢弃的数量会计数并显示在 状态栏,所以万一范围填窄了,也不会悄无声息地变成一条空通道。
如果某个量在设备故障时本来就会输出极端值(例如传感器断线报 32767),请把量程留空。 护栏分不清"故障读数"和"坏帧",填了就会把故障一起掩盖掉。
源按钮下方的状态行和采集日志会说明原因。三类原因指向的排查方向完全不同:
| 状态显示 | 含义 |
|---|---|
| 全是超时,没有任何应答 | 没人在应答。查从站地址、波特率与字符格式、A/B 接线 —— A 和 B 接反是最常见的一种。 |
| 全是 Modbus 异常应答 | 设备在说话,但拒绝这些地址,说明点表跟这台设备对不上。提示里会点名具体点位和异常码。 |
| 被量程护栏丢弃 | 数据在来、也解得对,但落在点表 min/max 之外。 |
| 帧错误在增长 | 字符格式不对 —— 试试 8E1。 |
数值带 PC 时间戳,按"保持上一有效值"展开到声学采样率,因此每个点位在测量文件里就是一条普通通道, 可以拖进数据查看器与声学曲线叠加。
这类通道的时间分辨率等于总线刷新率 —— 温度类通常低于 1 Hz,负载类约 10 Hz。 它们适合作为阶次分析的工况轴、或与噪声做趋势相关性,但不是信号: 不能用于扭振分析、阶次跟踪等任何需要带宽的计算。
经常被问到能不能读电机扭矩。这完全取决于驱动方式:
除此之外,要拿到真正以 N·m 计的扭矩,只能上扭矩传感器。
若要求硬件同步而不是 PC 时间戳,可以经 RS485→CAN 网关把总线数据接到前端 CAN 口。
总线监视器的 Export DBC… 按钮能把点表转成 .dbc 数据库外加一份网关映射说明,
照着配置网关即可把每个寄存器放到约定的 CAN 标识符和字节位置。
另见转速、CAN / DBC 与 GPS 通道。
标准 Modbus RTU 与 Modbus TCP 的读侧:功能码 0x01(线圈)、0x02(离散输入)、 0x03(保持寄存器)、0x04(输入寄存器)。被动旁听时另可解码旁听到的写帧(0x06 / 0x10)。
私有串口协议不在支持范围内。若 Auto Scan 报告"有流量但任何参数下都没有有效 Modbus 帧", 说明该设备不是标准 Modbus;请厂家开放标准 Modbus 接口,或由客户自行完成协议转换。