一罐本该2吨的水,屏幕累到了5吨
去年帮一个做纯水设备的客户看批控计量问题。DN25涡轮流量计,脉冲输出,接西门子S7-1200的高速计数器,触摸屏上显示累计流量。操作工说,设定2吨关阀,结果屏幕上到了2吨就关,实际罐里才装了0.8吨多,接连两批产品不合格。
第一反应是表坏了,客户换了一台新表,还是这样。第二反应是计数器丢脉冲,拿示波器去量,波形干干净净,没丢。最后把程序打开,问题在“脉冲当量”那一栏:表体标签印的是1脉冲 = 0.1 L,程序里填的是0.25 L/pulse。显示值 = 真实值 × 2.5,2吨对应0.8吨,数字正好对上。
这事让我印象很深。脉冲流量这东西,最大的坑从来不在流量计本体,而在“从脉冲数到流量数”这条换算链路上。表是准的,脉冲也是准的,可中间任何一环写错一个数,屏幕上的数就彻底没法信了。
下面按我现场排查的顺序写,从信号长什么样、频率怎么算,到最常见的五个坑。
二、脉冲信号长什么样,频率和流量到底怎么换算
脉冲输出的流量计,常见的是涡轮、椭圆齿轮(容积式)、涡街,部分电磁和科氏力也有脉冲口。输出电路形式主要有几种:干簧管或霍尔(三线,通常要外加上拉)、集电极开路OC(分NPN和PNP两种)、推挽输出。推挽的驱动能力强一些,长线抗干扰也相对好,但接PLC之前一定要先确认是源型还是漏型,接反了就是时有时无地计数。
换算公式只有一个,记住它基本能解决八成疑问:
f(Hz)= Q(m³/h)× K(脉冲/立方米)÷ 3600
其中K就是脉冲当量。厂家有时候不叫K,叫“仪表系数”,有时候给的是 imp/L,比如1000脉冲/升,那换算成立方米就是1,000,000脉冲/m³,这两个单位之间差1000倍,这就是第一个高频出错点。
举个具体的例子。DN50涡轮,K = 10000脉冲/m³,也就是1脉冲 = 0.1 L。
- 流量10 m³/h时:f = 10 × 10000 ÷ 3600 ≈ 27.8 Hz,每秒约28个脉冲;
- 流量打到上限60 m³/h:f ≈ 166.7 Hz;
- 量程比按1:20算,最小流量0.5 m³/h:f ≈ 1.39 Hz,也就是大约0.72秒才来一个脉冲。
最后这一行很关键。0.72秒一个脉冲,意味着你要是拿PLC做1秒窗口的瞬时流量计算,计数器这一秒数到1个还是2个,算出来就是0.36或者0.72 m³/h,跳动幅度大得吓人。这不是表的问题,是脉冲当量在这个流量点上太粗了。
所以选型的时候有一个绕不开的矛盾:脉冲当量调小,小流量响应快、分辨率高,但大流量时频率会顶到计数器上限;调大则反过来,大流量轻松,小流量就变成几秒一个脉冲。
顺手算一下这个上限有多远。假设计数器能稳定认到100 kHz,K = 10000脉冲/m³时,对应的流量是 Q = 100000 × 3600 ÷ 10000 = 36000 m³/h,远够用。但如果用的是高分辨率的小口径表,K = 1000脉冲/升 = 1,000,000脉冲/m³,同样100 kHz,对应流量只有360 m³/h,对某些大管道来说就有点紧张了。再加上中间还隔着隔离器、光耦、几百米电缆,实际能稳定认到的频率通常明显低于PLC手册上写那个数。
三、脉冲和4-20mA,误差长的地方不一样
很多人默认“脉冲比模拟量准”,我认为这句话只对了一半,得看你要的是瞬时量还是累计量。
4-20mA给的是瞬时值,累计量要靠PLC自己积分。采样周期100ms,流量又在波动,这个积分误差是叠加的,一整天跑下来不容忽视。而且模拟量的分辨率是有限制的:12位AI,4096个码值铺在16mA量程上,每个码值大约0.0039 mA,相对满量程约0.024%。看着很高,但这是相对满量程算的——如果在正常生产里流量只用到量程的5%,那个绝对误差在相对意义上就放大了20倍。
脉冲给的是一串离散事件,累计量天生不依赖采样周期,一个脉冲就是一份体积,没有量化误差。代价是:丢一个脉冲就是永久丢失,多一个脉冲也是永久多出来,它不会自己回归。
我自己的取法是:定量灌装、批控、贸易结算这类看累计量的场合,优先脉冲;纯监视瞬时值、要画平滑曲线、要送PID做调节的,走4-20mA或者RS485读寄存器更省心。现在很多表其实是三件套都给,脉冲和4-20mA同时输出,让上位机各取所需,没必要二选一。
四、现场最容易踩的五个坑,按排查顺序排
1)脉冲当量单位错。imp/L和imp/m³差1000倍,再加上程序里可能还乘了一次系数,能差出天文数字。核对方法不用猜:让流量计走一个已知体积(标准桶或称重法都行),同时数脉冲数,用体积除脉冲数反推真实K值,再和铭牌对。这一步花二十分钟,比后面排查三天强。
2)脉冲宽度太窄,被PLC漏掉。有部分表的脉冲宽度只有几十微秒到0.1 ms,普通数字量输入点自带滤波(常见默认在毫秒级),根本认不到,必须接高速计数器专用输入点。而且高速计数器也不是随便设的,要选对计数模式(单相、双相、A/B相),滤波器参数要放宽。排查办法:把流量稳定在某一点,看计数器每秒增量和理论值对不对,别只看总量。
3)干扰导致多计数。表现很典型:泵停了、管道空了,计数器还在慢慢往上爬。这基本就是干扰。处理顺序是先查屏蔽层是不是单端接地、信号线和动力线是不是分了槽、有没有和变频器共用一根桥架。变频器一启动计数就乱跳的,八成是共地问题,加个信号隔离器通常能解决。
4)NPN/PNP接反或者上拉电阻漏了。集电极开路输出如果不加上拉电阻,PLC端电压会浮着,现象就是有时计数有时不计数,特别容易被误判成“表间歇性故障”。
5)最小流量以下没有脉冲。这不是故障,是物理上测不到。夜间小流量漏损、滴漏,一个通宵可能一个脉冲都没有。这种情况换小口径或者换另一种测量原理的表,比在程序里调参数有用得多。
五、选型时我会问的六个问题
- 最大流量、最小流量各是多少?注意是最小流量,不是常用流量;
- 累计量要分辨到多少升?这直接决定脉冲当量下限;
- 最大流量时的脉冲频率是多少,计数器上限是多少,两者差几倍余量;
- 最小流量时的频率是多少,批量控制要求的刷新时间是多长(要0.1秒刷新,就至少要10 Hz);
- 输出类型是NPN、PNP、推挽还是干接点,供电是24V还是12V,PLC输入是源型还是漏型;
- 电缆多长,和变频器是否同桥架,要不要预留加隔离器的位置。
这六个问题问完,脉冲流量这块基本不会出大错。
最后说个我自己的观点:别把“脉冲输出”当成“高精度”的代名词。它精确的是计数这件事,不是测量这件事。表不准,脉冲数得再准也没用;表很准,脉冲链路丢一个,累计量就永久偏了,而且还看不出来。从表体、脉冲当量、电缆、隔离、PLC输入滤波、计数器模式,一直到程序里那一行单位换算,任何一环出错,屏幕上那个数字都不值得信。