ARTICLE DETAIL

资讯详情

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

三菱PLC与MCGS组态触摸屏音乐喷泉控制项目实战解析

三菱PLC与MCGS组态触摸屏音乐喷泉控制项目实战解析 搞自动化的朋友应该都知道音乐喷泉是PLC课程设计和工程培训里最经典的项目之一。三菱PLC加MCGS组态触摸屏这套组合既有梯形图逻辑又有上位机画面还能牵扯到变频器、传感器、通信配置几乎把工业控制的核心知识点全串起来了。这个项目我前前后后做过两版一版是纯教学演示一版是仿真实训模拟踩了不少坑也总结出一套比较顺的流程。这篇就按一个完整项目的思路把梯形图程序怎么写、IO怎么分配、接线图怎么画、MCGS组态怎么做一个个拆开讲给准备动手的同学和刚入行的工程师做个参考。1. 系统总体设计与控制方案选型1.1 音乐喷泉的控制本质音乐喷泉听起来挺浪漫但控制逻辑拆开看就是一个典型的时序控制系统。水柱的高低、灯光的颜色、喷头的旋转本质上都是根据音乐节奏的变化在正确的时间点触发正确的动作组合。所以核心问题有两个第一如何感知音乐节奏第二如何把节奏转换成喷泉动作。市面上的商用音乐喷泉通常有两种方案。一种是用音频分析电路把音乐信号经过滤波、整流、比较器转换成模拟量或开关量送给PLC的模拟量模块或高速计数器实时响应音乐强弱。另一种是离线编排方案先把一首歌的节奏点和对应动作预先做成一个时间表PLC在播放音乐的同时按着时间表一步步执行预定的喷泉动作。教学项目和企业演示项目绝大多数用的是第二种因为实现简单、效果稳定可控也不需要额外买音频处理模块。我这个项目也是按离线编排方案做的一首歌花一分钟编排好效果就已经非常好了。1.2 为什么用PLC加MCGS而不是单片机或纯PLC这个组合很多教程都在用但很少有人解释清楚为什么要这样选。我按自己的理解说下。单用PLC其实也能控制喷泉梯形图里写死逻辑就行但问题在于运行过程的监控和参数调整很不方便。比如我想改一首歌的节拍时间表或者临时切换几种喷泉模式总不能每次都用电脑连PLC改程序那在实际运行现场是非常低效的。MCGS组态触摸屏在这里担任的是人机交互层。通过它操作员可以随时切换歌曲、启动停止系统、手动测试单个喷头、修改节拍时间参数还能实时看到当前执行到哪个步骤、哪个输出点处于ON状态。这些功能如果用物理按钮和指示灯来做面板会做得巨大而且灵活性差。用MCGS一个10英寸的触摸屏全搞定画面还能按需求随便改。另外PLC负责底层逻辑MCGS负责上层监控和操作属于工业控制里最标准的“控制层监控层”分层架构。单片机虽然也能做监控画面但开发周期长、稳定性不如工业触摸屏在这类教学和演示场景里性价比不高。1.3 本系统的整体架构整个系统按照信号流可以分成四层操作层MCGS触摸屏用于模式选择、歌曲选择、启停控制、状态监视控制层三菱PLC负责执行梯形图逻辑完成时序控制、输出驱动、输入扫描执行层变频器、继电器组、交流接触器、彩灯回路负责驱动水泵电机、电磁阀、灯光反馈层水流开关、液位开关、限位开关等把状态信号输回PLC的输入端层与层之间的连接MCGS通过串口RS485或者RS232跟PLC通信常见的是三菱FX系列编程口协议或者加一块485通信板走Modbus协议。PLC的输出端接中间继电器或接触器再由接触器驱动水泵电机和灯光不要直接用PLC的输出口去带大功率负载。这一点后面接线部分会细说。2. 硬件选型与IO分配实战2.1 三菱PLC主机的选型思路先明确一个原则选PLC型号不是越大越好而是根据输出点数、输出类型、程序容量三个维度去匹配。这个项目的输出点数取决于喷头组数、灯光组数和变频器控制信号数量输入点数取决于按钮、传感器数量。我做第一版时用的三菱FX3U-32MT/ES16点输入16点输出晶体管输出类型。音乐喷泉项目里如果用普通继电器输出的PLC也能用但如果后面想接步进电机驱动的旋转喷头晶体管输出的高速脉冲能力就派上用场了。FX3U的Y0和Y1是100kHz高速脉冲输出口配合PLSY或PLSR指令可以精确控制旋转喷头的步进角度和转速。如果预算有限FX3GA也能胜任程序容量比FX3U小一些但教学项目绰绰有余。核心是输出点数要留够余量喷泉项目我建议输出点数在16点以上因为除了喷头电机还有彩灯组、电磁阀、蜂鸣器等一堆负载。2.2 MCGS触摸屏的选择与通信接口MCGS触摸屏常见的有TPC7062KX、TPC1061Ti、TPC1262Ti系列尺寸上7英寸到12英寸都有。对音乐喷泉项目来说7英寸其实够了画面上一是系统总览二是手动操作面板三是实时状态表四是参数设置页。如果再放个动画展示区10英寸的TPC1061Ti会更舒服。选型时有个容易被忽略的点确认触摸屏的通信接口类型。老一点的TPC7062KX是串口COM口较新的型号往往带网口。用串口通信时要注意MCGS对应型号的COM口是否支持RS485以及是否支持三菱FX系列编程口协议。正规用法是查MCGS官方手册里的驱动列表选一款明确支持“三菱FX系列编程口”的型号这样通信配置才会顺。我自己试过用MCGS的串口直连FX3U编程口只需要一根下载线对应的通信线加一个COM口转接头就能读上来。如果PLC距离操作台很远那建议给FX3U加装一个FX3U-485-BD通信板走RS485用Modbus RTU协议通信抗干扰能力会好很多。2.3 完整的IO分配表IO分配是整个项目最基础的部分直接影响到后面接线和程序设计分配错一步后面全乱套。下面是我这个项目用的分配方案供参考。PLC地址信号类型设备名称功能说明X0输入启动按钮SB1系统启动自动模式运行X1输入停止按钮SB2系统停止所有输出复位X2输入手动/自动切换SA1ON为手动模式OFF为自动模式X3输入紧急停止SB3急停立即切断输出X4输入复位按钮SB4故障或停止后复位程序X5输入水流开关检测水泵运行状态X6输入液位开关水池低液位保护X7输入变频器故障输出变频器报警信号反馈Y0输出变频器STF变频器正转启动Y1输出水幕喷头电磁阀控制水幕喷头开闭Y2输出中心柱喷头电磁阀控制中心喷头开闭Y3输出扇形喷头电磁阀控制扇形喷头开闭Y4输出旋转喷头步进脉冲步进电机脉冲信号Y5输出旋转喷头方向步进电机方向信号Y6输出彩灯组A水池外围彩灯Y7输出彩灯组B中心高杆彩灯Y10输出喷泉泵接触器KM1主水泵电机控制Y11输出音乐功放电源播放器及功放电源控制Y12输出运行指示灯系统运行状态指示Y13输出报警蜂鸣器故障报警输出变频器多段速的控制信号我分配了两个组合用Y14、Y15作为RH、RM信号。如果再加一个Y16作为RL就有三位的多段速组合可以设定7个速度档位喷泉节奏的表现力会更强。这些分配看似简单但实际设计时有几个原则要注意。输入点尽量把急停放在前面方便接线和紧急操作输出点优先排高速脉冲口给步进电机因为Y0、Y1只有特定输出口才能发脉冲普通输出口不通水泵这类大功率负载放在输出点后面中间再加接触器隔离不能直接接电机。2.4 接线图与原理图绘制要点图纸部分很多人容易忽视但恰恰是项目交付、验收和后期维护最重要的东西。一个完整的音乐喷泉项目图纸至少包含主电路图、PLC外部接线图、MCGS通信接线图、变频器端子接线图和IO分配表。PLC输入端的接线要特别注意三菱PLC的S/S端子接法。FX3U的输入端子是漏型/源型都可以接的S/S端接24V还是接0V决定了输入信号是低电平有效还是高电平有效。我习惯用漏型接法S/S接24V按钮一端接0V另一端接X端子按下按钮时PLC收到低电平信号。这样接线的好处是按钮公共端统一接0V和GND在一起不容易接错。输出端子接线要看PLC输出类型。晶体管输出的FX3U每4个输出点共用一个COM端子比如Y0到Y3共用COM0Y4到Y7共用COM1负载电源通常接24V直流。如果输出接的是中间继电器线圈那就在线圈两端并联续流二极管防止断电瞬间产生的反向电动势打坏输出管。这个细节很多人忽略了等PLC输出口烧毁时再后悔就晚了。变频器接线是另一个容易出现混乱的点。以三菱FR-D700系列变频器为例STF是正转启动RH、RM、RL是高速、中速、低速信号SD是公共端PLC的输出信号和变频器的SD公共端之间需要共地。PLC晶体管输出端如果直接用24V直流接STF和SD是可以正常触发的。变频器主回路端子R、S、T接三相电源U、V、W接水泵电机MCCB断路器串接在电源侧做短路保护还要注意接地端子的独立接地避免和PLC、触摸屏的接地绞在一起。3. 梯形图程序设计与实现带具体解释3.1 程序整体结构程序我分成三大块主程序、自动模式子程序、手动模式子程序。主程序里做初始化、模式判断和急停保护。X2用于切换手动和自动当X2为OFF时调用自动模式子程序当X2为ON时调用手动模式子程序。这里用CALL指令调用子程序或者直接用M8000主控指令区分也行我后面会讲一个更稳妥的写法。程序开头一定要做急停处理。X3急停按钮触发后用SET M800停止所有输出然后所有Y输出在每段程序里都串联这个M800的常闭触点。这样做的好处是即使后面梯形图逻辑写复杂了也不会出现急停后某个输出还在运行的情况。还需要注意PLC内置的M8002初始脉冲在PLC上电的瞬间会给一个短暂的ON信号通常用它来复位一些内部继电器和数据寄存器保证系统上电后处于一个确定的状态。音乐喷泉这种项目上电后默认应该全停绝不能出现上电就喷水的情况初始化程序必须把所有Y输出和内部状态位清零。3.2 手动模式和自动模式的程序写法手动模式在调试阶段特别重要第一次做的时候一定要先把手动模式写出来。手动模式下MCGS上的每一个按钮直接对应一个Y输出比如触摸屏上按一下“中心柱喷头开”Y2就置ON按一下关Y2就置OFF。这种模式不需要太多逻辑但能帮你在接完线后快速验证每一路输出是否导通。另外变频器的手动测试也需要在手动模式下做。给一个Y0输出变频器如果接线正确电机应该能转起来。我调试时习惯用手动模式先验证硬件的每一路确认无误后再去做自动模式这样排查问题能省一半时间。自动模式下就需要用到步进控制逻辑了。这里说的步进不是步进电机而是指程序按照预定顺序一步一步往下走。三菱PLC的步进梯形图指令STL配合状态继电器S可以实现非常清晰的顺序控制LD M0 ANI X3 OUT S0 STL S0 LD X0 SET S10 STL S10 OUT Y0 LD T0 SET S11用STL指令的好处是每个状态下的程序彼此隔离。S10状态只能执行S10内部的程序不会同时跑到S11去执行天然避免了顺序控制的互锁问题。不过STL指令理解起来需要一点时间如果还不熟悉可以用辅助继电器M配合定时器来实现一个等效的“移位式状态机”。3.3 音乐节奏与动作编排的梯形图实现这是整个项目的灵魂所在。要实现音乐喷泉的表演效果就必须把音乐的时间轴和动作时间表一一对应起来。我的做法是先把一首歌从头到尾听几遍把每个明显节奏点鼓点、重音、旋律转折标注出来记录它在歌曲时间轴上的位置比如第5秒中心柱喷头全开第8秒水幕喷头启动第12秒旋转喷头加灯光亮起。然后把这些时间点写成一套数据表存放在PLC的数据寄存器D里。梯形图程序用连续定时器来实现时间轴的推进。简单说一个定时器计时到达某个节拍点时触发对应的输出组合然后复位启动下一个定时器。用三菱的TON指令或者OUT指令加K值的定时器都能做。LD SM412 OUT T0 K50 // 主水泵持续5秒 LD T0 SET Y10 // 第5秒启动主水泵 LD SM412 OUT T1 K80 // 第8秒水幕开启 LD T1 SET Y1这里需要注意一个细节多个定时器不能直接用OUT指令串联驱动要靠辅助继电器M做时间轴的公共基准。我常用一个100ms或1秒时钟脉冲SM412作为计时基准配合C计数器实现整秒推进。例如每次SM412从OFF变ON计数器C0加1C0的数值就是已经过去的秒数然后把C0和设定节拍点做比较LDP SM412 OUT C0 K600 // 一首歌按600秒上限递增 LD C0 K50 // 比较当前秒数是否50 SET Y1用这种办法写起来简单而且调整节拍表只需要改比较值不需要改程序结构非常适合用MCGS的数值窗口在线修改。3.4 变频器多段速与灯光联动控制音乐喷泉的美感不只在喷头开合更在于水柱高度随音乐节奏起伏。这时候就要用到变频器的多段速功能了。三菱变频器的多段速设定逻辑是通过RH、RM、RL三个端子组合可以切换多个预设频率。例如RH单独接通对应一个速度档RH加RM对应另一个速度档速度值在变频器参数里预先设定好。梯形图里只需要控制Y14、Y15、Y16的通断组合即可。灯光控制我用了两组彩灯做交替闪烁和渐变效果。闪烁可以用定时器渐变效果如果只靠Y输出开关其实做不到需要用到PWM输出。三菱FX3U支持PWM指令但只有Y0、Y1等高速输出口支持硬件脉冲输出。如果不想占用这两个高速口给灯光就用普通定时器做个“模拟PWM”在给定的间隔周期里调整ON和OFF的时间占比亮度就能看到明显的明暗变化LD SM412 OUT T10 K5 // ON 0.5秒 LD T10 ANI T11 OUT Y6 // 彩灯组A特亮期间点亮 LD SM412 OUT T11 K10 // 周期1秒这种模拟PWM虽然效果不如真正的PWM那么均匀但用于彩灯闪烁和节奏呼吸灯已经够了。后续如果想让彩灯颜色更丰富可以把彩灯换成带通信控制的RGB灯带用RS485从PLC发指令控制不过那是进阶玩法了。3.5 手动模式手动模式的程序结构要跟自动模式彻底分开。我的习惯是主程序里用M8200之类的常开点做互锁保证自动模式运行时手动模式按钮无效反之亦然。否则调试时容易混乱。手动模式程序也很简单MCGS里每一个按钮对应一个M继电器M继电器再去驱动Y输出。比如触摸屏上做一个“水幕喷头开”按钮按下后把M10置ON梯形图里M10直接OUT Y1。每个手动输出之间可以加一点互锁比如水泵没启动时不允许启动旋转喷头。但互锁不要写得太严格不然调试时某个喷头想单独测试都打不开。4. MCGS组态画面与脚本设计4.1 设备窗口与通信连接配置MCGS里最让人头大的就是设备窗口配置。新建工程后第一步要把PLC驱动挂上。在MCGS嵌入版组态软件中设备窗口里有一个“设备管理”在里面添加“三菱FX系列编程口”驱动然后建立父设备串口通信设备和子设备PLC设备。通信参数要严格按照PLC端设置来。如果用编程口协议串口参数一般是9600波特率、8位数据位、偶校验、1位停止位。MCGS里的设备参数也要对应填。这里有个坑MCGS的某些版本里通信参数写作“0-9600-8-偶-1”的格式如果不小心选成“无校验”就会导致经常通信失败时好时坏。设备窗口配置完成后要逐一连接变量。比如MCGS里建立开关型变量D_Start和PLC的X0关联这样一来触摸屏画面上的启动按钮就会直接控制X0。输出点Y1关联变量D_YM1画面上的喷头状态指示灯就能实时读取Y1的状态。还有一点要注意MCGS变量连接PLC寄存器地址时不同型号的PLC地址映射规则稍有差别。FX系列编程口协议中X区、Y区、M区、D区的地址范围和偏移值在MCGS驱动说明文档里有明确表格。我经常犯的错是把D100的地址填成D100实际驱动要填100不加字母。每个设备驱动不一样务必先看下驱动附带的说明别凭感觉填。4.2 用户窗口画面布局与动画连接MCGS的用户窗口就是一个可视化界面设计器。我在项目里做了三个主画面系统总览、手动操作、参数设置。系统总览画面背景做成了喷泉池的俯视图池子中央画个圆圈代表中心柱喷头外围画几个扇形代表水幕喷头底下画一排小圆点代表彩灯。每个图形元件都通过“动画连接”属性关联对应的变量。比如中心柱喷头图形关联Y2变量变量为ON时图形闪烁或变色为OFF时显示灰色。水柱高度怎么做动态效果呢最简单的办法是用“大小变化”动画连接关联一个数值型变量。在PLC里把变频器当前频率值写入D寄存器MCGS再把D寄存器读上来映射到图形的高度缩放比例。这样水柱的高度就会随着变频器频率变化而实时升高降低视觉反馈很直观。灯光效果可以用“颜色变化”或“闪烁效果”关联彩灯输出点的状态。实际做下来MCGS图元不支持太复杂的光效但基础的状态闪烁配合不同颜色图形已经足够教学演示。4.3 运行策略与脚本编写MCGS里的策略分为启动策略、循环策略、退出策略和事件策略。常用的是循环策略。循环策略里的脚本按照设定的周期循环执行可以在里面写一些PLC程序不方便做的上位机逻辑。比如歌曲选择功能触摸屏上放一个下拉列表选择歌曲1、歌曲2、歌曲3选择后把对应的编号写入PLC的D100寄存器。PLC梯形图里根据D100的数值跳转到不同的节拍时间表。MCGS脚本可以这样写D100 歌曲列表.文本如果需要做操作记录或者报警弹窗也可以写在事件策略里。比如PLC的M800故障标志触发后MCGS弹出一个报警框同时在报警数据窗口里记录时间和故障内容。报警的权限管理还可以分级普通操作员只能看工程师可以修改参数。有一点要提醒MCGS的脚本语法和C语言不太一样变量使用前要先在实时数据库中定义好而且要注意变量类型匹配。脚本里给PLC写入数值时如果PLC侧的D寄存器是16位的MCGS变量也要定义成16位整数否则可能发生数据溢出或写入失败。4.4 工程下载与在线调试MCGS工程做完后用USB线和触摸屏连接在组态软件菜单里选择“下载工程”。下载前要注意触摸屏的IP地址或串口号是否和工程设置一致。如果是串口下载通常需要占用触摸屏的调试口下载完成后触摸屏会自动重启运行工程。在线调试时MCGS的“调试模式”和“运行模式”不要搞混。调试模式可以看到PLC变量实时变化并修改值适合调试设备窗口通信是否正常。正式运行时用运行模式画面不带调试窗口。给客户或老师演示的时候切记切换到运行模式否则调试面板暴露在外既不专业还容易误改参数。5. 实操调试经验与常见问题排查实录5.1 MCGS与PLC通信不稳定这个问题我遇到太多次了几乎每个做MCGS的人都会碰上。表现是画面上的变量一会儿有值一会儿变成“---”或者操作按钮经常没反应。排查思路先从物理链路开始。串口线是不是好的插头有没有松动触摸屏COM口和PLC的通信口是否对应。如果是RS485还要确认A、B线有没有接反屏蔽层有没有接地。PLC侧的终端电阻该加的要加特别在通信线比较长的时候不加电阻会信号反射导致通信偶发失败。然后是通信参数。PLC侧的D8120决定通信格式一定要和MCGS设备窗口里的参数一致。用编程口协议时三菱PLC默认是9600、7位数据、偶校验、1位停止。有些MCGS型号默认参数是8位数据不匹配也会连不上。把两边参数统一问题通常迎刃而解。5.2 输出点频繁烧毁不下三次遇到用户把PLC输出口直接接接触器线圈或电磁阀结果输出点烧出一个洞。PLC输出口本质上是一个半导体开关承受不了感性负载的冲击。正确做法是输出口先接小型中间继电器线圈电压直流24V中间继电器的触点再去控制接触器线圈或电磁阀。中间继电器触点容量大而且更换成本低、误操作坏了也不心疼。另外感性负载两端要接续流二极管反向并联能够吸收断电时产生的反向尖峰电压。这个二极管选1N4007就可以注意极性别接反。还有一点PLC输出点带不了大电流每次实验前看下输出规格。FX3U晶体管输出一般0.5A/点。不要超载运行。5.3 变频器电机抖动但不转如果给了STF信号变频器面板显示正常频率但电机只抖不转通常是变频器和电机之间的输出线U、V、W缺相或者接触不良。经典原因是变频器的输出端接入了电容补偿柜或者残压检测设备导致低频时输出异常。还有可能是电机参数设置不对。三菱变频器的Pr.71等参数要根据电机铭牌设定如果额定电压、电流偏离太多电机会在低频段无法带载。解决办法是把变频器恢复出厂设置重新设定电机类型和铭牌参数再跑一遍自整定Pr.96等不同系列参数编号有差异要以手册为准。5.4 节拍时间对不上音乐这个属于离线编排方案的固有问题。音乐播到第10秒该起的水柱实际却慢了半拍。原因有两个一是功放启动有延迟二是PLC从检测到节拍点到真正输出动作也有一个扫描周期的延迟。处理办法一是在PLC输出端加一个主水泵提前启动的时间补偿比如音乐前奏一开始就让主水泵先低俗运转等重音来的时候变频器直接切高速喷泉的响应会快很多。二是在编排时间表时把每个动作点提前200到300ms写入用提前量去抵消系统延迟。我最后用的组合是“音乐播放靠外部播放器PLC按时间轴执行动作表”效果已经非常稳定。5.5 MCGS能下载工程但画面乱码这个问题多半是触摸屏的字体库和工程字体不匹配。MCGS工程里用的中文字体如果屏里没预装就会显示成方块或者乱码。处理方式是工程打包时把需要用的字体一并下载到触摸屏或者在MCGS工程里直接用统一的TTF字体。还有工程下载完成后第一次启动时如果提示字体缺失可以在触摸屏的系统设置里手动安装字体文件。这个问题在版本较老的TPC7062KX上比较常见新版T系列基本自动搞定。5.6 梯形图程序好使但触摸屏操作无效PLC程序没问题单独用外部按钮能启动但触摸屏按下启动无效。这种情况九成是MCGS变量和PLC寄存器地址对不上。你按下MCGS按钮本质是给PLC的某个寄存器写数据如果寄存器地址映射错了PLC那边收到的信号就是乱的。检查步骤先看MCGS设备窗口变量是否连接成功在线调试模式里手动写一个变量观察PLC输入端有没有反应。X、Y、M、D这几类存储区在通信协议里地址编码规则不同查一遍驱动说明把地址对应清楚。6. 几点总结这个项目做下来我感觉最重要的是先把IO分配和硬件接线表定好再动程序。很多新手一上来就写梯形图写到一半发现输出口不够用了又回头改分配表图纸、程序、接线全都要改非常痛苦。对准备拿这个项目做课设或竞赛的同学我的建议是先做一个精简版比如只用4个喷头加一组彩灯把基本的自动顺序控制和MCGS监控跑通再去加变频器多段速、旋转喷头这些扩展功能。一口吃不成胖子基础逻辑通了后面加功能就是复制粘贴加改参数的事。如果后续想升级成真正的“随音乐节奏实时变化”效果建议在原来的基础上加一块模拟量输入模块通过音频检测电路把音乐信号转换成0到10V模拟量PLC用ADC指令读取再映射到变频器频率和灯光亮度。这套方案能实现真正的声控喷泉效果比离线编排好一个档次。当然硬件成本和程序复杂度也会相应增加。
返回列表