4、PLC模拟量模块与力矩信号采集:模拟量输入模块选型(电压/电流),信号调理,滤波处理,AD转换精度与采样率

好,咱们进入第四章。前面聊了传感器怎么把力矩变成电信号,那信号到了PLC门口,怎么进门?怎么让PLC“看懂”这个信号?这就是本章要解决的问题。

说白了,模拟量输入模块就是PLC的“耳朵”。耳朵好不好使,直接决定了你能不能听准现场的真实力矩。我见过太多项目,传感器选得挺好,结果模块选型或者接线出了岔子,整个控制精度全白搭。

4.1 模拟量输入模块选型:电压还是电流?

这是第一个选择题。市面上主流的模拟量信号,无非就是0-10V电压,或者4-20mA电流。选哪个?

我个人习惯,只要现场距离超过10米,或者环境电磁干扰比较厉害,我首选4-20mA。为什么?

  • 抗干扰能力强:电流信号对线路电阻不敏感,长距离传输压降不会影响信号值。电压信号就不行,线一长,压降一出来,读数就偏了。
  • 断线检测方便:4-20mA有个天然优势——4mA是“活零点”。如果线路断了,电流掉到0mA,PLC立马能判断“信号丢失”。电压信号0V和真实0值混在一起,你分不清是没信号还是真为零。
  • 适合远距离:我在一个造纸厂的项目里,张力传感器离控制柜有80多米。当时有人建议用0-10V,我直接否了。最后用的4-20mA,稳得很。

当然,电压信号也有它的地盘。比如在控制柜内部,距离短、干扰小,或者有些老款PLC模块只支持电压输入,那就用电压。另外,电压信号在高速采集时响应更快,因为电流环路的建立时间稍长。

我的选型口诀:
远距离、强干扰、要断线检测 → 4-20mA
近距离、柜内、高速响应 → 0-10V

4.2 信号调理:别让信号“带病进门”

传感器出来的信号,很少是“干干净净”的。直接怼进PLC模块,早晚要出问题。信号调理就是给信号“洗个澡”,让它符合模块的胃口。

常见的调理工作包括:

  • 电平转换:有些传感器输出是±10V,但模块只接受0-10V。这时候需要偏置电路把负电压抬上来。
  • 阻抗匹配:电压输入要求高输入阻抗,电流输入要求低输入阻抗。模块内部一般已经做好了,但外接分压电阻或采样电阻时要注意匹配。
  • 隔离:这是我最看重的一点。现场电机启停、变频器开关,经常在信号线上感应出共模电压。不隔离的话,轻则读数跳动,重则烧模块。

我记得有一次调试一个冲压机,力矩信号在冲头下压瞬间总是跳变。查了半天,发现是变频器干扰通过地环路串进来了。后来在信号线上加了一个隔离变送器,问题立刻解决。

避坑指南: 我曾经见过有人把4-20mA信号直接并一个250Ω电阻转成1-5V进电压模块。这么做不是不行,但要注意电阻精度和温漂。普通电阻温度一变化,读数就跟着飘。建议用精密电阻(0.1%精度,25ppm温漂以下)。

4.3 滤波处理:软件滤波与硬件滤波

信号调理完了,进到模块里,还有一道关——滤波。滤波的目的是把噪声滤掉,留下真实信号。

滤波分两种:硬件滤波和软件滤波。

4.3.1 硬件滤波

模块内部通常有一个低通滤波器,比如一阶RC滤波。它的截止频率是固定的,或者通过拨码开关选择。硬件滤波的好处是实时性好,不占用CPU资源。但缺点也很明显——一旦设定,改起来麻烦。

我一般把硬件滤波当作“粗滤”,专门对付高频噪声,比如50Hz工频干扰或者变频器开关噪声。截止频率通常设在10-100Hz之间,具体看现场噪声频率。

4.3.2 软件滤波

硬件滤完了,还有残留噪声怎么办?软件滤波上场。PLC程序里写一段滤波算法,对采样值做二次处理。

常用的软件滤波方法:

