ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

三菱PLC+变频器+组态王恒压供水系统完整搭建与调试实战

三菱PLC+变频器+组态王恒压供水系统完整搭建与调试实战 做恒压供水这些年我见过太多人把注意力全放在“PID怎么调”上却忽略了整个系统的架构设计和通信链路的真实坑。说实话用三菱PLC配合组态王、变频器做恒压供水在中小型泵站和楼宇供水里是非常经典的一套组合但很多项目卡壳并不是卡在控制算法而是卡在模拟量采样不稳、组态王和设备对不上话、多泵切换逻辑不完善这类“看不见的暗礁”上。这篇文章我会把这套系统从硬件选型、PLC程序模块、PID整定到组态王监控画面的完整搭建过程摊开讲把我在现场调试中踩过的坑和验证过的做法一并放出来给正要动手做这个项目的朋友一条可以直接抄作业的路线。1. 一套恒压供水系统的完整组成与选型思路1.1 系统拓扑与各部分角色恒压供水核心目标是让管网出口压力稳定在设定值比如市政管网要求0.4MPa那就无论用水量怎么变系统都要把压力拉回到0.4MPa附近。听起来简单但实际运行中用水量是一个剧烈变化的量——早高峰可能瞬间从10m³/h跳到40m³/h这时候如果没有一套反应快速的闭环调节机制水压就会像过山车一样起伏末端用户的水龙头就会一会儿大一会儿小。这套系统的硬件组成拆开看大致是四块压力变送器装在供水主管道的出口端实时把压力转成4-20mA或0-10V的标准信号这是整个闭环控制的“眼睛”。三菱PLCFX系列控制核心负责采集压力信号、跑PID运算、输出频率给定、管理水泵启停和切换是“大脑”。变频器接收PLC的频率给定信号控制水泵电机的转速。通过调整电机转速来改变水泵流量和扬程是“手脚”。工控机/触摸屏组态王上位机监控层显示实时压力、频率、电流、运行状态支持远程参数设定、报警记录、历史曲线和报表导出是“仪表盘”。这套四层结构覆盖了底层仪表、控制层、执行层和监控层只要通信链路和信号链路不出问题系统的可靠性就有保障。我常用的PLC型号是FX3U配上FX3U-4AD模拟量输入模块或者自带模拟量的FX3U-32MT/DS之类的机型变频器用三菱FR-E740或者国产兼容型号上位机用组态王6.55或7.5 SP3。1.2 为什么选择“PLC变频器组态王”这个而不是别的方案有不少人问我变频器本身很多都带内置PID功能直接用变频器做恒压不就行了为什么还要绕一圈用PLC来做这个问题问到了点子上。单台变频器单台水泵的小系统用变频器内置PID确实省事压力变送器信号直接进变频器的模拟量输入端子PID参数在变频器面板上就能设好。但你一旦进入工程实际就会发现这种简单方案有几个过不去的坎变频器内置PID的逻辑运算能力很弱做不了复杂的多泵切换逻辑、定时轮换、休眠唤醒、水位联锁这些功能。现场操作人员习惯的是看组态画面、点按钮、查报表变频器面板那几行数字对他们来说不友好。后期要加监控、要接入上位调度系统变频器单一设备很难扩展。PLC变频器的组合则不同。PLC把PID、逻辑、联锁、切换全包了变频器只负责老老实实执行PLC给的频率指令各司其职。组态王则负责把PLC里的数据呈现在一个直观的界面上还能存历史数据、打报表。这个组合的灵活性和扩展性是单变频方案完全比不了的。选型的时候有一点要特别提醒模拟量模块的通道精度和响应速度直接决定了整套系统的控制品质。FX3U-4AD是12位的分辨率对应数字量0-4000用在恒压供水上足够但如果项目对压力控制精度要求特别高比如某些工业工艺用水要求±0.01MPa可以考虑16位的特殊模块或者用带模拟量的FX5U系列它的分辨率更高而且内置以太网口和组态王通信也更方便。2. PID恒压控制的核心逻辑与参数整定2.1 恒压供水为什么必须用PID恒压供水系统的控制对象——水泵管道阀门用水量——是一个非常典型的非线性、大滞后、时变系统。水泵的流量-扬程曲线不是直线管道阻力和流量成平方关系用户用水量谁也没法预测这些因素叠加在一起让“给多少频率就能得到多少压力”这种开环思路完全走不通。PID闭环控制解决的正是这个问题。它的思路非常朴素看设定压力SP和实际压力PV之间的偏差e然后根据比例(P)、积分(I)、微分(D)三项的加权组合去调整输出——也就是变频器的频率指令——直到偏差趋近于零。用水量突然增大的瞬间管网压力会掉偏差e变成负值PID运算会迅速加大输出频率水泵提速、压力回升用水量减少时压力上升PID输出下降变频器降频水泵减速。整个过程每秒钟循环执行很多次只要参数合适管网压力就能稳定在设定值附近。这里要加一句大实话恒压供水这个场景用PI就够了D基本用不上。供水管道压力信号经过长距离传输本来就有滞后和噪声微分项对噪声特别敏感稍微没调好就会让系统震荡。我见过不少工程案例PID参数里加了D之后压力波动反而更大最后把D改成0才好。所以除非你的系统滞后特别严重且压力信号非常干净否则D就用默认值0。2.2 三菱PLC的PID指令格式与参数表三菱FX系列PLC的PID指令非常好用一条指令搞定全部运算。指令格式是PID S1 S2 S3 D参数含义如下操作数含义说明S1目标值设定压力存储设定压力的寄存器如D200S2当前测量值实际压力模拟量转换后的压力值如D100S3参数表首地址PID控制参数所在的首个寄存器如D300D输出值PID运算结果传给变频器频率给定如D400S3参数表需要占用连续的寄存器这是很多新手最容易出错的地方。参数表的排列顺序是固定的地址偏移参数说明S30采样时间T单位ms建议取500-1000msS31动作方向ACT恒压供水用正动作设为0b0001的对应值S32输入滤波常数滤除压力信号的噪声一般取50-70%S33比例增益KP核心参数建议初始0.5-1.5S34积分时间TI建议初始10-30sS35微分增益KD恒压供水设0S36微分时间TD恒压供水设0S37~输出上下限等扩展参数注意有些系列要用PID指令运行后自动填入这里最容易踩的坑是FX3U的PID参数表偏移地址和FX2N不完全一样尤其是指令运行后内部会自动写入一些运算中间值所以如果你的程序里在PID指令执行前后去监控S3参数表会发现某些数据被自动改写了这是正常现象不是程序出bug。设计程序时要把参数表的地址区域和程序里其他功能用到的寄存器彻底隔离开。2.3 从零整定PID参数的实操路径整定PID参数没有捷径但有套路可循。我一般按这个顺序来第一步纯P运行。把I设成很大基本不起作用、D设成0只留比例项。从小往大加KP。KP太小时压力变化缓慢始终有静差KP慢慢加大系统响应变快但KP加到某个值之后压力开始出现等幅振荡这时候把KP退回到振荡点的50%-60%作为工作值。第二步加入积分消差。纯P运行下压力稳定后和设定值之间会有一个残余偏差比如设定0.40MPa实际只有0.38MPa。把TI从大到小逐渐减小让积分项一点点把静差吃掉。TI太大会导致消除静差太慢TI太小则会出现低频的周期性波动。第三步观察修正。完成前两步之后人为改变用水量比如突然打开一个大阀门观察压力恢复过程。恢复时间太长就稍微加大KP或者减小TI超调量太大就反向调整。反复几次就能得到一组基本可用的参数。我实际项目里用过的一组经验初始值供参考采样时间500msKP1.0TI20s输出上限50Hz对应值输出下限20Hz防止低频堵转。不同工况差别很大这组参数可以当作起点不要指望直接套用就能稳定。3. PLC程序里的三个关键模块采样、PID与泵切换3.1 模拟量采样与工程量转换PLC程序的第一步是从模拟量模块读压力传感器的值。假设压力变送器量程是0-1.0MPa输出4-20mA接入FX3U-4AD的通道1。FX3U-4AD的数字量范围是0-400012位。但要注意4-20mA对应的不是0-4000而是约800-4000因为4mA是零点。很多新手直接拿0-4000去对应0-1.0MPa结果压力显示严重偏低。正确做法是实际压力(MPa) (AD读值 - 800) / (4000 - 800) × 满量程换算到程序里用浮点运算来做。先把整数AD值转成浮点数再做减法、除法、乘法。三菱FX3U支持浮点指令用起来很方便。我还要强调一点模拟量模块的通道读值不是直接用FROM指令随便读一下就行模块初始化时需要写入控制字设定通道的量程、增益、偏移尤其是偏移量OFFSET和增益GAIN要校准好。校准方法变送器给4mA时AD值应为800给20mA时AD值应为4000。如果有偏差通过模块的偏移/增益调整功能修正。3.2 PID指令的扫描周期与稳定性处理PID指令在每个扫描周期都执行但PID本身有采样时间参数。我实际做项目时为了让PID采样时间控制准确会在PID指令外面套一个定时器比如每500ms触发一次M0然后用M0去执行PID指令。这样做的好处是采样间隔稳定不受主程序扫描周期波动的影响压力曲线更平滑。程序大致逻辑LD M0 PID D200 D100 D300 D400其中D200是设定压力目标值已经换算成和D100一样的工程单位D100是当前压力测量值D300是参数表首地址D400是PID输出值。PID输出D400需要做上下限钳位。比如变频器最低运行频率20Hz、最高50Hz换算成0-4000的给定量就是1600-4000。这个钳位逻辑很重要如果不限制PID输出可能跑到负值或者超过50Hz对应的数值轻则变频器不响应重则设备异常。3.3 变频器启停与频率给定的动手接线和参数设置PLC向变频器传递指令工程上常用两套方案模拟量给定和通信给定。模拟量给定是经典方案PLC的DA模块比如FX3U-3A-ADP或FX3U-4DA输出0-10V电压信号到变频器的模拟量输入端子三菱FR-E740的端子2和5同时用两个数字量输出点分别控制变频器的正转启动STF和反转STR供水一般只用正转。这种方案实时性好、调试直观缺点是模拟量信号容易受干扰而且接线多。通信给定是现在越来越普遍的做法PLC和变频器通过RS485串口用Modbus-RTU协议通信。PLC用专用指令写变频器的运行命令和频率寄存器。三菱FR-E740变频器作为从站站号默认是0需要根据实际设定。通信频率写入寄存器地址是H0F运行指令寄存器是H0FA。这种方式接线少抗干扰能力强还能同时读回变频器的输出电流、故障代码、运行状态非常适合恒压供水系统。通信方式唯一的隐患是调试周期略长特别是首次配置时容易因为通信参数不一致导致连不上。三菱变频器做Modbus从站需要在参数里设置Pr.117通信站号、Pr.118通信速率、Pr.119数据格式8位偶校验1停止位对应7.5版本组态王的设置要一致。PLC侧波特率、校验位必须和变频器完全一致半点马虎不得。3.4 多泵循环切换1拖N的工程智慧单台水泵配一个变频器是最简系统但恒压供水项目用水量经常变化很大一台泵在小流量时效率低在大流量时又不够用所以工程上普遍采用“一拖多”方案也就是一台变频器轮流驱动多台水泵其他泵根据需要做工频投入。我用得比较多的是“变频泵工频泵”自动切换逻辑核心思想系统启动时1号泵变频运行压力闭环调节。如果PID输出已经顶到50Hz上限且持续一段时间比如30秒实际压力仍低于设定值说明一台泵不够于是把1号泵切到工频同时变频器启动2号泵做调速。反过来如果PID输出已经降到下限且持续一段时间实际压力仍高于设定值说明水泵多了把工频泵切掉一台让剩下那台变频泵继续调速。这个切换逻辑里最需要重视的是切泵瞬间的压力波动。工频泵投入时电机直接从电网启动启动电流可达额定电流的5-7倍不仅冲击电网还会造成管网压力瞬间陡升。所以有条件的项目要用软启动器配合或者使用“先启变频泵、再切工频泵、用变频泵做缓冲”的顺序。三菱PLC的切换时序可以用定时器和顺序功能块来实现每步之间加延时确保泵已经稳定运行了再执行下一步动作。轮换逻辑也别忘了长期运行的泵会磨损所以要设计“先开的先停后开的后停”的循环轮换机制让每台泵的运行时间尽量平均延长整个机组的寿命。这部分逻辑用PLC的移位寄存器或者计数指令实现起来非常顺畅。4. 组态王画面组态与通信调试4.1 组态王与三菱PLC的设备配置组态王和PLC通信核心就三个步骤选对驱动、配置好设备参数、把变量挂到正确的地址上。打开组态王开发系统在工程浏览器的左侧树里找到“设备”节点双击“新建”驱动列表里选择三菱FX系列编程口或三菱FX3U以太网取决于你的PLC通信方式。如果是FX3U用编程口圆头422口和电脑连接注意组态王里要选对应COM口的通信参数我常用的配置是9600波特率、偶校验、7位数据位、1位停止位这和PLC通信格式设置里的D8120寄存器要一致。如果用FX5U走以太网那就简单很多在组态王里选择三菱以太网驱动填入PLC的IP地址和端口号默认可能是184FX5U需要开放对应的端口通讯超时设置一般在1000ms左右太短容易报文丢失太长界面响应会显得卡顿。这个环节新手最容易栽的坑是地址格式错误。组态王里访问三菱PLC的软元件写法有讲究数据寄存器D写D100对应PLC里的D100。中间继电器M写M0对应M0。输入X写X0或X0000取决于是8进制格式注意X和Y是八进制编址M和D是十进制。定时器、计数器T0、C0这种写法。如果地址写错组态王变量会显示超时、无数据但不会报“地址错误”排查起来特别容易让人绕圈子。我一般会在PLC程序里单独划出一片寄存器区作为通信数据交换区把所有要传给组态王的压力、频率、电流、状态、报警码先汇总到连续的D寄存器比如D500-D599组态王变量统一从这片区域读取。这样通信变量结构清晰排查问题一目了然而且还减少了对PLC主程序运行的干预。4.2 画面组态的实用设计经验组态王画面设计我总结下来就四个字够用、好用。不要花里胡哨但关键的几个东西必须有主监控画面显示系统工艺流程图包括水池、水泵、管道、压力变送器位置。实时数据用动画连接展示——压力数值用文本框关联变量水泵运行状态用颜色变化来表示运行时绿色闪烁、停机灰色。频率给定和实际频率可以用模拟仪表控件或者指针表盘显示让操作员一眼看出泵的运行工况。参数设定画面设定压力值、PID参数KP、TI等、切换压力上限下限、切换延时等。这些参数通过组态王的数值输入控件写回PLC对应的寄存器。需要强调一点PID参数画面一定要加权限管理普通的运行人员只能看不能改只有工程师权限才能修改PID参数否则一旦有人误改了KP整个系统都会失控。报警与趋势报警窗口列出压力超限、变频器故障、泵故障、水位低等事件。实时趋势和历史趋势曲线用来分析压力波动情况我习惯同时显示设定压力曲线和实际压力曲线两条线的贴合程度就是控制品质最直观的表现。组态王7.5和6.55在画面上的区别明显7.5支持更多的矢量图元、透明动画效果历史曲线控件也升级了操作手感更接近现代软件。但6.55也有它的价值——更稳定、占用资源少、老工程师更熟悉。选型原则很简单现有工程维护用6.55新开项目建议直接上7.5 SP3兼容性更好界面效果也更好。4.3 报表系统与历史数据查询恒压供水项目验收时用户通常会要求能查询历史压力和运行记录这就是报表系统的用武之地。组态王的报表系统可以做两件事实时报表按固定周期比如每小时把压力、频率、电量统计记录到报表中。我一般做一个按班次或按天汇总的报表页面操作员交接班时打印或导出当天运行数据供水吨数、平均压力、机组运行时间一目了然。历史报表查询让操作员选择一个时间段组态王从历史数据库中查询并显示每分钟或每小时的平均值。组态王的历史记录需要提前在数据词典里给变量勾选“记录”属性并设定记录频率。如果不设置画面控件里是查不到历史数据的这个环节漏掉的人特别多。5. 现场调试流程与高频坑位复盘5.1 分步调试的正确顺序整个系统装完了不要一上来就全自动联合运行大概率会出乱子。我的调试顺序是固定的每步都验证通过再进入下一步第一步单机通电检查。检查PLC运行、变频器上电是否正常逐一测试各数字量输入输出的动作确保每个按钮、每个接触器对应正确。同时校准模拟量通道用信号发生器给变送器信号核对PLC读值和组态王显示的一致性。第二步变频器手动运行。在变频器面板上手动给频率确认电机转向正确水泵反转会导致不出水确认变频器从0到50Hz的加速过程平滑、无过流报警。第三步PLC开环控制。PLC直接给定固定频率让水泵以恒定速度运行通过改变出水阀门的开度来模拟负载变化观察压力变化规律同时验证压力变送器信号采集链路完整。第四步PLC闭环PID投入。先设置一个合理的目标压力比当前实际压力略高的值让PID开始工作按照前面说的整定步骤把参数调稳。这个过程不要着急多观察几种用水量变化工况。第五步组态王联调。确认所有组态画面变量都能正常读取按钮能写PLC报警、报表正常工作。第六步多泵联合自动运行。投入自动模式测试切泵逻辑、轮换逻辑、故障保护逻辑模拟不同用水量变化场景反复验证。这套流程走一遍下来基本不会有大问题即使有问题也能快速定位到具体环节。5.2 压力波动、通信超时、时间不准三个高频坑这几个问题我在现场几乎每个项目都会遇到写出来给大家排雷。压力波动大。现象是实际压力在设定值附近来回振荡幅度比较大。排查思路先看PID输出是否在跟着压力波动如果是说明PID参数有问题——增益太大或积分时间太短适当调小如果PID输出异常但压力没有跟着变那要检查变频器频率给定环节有可能是模拟量线受干扰电压信号抖动厉害建议改用屏蔽双绞线并且单端接地。组态王通信超时。现象是画面数据偶尔跳变成“###”或者灰色过几秒自己恢复。多数原因是通信参数不匹配、COM口被占用或者通信线质量差。还有一个非常隐蔽的原因PLC程序里如果用了太多的FROM/TO指令频繁读模拟量模块和特殊功能模块会拉长PLC的通信处理时间造成上位机读取超时。我遇到过一次是PID采样周期设成了50ms而不是500msPLC一半时间都在跑PID和FROM指令组态王读数据就经常超时。把采样时间改回500ms问题立刻消失。组态王报警记录时间不对。这个问题的根源百分之九十是电脑系统时间不正确或者PLC的实时时钟和上位机不同步。组态王的报警记录用的是电脑本机时间所以开工前先把工控机的系统时间和时区设对。如果现场有对时要求可以通过PLC读取GPS校时模块再用组态王脚本写入系统时间但一般项目没这个必要手动校时就好。5.3 一套可复用的信号核对清单每次调试我手里都会拿一份信号核对表逐项打勾。分享一份精简版检查项目方法判定标准压力变送器供电万用表量端子电压DC 24V±5%范围内压力信号面板显示与压力表比对偏差不超过量程的0.5%PLC AD采样值组态王或编程软件监控与万用表实测电流对应PID输出方向人为改变设定压力观察输出压力低于设定值时输出变大变频器频率响应对比PID输出与变频器显示延迟不超过1-2秒通信读写组态王写一个已知值PLC侧收到且正确泵切换时序触发切泵条件看动作顺序严格按照程序设计执行这张表贴在调试记录本的第一页每次做项目都用它能省掉大量的重复排查时间。6. 从控制系统到交钥匙产品我的一点产品化体会做到这里一套完整的恒压供水控制系统就出来了。但标题里提到“我们主要的后发送的产品”我得坦白说一句——做技术项目跟做产品是两个完全不同的阶段。很多人在实验室或者现场调试好了一套系统觉得自己能做产品了但真正到了批量交付的时候会发现差距在细节上。产品化的核心是标准化。首先是硬件标准化控制柜的尺寸、内部布局、端子排布、线号标识、图纸模板都要定下来。我见过太多项目控制柜内部布线随心所欲第一台和第二台完全不一样维护时痛苦的永远是下一个接手的人。其次是程序标准化为不同功率、不同泵数的系统建立模板程序共用核心模块只改参数不重写逻辑。最后是文档标准化操作手册、原理图、接线图、使用说明、验收清单都要齐备让一个没参与过开发的人也能完成安装调试。我个人的经验是如果你的目标是“交付项目”那一套好用的系统就够了如果你的目标是“做出产品”那就必须在系统之外把安装布线的工艺、出厂调试的流程、售后维护的工具包都一并打磨出来。做产品的最好处是当项目数量多起来之后标准化的边际成本会越来越低整体交付效率会越来越高。最后再分享一个我惯用的小技巧收尾的时候特别管用在组态王里给主监控画面增加一个“一键巡检”按钮点击之后系统自动轮流检测每台泵的手动/自动状态、变频器通信状态、压力变送器信号是否在线、各阀门位置反馈是否到位结果汇总成一张表格弹出来。调试阶段的效率能大幅提升交付时用户看到这个功能一般都会觉得系统做得认真、细致。这算是一个低成本高回报的加分项谁用谁知道。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进