脉冲流量计接PLC总丢脉冲?K系数、上拉电阻、高速计数上限这几个坑我全踩过

🔑 关键词:脉冲流量,脉冲流量计,K系数,PLC高速计数,脉冲当量

📖 摘要:从K系数换算、上拉电阻选型、PLC高速计数上限到现场标定,把脉冲输出流量计的选型、接线、编程、调试一次讲透,附脉冲/4-20mA/Modbus三种信号的实测对比和一份丢脉冲排查清单。

脉冲流量计接PLC总丢脉冲?K系数、上拉电阻、高速计数这几个坑我全踩过

图片

一、先把「脉冲流量」这四个字拆开,它至少指三件事

仪表圈说的脉冲流量,是流量计每流过一升水往外吐多少个方波;运维圈说的脉冲流量,是 QPS 从 200 突然冲到 8000 那种突发;液压圈说的脉冲流量,是柱塞泵出口那种忽大忽小的脉动流。这三个东西除了名字里都带「脉冲」,几乎没有半点关系。我做仪表现场这几年,被问到的九成是第一种,所以这篇只聊流量计的脉冲信号。你要是想找的是后两种,现在划走就行,别浪费时间。

之所以要先说这个,是因为我在某乎上答过一个问题,底下十几条评论在吵架,一半人聊的是流量计,一半人聊的是秒杀活动的流量洪峰,鸡同鸭讲了三百多层楼。

二、脉冲 vs 4-20mA vs Modbus,我为什么说脉冲在总量计量上没对手

对比项 脉冲输出 4-20mA Modbus RTU
承载的信息 只有累积量 只有瞬时量 两者都有
传输本质 数字事件计数 模拟电流 数字报文
典型分辨率 一个脉冲=2.22mL(YF-S201) 12位ADC约0.024m³/h(0-100量程) 看寄存器位数
零点漂移 无 线性累加进总量 无
刷新速度 实时 实时 100-500ms轮询
长距离抗干扰 差,得用24V电平 好,公认 好
断线检测 基本没有 低于3.6mA报警 有超时机制
单点成本 低 中 中高

这张表我前后给人发过不下二十次。重点看第四行。4-20mA 传的是瞬时值,PLC 拿到之后必须自己按时间做积分才能得到总量,而积分一旦落在模拟域,零点漂移就变成一个恒定偏差,一天一天往总量里加。

去年秋天我在一个乡镇污水处理厂改加药系统,碰到过真事:DN80 的电磁流量计没做空管调零,零点偏了大概 0.05mA,换算成流量是 0.3 m³/h 的虚假读数。单看不多,一个月跑下来两百多方水凭空进了报表,加药泵跟着多投了十几公斤药剂。后来那台表加装了脉冲输出做比对,瞬间就露馅——没水流的时候,脉冲口真的一个脉冲都没有,而 4-20mA 那边还在稳稳输出 4.08mA。

图片

所以我的观点可能有点反直觉:脉冲输出不是低端方案,它是唯一把「积分」这件事放在数字域里完成的方案。模拟量的每一次采样都带着独立误差,脉冲的误差只有「丢脉冲」这一种,而且是可检测、可复现的。

三、决定你能不能接上的,是这四个参数

买表之前,只要有四个参数没问清楚,后面必然返工。

第一个是 K 系数,也叫仪表系数,单位通常是 pulses/L(脉冲/升)。YF-S201 这种几十块的霍尔水流传感器标称 450 pulses/L,换算成脉冲当量就是 1÷450≈2.22mL。涡轮流量计一般直接给脉冲当量,比如 1 脉冲=0.1L。有些电磁流量计让你自己设,E+H 和西门子的脉冲当量都能在菜单里改,可设范围一般对应最大 5-10kHz 的输出频率。

第二个是最大输出频率。这个最容易被忽略。YF-S201 的官方公式是 F(Hz)=7.5×Q(L/min),你跑到 30 L/min 就是 225Hz。如果流量计最大流量对应 3000Hz,而你的 PLC 输入点只能认 50Hz,那这表买回来就是个摆设。

第三个是输出类型。NPN 集电极开路、PNP 集电极开路、推挽、干簧管无源触点,这四种接法完全不一样。干簧管无源的可以直接接 DI 点,但机械触点抖动是真事,我见过一次动作出三个计数的。

第四个是电平。5V 输出和 24V 输出的抗干扰能力不是一个级别,5V 信号走 30 米以上基本就是在赌博。

图片

四、接线:上拉电阻算错,波形直接烂掉

集电极开路输出必须外接上拉电阻,这个电阻怎么选,是有算法的,不能拍脑袋拿个 10k 就上。

上拉电阻决定两件事:一是驱动电流够不够让 PLC 输入光耦可靠导通,二是上升沿够不够陡。24V 系统配 4.7kΩ,电流是 24÷4700≈5.1mA,绝大多数 PLC 输入点导通阈值在 3-7mA,够用。但如果你图省事在 5V 系统上也挂 4.7kΩ,电流只有 1.06mA,很多光耦根本打不开,表现就是「有时候能计数,有时候不计数」,最难查。5V 系统老老实实用 1kΩ,5mA。

