前两节讲了串口和 Modbus RTU。这一节把"数据"的源头讲清楚:应变片式称重传感器怎么把重量变成电信号,变送器怎么把它变成 Modbus 报文里的数字。看懂这一课,00 03 E6 70 才不是一个玄学数字。应变片式称重传感器的核心就两个东西:金属弹性体 + 应变片。

结构从上到下:承重板 → 弹性体(平行梁)→ 安装底座,出线在侧面。应变片贴在弹性体表面,本质上就是一个电阻(常见阻值 350Ω),跟着金属一起变形。
原理一句话:受力 → 形变 → 电阻变化。
受力时弹性体微微弯曲,上表面的应变片被拉伸(R1、R4 阻值变大),下表面的被压缩(R2、R3 阻值变小)。金属的形变极其微小——肉眼看不出来,但电阻的变化是真实存在的。
单个电阻的变化太小了(毫欧级),直接测等于大海捞针。解决办法:把 4 个应变片接成惠斯通电桥。

电桥的妙处:四个桥臂电阻一起变,桥路失衡,输出一个与重量成正比的微小电压。拉伸臂和压缩臂对称布置,还顺便做了温度补偿——温度变化时四片一起变,输出互相抵消。
输出有多大?看灵敏度:

激励电压 5V × 灵敏度 2mV/V = 满量程输出 10mV
2mV/V 的意思是:每 1V 激励电压,满量程时输出 2mV。5V 激励就是 10mV 满量程——一个毫伏级的模拟信号,微弱到不能直接用。
这么微弱的信号,必须交给称重变送器处理。它干两件事:
给传感器提供 5V 激励电压(传感器自己是无源的)
通过 AD 采集把毫伏级信号放大、转换成数字
但 AD 采到的只是数字"内码"——一个和重量成正比、但还没换算成公斤的原始数。怎么把内码变成真实重量?靠标定。
内码和重量之间是一条直线关系,两个点就能确定它:

第一步:零点标定。 清空秤台,发送零点标定指令,记下空载时的 AD 值——图上的绿点 (AD₀, 0 kg)。
第二步:加载标定。 放上已知重量的砝码(比如 100 kg),发送加载标定指令,记下此时的 AD 值——图上的黄点 (AD₁, 100 kg)。
有了两个点,斜率就出来了:
斜率 k = 100 kg ÷ (AD₁ − AD₀)
标定参数保存在模块内部,之后每次称重直接套用这个公式:重量 = k × (AD − AD₀)。所以换传感器、挪动设备之后,都要重新标定。
计算出的重量值通过 RS485 接口对外输出。以 SJ101CX 为例:
通讯参数(出厂默认):9600 bps、8 数据位、无校验、1 停止位——就是第一课讲的"9600/8/N/1"。
读重量:上位机只需发一条读保持寄存器指令:

01 03 00 00 00 02 C4 0B
意思是:问站号 1,用功能码 03,从地址 0 开始读 2 个寄存器(32 位重量)。
应答:

01 03 04 00 00 05 FC 22 F9
04 表示 4 个数据字节:00 00 05 FC = 0x000005FC = 1532——这是标定后的重量值,一个 32 位有符号整数(所以负重量也能表示)。
换算:精度 0.01 kg 时:

1532 × 0.01 = 15.32 kg
对比一下第四课的例子:255600 × 0.01 = 2556.00 kg。同一套逻辑,不同的精度和量程而已——"整数 + 精度"是称重仪表的通用套路。
两个实用功能:
清零:秤台有残留(灰尘、残料)导致零点漂移时,发清零指令把当前状态当作零点。注意它清的是"皮重"逻辑,大重量压秤时会被拒绝。
免砝码标定:现场没有砝码怎么办?可以直接输入传感器的灵敏度(mV/V),变送器按理论值计算斜率。方便,但精度通常只有百分之一左右——因为每只传感器的实际灵敏度都和标称值有微小偏差。应急可用,正式投产还是要用砝码做两点标定。
把这一课压缩成一句话:
应变片受力变形产生电压 → 变送器 AD 采集得到内码 → 两点标定建立"内码 ↔ 重量"直线 → 通过 RS485 和 Modbus RTU 输出给上位机。
| 环节 | 关键点 |
|---|---|
| 传感器 | 弹性体 + 4 应变片惠斯通电桥,输出 mV 级信号 |
| 灵敏度 | 2mV/V × 5V = 满量程 10mV |
| 标定 | 零点 + 砝码点,两点定直线,参数存模块内 |
| 输出 | 32 位有符号整数 × 精度 = 真实重量 |
| 例子 | 00 00 05 FC = 1532 → ×0.01 = 15.32 kg |
下一篇进入实战:用电脑串口助手,亲手把这 15.32 kg 读出来。