方法 原理 适用场景 缺点
限幅滤波 相邻两次采样值之差超过阈值则丢弃 尖峰脉冲干扰 无法滤除周期性噪声
中位值滤波 连续采样N次,取中间值 偶然性脉冲干扰 采样速度慢
算术平均滤波 连续采样N次,取平均值 随机噪声 对脉冲干扰不敏感
一阶滞后滤波 Y(n) = α*X(n) + (1-α)*Y(n-1) 变化缓慢的信号 滞后效应明显

我个人最常用的是“限幅+一阶滞后”的组合。先限幅干掉尖峰,再用一阶滞后平滑信号。α值一般取0.1到0.3之间,具体看你对实时性和平滑度的要求。

经验值: 在力矩控制中,如果信号变化比较慢(比如张力控制),α取0.1左右,平滑效果好。如果是快速冲击过程(比如拧紧枪),α要取到0.5以上,否则响应跟不上。

4.4 AD转换精度与采样率

这是模块的核心指标。AD转换精度决定了你能“看”多细,采样率决定了你能“看”多快。

4.4.1 精度:多少位才够?

常见的模拟量模块有12位、14位、16位。位数越高,分辨率越高。

举个例子:一个0-10V的信号,用12位AD转换,分辨率是10V / 2^12 = 10V / 4096 ≈ 2.44mV。16位的话,分辨率是10V / 65536 ≈ 0.153mV。

是不是位数越高越好?不一定。高位数模块贵,而且对噪声更敏感。如果你的传感器本身精度只有0.5%,那用16位模块就是浪费。

我一般这样选:

  • 普通张力控制、压力控制:12位够用
  • 精密力矩控制(比如机器人关节):14位起步
  • 实验室级或高精度测试:16位

4.4.2 采样率:多快才算快?

采样率决定了模块每秒采集多少个点。常见的模块采样率从几十Hz到几kHz不等。

这里有个原则:采样率至少是信号最高频率的2倍(奈奎斯特定理)。但实际工程中,我建议留5-10倍余量。

比如一个力矩信号的变化频率是10Hz,那采样率至少20Hz,但我通常会设到100Hz以上。为什么?因为采样率太低,你捕捉不到信号的细节,控制算法也跟不上。

注意: 采样率不是越高越好。采样率太高,数据量暴增,PLC的扫描周期可能被拖慢。而且高频采样会引入更多噪声。我见过有人把采样率设到10kHz,结果CPU负载飙到90%,程序都跑不动了。要根据实际需求来。

4.5 知识体系总览

下面这张图把本章的核心逻辑串起来了。从传感器信号到PLC内部数值,每一步都有讲究。

模拟量信号采集流程 力矩传感器 输出 4-20mA / 0-10V 信号调理 隔离 / 电平转换 硬件滤波 低通滤波 AD转换 12/14/16位 软件滤波 限幅 / 平均 / 一阶滞后 PLC内部数值 工程量转换 关键参数对照 • 电压输入:0-10V,输入阻抗 ≥ 100kΩ,适合短距离、柜内 • 电流输入:4-20mA,输入阻抗 250Ω,适合远距离、强干扰 • 采样率:建议为信号最高频率的5-10倍,避免CPU过载

4.6 实战中的几个坑

最后聊几个我踩过的坑,希望能帮你省点时间。

  • 接地问题:模拟量信号的负端和PLC模块的COM端,一定要单点接地。多点接地会形成地环路,引入共模干扰。我见过一个现场,信号线屏蔽层两端都接地,结果干扰比不接还大。
  • 线缆选择:模拟量信号一定要用屏蔽双绞线。绞距越密,抗干扰越好。我曾经图便宜用了普通电线,结果信号波动大得没法用,后来全换了屏蔽线,问题解决。
  • 模块供电:有些模拟量模块需要外部供电,比如两线制传感器。供电电源的纹波要小,最好用开关电源加一级LC滤波。纹波大的电源会让信号跟着抖。
  • 采样周期匹配:PLC的扫描周期和模块的采样周期要匹配。如果模块采样率是100Hz(10ms一个点),但PLC扫描周期是50ms,那就会丢数据。我一般把模块采样率设成PLC扫描周期的2-3倍。
一个小技巧: 在现场调试时,先把模块的滤波功能关掉,看看原始信号长什么样。如果原始信号噪声很大,先查硬件问题(接地、屏蔽、供电)。硬件问题解决了,再开滤波。这样能避免“用软件掩盖硬件缺陷”的尴尬。