上升沿的问题更隐蔽。100 米双绞屏蔽线的分布电容大概 5-10nF,如果上拉电阻用 10kΩ,RC 时间常数就是 10k×10n=100μs。这个数字什么概念?1kHz 信号的整个周期才 1000μs,100μs 的上升时间会让方波变成圆角梯形,PLC 高速计数器的施密特触发器在边沿上晃一下,就可能多算或者少算。

屏蔽层的处理我也踩过坑。正确做法是控制柜侧单端接地,传感器侧悬空。两头都接地会形成地环路,变频器一启动,脉冲计数就发疯。

五、PLC 侧:普通输入点和高速计数差两个数量级

这是丢脉冲的头号原因,没有之一。

图片

普通数字量输入点是靠 PLC 扫描周期去读的。S7-1200 默认输入滤波 6.4ms,扫描周期假设 10ms,那理论上最多能数到 50Hz,实际留余量得控制在 20Hz 以内,也就是 2.7 L/min 以下(按 YF-S201 算)。超过这个数,丢脉冲是必然的,不是偶发。

所以只要你的最大流量对应频率超过 50Hz,就必须上高速计数器。S7-1200 的 HSC 单相最高 100kHz,三菱 FX3U 单相 100kHz、AB 相 50kHz,这些参数在选型手册里都写着,别嫌麻烦,去看一眼。

还有个中间方案是用边沿中断计数,每个脉冲触发一次中断。这个方案能用,但脉冲频率上到 1kHz 以上,CPU 的时间全花在进出中断上了,主程序会被拖慢,得不偿失。我一般只在 200Hz 以下的场合才考虑。

六、算瞬时流量,公式不难,坑在零点

用高速计数器读累积脉冲,再开一个 100ms 的定时中断,每次中断做差,瞬时流量这么算:

Q(L/min) = ΔP × 600 ÷ K

图片

其中 ΔP 是这 100ms 里新增的脉冲数,K 是 pulses/L。举个例子,K=450,100ms 内数到 22 个脉冲,那 Q = 22×600÷450 = 29.3 L/min,正好在 YF-S201 的量程上限附近。

真正的坑不在公式,在低流量时的分辨率。同样是 K=450,流量 0.5 L/min 时,100ms 内只有 0.375 个脉冲,四舍五入就变成了 0 或者 1,瞬时流量会一直在 0 和 1.33 之间跳。这时候要么把中断周期拉长到 1s,要么瞬时值做个滑动平均,别硬扛。

另一个坑是脉冲当量设太大。有些电磁流量计为了迁就后端的低速计数器,把脉冲当量设成 1 脉冲=10L,结果小流量时半天不出一个脉冲,计量精度直接崩掉。脉冲当量的选择原则是:在你预期的最大流量下,输出频率不要超过接收端上限的 70%。

七、现场标定:K 系数别只信铭牌

铭牌上的 K 系数是出厂水标定的,介质换成污水、药剂、牛奶,这个值就变了。涡轮流量计的叶轮受粘度影响很大,粘度上去,K 值能偏 3%-8%。

我现在习惯的做法是拿一个 20L 的标准桶,或者干脆用电子秤称重,现场跑三遍取平均。实测 K = 总脉冲数 ÷ 实际容积。上次在一台 LWGY-15 上,铭牌标 1 脉冲=0.02L,实测出来是 0.0207L,偏差 3.5%,一个月下来差了好几吨水。

标定还有个前提:低流量段的线性度。涡轮流量计在量程 20% 以下线性度会明显变差,误差能到 ±3%,而额定精度是 ±0.5%。如果你要用在夜间小流量计费的场合,老老实实选电磁流量计,量程比能做到 1:100 以上,贵是有道理的。

图片

八、丢脉冲按概率排序,大概是这样

  1. 用了普通 DI 点没用 HSC,占我遇到的一半以上;
  2. 上拉电阻选错,尤其是 5V 系统还用 4.7kΩ 的;
  3. 输出类型判断错,把 NPN 集电极开路当推挽接;
  4. 干簧管机械抖动,需要软件去抖,小于 1ms 的脉冲直接忽略;
  5. 线长超过 50 米还没屏蔽,或者跟变频器输出线走同一个线槽;
  6. 脉冲当量设太小导致低频分辨率差(这个严格说不算丢脉冲,但表现很像)。

排查顺序建议从第二种往第一种倒着来,因为改电阻最快,改程序最慢。

九、最后说点个人的

脉冲输出这套东西,这些年一直被人当成低端方案,因为它便宜、接线土、看起来不像高科技。但我干得越久越觉得,它在总量计量上被低估了。

它不好用的地方很明确:不能传瞬时值,断线了没人告诉你,长距离得靠 24V 硬扛。可只要你的核心需求是「这个月到底用了多少方水」,脉冲就是最干净的那条路——信号在源头就已经是数字了,中间没有任何一次转换能偷偷给你加零点几毫安。

真要说的话,做仪表这行最贵的从来不是那几个参数,是那些一年才暴露一次的系统性偏差。

🏷️ 标签: