一个完整案例:压力传感器进来,PID 算出变频器频率,维持管网恒压。从采集、运算到输出一条线走通。
家里用水,一开水龙头水就猛、关了又没水,是谁在捣乱?多半是水泵只有「开/停」两档。压力一低就启动,到上限就停,管网压力就在这两头之间来回晃。要稳,得让泵能「慢一点、快一点」连续调——这就要变频器。先看看定频是啥样。
水泵出口装个压力变送器,把 0~1MPa 的压力变成 4~20mA 的电流。这根电流线接到 PLC 的模拟量输入模块,模块把它转成数字,存在数据寄存器里。我们用 FROM 指令,把模块通道 0 的值读进 D0——这就是 PLC「看见」的实时压力。
得先告诉 PLC 想要多少压力,把目标压力写进 D10,比如 500 代表 0.5MPa。光有目标不够,还得有实测——D0 就是实测压力。两个一减就是偏差:偏差大说明离目标远,偏差小说明快到了。PID 要的就是这个偏差。
重点来了:PID 指令吃进目标 D10、实测 D0,自己算好比例、积分、微分,从参数块 D100 取系数,吐出频率给定存到 D20。参数块里 Kp 管反应快慢、Ki 管消除静差、Kd 管别冲过头。一个指令,就把「偏差」变成「该给变频器多少频率」。
D20 是 0~4000 之类的数,代表 0~50Hz。用 TO 指令把它写进模拟量输出模块,模块再把数字变成 4~20mA 送变频器,变频器就按这个频率拖水泵。压力低→偏差大→频率高→泵转快→压力回升,反过来也一样。这就是连续调节。
把四步串起来:FROM 读压力进 D0,PID 用 D10 和 D0 算出 D20,TO 把 D20 送变频器。每秒扫几千遍,压力永远贴着目标走,开水龙头也不晃了。模拟量让 PLC 看见连续量,PID 教会它「差多少补多少」,这才是 PLC 干真正活的地方。