ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

三菱PLC+MCGS组态屏的喷泉控制系统设计与实现

三菱PLC+MCGS组态屏的喷泉控制系统设计与实现 做这个项目的时候我一开始接到的需求就一句话“广场那个喷泉要能用触摸屏控制花样还要能自动跑几种模式。”说实话这种表述在自动化项目里太常见了需求方自己都没完全想清楚但作为干活的人你必须先把“喷泉控制系统到底要什么”问明白。这套项目最终用的是三菱PLC加MCGS组态屏的组合主体交付物就是一套完整的梯形图程序和一套组态画面。过程踩了不少坑这篇文章把整套系统的设计思路、梯形图核心逻辑、MCGS组态画面制作以及现场调试中遇到的实际问题一次性讲透希望对正在做类似喷泉、景观水景、小型批控项目的朋友有帮助。先交代一下项目背景和最终配置方便你对号入座。这套系统控制对象是广场中央的一组喷泉总共有4台喷泉水泵主喷、副喷、跑泉泵、雾化泵、10个跑泉电磁阀、8组水下射灯外加一套音乐联动信号。PLC选用的是三菱FX3U-48MT触摸屏是MCGS的TPC7062Ti两者之间用RS-422方式通信。PLC负责所有底层逻辑水泵启停、电磁阀开关、花样时序、保护联锁。MCGS负责操作层花样选择、手动控制、状态显示、报警记录。这个分工奠定了整个系统的架构后面所有程序编写和画面设计都是围绕它展开的。1. 项目本质与方案选型先看清这到底是个什么系统1.1 广场喷泉的“控制需求”到底有哪些很多人一听“喷泉控制”第一反应就是“水泵嘛启动停止而已”。实际上喷泉系统控制逻辑的复杂程度取决于喷泉形式。广场喷泉常见的控制需求大体有这么几类定时启停早、中、晚三场定时喷放每场持续时长可设夜间还有灯光联动。花样切换需要多种跑泉花样比如从左到右依次跑、从中间向两边扩散、整体同时起落、按节拍跳跃等每种花样对应一组电磁阀的启闭顺序。泵组管理主喷、副喷、跑泉泵、雾化泵分别由不同接触器控制有些情况下需要多泵联锁防止超负荷。手动/自动切换调试阶段必须能手动单独点动每个泵和每个阀正式运行阶段切回自动按预定程序执行。故障保护水泵过载、电源缺相、干运转保护等都要接入PLC做到报警停机。这套项目的广场喷泉规模算中小型但需求种类齐全。尤其是“跑泉”这种动态效果本质上是电磁阀开关的时序控制一旦时序乱了水型就会完全失真这是喷泉控制里最容易出问题的地方。1.2 为什么是三菱PLCMCGS这套组合选型阶段我也考虑过西门子200 SMART、台达、信捷等方案。最终锁定三菱FX3UMCGS组合基于三个实际原因甲方原有设备大多是三菱系统维修电工对三菱编程软件GX Works2非常熟悉后期维护不用额外培训。MCGS组态软件在中小型项目里性价比很高而且对三菱FX系列通信支持非常成熟走编程口协议或者RS-422都很稳定开发周期短。项目预算有限这套组合整体成本相比西门子触摸屏方案能省下不少同时性能完全够用。这里插一句选型不能只看控制器性能还要看使用方能不能接得住。很多项目交付后出问题往往是因为选了对方维修人员不熟悉的设备一有故障就两眼一抹黑。1.3 整体硬件架构和信号流向整个系统的信号流向是这样的上位操作员通过MCGS触摸屏选择运行模式、下发参数MCGS通过RS-422把指令传给三菱PLC的通信端口PLC执行梯形图逻辑后通过输出端子驱动中间继电器中间继电器再去带接触器最终控制水泵和电磁阀。反馈信号则从热继电器、漏电保护器、液位开关等处采集经由输入端子进入PLC梯形图根据这些反馈决定下一步动作。这里要强调一个容易忽略的点PLC输出端一般不直接接接触器线圈而是先经中间继电器隔离。喷泉现场的电磁环境复杂水泵启动瞬间的浪涌电流很容易干扰经过中间继电器隔离后既能保护PLC输出点又能提升抗干扰能力。这套系统里我全部采用了DC24V中间继电器PLC输出是晶体管输出的直接驱动DC24V继电器正好匹配。层级设备作用操作层MCGS触摸屏模式选择、监控、参数下发控制层三菱FX3U PLC梯形图逻辑运算、时序控制驱动层中间继电器、接触器功率放大、电气隔离执行层水泵、电磁阀、射灯喷泉喷放、跑泉动作、灯光效果2. 三菱PLC梯形图设计核心控制逻辑一步一步搭2.1 硬件选型与IO地址定义程序写得好不好一半取决于地址分配是否清晰。这套系统PLC选型是FX3U-48MT输入输出共48点实际用到的情况如下PLC地址信号名称信号类型备注X0主喷水泵手动启动按钮输入常开X1副喷水泵手动启动按钮输入常开X2跑泉泵手动启动按钮输入常开X3雾化泵手动启动按钮输入常开X4急停按钮按钮输入常闭X5-X7水泵过载反馈热继电器输入常闭Y0主喷水泵接触器输出经中间继电器Y1副喷水泵接触器输出经中间继电器Y2跑泉泵接触器输出经中间继电器Y3雾化泵接触器输出经中间继电器Y4-Y13跑泉电磁阀1-10输出10个电磁阀地址分配逻辑其实很简单输入设备从X0开始排列输出设备从Y0开始排列保证同类设备集中写梯形图的时候不会东找西找。另外手动按钮用了常开触点接法热继电器过载信号、急停信号用的是常闭触点接法目的是断线检测——如果线路断了PLC读到的是“有信号”程序会照样认为故障实现“失效安全”。这一点做电气设计的兄弟一定要养成习惯。2.2 多台水泵顺序启动、逆序停止的梯形图实现喷泉系统有个很实际的要求多台水泵不能同时启动否则启动电流太大会对供电线路造成冲击。所以梯形图里必须做“顺序启动、逆序停止”。这个词最近在很多热词里也频繁出现“三台电机顺序启动逆序停止plc梯形图”说明这是工控项目里非常典型的编程考点喷泉、传送带、压缩机、水泵站都会遇到。我用的编程思路如下以4台泵为例顺序启动按下启动按钮M0置位主喷泵先启动主喷泵运行3秒后辅助继电器T0动作副喷泵启动再隔3秒T1动作跑泉泵启动再隔3秒T2动作雾化泵启动。每台泵启动之间有固定间隔躲开启动浪涌叠加。逆序停止按下停止按钮先停止雾化泵3秒后停止跑泉泵再3秒后停止副喷泵再3秒后停止主喷泵。停泵顺序和启动顺序正好相反避免管道内水锤效应和压力骤变。关键梯形图结构如下X0启动按钮 --[置位 M0]-- M0保持 M0 --[T0 K30]-- 延时3秒 --[置位 M1]-- 副喷泵 M1 --[T1 K30]-- 延时3秒 --[置位 M2]-- 跑泉泵 M2 --[T2 K30]-- 延时3秒 --[置位 M3]-- 雾化泵停止侧X1停止按钮 --[复位 M3]-- 雾化泵先停 M3 --[T3 K30]-- 延时3秒 --[复位 M2]-- 跑泉泵停 M2 --[T4 K30]-- 延时3秒 --[复位 M1]-- 副喷泵停 M1 --[T5 K30]-- 延时3秒 --[复位 M0]-- 主喷泵停这里有个编程习惯值得说明启停逻辑里尽量用SET/RST指令而不是单纯的输出线圈。因为输出线圈一旦被后级逻辑改变状态难以追踪而SET/RST结构更清晰调试时用软元件监控一眼就能看出每个泵处于什么状态。2.3 花样喷泉时序控制的定时器链设计跑泉花样是这个项目里最有趣也最繁琐的部分。10个电磁阀按一定时序开启和关闭形成水型动态效果。每种花样的本质就是一张“时间段-电磁阀状态表”。拿“从左到右跑”这个花样举例电磁阀按Y4→Y5→Y6→Y7→Y8→Y9→Y10→Y11→Y12→Y13的顺序每隔0.5秒开启一个全部开启后再从左边开始关闭形成“水柱从左跑到右”的效果。实现方式我用了两组定时器链循环第一组是开启定时器链数量与跑泉电磁阀数量相同。每个电磁阀对应一个开启定时器和关闭定时器定时值可以做成寄存器D这样在MCGS画面上就能直接改速度不需要改PLC程序。这个设计在调试时帮了大忙——甲方在现场反复调整跑泉速度我只用把定时器值对应到D寄存器MCGS上填数字就行完全不用反复下载程序。第二组是花样切换逻辑。我设计了4种花样用一个模式字D10来存放当前花样编号1-4。梯形图里用CMP比较指令和JMP跳转指令组织成多分支结构每种花样对应一段独立的逻辑程序段之间用跳转指令隔离避免相互干扰。这部分的梯形图写法我用的是步进梯形图指令STL。三菱STL指令比传统梯形图更适合描述这种多状态顺序控制程序。每个花样是一步Step步与步之间通过转移条件衔接结构清晰而且天然支持单步运行调试时能一帧一帧地检查执行顺序查故障效率高得多。2.4 手动/自动/急停三模式切换的编程细节喷泉系统必须有三种运行模式手动、自动、急停。这三者的优先级关系是急停 手动 自动。急停X4常闭触点串在所有输出回路的“总使能”前面急停按下后所有输出立即断开不管PLC逻辑当前处于什么状态。这个没有商量余地必须硬线实现不能用程序里的定时器延时。手动调试模式下每个泵和每个电磁阀可以独立点动。手动逻辑优先于自动逻辑但必须限制在“总使能”范围内。自动正常运行模式按花样程序自动执行。实现方式上我用M100作为手动/自动切换标志位。当M100为OFF时手动点动按钮X0-X3直接控制输出Y0-Y3当M100为ON时输出由自动步进逻辑控制。这里有个容易踩的坑手动/自动切换的瞬间输出可能会产生“跳动”。比如手动状态Y0是ON切到自动后自动逻辑恰好也需要Y0输出ON但换线瞬间输出继电器会闪断一次电机就会“抖”一下。解决办法是在切换点加一个互锁延时切换时先复位所有输出延时200ms后再接通自动逻辑。这个细节不写进程序现场试机时根本发现不了但用户在使用一段时间后会抱怨“为什么切换模式时水泵会咔嗒一声”就是这个问题。3. MCGS组态画面制作从空工程到完整监控系统3.1 新建工程与设备驱动配置MCGS组态软件的操作逻辑和三菱GX Works差别很大但它上手并不难。核心是把“实时数据库”建好再让画面里的图元关联到数据库变量最后把数据库变量与PLC寄存器地址对应起来。新建工程第一步是选触摸屏型号。TPC7062Ti对应的工程环境是MCGSE组态环境。进入后首先要配置设备驱动这个操作别搞错很多人一上来就画画面结果画面上的开关按钮怎么点都没反应最后发现是设备驱动没有配置。设备配置的路径是设备窗口 → 设备工具箱 → 通用串口父设备 → 三菱FX系列编程口。这里注意如果用了三菱Q系列PLC驱动要选三菱Q系列以太网或三菱Q系列串口两者地址映射方式不同。这套系统是三菱FX3U所以走FX编程口协议串口参数设置为9600波特率、8位数据位、1位停止位、偶校验三菱FX默认通信方式选RS-422设备地址填0FX3U默认站号。配置完成后MCGS会自动生成一批通道变量对应PLC的X、Y、M、D、T、C。你需要手动把通道和实时数据库里的用户变量关联起来比如水泵运行状态关联Y0花样编号关联D10跑泉速度关联D20-D29等。这一步关系没建立好画面上的数据永远是0或者显示“设备通信失败”。3.2 喷泉动态组态画面怎么画才实用组态画面的核心原则让操作员一眼知道现场什么设备在运行、喷泉当前在跑什么花样、有没有报警。画面做得好不好不取决于漂亮程度而取决于信息密度和操作效率。主画面我设计成“模拟喷泉俯视图”风格画一个长方形水池水池中央画主喷两侧是副喷下方排列10个跑泉喷头每个喷头用一个圆圈表示。喷泉喷水时圆圈图元用“动画显示”功能切换成蓝色填充状态水泵运行时对应泵图标旁边加一个绿色指示灯出现故障时指示灯变成红色并闪烁。实现动态效果的关键是MCGS的“可见度”和“颜色动画连接”功能。把每个圆圈图元的可见度关联到对应电磁阀的变量上变量为1时显示“喷水”状态图变量为0时显示“停止”状态图。当跑泉程序运行时10个圆圈依次点亮画面上就能直观看到跑泉动态过程操作员不用跑到现场也能掌握效果。还有一个实用细节跑泉速度调节不要放在主画面单独做一个“参数设置”子画面通过“用户权限管理”限制普通操作员修改只有管理员才能修改。因为喷泉跑泉速度调太快或者太慢直接影响水型和设备寿命不能让人随便乱改。3.3 数据对象、报警与趋势曲线的关联MCGS的报警功能其实比很多人想象的强大。我在这套系统里做了三类报警设备故障报警、参数越限报警、通信故障报警。设备故障报警热继电器过载、漏电保护器动作对应PLC输入X5-X7为ONMCGS中对应变量触发报警报警内容写清楚“主喷水泵过载”“副喷水泵过载”等方便维修人员直接看到是哪个设备出问题。参数越限报警比如电流模拟量超上限、管道压力过低这些如果项目有模拟量模块就需要做。这套系统因为只用开关量所以报警相对简单。通信故障报警MCGS自带的设备通信状态变量一旦PLC通信中断画面上弹窗提示“通信超时”报警记录里也会留下记录。报警功能配置路径实时数据库 → 报警属性 → 设置报警上下限和报警文本。MCGS支持声音报警可以在报警事件里关联一段WAV提示音实测下来这个功能很实用尤其在广场环境嘈杂时光看画面不够必须靠声音提醒。趋势曲线方面我做了水泵运行时长累计曲线方便统计设备维护周期。做法是在PLC里把每台泵的运行时间累计到D寄存器用秒脉冲累加MCGS里用历史趋势曲线显示。这样维护人员能直接看出哪台泵运行时间长需要优先保养。3.4 参数下发与权限管理细节触摸屏最重要的功能之一是“参数下发”。这套系统里跑泉周期、每段延迟时间、各泵启动间隔等参数都放在PLC的D寄存器里MCGS画面里做输入框操作员修改数值后点击“写入PLC”MCGS就把数值通过通信发送到指定寄存器。这里有一个非常容易出错的细节MCGS输入框变量的数据类型要和PLC寄存器匹配。三菱D寄存器是16位MCGS的数值型变量默认是32位浮点如果不经过转换直接写入数据会错乱。解决方法是把输入框变量类型改为16位整数或者在脚本里用Int()函数强制转换再写入。这个坑我踩过一次当时半夜在现场调画面输入“5”PLC读到的是“5.0”的二进制变形数据水泵时序全乱排查了很久才发现是类型不匹配。权限管理也是交付时必须做的操作员级别可以切换花样、启停设备管理员级别可以修改参数、清除报警厂家级别可以下载程序、修改配置。MCGS通过“用户管理”组件实现每个画面里的控件可以设置操作权限级别没有权限的操作员点按钮时MCGS会自动弹出登录窗口。4. 现场调试与交付常见问题排查实录4.1 PLC与MCGS通信中断的排查这套系统最典型的通信故障现象是触摸屏上部分数据显示“####”或者“设备通信失败”但PLC本地运行正常。排查步骤我整理成了一个快检清单第一步检查通信线接线是否正确。RS-422是四线制发送正负、接收正负分别对应接反就会通信失败。FX3U的编程口针脚定义要对着手册查蓝白线接反的问题我遇到很多次。第二步检查串口参数是否一致。PLC侧的通信参数是出厂默认9600、7位数据位、偶校验、2位停止位但MCGS侧默认可能是8位数据位、1位停止位需要手动改成和PLC一致。很多人只改波特率不修改位长结果是时通时断。第三步检查MCGS设备窗口里是否勾选了“通信超时重试”。默认重试次数可能不够现场干扰大时通信会偶尔闪断建议把超时时间调大到1000ms以上。第四步检查通信线长度和布线。RS-422理论上能到1200米但现场如果和水泵动力电缆走同一个桥架干扰就会很大。建议通信线单独走管且两端做屏蔽层接地。提示如果触摸屏和PLC之间通信距离长且现场变频器多强烈建议改用PLC加以太网模块的通信方式虽然成本高一些但抗干扰能力强很多。4.2 组态画面数据显示不更新的原因“触摸屏上启动按钮按了PLC也运行了但画面上水泵状态灯不亮”这类问题我遇到过好几次。原因通常不在画面本身而在于变量关联没有到位。排查时先把画面切到“组态运行环境”的调试模式逐个查看实时数据库里的变量值是否变化。如果变量值有变化但图元不变化要么是图元关联的变量名写错了要么是“动画连接”里的可见度条件设置反了比如变量为1时应该显示喷水结果设置的却是变量为0时显示喷水。如果实时数据库里变量值本身就是0但PLC侧输出已经是ON那就是通讯通道映射问题。回到“设备窗口”里检查通道连接表确认Y0是否真的映射到了用户变量“主喷水泵运行状态”。这里有个MCGS的坑设备驱动通道默认是“只读”还是“读写”状态如果通道属性被误设为只读那么虽然读数据正常但通过触摸屏写入PLC的功能会失效按钮怎么点都没反应。4.3 喷泉动作时序乱了的幕后元凶运行一段时间后喷泉花样跑着跑着时序乱了这是最让人头疼的问题。总结下来主要有三类原因程序逻辑本身的竞争风险。多个定时器互相嵌套时如果定时器没有被及时复位就会造成时序偏移。比如跑泉电磁阀的关闭定时器还没到时间花样的转移条件已经满足下一次开启指令就来了这时电磁阀状态会发生“抢”的动作。解决方法是把每个电磁阀的“开”和“关”做成SET/RST结构确保同一个电磁阀在同一时刻只有一个输出源控制。PLC扫描周期与定时器精度的冲突。FX3U的基本指令执行速度是0.065微秒/条当程序量较大时扫描周期会变长。如果某些定时器的时基选择的是100ms定时器而扫描周期又接近这个级别定时精度就会受影响。对于时序要求严格的花样尽量用10ms时基定时器。X输入信号抖动。喷泉现场的启停按钮如果用普通机械按钮按下瞬间会产生接触抖动PLC会检测到多次ON/OFF跳变导致花样程序“步进”状态异常。解决方法是给输入信号加硬件RC滤波或者用PLC的输入滤波功能把滤波时间调到20ms左右。4.4 现场交付前必做的几项检查项目交付不是说程序能跑就算完。我整理了一套交付前的检查清单每项都实测过下载程序后先做总清再重新下载一次确保PLC内存里没有残留的旧程序或旧数据影响运行。检查PLC电池是否有电。FX3U的SRAM断电保持靠电池如果电池没电断电保持的D寄存器数据会丢失第二天开机参数全丢这个坑最容易在验收时爆雷。将所有通信参数、程序版本号、触摸屏工程版本号登记到交付文档里以备后期维护。手动把所有报警信号全部触发一遍确认报警画面、声音、历史记录都正常。连续拷机72小时白天按自动模式跑晚上跑夜间模式记录过程中有无通信中断、误报警。把PC端程序和组态工程文件打包备份一份给甲方不要只留在自己电脑里。5. 最后说点项目收尾的真话这套喷泉控制系统从需求确认到最终交付前后用了大约三周时间。硬件安装和布线用了四五天PLC程序编写调试用了约一周MCGS组态画面制作和联动调试花了五六天最后两天做拷机和交付文档。整个项目过程中PLC梯形图部分几乎没有大返工反而是组态画面和通信配置花了最多时间——这和很多人的预期相反但实际确实如此只要地址映射和通信参数搞对了PLC控制逻辑反而不容易出问题。我个人体会最深的一点是做这类中小型自动化项目不要光盯着程序本身写得好不好更要把精力花在“人机交互”和“可维护性”上。甲方操作工不是程序员他们不看梯形图只看触摸屏。画面设计得直观不清爽操作逻辑不符合习惯哪怕底层控制逻辑再完美验收时也会被挑剔。反过来如果画面做得好用、报警信息清晰、参数可调即使底层里有小瑕疵甲方通常也会体谅。最后再分享一个小技巧交付前把MCGS工程里每个画面截图连同PLC程序注释、IO地址表、操作说明一起打包成一份PDF维护手册打印出来交给甲方电工。这份东西成本不高但能让你在未来大半年内少接一半电话。做项目嘛不能光看眼前交付还要想以后维护方便。这套喷泉系统去年交付后甲方根据手册自己调过几次跑泉参数到现在都没找过我二次处理这才是理想的项目收尾状态。
RELATED READING

延伸阅读

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