1. 为什么4~20mA至今没被淘汰:先搞懂信号本身的脾气
刚接触PLC模拟量采集的人,十有八九是从4~20mA开始的。变送器、流量计、压力传感器、液位计,翻开机身上的铭牌,输出信号那一栏大概率写着"4-20mA两线制"或"4-20mA三线制"。很多人第一反应是:现在都什么年代了,怎么还在用电流环?直接走RS485或者以太网传数字量不香吗?
这个问题我当年也问过带我的老师傅,他回了一句让我记到现在的话:"你去化工厂的泵房待一天就明白了。"车间里变频器、接触器、大功率电机全在同一个桥架里跑,电磁环境恶劣到示波器探头夹上去全是毛刺。数字信号在这种环境下要么加隔离要么加中继,成本上去了可靠性还未必稳。而4~20mA是电流环传输,电流在回路里处处相等,线路上的感应电动势很难改变回路电流值,抗干扰能力天然就强。再加上两线制变送器可以靠回路供电,现场只需要两根线,布线成本极低。
但"抗干扰强"不等于"随便接就能用"。我见过太多新手把变送器正负极接反、把屏蔽层两端都接地、把24V电源和信号线捆在一起走线,然后对着PLC里跳来跳去的数值抓耳挠腮。下面这5个坑,基本覆盖了新手在4~20mA采集上会踩的90%的雷。
提示:本文讨论的4~20mA采集,默认指PLC侧模拟量输入模块接收电流信号,变送器侧为常见的两线制或三线制输出。不同品牌PLC的模块接线方式和量程配置有差异,但底层原理相通。
2. 坑一:两线制变送器接线接成"三线制",回路根本没闭合
2.1 两线制和三线制的本质区别
这是新手最容易犯的错,而且往往接错了还能"看到数",只是数值不对,所以排查起来特别迷惑。
两线制变送器只有两根线,这两根线既是供电线又是信号线。电流从PLC模拟量模块的24V供电端流出,经过变送器,再回到模块的电流输入端子,形成一个完整的回路。变送器本身消耗的电流(通常3.5mA左右)加上信号电流(4~20mA),总电流在4~20mA范围内变化。模块测量的是回路电流,对应就是被测量的大小。
三线制变送器有三根线:电源正、电源负(公共端)、信号输出。电源和信号是分开的,信号线输出的是电流或电压,电源单独供电。
问题来了:很多新手拿到一个两线制变送器,看到模块上有"24V+""AI+""AI-"三个端子,就想当然地把变送器正极接24V+,负极接AI+,然后AI-接电源负极。这样接,变送器确实通电了,但信号回路没有经过模块的采样电阻,模块读到的要么是0,要么是满量程,要么是随机的漂移值。
2.2 正确的两线制接线方式
以常见的西门子S7-200 SMART模拟量输入模块为例,两线制变送器的正确接法是:
- 变送器正极接到模块的24V DC输出端(或外部开关电源正极)
- 变送器负极接到模块的AI+端子
- 模块的AI-端子接到电源负极(与24V形成回路)
这样电流从24V+出发,经过变送器,从AI+流入模块内部采样电阻,再从AI-流出回到电源负极。模块测量到的就是完整的回路电流。
注意:有些PLC模块的AI+和AI-之间内部已经集成了采样电阻,外部不需要再加。但有些模块需要外接精密电阻把电流转换成电压再采集,这种模块的接线方式又不一样。拿到模块第一件事是翻手册看内部等效电路图,不要凭经验硬接。
2.3 一个快速判断接线是否正确的方法
拿万用表串联在回路里测电流。如果变送器正常工作时回路电流在4~20mA之间变化,说明接线正确。如果电流恒定在20mA以上或者接近0,基本可以确定回路有问题。这个方法比盯着PLC里的数值猜要靠谱得多,因为万用表测的是真实物理量,不受模块配置影响。
我自己的习惯是:新项目第一次接线,先不接PLC模块,用万用表串联在24V电源和变送器之间,确认变送器能正常输出4~20mA,再接模块。这样能把变送器问题和接线问题分开排查,省很多时间。
3. 坑二:量程配置和变送器量程对不上,数值永远差一截
3.1 模拟量模块的原始值与工程量转换
PLC模拟量模块读到的原始值(比如0~27648、0~32767、0~4095等)需要经过标定转换成实际的工程量(比如0~1.6MPa、0~100℃)。这个转换过程涉及两个量程:模块的硬件量程和变送器的量程。
模块的硬件量程决定了原始值的范围。比如西门子S7-200 SMART的模拟量输入模块,4~20mA对应的原始值是5530~27648。三菱FX系列4~20mA对应的是0~4000(不同型号有差异)。这些数值在模块手册里都能查到。
变送器的量程决定了4mA和20mA分别代表什么物理量。比如一个压力变送器标称0~1.6MPa,意思是4mA对应0MPa,20mA对应1.6MPa。
转换公式是:
实际工程量 = (原始值 - 原始值下限) / (原始值上限 - 原始值下限) × (变送器量程上限 - 变送器量程下限) + 变送器量程下限3.2 最常见的量程配置错误
新手最常犯的错误是:变送器是0~1.6MPa,但在PLC程序里按0~1.0MPa来标定。结果就是压力到了1.0MPa,PLC显示1.0MPa,但实际压力才0.625MPa。这种错误在调试时如果不用标准压力源校验,很难发现,因为数值看起来"在动"。
还有一种情况是变送器量程被改过但程序没改。有些变送器支持现场调整量程,比如把0~1.6MPa改成0~1.0MPa,但PLC程序里的标定参数还是老的。这种问题往往在设备运行一段时间后才暴露,因为操作工发现显示值和实际工况对不上。
3.3 标定参数的正确设置流程
我的做法是分三步:
- 确认变送器铭牌上的量程,拍照存档
- 查PLC模块手册,确认4mA和20mA对应的原始值
- 在程序里用这两个原始值和变送器量程做线性变换
如果变送器量程可调,还要确认现场实际设置的量程是多少。有些变送器用HART手操器改过量程,铭牌上还是老的,这种情况必须用手操器读一下实际量程。
提示:对于精度要求高的场合,建议用标准信号源(比如4~20mA信号发生器)在模块端注入标准电流,记录PLC读到的原始值,反推出实际的转换系数。这样能消除模块本身的零点漂移和增益误差。
4. 坑三:屏蔽层接地方式不对,干扰比不接还大
4.1 屏蔽层的作用和接地原则
4~20mA信号线通常用双绞屏蔽线。屏蔽层的作用是屏蔽电场耦合干扰,但屏蔽层本身如果处理不当,反而会成为干扰的引入通道。
基本原则是:屏蔽层单端接地。通常是在PLC柜侧接地,现场变送器侧悬空。这样屏蔽层上的感应电荷可以通过接地端泄放,而不会形成地环路。
如果两端都接地,当两个接地点之间存在电位差时,屏蔽层上会有电流流过,这个电流产生的磁场会耦合到信号线上,反而引入干扰。在大型工厂里,不同接地点之间的电位差可能达到几伏甚至几十伏,这种干扰足以让4~20mA信号产生明显波动。
4.2 现场常见的错误接法
我见过最离谱的一种接法:屏蔽层接在变送器的金属外壳上,而变送器外壳又通过安装支架和管道连通,管道本身是接地的。这样屏蔽层实际上通过管道接地了,而PLC柜侧也接地,形成了两端接地。
还有一种情况是屏蔽层和信号线一起被压接在端子里,导致屏蔽层和信号线短路。这种问题在接线密集的柜子里特别容易发生,因为线头处理不干净,屏蔽层的编织网有散丝。
4.3 正确的屏蔽层处理方法
- 剥线时保留一段屏蔽层,用热缩管包住裸露的编织网
- 在PLC柜侧,把屏蔽层拧成一股,接到柜内的接地铜排上
- 现场侧,屏蔽层剪掉,用绝缘胶带包好,不要接触任何金属
- 如果信号线要经过中间接线盒,接线盒内的屏蔽层要连通,但不要接地
注意:有些场合(比如变频器输出侧)干扰特别强,单端接地可能不够。这时候可以考虑用双屏蔽电缆,内屏蔽层单端接地,外屏蔽层两端接地。但这种情况比较少见,大部分4~20mA采集场景单端接地就够了。
4.4 一个判断屏蔽层是否引入干扰的土办法
把屏蔽层从接地端拆下来,观察PLC读数的波动情况。如果拆掉后波动变小,说明屏蔽层接地方式有问题。如果拆掉后波动变大,说明屏蔽层在起作用。这个方法虽然土,但在现场排查时很有效。
5. 坑四:24V电源和信号线混走,变频器一启动数值就飞
5.1 干扰的来源和耦合路径
变频器、伺服驱动器、接触器线圈这些设备在工作时会产生强烈的电磁干扰。干扰主要通过两种路径耦合到信号线上:传导耦合和辐射耦合。
传导耦合是指干扰通过电源线、地线等导体直接传到信号回路。比如变频器的输入电源和PLC的24V电源接在同一路空开上,变频器工作时产生的谐波会通过电源线传到24V电源,再影响到模拟量模块。
辐射耦合是指干扰通过空间电磁场耦合到信号线上。信号线和变频器输出线如果捆在一起走线,变频器输出线上的高频开关信号会通过分布电容耦合到信号线上。
5.2 布线的基本规则
- 信号线和动力线分开走线,间距至少20cm。如果必须交叉,尽量垂直交叉
- 信号线不要和变频器输出线(U/V/W)平行走线
- 24V电源如果和变频器共用,建议加隔离模块或者单独配一个开关电源
- 模拟量模块的供电和数字量模块的供电分开,减少数字电路对模拟电路的干扰
我做过一个项目,现场有32台变频器,PLC柜和变频器柜在同一个配电室。一开始模拟量信号波动很大,变频器一启动,压力值就跳变0.1MPa以上。后来把信号线全部换成双绞屏蔽线,单独走线槽,和动力线间距拉到30cm,波动降到了0.01MPa以内。
5.3 已经布好线了怎么补救
如果线已经布好了,重新布线成本太高,可以尝试以下方法:
- 在模拟量模块的电源输入端加磁环,抑制高频干扰
- 在信号线靠近模块的一端加RC滤波电路,截止频率根据信号变化速率来定
- 如果干扰特别严重,考虑用信号隔离器,把现场信号和PLC模块隔离开
信号隔离器的选型要注意:隔离电压要足够(通常1500V以上),精度要满足要求(0.1%或更高),供电方式要和现场匹配。
6. 坑五:程序里不做滤波和断线检测,故障了都不知道
6.1 为什么需要滤波
即使硬件上做了屏蔽和隔离,PLC读到的模拟量值仍然会有小幅波动。这是正常的,因为变送器本身有噪声,模块的AD转换也有量化误差。但如果波动超过一定范围,就需要在程序里做处理。
不做滤波的后果是:操作工看到数值一直在跳,不知道哪个是真实值。更严重的是,如果把这个值用于闭环控制,波动会被放大,导致执行机构频繁动作。
6.2 常用的滤波方法
算术平均滤波:连续采样N次,取平均值。N越大,滤波效果越好,但响应越慢。对于温度、压力这类变化缓慢的信号,N取10~20比较合适。
一阶滞后滤波:也叫惯性滤波,公式是:
本次滤波值 = 滤波系数 × 本次采样值 + (1 - 滤波系数) × 上次滤波值滤波系数越小,滤波效果越强,但响应越慢。通常取0.1~0.3。
中值滤波:连续采样N次,去掉最大值和最小值,剩下的取平均。适合有脉冲干扰的场合。
我的习惯是:先用一阶滞后滤波做粗滤,再用算术平均做细滤。这样既能抑制随机噪声,又能保证一定的响应速度。
6.3 断线检测的实现
4~20mA信号的断线检测很简单:如果模块读到的原始值低于4mA对应的值(比如西门子S7-200 SMART低于5530),说明回路断了或者变送器故障。
程序里要做的处理:
- 设置一个断线阈值,比如原始值低于5000就判定为断线
- 断线时输出报警,同时把该通道的值保持为断线前的值或者置为安全值
- 如果这个信号参与联锁,断线时要触发联锁动作
注意:有些模块在断线时会读到0或者负值,有些会读到满量程。具体行为要看模块手册。调试时可以把变送器线拆掉,观察PLC读到的值,确认断线时的表现。
6.4 一个完整的模拟量处理程序框架
以西门子S7-200 SMART为例,一个典型的模拟量处理流程是:
- 读取模块原始值(AIW寄存器)
- 判断是否断线(原始值 < 5530 或 > 27648)
- 如果断线,报警并保持上次有效值
- 如果正常,做一阶滞后滤波
- 做量程转换,得到工程量
- 做上下限报警判断
- 输出到HMI和上位机
这个框架看起来简单,但每一步都有细节。比如断线判断的阈值不能设得太贴近5530,否则信号在4mA附近波动时会误报。我一般把阈值设在5000左右,留一点余量。
7. 从现场调试角度补充几个容易被忽略的细节
7.1 变送器的供电电压够不够
两线制变送器需要一定的供电电压才能正常工作,通常是12~36V。如果回路里串了太多设备(比如隔离器、安全栅),或者线缆太长导致压降太大,变送器可能供电不足,输出电流达不到20mA。
计算回路总压降:变送器自身压降(通常7~12V)+ 模块采样电阻压降(通常1~2V)+ 线缆压降(根据线径和长度计算)。如果24V电源减去这些压降后低于变送器的最低工作电压,就会出现"大信号时输出不上去"的问题。
我遇到过一次:变送器在实验室测试正常,到现场后20mA时只能输出18mA。查了半天发现是线缆太长(300米),线径又细(0.5mm²),线缆压降太大。后来换了1.0mm²的线缆就正常了。
7.2 模块的共模电压范围
模拟量模块的输入端有共模电压范围限制。如果变送器的负极和模块的AI-之间存在较大的共模电压(比如变送器外壳接地,而模块的AI-和地之间有电位差),模块可能读不准甚至损坏。
解决方法是:确保变送器的信号回路和模块的参考地之间没有大的电位差。如果无法避免,用隔离型变送器或者加信号隔离器。
7.3 上电顺序的影响
有些场合,PLC和变送器由不同的电源供电。如果PLC先上电,变送器后上电,模块在变送器未上电时会读到断线值。如果程序里没有做延时处理,可能会触发误报警。
我的做法是:在程序里加一个上电延时,比如PLC上电后30秒内不判断断线报警。等变送器都上电稳定了,再开始正常判断。
7.4 定期校验的必要性
4~20mA变送器用久了会有漂移,尤其是压力变送器和差压变送器。建议每年至少校验一次,用标准压力源或信号源检查零点和满量程。
校验时要注意:先检查4mA对应的零点,再检查20mA对应的满量程。如果零点偏了,先调零点,再调满量程。反复调几次,直到零点和满量程都在允许误差范围内。
8. 写在最后:几个我踩过的坑和总结的经验
第一个坑是"想当然"。看到两线制变送器就按两线制接,没注意模块的AI+和AI-内部结构,结果接错了还以为是程序问题。后来养成了习惯:拿到任何模块,先看手册里的等效电路图,确认采样电阻的位置和接线方式。
第二个坑是"忽略电源"。有一次现场调试,模拟量信号一直不稳,查了屏蔽、查了布线、查了程序,最后发现是24V开关电源的纹波太大。换了一个品质好一点的电源,问题就解决了。电源是模拟量采集的基础,电源不稳,后面做什么都是白搭。
第三个坑是"不做记录"。调试时改了哪些参数、换了哪些线、调了哪些量程,当时记得,过两个月就忘了。后来养成习惯:每次调试完,把关键参数和改动记录在案,贴在柜门内侧。下次维护时省很多事。
4~20mA信号采集这件事,说难不难,说简单也不简单。硬件接线、量程配置、屏蔽接地、布线隔离、程序滤波,每个环节都有讲究。新手最容易犯的错是只关注其中一个环节,忽略了其他环节的配合。实际上,这五个环节是相互关联的:接线错了,量程再对也没用;屏蔽没做好,程序滤波再强也压不住干扰;电源不干净,什么措施都是治标不治本。
我的建议是:新项目从设计阶段就把这五个环节都考虑进去,不要等到调试时再一个个补。设计时多花一天,调试时能省一周。