1. 项目整体思路与需求拆解
接手这个项目的时候,现场已经有一套老旧的中央空调机房控制柜,里面用的还是传统的继电器加接触器逻辑。控制柜一到高温天就靠人工盯水温,冷冻水泵不管末端负荷多大都是工频满速跑,电费账单那叫一个难看。业主提的需求很明确:把机房里的主机、冷冻水泵、冷却水泵、冷却塔风机全部纳入自动控制,同时在中控室能远程看到运行状态、温度曲线和历史数据。我给出的方案就是三菱PLC加组态王,这也是中小型楼宇自控和机房节能改造里最成熟的组合拳。
1.1 控制对象与工艺范围确认
中央空调机房的控制对象看着多,其实归类下来就四大块:制冷主机、水系统、风系统、末端传感。
制冷主机这块,我采用的是“只监不控”思路。主机是某品牌的螺杆机,自带完整的微电脑控制系统,我们强行给它发启停信号反而容易出问题。正确做法是把主机的运行状态、故障报警、压缩机启停状态这些干接点信号接入PLC,PLC按照水温和时间策略给主机的控制柜发一个干接点启停命令,让主机自己执行内部的开机预热流程。这样既实现了联动,又不破坏原厂逻辑。
水系统是控制的核心。冷冻水侧有四台冷冻水泵,两用一备一检修;冷却水侧有三台冷却水泵,也是一开一备一检修的思路。所有水泵都配了变频器,接受PLC的0-10V模拟量信号进行调速。电动阀门方面,每台主机对应的冷冻水、冷却水电动蝶阀都接了DO控制点,阀门开到位、关到位反馈接入DI点。
风系统相对简单,四台冷却塔风机,每台功率不大,我用的是直接启停控制,没有上变频器。冷却塔风机的控制逻辑其实很有讲究,后面单独说。
传感系统是整个系统的眼睛。冷冻水供回水温度、冷却水供回水温度各用一路PT100热电阻;冷冻水供回水压力、冷却水供回水压力用四路4-20mA变送器;冷冻水总管流量用一台电磁流量计,也是4-20mA信号。点位统计下来大概是:AI点11个,AO点4个,DI点24个,DO点12个。这个规模用一台三菱FX3U-64MR的主机加两块模拟量扩展模块就能覆盖,性价比很高。
1.2 为什么选三菱PLC而不是其他方案
项目选型的时候,其实有人提过用DDC控制器或者直接用触摸屏加微型PLC的方案。我没有采纳,原因很直接,这个项目要的不是“能跑”,而是“稳定跑十年”。
三菱FX系列PLC在这个领域有先天优势。首先是可靠性,工厂环境里的电源波动、电磁干扰、温度变化,FX系列见得多了,故障率确实低。其次是生态完善,GX Works2编程软件成熟,仿真调试方便,后续维护人员上手成本低。很多做设备维护的师傅,别的PLC可能不熟,但三菱的指令系统基本都有接触,这对业主来说是非常重要的隐性成本。
模拟量处理上,FX3U配合FX3U-4AD和FX3U-4DA模拟量模块,分辨率足够了。4AD模块是16位精度,对应0-4000的数字量范围,对于水温、压力、流量这些慢变化信号已经绰绰有余。而成本上,一套FX3U系统比起西门子S7-1200配合模拟量模块的方案要便宜不少,比起AB、欧姆龙的高端系列更是优势明显,对于预算敏感的改造项目来说很有吸引力。
用组态王做上位机,同样是基于务实的考量。组态王在国产组态软件里装机量最大,资料多,驱动齐全,尤其是对三菱FX系列的支持非常成熟,开发周期短。更重要的是,很多最终用户的管理人员接触过组态王,后期让他们自行查看数据和报表,学习成本几乎为零。软件选型这种事,不能光看技术指标,也得看谁在用、谁在维护。
1.3 控制系统架构与控制模式设计
整套系统采用三层结构。现场设备层包含传感器、变频器、电动阀、水泵、冷却塔风机;控制层是PLC主站,负责所有逻辑运算和联锁保护;监控层是工控机里的组态王运行系统,通过串口或者以太网与PLC通讯。这个架构在行业内属于最经典的布局,既不花哨,也不容易出问题,维护起来思路清晰。
控制模式上我设计了三种:手动模式、自动模式和远程模式。手动模式是设备检修时用的,直接通过柜门上的转换开关点动控制,PLC不参与逻辑判断,纯粹是硬线回路控制。这种设计至关重要,真到了现场检修水泵电机的时候,你绝对不会想让PLC程序干预你的操作。自动模式是日常运行模式,PLC根据温度、压力、流量信号自动完成水泵启停、阀门切换、变频调速、故障倒机等逻辑。远程模式则是中控室通过组态王下发指令,PLC接收指令后执行,同时把实时数据上传到画面。
三种模式通过柜面旋钮切换,PLC程序里对模式切换时机有严格的判断条件,不能在水泵运行中突然切到手动导致失控。这一点是多年工程经验积累下来的教训,后面在程序部分我再展开讲。
2. 硬件选型、电气设计与现场安装要点
硬件选型这块,直接决定项目能不能长期稳定运行,完全不比程序轻松。很多新手以为程序写得好就行,实际上现场一大半的怪毛病都是硬件选型或者接线不当埋下的雷。我只能说,干过几个项目之后,你就会明白“好程序不如好接线”这句话是有道理的。
2.1 PLC与模拟量模块的选型计算
我先算了一笔IO点位的账。数字量输入主要是水泵、风机的主接触器反馈、故障信号、手自动状态、阀门到位信号,数下来24个输入点。数字量输出主要是接触器线圈、电动阀开关指令、主机启停指令,共12个输出点。这样至少需要36个DI/DO点,而且必须预留20%以上的扩展空间,所以我选了FX3U-64MR,自带32输入和32输出,还剩了不少余量,以后的扩展需求也能覆盖。
模拟量方面,11个AI点加4个AO点,一块FX3U-4AD加一块FX3U-4DA明显不够AI点用,所以我实际用了三块FX3U-4AD和一块FX3U-4DA。可能有人觉得这样有点浪费,但从分组供电和减少通道间干扰的角度讲,多一块模块反而让信号走线更清晰。每一块4AD模块对应一组传感器,通道间干扰几乎为零,调试时排查问题也方便,直接按模块分块检查。这个成本增加不多,但后期省的心力值得回票。
电源选型也要注意,FX3U的CPU本体和扩展模块对24V直流电源的需求不低。我的经验是不要用PLC自带的24V电源去带传感器,那样一旦某个传感器短路,整个系统供电都会出问题。现场单独配置一个明纬或衡孚的24V开关电源,容量至少留出30%余量,专给变送器和中间继电器供电,PLC本体的24V输出只用来带输入信号。
2.2 传感器与执行器选型的现场经验
PT100热电阻选型时,我没选分体式的,直接用的是带防水接线盒的一体式铠装PT100,探头长度按管道中心线位置选,一般在100到150毫米。安装方式必须用螺纹接口焊接在管道上,这样才能保证检修时可以单独拆下来校验而不需要泄水。需要特别注意探头插入深度,如果没插到管道中心,测出来的温度会明显偏低,尤其是在水流速度快的总管上,这个误差能到两三度。
压力变送器选用的是扩散硅式,量程选0到1.6兆帕,输出4到20毫安。在这里提个醒:采购压力变送器时,一定要跟厂家确认清楚供电电压是多少。很多国产变送器是24V两线制,但供电范围略有差别,供电不足会导致输出电流偏低,且这种误差在低量程段尤其明显,不校准根本发现不了。
变频器这块,我选了某主流国产品牌的通用变频器,功率比水泵电机大一档。不是为了浪费,是因为中央空调水泵在低速运行时电流很小,但启动瞬间和堵转工况下电流冲击很大,变频器选大一点,散热和过载能力都更强。变频器的运行信号、故障信号接进PLC的DI点,PLC的AO模块输出0-10V给变频器的频率给定端子,参数里要把频率给定方式设置为外部端子给定,运行方式设置为外部端子控制。变频器的事故跳闸也要能联动停泵,否则会发生水泵停了变频器还在输出频率的怪事。
2.3 控制柜设计与接线关键工艺
控制柜我采用的是前后双开门设计,前面板上是转换开关、指示灯、按钮、触摸屏的安装位,柜内分上下两个独立空间,上方放PLC和开关电源,下方是断路器和接触器。强弱电之间用金属隔板隔开,这是硬性要求,不然变频器的谐波干扰会顺着线槽跑到PLC的模拟量通道上,到时候温度曲线跳得跟心电图一样。
接线工艺几条硬规矩必须执行到位。模拟量信号线一律使用屏蔽双绞线,屏蔽层在PLC侧单端接地,绝对不能两端都接,否则会形成接地环路,反而引入更多干扰。另外,屏蔽层接地要用专用的屏蔽接地夹,不能图省事直接拧在柜体螺丝上。电源线和信号线不能走同一根线槽,间距保持至少15厘米以上。变频器输出侧到电机的动力线,必须使用屏蔽电缆,屏蔽层在变频器侧接地,不然电机电缆就是一根巨大的发射天线。
接地系统是整个工程的隐形重点。控制柜有独立接地铜排,与防雷接地和保护接地分开,接地电阻控制在4欧姆以内。PLC的接地端子、模拟量模块的接地端子、变频器的接地端子分别引线到接地铜排,严禁串接。我在这个项目上就这么坚持了一下,后期联调的时候几乎没有遇到通讯干扰的问题,这钱和时间花得值。
2.4 现场安装与仪表布置的注意事项
传感器安装位置非常讲究,不是随便找个点插上去就行。温度传感器和压力变送器必须安装在水泵的出水侧,不能装在进水侧,因为水泵高速旋转会造成进水侧流体紊乱,测出来的压力值跳动很大。温度传感器安装位置要避开阀门、弯头、变径这些水流扰动区域,前后至少要有5倍管径的直管段。电磁流量计的要求更高,上游直管段至少要10倍管径,下游5倍管径。现场没有完全满足的话,数值偏差会非常离谱,流量数据显示为零或者满偏,其实就是安装位置不对。
电动蝶阀安装时,阀体上标有流向箭头,这个不能装反。阀门和执行器之间的连接要确保开到位、关到位反馈信号能够准确触发,否则PLC一直收不到到位信号,联锁逻辑卡在中间状态,系统就没法往下走。调试过程中我遇到过好几次这种问题,后来学乖了,安装完成后逐个手动开关阀门验证到位信号,确认无误再做自动联调。
冷却塔风机的控制相对简单,但我加装了一个水流开关,装在冷却水回塔的管道上。逻辑是:如果没有水流却启动冷却塔风机,风机就是在空转,虽然不会立刻烧掉,但长期这样会严重影响风扇轴承寿命。这个水流开关的信号成本不高,却是一个容易被忽视的保护环节。
3. 三菱PLC程序设计与调试要点
程序是整个控制系统的神经中枢,我在这部分花的精力最多。使用GX Works2进行开发,这软件对FX系列的支持非常完善,网上关于GX Works2的资料也非常丰富。需要注意的是,程序框架一定要规划好,模块化编程,这样后续维护和排查问题时才会轻松。GX Works2支持将程序拆分成多个部件,每个部件负责一个功能块,最后在主程序中按顺序调用,这种写法比一坨几百行的梯形图堆在一起强太多。
3.1 程序整体框架与软元件规划
我的程序规划分成了几个功能区:系统初始化区、模式切换管理区、水泵控制区、主机联锁控制区、温度PID调节区、冷却塔风机控制区、数据采集与工程量转换区、报警处理区、通讯数据映射区。
软元件规划上花了一番心思。M0到M99是设备状态标志位,M100到M199是模式标志位,M200到M299是报警标志位。数据寄存器D0到D99存放模拟量原始值,D100到D199存放工程量值,D300到D399存放PID参数和设定值,D500以后是通讯数据映射区。把软元件规划写在工程注释里,这是专业做法,不然半年后自己回头改程序,光找地址就能找晕。
3.2 水泵控制和手自动切换的梯形图逻辑
水泵控制是整个程序中逻辑最复杂也最需要谨慎的地方。先看手自动切换的核心逻辑。自动模式下,当某台水泵被选中为主泵时,如果收到启动指令且无故障、无水压异常,则输出接触器吸合,随后判断运行反馈信号是否到位。如果发出启动指令后3秒内没有收到运行反馈,就判定启动失败,立即停止输出并触发故障报警并自动切换到备用泵。梯形图上这个启动失败判断用到一个定时器辅助继电器,实现方式大致如下。
X0(启动指令) --| |-- M0(自动模式) --| |-- Y0(Q1泵接触器) Y0 --| |-- T0 K30 // 3秒启动确认定时 T0 --|/|-- Y0 // 定时到未收到反馈则断开 X4(Q1泵故障反馈) --|/|-- Y0 // 故障时强制停止这段程序的精髓在于利用了输出线圈自锁和定时器形成的一种软保护机制。注意判断启动失败的定时器是在启动指令有效后开始计时的,不是PLC一上电就开始计,所以要用启动指令的前沿去触发定时器,这一点很容易写错。写错的表现是:定时器在上电后就开始倒计时,启动指令还没发出来定时就到了,导致泵永远起不来。
轮泵策略也是程序的一个亮点。两台主用水泵按累计运行时间轮换,每运行72小时自动切换一次。切换过程采用“先启后停”原则:先启动备用泵,确认运行反馈正常后,再停当前泵。这样不会造成系统断水,用户体验很重要。这个逻辑用比较指令和时钟指令实现,每隔一定时间比较M100到M199里记录的累计运行时间,决定下一次启动泵的序号。轮泵逻辑触发时间要选在系统负荷较低时段,避免白天运行高峰突然切换导致主机跳机。
3.3 主机联锁与水温调节核心逻辑
主机联锁是整个控制策略里对设备安全最重要的一环。主机启动前,必须确认冷冻水泵和冷却水泵都已经正常运行、水流开关闭合、对应的电动蝶阀开到位。这些条件全部满足后,PLC才会给主机控制柜发出启动脉冲信号。主机停机后,水泵不能马上停,要延时5分钟,把主机换热器里的残余热量带走,防止局部高温损坏设备。这个延时时长可以按主机说明书的推荐值设置,我这里按厂家的建议采用了5分钟。调试过程中我发现,延时太短会导致下次启动时主机高压报警,必须等管路温度和压力都稳定后才能重新启动。
冷冻水供水温度的控制是整个系统的核心节能逻辑。我把综合回水温度作为控制目标,PID调节冷冻水泵频率。夏季工况默认供水温度设定在7度左右,当实际供水温度偏高时,PID输出增大变频器给定,提高冷冻水流量;温度偏低时,降低频率,减少流量。这样既保证末端制冷效果,又能最大限度节省水泵功耗。PID参数的整定不能靠拍脑袋,我在程序里启用了FX3U的PID自整定功能,先让系统跑起来,等温度稳定后触发自整定,得出基本参数再微调。实测下来,比例增益大概在1.2左右、积分时间300秒、微分时间15秒这个量级比较合适。中央空调的水系统是大惯性系统,积分时间不能太短,否则系统会一直振荡,频率忽高忽低。
冷却塔风机的控制逻辑可以拆成两档,冷却水回水温度高于设定值时,开启第二台风机;低于设定值一定差值后,关闭多余风机,避免风机频繁启停。这个回差控制在2度左右比较合适,否则四台风机会在临界温度点反复启停,那个场景真的很折磨人。
3.4 模拟量处理与工程量转换
模拟量处理如果处理不当,画面上的数据会让人怀疑人生。FX3U-4AD模块采集到的是一个0到4000的数字量,对应传感器的量程范围。PT100通过温度变送器输出4到20毫安,对应0到100度的量程,那么工程量转换公式就是:实际值等于数字量减去模块零点偏移值再乘以量程系数。以4到20毫安对应0到100度为例,满量程数字量是4000减800等于3200,因为4毫安对应的数字量大概是800,所以实际温度等于数字量减去800再乘以100除以3200。
还要对采集值进行滤波处理。工业现场的温度、压力信号难免有瞬时扰动,我在程序里做了一阶惯性滤波,新的采样值与上一次的值按比例混合。滤波系数要看信号类型来调,温度信号惯性大,滤波系数可以取大一点;压力信号突变快,滤波系数取小一些,否则压力超压报警会因为滤波延迟而漏报,这个度要把握好。
AI模块的通道对应关系必须做认真核对。按模块地址、按通道号逐一验证每个传感器对应的数据寄存器地址,不能靠猜。我曾经在别的项目上犯过通道顺序搞反的错误,导致加药系统反着来一个多月,后来排查发现是最初接线时通道号记录错位。所以在程序注释里我把每一路AI通道对应的测点名称都标清楚,接线图、模块端子图、程序注释三处信息保持一致。
3.5 参数的合理选择与程序加密建议
模拟量工程量转换系数、PID参数、启停延时、轮泵周期、报警上下限这些参数,我全部做成了PLC内部数据寄存器,在组态王画面里开放给管理人员填写。这样调整参数不用修改程序、不用重新下载,在组态王上直接改就行。尤其是PID参数,现场调试时可能需要反复微调,如果每次都去改梯形图重新下载,那调试效率就太低了。
关于三菱PLC的密码和程序保护,这里要提醒一个工程习惯的问题。在GX Works2里可以对程序进行加密保护,设置密码防止未授权人员读取或修改程序。很多新手喜欢把密码设成1234或者不设置,这是给自己挖坑。工程验收后,我会把密码写在项目文档里,由业主的电气负责人保管。不要学网上某些教程去研究所谓的解密软件,正规项目根本不需要这套操作,重点是把程序注释写清楚、留好备份,这才是正路。另外,每次修改程序下载前,务必先做一次工程备份,下载后检查一下系统运行状态是否正常。我见过有人下载程序时没有暂停当前控制,程序瞬间跳变把阀门全部关掉的情况,这种情况一旦发生在主机运行中,后果不敢想。
4. 组态王画面开发与通讯对接实操
组态王在这套系统里承担的是“中控操作台”的角色。它的开发流程比较固定:新建工程、定义设备、建立变量、组态画面、运行系统。整个流程网上到处都是教程,但真正让人觉得棘手的是通讯配置和变量映射,尤其很多项目一上来就遇到“创建协议组件失败”这种错误,非常劝退新手。这里我详细讲一遍实践中的关键点。
4.1 工程创建与设备配置的注意事项
新建组态王工程后,首先要做系统选项的大小的设置,分辨率要和运行电脑的屏幕分辨率一致,不然画面在运行系统里会被拉伸变形。字体设置统一为微软雅黑或者宋体,避免不同电脑字体缺失导致文字显示错位。
设备配置是第一步也是最容易出错的一步。在工程浏览器左侧树形菜单中选择“设备”,然后添加新设备。设备驱动选择三菱FX系列编程口协议。这里有一个重点:FX3U PLC可以通过编程口使用串口通讯,也可以通过内置网口或加装以太网模块,我这里用的是以太网通讯,因为中控室距离控制柜有几十米,串口这么远距离会有通讯不稳的风险。不过后面讲调试问题的时候也会提串口的情况。
设备配置向导里需要填入PLC的IP地址和端口号。三菱FX3U以太网的默认端口号是端口5000,IP地址要和工控机设为同一网段,例如PLC设置192.168.1.10,工控机设置192.168.1.20,掩码统一为255.255.255.0。如果这两台设备不在同一网段,组态王无论如何都连不上的,这类问题是最常见的却总是最后才被想起来。
4.2 组态王创建协议组件失败的常见原因
“创建协议组件失败”这个弹窗,在组态王初学者群里出现频率极高。我自己的经验里,出现这个故障的原因通常就那么几种。
第一类是安装和运行环境问题。组态王某些版本对Windows系统的权限要求比较严格,运行系统必须用管理员权限启动。如果工控机开了UAC权限控制,组态王无法完成设备驱动组件的注册和加载,就会报“创建协议组件失败”。解决方案比较简单,右键点击运行系统图标,选择“以管理员身份运行”。如果系统设置了标准用户权限,就要在用户账户控制设置里把相关权限放开,或者在组态王安装目录里找到运行程序,右键属性设置兼容模式。
第二类是安装目录问题。组态王安装路径尽量不要包含中文目录,某些老版本的驱动组件对中文路径支持不好,会导致相关组件加载时找不到文件然后报错。这个不是所有电脑都会出问题,但遇到莫名奇妙的协议组件报错时,第一个排查方向就是路径问题。
第三类是杀毒软件拦截。组态王运行时需要加载设备驱动和通讯组件,部分杀毒软件会把组态王的驱动文件当成可疑程序拦截,导致组件加载失败。工控机上最好安装杀毒软件加上白名单配置,把组态王目录、数据库文件目录都加入信任列表。还有防火墙,以太网通讯时,Windows防火墙会拦掉5000端口,需要在高级设置里入站规则放行该端口。在实际项目里,这三类原因大概能覆盖九成以上的“创建协议组件失败”报错。
4.3 数据词典变量与三菱PLC地址映射
设备配置完成后,紧接着就是建立变量。组态王的数据词典是上位机的大脑,每一个变量关联PLC内部一个地址。变量类型分两大类:内存变量和设备变量。内存变量不关联外部设备,只在本机使用,一般作为中间变量;设备变量必须关联到PLC具体地址,通讯连接后实时读取或写入。
变量地址的写法要严格按组态王规定的格式。以三菱FX系列以太网驱动为例,输入寄存器的地址格式按照组态王里的定义基本上是D0这种表示数据寄存器,M0表示中间继电器,X对应输入点,Y对应输出点。不同驱动不同版本的表示方式可能会有差异,但核心原则是:地址必须和PLC程序里的软元件一一对应,偏移一位或写错类型都会导致数据读取异常,显示为0或者乱跑。新建变量后,建议在组态王开发系统里点击设备通讯测试按钮,逐个测试变量能否读到PLC当前值,这个步骤虽然频繁但价值很高,一次性就能把所有地址错误找出来。
D100到D119我都用在组态王里做了“只读”变量,而D500这段则被定义为“读写”变量。在组态王中建立变量的操作非常简单,新建变量后选择关联设备,填写寄存器地址和数据类型即可。数据类型的选择要慎重,整数类型对应16位整数,浮点类型对应32位浮点,如果类型选错,比如把浮点数当整数读,显示出来的数值简直是天文数字,完全没有参考意义。
4.4 画面组态与实用功能的实现思路
主监控画面我设计了几个区域:工艺流程图区、设备状态指示区、实时数据显示区、操作按钮区和报警信息滚动区。工艺流程图用矩形代表水泵、风机,用线条代表管路,管路颜色根据介质不同区分,冷冻水管用蓝色,冷却水管用橙色。设备运行时,对应图形元件的填充颜色变为绿色,停止为灰色,故障为红色闪烁,这样值班人员一眼就能判断系统处于什么状态。
实时趋势曲线是必不可少的,我建了温度趋势曲线和压力趋势曲线,横轴是时间,纵轴是量程。趋势曲线要设置好历史数据保存周期和保存长度,否则重启电脑后以前的历史曲线就没了。我设置的是每5秒采样一次,保存一个月的数据,足够管理人员分析系统运行趋势了。
报警窗口也是重点功能。在组态王里建立报警组,把所有温度、压力、设备故障变量加入报警组,设置上限报警、下限报警和严重级别。报警发生后,运行系统弹出报警窗口提示,同时自动记录报警时间和处置状态。这里要提醒的是,报警上下限的设置要在项目规范值的基础上结合现场实际情况微调,比如冷冻水供水温度低于5度才报低温报警,留出一定的安全余量,避免报警泛滥。
还有报表功能,可以通过组态王自带的报表系统导出每日、每月的平均温度、累计运行时间等数据。实际操作中,报表控件的配置需要花点时间读文档,但完成后对业主的设备管理很有用。很多项目验收时,业主最看重的反而不是那些花哨的画面,而是能不能打出一份干净的设备运行日报表。
5. 联调阶段踩过的坑与问题排查实录
整个系统联调那两周,可以说是既痛苦又涨经验的一段时间。PLC程序已经下载进控制器,组态王画面也搭起来了,但两个系统真正跑起来的时候,各种奇奇怪怪的问题才开始冒出来。很多问题单看程序好像都是对的,但组合在一起就会闹出连锁反应。这一章我专门把调试过程中比较典型的几个问题记录下来,按问题现象、排查思路、处理方案的方式整理成经验。
5.1 高频问题及排查方法梳理
通讯偶发断开的问题调试中持续了很久。现象是组态王运行一段时间后,某些变量数据不刷新了,但过一阵自己又恢复了。我起初怀疑是网线或者交换机问题,排查后发现本质原因是组态王与三菱PLC之间的通讯请求频率太高,导致PLC的通讯服务被占满,偶发请求超时。解决方案是在组态王的设备通讯参数里适当增大采集周期,把实时性要求不高的变量采集周期设为1秒以上,只有关键数据保持250毫秒采集。这样通讯负载降下来了,稳定性明显提升。这个问题的本质是上位机太“贪心”导致的,每个变量的采集周期都需要按需设置,而不是一股脑地全设成最小周期。
模拟量数值显示跳变是又一个典型问题。冷冻水流量信号在画面上跳动幅度有每小时几立方米的偏差,导致后面的能耗计算完全不靠谱。排查发现电磁流量计的屏蔽层在两端都接地了,形成接地环路,管路杂散电流顺着屏蔽层进入信号回路。处理方法是把信号线的屏蔽层改为流量计侧单端接地,同时在PLC的AI模块输入端并联一个1000微法的滤波电容。处理后数值曲线稳如一条直线。这类问题如果不从接地原理去理解,盲目换仪表是治不好的。
水泵启动时变频器报警的情况也发生过一次。现象是两台泵同时启动时,变频器报过流。排查发现是程序里没有做错峰启动,两台泵同时收到满频率启动指令。解决方案在程序里加入泵启动顺序延时,每台泵间隔5秒错误的启动时间,并让变频器的启动频率设置为较低的起始频率。这个问题非常容易被忽略,调试时一定要想着设备启动电流的叠加效应,不然配的变压器都扛不住。
5.2 联锁逻辑测试不能只测正常路径
联调阶段我最想强调的一件事是:测试绝对不能只测正常启动路径,一定要测试异常路径。所谓异常路径,就是设备故障、通讯中断、信号超量程、操作人员误操作这些非正常工况。
比如我模拟了冷却水泵运行反馈丢失的故障,这种情况下PLC应立即判断水泵故障并停止对应主机,同时投入备用泵,整个过程应该在几秒内完成。如果备用泵启动后流量还是不足,要触发机房整体报警。这样的完整测试做了好几次,每次都记录下PLC和组态王的状态变化,对照预期逐步修正程序。有时候一个故障模拟就能暴露一个编程逻辑漏洞,比如某次模拟过程中发现,主机运行中冷却水泵切换时,主机会因为水流不足瞬时停机。问题出在切换逻辑没有把“主机允许运行”信号纳入判断,修正为在主机运行状态下禁止水泵轮换,等主机停机后才允许轮泵。
报警信息的准确性也值得认真检查。我记得调试后期有一次,组态王画面上报了一堆温度报警,但现场工艺明明是正常的。逐个核对了报警变量地址后发现,有八个报警变量的地址全部偏移了一个寄存器,读到的是隔壁变量的值,当然报警不停。把地址全部修正之后,界面上的误报警才安静下来。所以说,变量地址的核对工作真的值得花一整块时间专门做,不能边建边嫌麻烦。
5.3 验收前需要确认的细节清单
项目接近尾声的时候,我习惯按一份自检清单逐项走一遍。首先是程序备份和注释检查,GX Works2工程里所有程序块有没有代码注释说明,元件注释是否完整,版本号是否更新。其次是组态王工程的备份,工程目录整个拷贝压缩,存档到业主指定的电脑和存储设备里,最好一式两份。
然后是图纸资料归档。电气原理图、接线图、端子排图、点位表、PLC程序版本说明、组态王操作手册,全部整理成册。很多项目运行一两年后,原来的维护人员可能已经换了一两轮,新来的工程师手里要是没有一套完整的图纸资料,维护难度会呈几何级上升。
最后是给业主的现场操作培训。组态王画面怎么开、怎么切换模式、怎么查看历史曲线、怎么修改参数、故障报警怎么确认和复位,这些内容必须当面演示几遍。培训的最终目的是让值班人员敢上手操作,而不只是拿了一堆看不懂的PPT。亲手在画面上点一遍“启动冷冻水泵”,看着水泵真的转起来,值班人员才算真正会用这套系统。
6. 项目复盘与几点个人心得
项目从进场到验收,前后大概花了两个月时间。站在项目结束的节点往回看,最深的体会是:中央空调控制系统难的地方从来不是某一项技术,而是如何把制冷工艺、电气控制、计算机通讯、现场施工这几条线拧成一股绳。成了一个环节,其实后面所有的环节都顺着往下走了。
硬件选型上多花的一些成本,最终在调试时间和后期稳定性上全都赚了回来。单独拉24V电源、坚持强弱电分离、屏蔽层规范接地,这些看似保守的做法,是很多项目用教训换来的经验。以前调试一个项目,模拟量数据乱跳,大家互相甩锅是常事,传感器厂家说是PLC问题,PLC供应商说是外部干扰,最后查到底还是接地工艺的问题。规范施工,就是给全系统省掉这类无谓的拉扯。
程序里面我特意把每个功能块的逻辑注释都写清楚了,包括每个数据寄存器的作用。这不是给业主看的,是给半年后的自己看的。工业控制项目没有“写完就完事”这一说,系统大概率要经历多次参数调整和逻辑优化,没有注释的程序,回头改起来自己都不认识,那种崩溃感经历一次就长记性了。
组态王和三菱PLC这个组合,从软件配置到通讯联调的坑,前面已经梳理了很多。最后想补充的一个细节是:整个系统调试过程中,每次修改完PLC程序重新下载,我都会在GX Works2里选择“参数+程序”同时写入,保证PLC的参数区配置也是最新状态。有些参数比如通讯参数、端口配置,单独下程序是不会更新的,如果只下程序不下参数,可能导致PLC新程序要求的通讯参数和实际运行参数不一致。这个细节很不起眼,但能避免很多联调后期的沟通问题。
这套系统交付后这半年,业主反馈运行稳定,能耗相比往年同期下降了约两成。技术上其实并没有用多高深的手段,无非是把原来凭经验手动操作的那套流程,用PLC按工艺逻辑自动化了,再用组态王把所有的运行数据透明化。在这个基础上,后续还可以扩展能效分析模块,把每台主机的COP值算出来,做更深度的运行优化。不过那些都是后话了。先把基础自动化做好、做稳,才是这类项目真正的价值所在。