ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于S7-300 PLC与组态王的恒压供水系统设计与调试

基于S7-300 PLC与组态王的恒压供水系统设计与调试 每年到毕业设计季节或者项目要落地的时候总有人拿着“基于S7-300 PLC和组态王组态控制的恒压供水系统”这类题目来问梯形图怎么写、接线图怎么画、IO表怎么列。说实话恒压供水本身的技术门槛不算高核心就一句话——把管网压力当成闭环里的被调量用水量大了压力往下掉就抬变频器频率让泵多打水用水量小了压力顶上去就降频甚至切泵。真正容易把人卡住的地方是S7-300的模块选型、IO地址规划、PID功能块调用以及组态王和PLC通信时的数据对应。这篇文章就把这些环节从头到尾拆开讲给出一套可以直接参照复现的方案也把我在实际项目和调试里踩过的坑一并写出来适合自动化专业的毕设、课程设计也适合刚接触泵站控制项目的电气工程师参考。1. 系统整体设计与控制思路1.1 恒压供水到底在控什么供水系统的负载特点很特殊管网里的用户用水量随时都在变早晨和傍晚用水大深夜用水小。如果水泵一直以工频50Hz全速运行压力就会忽高忽低还白白浪费电。恒压供水的本质就是把压力变送器装在出水总管上实时量测管网压力再通过变频器调节水泵电机转速让管网压力稳定在设定值附近比如1.0MPa。这里有个容易忽略的物理背景水泵是典型的平方转矩负载转速下降10%功耗可以下降将近30%。所以变频调速在供水上的节能效果非常明显这也是为什么几乎所有的恒压供水系统都要配变频器而不是靠阀门节流。我在做项目时经常跟学生强调不要一上来就写程序先把“压力闭环”这个概念理解透。系统希望的是压力稳定但能动的执行机构是电机转速中间靠变频器连接PLC要做的事情就是读压力、算偏差、输出频率给定。至于为什么恒压供水需要PLC而不只是变频器是因为一个稍微正经一点的泵站通常不止一台泵。用水量大的时候一台变频泵顶不住要切工频、再启第二台泵变频用水量小的时候又要倒过来减泵。这种泵组切换、轮换、保护、上位机监控才是PLC存在的真正价值。所以说白了这个项目练的不只是PID还有工程上最常见的逻辑编排能力。1.2 选型思路为什么是S7-300 组态王很多人问现在S7-1200、S7-200 SMART都很流行为什么还选S7-300答案很现实毕设题目和很多存量项目就是这么定的而且S7-300本身的模块化架构适合做这类中型控制系统。我在这个项目里选的是CPU 315-2PN/DP支持PROFINET和PROFIBUS自带以太网口可以直接和组态王走TCP/IP通信不需要额外配CP343模块省事也能省钱。上位机选组态王而不是WinCC主要考虑三点。第一组态王是国产软件图库、中文支持、操作习惯都很顺手学生上手快第二授权成本低毕设和中小项目用起来没有心理压力第三组态王对西门子PLC的支持很成熟S7-300(TCP)驱动是现成的和WinCC一样能干监控、报警、曲线这些活。我手头装的版本是组态王6.60SP4在Win10 64位环境下运行稳定做这个项目够用。有人会提到组态王和S7-300走OPC UA的事那是另一条技术路线适合要和MES、数据库或其他第三方系统做数据交换的场景。如果就是本机监控直接用组态王原生驱动最省心延迟低、配置简单没必要额外加一层OPC服务。我的建议是先跑通原生驱动后续要扩展再研究OPC别一开始就给自己找复杂度。1.3 系统架构与控制流程整个系统分三层。设备层包括两台水泵电机、一台变频器、压力变送器、液位开关和各类接触器控制层是S7-300 PLC负责所有逻辑运算、PID调节和保护动作监控层是组态王通过以太网读取PLC里的变量显示工艺流程、实时趋势、报警信息同时可以下发设定压力、PID参数这些指令。信号流大致是这样压力变送器把0到1.6MPa的管网压力变成4到20mA电流信号送到SM331模拟量输入模块CPU里的PID程序算出要输出多少频率再通过SM332模拟量输出模块把0到100%的输出量变成4到20mA信号送给变频器的AI1端子变频器按照这个信号调整电机转速。这是闭环的主通道。另外还有一堆开关量信号比如接触器反馈、热继电器故障、变频器故障、水池低液位这些都是保命和保护用的一个都不能省。控制流程上系统上电后先判断手动/自动档位。自动模式下先启动一号泵变频运行PID自动调节。如果变频泵频率顶到50Hz还压不住压力说明单泵能力不够系统就把一号泵从变频切换到工频再启动二号泵变频运行。反过来当二号泵频率降到下限且压力偏高就停掉工频的一号泵恢复单泵变频状态。这样一套“一拖二”逻辑在小区增压、工业循环水这类场景里非常经典。2. IO分配与硬件接线2.1 硬件选型模块怎么配S7-300是模块化结构选型的关键不是CPU而是IO点数和信号类型。这个系统大概有十几个数字量、两路模拟量不算多但为了留扩展余量和教学示范我建议按下面这套配置来搭。电源模块PS 3075A给CPU和IO模块供电CPU315-2PN/DP带以太网口程序和组态王通信都靠它数字量输入模块SM321 DI1624V直流输入接按钮、旋钮、接触器辅助触点、热继电器触点数字量输出模块SM322 DO1624V直流输出经过中间继电器驱动接触器线圈和指示灯模拟量输入模块SM331 AI8×12Bit接压力变送器的4到20mA信号模拟量输出模块SM332 AO4输出4到20mA给变频器做频率给定变频器以ABB ACS510为例或者用西门子MM440、汇川变频器都行关键是支持外部端子启停和模拟量给定频率压力变送器两线制4到20mA量程0到1.6MPa带G1/2或M20×1.5接口选SM331的时候有个细节要注意模块上有量程卡和DIP开关必须把量程卡拨到对应电流档位通常是B或C位置硬件组态里也要把相应通道测量范围设置成4到20mA。很多新手第一次调试发现压力信号读出来是乱跳或者满量程十有八九是量程卡位置和组态不一致。2.2 IO分配表可直接作为图纸标注依据IO分配是整个项目的骨架。图纸上每一个端子、组态王里每一个变量都要追溯到这张表。我自己做项目时先把IO表定死再画接线图再写程序顺序不能反。下面这套IO分配以SM321起始地址为I0.0、SM322起始地址为Q0.0来说明SM331和SM332的模拟量地址从256开始这是S7-300的默认习惯。数字量输入分配PLC地址信号名称来源设备功能说明I0.0手动/自动切换转换开关SA1打到自动位时闭合I0.11#泵变频接触器反馈KM1辅助触点1#泵变频回路已合闸I0.21#泵工频接触器反馈KM2辅助触点1#泵工频回路已合闸I0.32#泵变频接触器反馈KM3辅助触点2#泵变频回路已合闸I0.42#泵工频接触器反馈KM4辅助触点2#泵工频回路已合闸I0.5变频器故障变频器RO3输出故障时常闭触点断开I0.6水池低液位液位开关液位过低时闭合I0.7变频器运行状态变频器RO1输出变频器运行时闭合I1.01#泵电机过载热继电器FR1过载时常闭触点断开I1.12#泵电机过载热继电器FR2过载时常闭触点断开数字量输出分配PLC地址信号名称控制设备功能说明Q0.01#泵变频接触器KM1中间继电器KA11#泵接变频器时合闸Q0.11#泵工频接触器KM2中间继电器KA21#泵接工频电源时合闸Q0.22#泵变频接触器KM3中间继电器KA32#泵接变频器时合闸Q0.32#泵工频接触器KM4中间继电器KA42#泵接工频电源时合闸Q0.4变频器启停控制中间继电器KA5闭合时变频器启动Q0.5声光报警输出蜂鸣器报警灯故障时动作Q0.6系统运行指示灯面板指示灯自动运行时点亮模拟量分配PLC地址信号名称设备与信号范围工程范围PIW256管网压力反馈压力变送器4到20mA0到1.6MPaPQW256变频器频率给定变频器AI1 4到20mA对应0到50Hz数字量输入用常开还是常闭每个项目可能有自己的习惯但有一点必须统一所有故障类信号建议接成常闭逻辑也就是正常时触点闭合PLC读到1出现故障时触点断开PLC读到0。这样做的好处是信号线断了也能被当成故障发现不会出现线掉了还以为系统正常运行的情况。这是我在现场吃过亏之后才养成的习惯。2.3 接线要点与安全互锁主回路接线是这个项目里最不能出错的部分。以一号泵为例变频回路是断路器QF1出来后进变频器输入端RST变频器输出端UVW直接接电机工频回路是从断路器出来后经KM2主触点直接接电机。这里就出现了一个致命风险如果KM1和KM2同时闭合变频器输出和工频电源会同时怼到电机端子上轻则炸变频器重则出事故。所以KM1和KM2必须做双重互锁——接触器本身加机械互锁机构PLC程序里再写软件互锁两个都不能省。控制回路上PLC的DO输出不要直接去驱动接触器线圈原因很简单PLC的DO模块带载能力有限而且感性负载通断时的反电动势容易损伤模块。正规做法是PLC输出先驱动中间继电器中间继电器触点再去控制接触器线圈。中间继电器选DC24V线圈的放在控制柜里和接触器的AC220V或AC380V线圈回路隔开抗干扰会好很多。模拟量信号线是干扰的重灾区。压力变送器到SM331这一段必须用屏蔽双绞线屏蔽层在PLC侧单端接地绝对不能两端都接地否则会产生地环流干扰不降反升。变频器到电机那段线本身就是强干扰源走线时和模拟量信号线分开至少20厘米别图省事扎在一根线槽里。我见过一个现场压力波动大到PID完全没法用最后查出来就是信号线和动力线走了同一个线槽分开之后问题马上消失。图纸方面完整的图纸集应该包含系统供电原理图、主回路图、PLC接线图、端子排接线图、组态王画面布置图五类。其中PLC接线图必须和IO分配表逐点对应端子号、线号、电缆规格都要标清楚。图纸可以手画但建议用EPLAN或CAD电气版因为后面调试改线时图纸就是命根子。3. 梯形图核心逻辑与程序实现3.1 程序结构OB、FB、FC各司其职S7-300的程序结构不像小型机那么随便想在哪写就在哪写。规范做法是把功能拆到FB或FC里OB只负责调度。这个项目我按下面的结构组织OB1主循环调用各FC处理手自动切换、泵组切换、报警逻辑OB35定时中断默认100ms一进专门调用FB41做PID运算FB41STEP 7自带的PID控制块CONT_C背景数据块是DB41FC1设备启停与泵组切换逻辑FC2报警保护逻辑DB1共享数据块存放所有工艺参数比如实测压力、设定压力、PID参数、泵切换标志这里有个关键点PID采样周期必须固定所以FB41放在OB35里调用而不是OB1。OB1是自由扫描循环执行周期受程序长短影响用它做PID会导致采样间隔不稳定参数整定整到天黑也整不出来。OB35虽然也是循环中断但周期由硬件定时器保证这才是PID的正确载体。3.2 压力采集与量程换算SM331把4到20mA转换成0到27648的整数值存入PIW256。我们要在PLC里把这个原始值换算成带物理单位的实数。STEP 7的标准库里有现成的FC105SCALE调用起来最省事。下面是用FC105把PIW256转换成实际压力MPa的程序片段。CALL SCALE, SCALE_DB // FC105需要一个背景背景数据块 IN : PIW256 // 模拟量通道原始值 0~27648 HI_LIM : 1.600000e000 // 工程量上限 1.6MPa LO_LIM : 0.000000e000 // 工程量下限 0MPa BIPOLAR : FALSE // 单极性信号 RET_VAL : MW100 // 返回错误代码 OUT : Pressure // 输出到DB1.DBD0实际压力MPa如果你不想用库函数也可以自己写换算公式逻辑更透明。原始值除以27648得到百分比再乘以量程上限就是实际压力。下面是一段等效的STL逻辑我在现场调试时常用这种方式因为变量都在自己手里看着踏实。L PIW256 // 读原始值 ITD // 转双整数 DTR // 转实数 L 2.764800e004 // 27648.0 /R // 归一化到0.0~1.0 L 1.600000e000 // 工程量上限 1.6MPa *R T Pressure // 存到DB1.DBD0梯形图形式其实就是把这些指令展开成左右母线和触点线圈逻辑完全一样只是呈现方式不同。我的习惯是凡涉及数学运算的地方用STL写更方便STEP 7的梯形图里塞太多数学指令会很乱。程序下载到PLC后梯形图和STL可以互相切换查看你完全可以在梯形图里监控这段逻辑的每一步计算结果。3.3 PID闭环调节FB41怎么用压力闭环的核心是FB41。FB41本身是一个数字PID控制器输入是设定值和过程变量的偏差输出是0到100%的控制量默认按时间比例累加积分。为了让FB41正常工作要注意几个关键参数。设定值SP_INT和过程值PV_IN必须统一量纲。工程上我习惯都换算成百分比也就是实际压力MPa除以量程再乘以100。比如设定压力1.0MPa量程1.6MPaSP_INT就是62.5。这样PID内部的偏差计算和输出限幅都符合它的设计逻辑。下面这段代码在OB35中调用FB41CALL CONT_C, PID_DB // FB41背景数据块PID_DB COM_RST : FALSE // 不在重启状态 MAN_ON : FALSE // 自动模式 PVPER_ON : FALSE // 不使用外设值作为反馈 P_SEL : TRUE // P作用打开 I_SEL : TRUE // I作用打开 D_SEL : FALSE // 先关掉微分后面整定再开 CYCLE : T#100MS // 采样周期和OB35一致 SP_INT : SP_Percent // 设定压力百分比 PV_IN : PV_Percent // 实际压力百分比 GAIN : PID_Gain // 比例增益DB1.DBD12 TI : PID_TI // 积分时间DB1.DBD16 TD : T#0MS // 微分时间先置0 LMN_HLM : 100.0 // 输出上限 LMN_LLM : 0.0 // 输出下限 LMN : Freq_Set // PID输出结果DB1.DBD8 LMN_PER : PQW256 // 同时输出到模拟量通道FB41的输出LMN是0到100%的实数对应频率0到50Hz。我把LMN直接给到PQW256SM332会把它变换成4到20mA送给变频器AI1。变频器内部再把4到20mA对应到0到50Hz一路下来比例关系就是PID输出50%频率25Hz。关于微分作用恒压供水系统管道长、响应慢属于大滞后对象微分用不好很容易放大噪声所以我把TD设为0用纯PI控制。大多数恒压供水项目纯PI就够了微分顶多在压力传感器离泵出口很近、系统反应比较灵敏的场景用一点而且值要很小。这个取舍我在后面调试章节还会细说。3.4 泵组切换与定时轮换逻辑泵组切换是梯形图里最考逻辑功底的环节。控制要求是一号泵变频运行当PID输出长时间超过95%且压力偏差仍然较大时说明这台泵已经顶满负荷还不够要加泵当两台泵运行时变频泵频率降到下限比如25Hz且压力偏高说明用水量下来了要减泵。增泵条件的程序逻辑可以这样写变量名和注释都在旁边。A Sys_Run // 系统运行标志 A Freq_Max // PID输出达到95%以上 L T#30S SD T10 // 持续30秒 A T10 S Add_Pump // 置位增泵请求熟悉STEP 7的会发现这里用了定时器TON的等效指令SD目的就是防止频率瞬间顶到上限又掉下来造成频繁切换加了30秒延时后系统稳定很多。减泵逻辑对称条件是PID输出低于20%且压力高于设定值同样延时30秒再置位减泵请求。真正容易出错的是切换动作本身。以“一号泵变频切工频二号泵变频启动”为例动作顺序必须是断开一号泵变频接触器KM1变频器停止给一号泵供电延时0.5到1秒让电机转速基本掉下来合上一号泵工频接触器KM2一号泵以工频50Hz继续供水启动二号泵变频接触器KM3同时给变频器启动信号让二号泵变频运行顺序乱会导致什么如果先合KM2再断KM1变频器输出和工频电源同时接在电机上瞬时炸机。如果在KM1断开后立刻合KM2电机在惯性转动中突然被工频电源强行带上电流冲击和机械冲击都很大水压也会剧烈波动。所以我坚持加几十到几百毫秒的间隔让切换有个“喘息”过程。这部分的梯形图逻辑说穿了不难难的是把时序的严谨性写进程序里。定时轮换很多人会忽略但这是泵站维保非常看重的一个功能。长期只让一号泵工作二号泵一直闲在那里机械密封会出问题。我习惯加一个24小时定时器时间到了以后交换主泵和备用泵让两台泵磨损均衡。逻辑上就是用一个轮换标志位M10.0切换时要根据M10.0的状态决定先变频启动哪台泵。这样一来程序里所有“主泵”“辅泵”的判断都要跟M10.0联动不能写死成1号泵永远是主泵。3.5 报警与保护逻辑报警保护程序不值得写得花哨但必须写到位。这个项目至少要覆盖下面几个工况。水池低液位是最危险的液位低于保护开关位置时必须立即停掉所有泵防止水泵空转烧坏机械密封。程序里把这个条件串在所有泵启动回路的最前面优先级最高哪怕系统正在自动运行也强制复位所有运行输出。变频器故障和电机过载的处理方式稍有不同。变频器故障时正在变频运行的那台泵要停掉故障报警上屏电机过载时对应泵的工频接触器要马上断开。如果系统是两泵同时运行单台泵故障时还要考虑剩余泵的带载能力能维持就维持不能维持就直接停机并报警。硬件上热继电器和变频器故障触点是串在接触器控制回路里的程序里再做一遍软逻辑相当于双保险。压力超上限报警我建议设在1.4MPa比设定压力1.0MPa高出40%。报警输出到组态王的同时程序里做超压停机或者强制降频具体选哪个要看工艺允不允许突然停机。小区供水场合突然停机会造成大面积停水我一般选择强制把PID输出置零让系统先降频泄压这是工程和教学题目差异比较大的地方毕设可以把逻辑做完整不讲工艺限制。4. 组态王组态与通信配置4.1 通信配置及IP规划组态王和S7-300通信最省事的方式是走以太网。CPU 315-2PN/DP自带PN口硬件组态里给这个接口设置IP地址比如192.168.0.1。工控机和PLC用网线直连或者通过交换机相连工控机IP设成192.168.0.2子网掩码255.255.255.0。组态王6.60SP4里新建IO设备路径是设备驱动→PLC→西门子→S7-300(TCP)。设备地址填PLC的IP地址192.168.0.1。这里有个容易踩的坑组态王里的“设备地址”在不同版本里含义略有不同有的直接填IP有的要填IP:机架:槽号之类的扩展格式。我的经验是先用最简形式填IP通信失败再去查驱动说明看它到底要不要带机架和槽号。通信之前先做三件事。第一用PING命令确认工控机到PLC的网络层通不通第二确认STEP 7里硬件组态下装的CPU型号和实际一致CPU的PN接口IP地址已经下载到PLC第三关掉工控机的防火墙至少在调试期间先关掉。这三件事都做了还连不上再考虑驱动版本的兼容性问题而不是一开始就怀疑组态王配置。4.2 变量定义与PLC地址对应关系组态王不认识梯形图里的符号名它只认地址。所以组态王变量定义之前最好先在PLC的DB1块里把关键数据安排好。下表是我习惯的做法。组态王变量名PLC地址数据类型读写属性实测压力MPaDB1.DBD0Float只读压力设定MPaDB1.DBD4Float读写PID输出频率DB1.DBD8Float只读PID比例增益DB1.DBD12Float读写PID积分时间DB1.DBD16Float读写系统运行标志M20.0Bit读写手动自动状态M20.1Bit只读组态王里新建这些变量时寄存器类型选择DB寄存器号填1偏移地址填0、4、8这样。需要注意S7-300的REAL类型是4字节偏移量必须按4字节对齐填0、4、8、12、16千万别在中间塞一个INT变量把偏移弄乱了。我见过一个现场组态王读回来的压力值完全没规律排查半天发现是PLC侧DB1里变量定义顺序和组态王对不齐。M区变量在组态王里同样可以读写类型选Bit地址填M20.0这种格式。有一点要提醒PLC的M区用得很随意如果组态王写的M20.0恰好和PLC程序里某个关键输出条件冲突逻辑就乱了。所以项目一开始就要规划好M区的用途段比如M20到M29专供上位机读写程序内部逻辑用别的区段。4.3 监控画面、曲线与报警设计组态王画面设计有三个层次。第一层是流程图画上两台泵、管网、水箱、变频器、压力表这些基本元素泵运行时做旋转或颜色变化动画管道用流动效果直观反映供水状态。第二层是控制面板放手自动切换开关、系统启停按钮、压力设定值输入框、PID参数输入框这些控件绑定到DB1里的相应变量。第三层是数据和记录包括实时趋势曲线、历史趋势曲线、报警窗口和操作日志。我在给毕设同学建议时会让他们把PID参数做成组态王可写变量。这样做的好处是调试时不用反复去STEP 7里改参数下载坐在上位机面前就能在线整定。很多学生PID整定整不出来就是因为改一次参数要编译下载一次耗时太长导致没有试错耐心。组态王上写参数PLC里用这些参数跑FB41整定效率能提升一个量级。组态王的历史曲线要正常使用需要先在“数据词典”里定义变量时勾选“记录”并设置存储方式为“变化记录”或者“定时记录”。我一般选变化记录变化死区设0.01既能记录关键波动又不会让历史数据库膨胀得太快。报警窗口用“报警事件”控件绑定到站点的报警变量上压力超限、泵故障、液位低这些都要提前在变量属性里勾选“允许报警”并填好报警限值。5. 调试过程与常见问题5.1 PID参数整定实录PID参数整定我建议按这个顺序来。第一步把积分和微分都关掉TI设成非常大TD设成0只留比例作用。GAIN从0.5开始慢慢往上加观察压力曲线。当GAIN加到某个值压力开始出现等幅振荡记录这个临界增益Ku和振荡周期Tu。第二步如果用的是经验整定不追求严格公式直接把GAIN取Ku的60%左右TI取1.2倍的Tu再微调。第三步恢复自动运行观察压力阶跃响应超调大就加TI响应慢就减TI。恒压供水这类系统我刚做的时候容易把GAIN调得太大。管网是一个大容积对象压力变化滞后明显增益太大会让压力还没起来PID输出已经冲过头了结果压力就来回荡。后来我总结了一个适合常见泵站的经验区间GAIN在2到5之间TI在15到60秒之间。如果压力波动周期特别长TI还要更大。微分在大多数项目里真的不需要开除非你的压力传感器离泵出口特别近、系统灵敏度特别高而且传感器信号很干净否则开了容易把噪声放大成输出抖动。另外温度PID和压力PID虽然都是PID但对象特性差很远。水温控制滞后更大容易超调压力控制响应比温度快但也存在管道延迟。之前有同学拿温度PID那一套参数直接套到压力上结果是压力和频率都在振荡怎么调都调不好。这就是没有理解不同对象的时间常数差别参数完全照搬是调不好的。5.2 通信异常与信号干扰排查组态王读不到PLC数据我排查的顺序是先PING通不通不通查网线和IPPING通了再看组态王设备恢复次数如果频繁报“设备故障”大概率是驱动选择的通信协议和PLC侧组态不一致。S7-300的PN口默认支持S7通信组态王用S7-300(TCP)驱动就是走S7协议一般不会冲突。比较隐蔽的问题是工控机上装了多个网卡组态王设备配置需要选择正确的本地网卡默认选错就会时好时坏。模拟量信号波动是另一个高频问题。压力变送器读数在小数点后第二位来回跳表现在PID输出上就是频率跟着抖。处理办法按顺序排查。第一看屏蔽层接没接、是不是单端接地第二看信号线有没有和动力线平行走线第三看变频器输出侧有没有加强干扰抑制有的变频器输出端子对地有共模电压通过电机线串扰到模拟量线上这时候可以在信号线入口加一个模拟量隔离器。程序端可以做最后一层防御就是加滤波SM331硬件组态里有数字滤波时间可以设置CPU里也可以用平均值滤波函数但滤波时间不宜太长否则压力响应变迟钝。5.3 泵组切换瞬间压力波动的处理泵组切换瞬间压力波动是现场最容易被投诉的问题。表现为工频泵切上的那一刻管网压力猛冲一下或者变频泵启起来之前压力先掉一块。前者通常是切换时序太紧凑工频电源接入时电机和管网还没稳定后者通常是切换间隔太长单泵切换期间供水能力出现缺口。我的处理办法是三步。第一在PLC里把切换间隔拆成三个延时断变频接触器后延时0.5秒合工频接触器后延时0.5秒再启动另一台泵的变频接触器。每一步都加中间标志位程序能走到哪一步一目了然。第二把切换的触发条件做成“频率上限持续30秒再加泵”而不是一瞬时顶到上限就切这样能过滤掉用水尖峰的假信号。第三如果现场条件允许把压力变送器装在出水总管中后段避开泵出口和支管汇入点测到的压力更接近管网平均压力切换动作就不会因为局部压力扰动而误触发。还有一个小技巧增泵之前把PID输出临时置一个较低的启动频率比如30Hz等两组泵都投上再切回自动PID调节。这样做的好处是启泵瞬间不会从很高的频率往下压压力冲击会小很多。这个细节我是在一个二次供水项目里试出来的做完之后切换时压力波动从0.15MPa降到了0.05MPa以内效果非常明显。我在这个项目里最大的体会是恒压供水系统的难点从来不在某一个具体功能上而在IO表、接线图、梯形图、组态王这四件事能不能对得上。IO表定错一个点图纸跟着错程序跟着错组态王变量也错调试时就变成大海捞针。所以我的习惯是先花半天时间把IO表和地址规划彻底锁死再动笔画图和编程。此外现场调试一定要随手带着STEP 7的变量表在线监控把关键中间变量拖进去比如PID输出、增泵/减泵请求、各个延时标志看逻辑走到哪里断了比对着梯形图空想要快得多。最后分享一个小经验给泵加一个定时轮换的计数器每台泵的累计运行时间都存到DB块里组态王上做一页运行时间统计这个设计看起来不起眼但在实际泵站里特别受维护人员欢迎。
返回列表