这次趁着交付广场喷泉项目的空闲,把整套控制系统的搭建过程完整复盘了一遍。项目核心是用一台三菱 PLC 做现场的底层逻辑控制,搭配 MCGS 组态环境开发的触摸屏做操作界面,系统不大,但控制花样、安全保护、人机交互全都要到位。这种组合在中小型景观喷泉里非常常见,也特别适合刚接触工控的朋友拿来练手。这篇文章从需求拆分、PLC 编程、组态画面到现场联调都会讲到,希望能给正在做类似项目的同学一些参考。
1. 喷泉工艺与控制需求:I/O 点算清楚,选型才不会翻车
1.1 广场喷泉到底在控制什么
很多人第一次接触喷泉项目,以为“喷泉就是几个水泵轮流启停”,真做到现场才发现完全不是这么回事。一个典型的广场喷泉,池底有主喷泵、水幕泵、若干组小型水型喷嘴,每组喷嘴前面有电磁阀控制通断,水下还有彩灯,池子里有水位开关,配电柜里有变频器、接触器、热继电器,甚至还有过滤循环泵。
从控制的角度去归类,其实就四类对象:
- 泵类设备:主喷泵、水幕泵、循环泵,负责把水打上去或者维持水池水位。
- 阀门类设备:各组喷嘴前的电磁阀,决定哪个水型出水、哪个水型关闭。
- 灯光设备:水下彩灯、跑马灯、轮廓灯,一般按组控制,用来配合水型做景观效果。
- 变频设备:主喷泵或水幕泵的转速调节,通过改变频率实现水柱高低的连续变化。
这四类对象的 I/O 点数加起来并不多,一个 30 点以内的 PLC 就能搞定,但“控制需求”不能只看点数,还要看运行模式。喷泉不是一直开着就跑,它有早中晚不同时段、有平日和节假日不同配置、有手动检修和自动运行的切换,这些逻辑才是程序的主体。
1.2 运行模式怎么定
我在和甲方对接需求的时候,通常会把运行模式做成一两张表,让甲方在上面打钩确认。这样做的好处是后面写程序、做画面都有据可依,不会出现“我以为是这样的”这种扯皮。
这个项目最终定了四种模式,实际用起来甲方也觉得清晰:
| 模式 | 运行时段建议 | 水型配置 | 灯光配置 | 说明 |
|---|---|---|---|---|
| 手动检修模式 | 不限 | 通过触摸屏按钮点动 | 手动控制 | 检修、试水时使用 |
| 平日节能模式 | 9:00-11:00,15:00-17:00 | 只开主喷和中心水型 | 关闭 | 白天景观要求低,省电 |
| 晚间景观模式 | 19:00-21:30 | 全水型轮流切换 | 全部打开 | 广场主要观赏时段 |
| 深夜停机模式 | 22:00-次日8:00 | 停泵 | 关闭 | 防扰民,也省设备损耗 |
模式之间通过触摸屏上的模式选择按钮切换,PLC 内部用辅助继电器保存当前模式,再根据模式去驱动不同的输出组合。定时自动切换的功能我放在了触摸屏的脚本里做,PLC 侧只负责接收“当前是哪个模式”这个结果,这样分工更清晰,PLC 程序也不用做得太复杂。
1.3 选型:为什么是三菱 FX3U 加 MCGS 触摸屏
很多朋友看到标题里“三菱触摸屏”可能会疑惑:三菱原装触摸屏是 GOT 系列,什么时候和 MCGS 有关系了?这里解释一下,这个项目实际用的触摸屏是昆仑通态的 TPC 系列硬件屏,组态软件用的是 MCGS 嵌入版组态环境。MCGS 本身是组态软件,它可以运行在昆仑通态的硬件屏上,也能和绝大多数主流 PLC 通讯,所以行业里习惯把这种屏直接叫“MCGS 触摸屏”或者“MCGS 屏”。
至于为什么不直接选三菱 GOT,主要还是预算和项目体量不匹配。一个不到 30 个 I/O 点的喷泉项目,用 GOT 屏幕的成本可能比 PLC 加国产组态屏加起来还高。MCGS 屏的特点是驱动丰富、组态上手快、资料多,对于三菱 FX 系列的支持非常成熟,小型项目用起来性价比极高。
选型对比其实很直观:
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 三菱 PLC + 三菱 GOT | 同品牌无缝集成,通讯最稳 | 成本偏高,组态风格偏工业 | 预算充足的中大型项目 |
| 三菱 PLC + MCGS 触摸屏 | 成本低,组态灵活,案例多 | 画面细节相对朴素 | 中小型景观、市政配套 |
| 三菱 PLC + 威纶通触摸屏 | 驱动丰富,售后资料多 | 价格略高于国产组态屏 | 通用设备改造 |
PLC 本体我选的是三菱 FX3U-32MT/ES-A。MT 是晶体管输出,可以输出高速脉冲和模拟量控制信号,后面接变频器做调速比继电器输出方便;32 点是 16 输入加 16 输出,这个项目基本用满,也留了一两个备用点。如果后续要加设备,FX3U 还能扩展模块,不会卡死在硬件上。
2. PLC 侧的核心逻辑:花样循环、变频调速与安全互锁
2.1 I/O 分配和八进制地址坑
先看 I/O 分配表,这张表在写程序之前必须定死,不然后面改起来特别痛苦。
| PLC 地址 | 信号名称 | 类型 | 说明 |
|---|---|---|---|
| X0 | 自动启动按钮 | 输入 | 常开 |
| X1 | 停止按钮 | 输入 | 常开 |
| X2 | 急停按钮 | 输入 | 常闭 |
| X3 | 手动/自动选择开关 | 输入 | ON 为手动 |
| X4 | 手动主喷泵启动 | 输入 | 手动模式用 |
| X5 | 手动水幕泵启动 | 输入 | 手动模式用 |
| X6 | 水池低水位信号 | 输入 | 液位开关常闭 |
| X10 | 变频器故障信号 | 输入 | 变频器故障继电器常开 |
| X11 | 水泵热继电器信号 | 输入 | 三组热继串联 |
| Y0 | 主喷泵接触器 | 输出 | 控制主喷泵 |
| Y1 | 水幕泵接触器 | 输出 | 控制水幕泵 |
| Y2 | 第一组电磁阀 | 输出 | 中心高喷 |
| Y3 | 第二组电磁阀 | 输出 | 水幕摆动喷 |
| Y4 | 第三组电磁阀 | 输出 | 跳泉 |
| Y5 | 彩灯组一 | 输出 | 水下灯 |
| Y6 | 彩灯组二 | 输出 | 轮廓灯 |
| Y7 | 跑马灯 | 输出 | 追光效果 |
| Y10 | 变频器正转信号 STF | 输出 | 接变频器正转端子 |
| Y11 | 变频器高速 RH | 输出 | 多段速端子 |
| Y12 | 变频器中速 RM | 输出 | 多段速端子 |
| Y13 | 变频器低速 RL | 输出 | 多段速端子 |
这里必须提醒第一次用三菱 PLC 的朋友:三菱 FX 系列输入输出地址是八进制,也就是说 Y7 后面是 Y10、Y11,没有 Y8 和 Y9。我曾经见过有同事在分配表里写了 Y8,结果软件编译直接报错,查了半天才发现是这个问题。X 和 Y 都是这个规则,提前在表里跳过就好。
2.2 喷泉时序循环怎么写得优雅
喷泉控制程序的重头戏是花样循环。以晚间景观模式为例,甲方要求这样一组动作:主喷泵先启动,5 秒后中心高喷电磁阀打开形成中心主柱,再过 3 秒水幕泵启动让水幕展开,同时跑马灯按秒节奏流水追光,20 秒后切换到第二组水型,依次轮换。
这种时序控制在三菱 PLC 里有两种常见写法。一种是纯定时器加辅助继电器,程序直观但梯形图会很长;另一种是步进梯形图 STL 指令,用状态寄存器 S 表示每个阶段,结构清晰,后期改时间参数也方便。我强烈建议用 STL,尤其是花样多的时候。
步进的大致流程可以这样描述:
- 状态 S20:启动主喷泵,置位 Y0,继续下一步。
- 状态 S21:启动 5 秒定时器 T0,T0 时间到后打开 Y2 中心高喷阀,转移至下一步。
- 状态 S22:再启动 3 秒定时器 T1,T1 时间到后启动 Y1 水幕泵,转移至 S23。
- 状态 S23:跑马灯循环阶段,利用 M8013 秒脉冲触发 Y7,维持 20 秒后转移至 S24。
- 状态 S24:切换至第二组水型,关闭部分阀门,开启另一些阀门,再循环回去。
实际程序里,定时器的数量可以控制在 10 个以内,配合 STL 的状态转移,程序读起来像在念说明书,维护的人一看就懂。这里特别推荐用“时间参数寄存器 + 触摸屏写值”的方式,把每个动作的延时放在 D 寄存器里,这样甲方觉得水型切换节奏太慢,直接在触摸屏上把 5 改成 3,不用改 PLC 程序,体验会好很多。
2.3 变频器联动:模拟量调速还是多段速
主喷泵的调速方案我在前期纠结了一下。市面上两种主流做法:
第一种是模拟量调速。三菱 FX3U 加一块 FX3U-4DA 模拟量输出模块,输出 0-10V 或者 4-20mA 给变频器,触摸屏上可以连续调节水柱高度,效果最好。缺点是模块要额外花钱,程序也要处理模拟量。
第二种是多段速端子控制。变频器本身带有 RH、RM、RL 三个多段速端子,通过 PLC 输出点的组合,可以切换多种预设频率。比如 RH 闭合对应 50Hz,RM 闭合对应 35Hz,RL 闭合对应 20Hz,RH+RM 闭合对应 45Hz。这种方式不用加模块,输出点直接接变频器端子,成本和可靠性都不错。
这个项目最终选了多段速,因为甲方并没有“连续调高度”的需求,他们要的只是“低水型、中水型、高水型”三档。T 型喷泉的喷头数量和喷嘴口径是固定的,三档转速已经能覆盖所有景观效果,省下来的模拟量模块预算换了一路备用点。
程序处理上,触摸屏把“水型档位选择”参数写到 D200 寄存器,PLC 用比较指令判断 D200 的值,置位或者复位 Y11、Y12、Y13。例如 D200=2 时置位 Y12,变频器运行在 35Hz;D200=3 时置位 Y11,变频器运行在 50Hz。这里要注意变频器的加速时间不要设太短,喷泉泵带水负载,加速太快容易过流报警。
2.4 保护逻辑要兜底
喷泉现场环境潮湿,设备在室外,安全保护不能省。我在这套系统里加了几层互锁:
- 低水位保护:水池液位开关闭合时允许启动,水位低于下限时 X6 断开,所有泵类输出立刻停止,防止水泵空转烧坏。
- 变频器故障保护:变频器故障继电器信号接入 X10,一旦动作,切断主喷泵和 Y10 正转信号,同时触摸屏弹出报警。
- 热继电器保护:三台水泵的热继电器信号串联进 X11,任何一台过载都整体停机。
- 手动/自动互锁:X3 处于手动模式时,自动模式的所有输出不参与控制;检修模式下急停按钮 X2 按下,不管手动还是自动,所有输出全部断开。
- 启动优先级:主喷泵未启动时,电磁阀不允许开启。这个逻辑用水泵运行辅助继电器 M0 的常开触点串在电磁阀输出回路里,防止先开阀后启泵造成水锤冲击。
有一点需要特别注意,急停按钮用的是常闭触点接入 PLC,不要用常开。如果急停线路断线或者急停按钮本身损坏,PLC 会立刻检测到并触发停机,这是安全回路的常规做法,千万不能省。
3. MCGS 触屏侧的搭建:从驱动配置到喷泉动画
3.1 新建工程和设备驱动配置
MCGS 嵌入版组态软件装好之后,第一步是新建工程并选择触摸屏型号。不同尺寸和分辨率的屏幕对应不同的型号选项,选错会导致画面偏移或者下载失败。这个项目用的是 7 寸屏,新建工程时选对应 TPC 系列即可。
工程建好后,组态环境分五个部分:设备窗口、用户窗口、实时数据库、运行策略、主控窗口。新手最容易绕晕的是“设备窗口”和“用户窗口”的区别,简单理解:设备窗口负责跟 PLC 通讯,用户窗口负责跟人交互。
设备窗口的配置逻辑是“父设备 + 子设备”。先添加一个“通用串口父设备”,再在父设备下面添加“三菱 FX 系列编程口”驱动。双击子设备,能看到通讯参数设置界面,这里要重点关注波特率、数据位、停止位、校验方式,必须与 PLC 侧一致。以 FX3U 默认参数为例:
| 通讯参数 | 数值 |
|---|---|
| 波特率 | 9600 |
| 数据位 | 7 |
| 停止位 | 1 |
| 校验方式 | 偶校验 |
如果 PLC 的通讯参数被改过,比如用 GX Works 在 PLC 参数里改成 19200、8、无校验,那么触摸屏这边也要跟着改,两边不一致就通讯不上。我遇到过好几次“屏显示通讯超时”,最后查下来都是参数没对齐。
3.2 变量建立与寄存器映射
MCGS 里的实时数据库是变量管理中心。触屏上的按钮、指示灯、数值显示,都要绑定数据库里的变量,再由变量去和设备窗口里的 PLC 寄存器关联。
这个项目的变量映射表是这样的:
| MCGS 变量名 | 数据类型 | 关联 PLC 寄存器 | 说明 |
|---|---|---|---|
| start_btn | 开关型 | M0 | 自动启动 |
| stop_btn | 开关型 | M1 | 停止 |
| mode_auto | 开关型 | M2 | 自动模式标志 |
| mode_manual | 开关型 | M3 | 手动模式标志 |
| pump_main_state | 开关型 | M10 | 主喷泵运行状态 |
| pump_water_state | 开关型 | M11 | 水幕泵运行状态 |
| water_level_ok | 开关型 | M12 | 水位正常标志 |
| mode_select | 数值型 | D200 | 水型档位 |
| delay_center | 数值型 | D210 | 中心高喷延时 |
| delay_water | 数值型 | D211 | 水幕延时 |
| alarm_count | 数值型 | D220 | 报警计数 |
地址映射后的一个常见坑是数据类型不匹配。三菱 D 寄存器是 16 位,MCGS 里的数值型变量默认也是 16 位,但如果要处理 32 位数据,比如变频器频率读取,就需要占用相邻两个 D 寄存器,变量类型改为 32 位浮点数或双字,否则数据会错位。喷泉项目用到的 D 寄存器基本是 16 位整数,映射时留意一下就好。
3.3 主画面、参数画面和报警画面怎么组织
触摸屏画面我习惯分成三个页面,用按钮互相跳转,不要全部堆在一个页面上。
主画面放的是喷泉的俯视示意图,中心画一个圆形喷水池,旁边布置水泵、阀门、灯光的图形符号,每个符号用颜色动画连接对应状态变量。比如主喷泵运行时图形变绿,停止时变灰;电磁阀打开时显示水流蓝色填充,关闭时不显示。主画面中间放一个大号的启动按钮和停止按钮,模式选择做成一排按钮,当前模式高亮显示。
参数画面放的是时间参数设置,中心高喷延时、水幕延时、水型切换周期、各档位频率等,每一项对应一个数值输入构件。画面下方加一个“保存参数”按钮,脚本里把画面输入值写入对应的 D 寄存器。这里有个细节:数值输入构件默认的是输入时弹键盘,但如果你用了屏的“安全区”功能,操作人员要先登录才能修改参数,防止游客或者保洁误触。
报警画面用报警显示构件实现,需要在实时数据库里把报警变量先配置好。比如变频器故障变量 alarm_vfd,数据类型开关型,报警类型设为“开关量报警”,当变量为 1 时触发报警,报警内容写“变频器故障,请检查”。报警画面可以显示报警时间、报警内容、当前状态,方便维护人员排查。
3.4 喷泉动画与脚本技巧
喷泉画面做动画效果,是 MCGS 里比较有意思的部分。很多人问“MCGS 怎么让水柱动起来”,其实不用想得太复杂,最实用的方案是填充移动。
以中心高喷为例,画面上画一个矩形作为水柱,把它和“水柱高度”变量绑定,用垂直移动或者尺寸变化动画构件,变量值越大,水柱竖直方向越长。水柱高度变量可以和 PLC 的主喷泵频率相关联,泵转速高则水柱高,这样画面上的水柱能跟随实际水型变化,看起来非常直观。
跑马灯效果用可见度动画来做。提前在水池外圈排布一圈小圆点,每一个圆点绑定一个内部变量,用脚本周期性地把这几个变量轮流置位。比如 1 秒亮第一颗、下一秒亮第二颗,顺次点亮,视觉上就是追光跑动。脚本放在组态环境的“循环策略”里,设置周期为 100ms,大致逻辑如下:
IF mode_auto THEN light_index = light_index + 1 IF light_index > 8 THEN light_index = 1 ENDIF light_1 = 0 light_2 = 0 light_3 = 0 light_4 = 0 IF light_index = 1 THEN light_1 = 1 ENDIF IF light_index = 2 THEN light_2 = 1 ENDIF IF light_index = 3 THEN light_3 = 1 ENDIF IF light_index = 4 THEN light_4 = 1 ENDIF ENDIF这是简化的示意逻辑,实际跑灯数量可以根据画面布局扩展。脚本语言语法类似 BASIC,有 if-else、赋值、循环这些基础功能,配合内部变量做动画非常方便。MCGS 自带的“脚本命令一览表”在帮助菜单里可以查到,写脚本时对照着看就行。
4. 现场联调:通讯地址、干扰处理和那些容易翻车的细节
4.1 触摸屏与 PLC 的通讯线到底怎么接
触摸屏和 PLC 之间的物理连接,决定了通讯稳不稳定。这个项目前期用的是 PLC 编程口直连触摸屏 COM 口的方式,走 RS232 通讯。三菱 FX3U 的编程口是八针圆口,触摸屏 COM 口一般是 DB9 公头,中间用一根“FX 编程口转 DB9”的通讯线连接。
RS232 的有效距离一般不超过 15 米,项目里 PLC 电控柜和触摸屏距离只有两三米,直连没有问题。如果设备距离拉长到二三十米,232 就会开始丢包,这时候要改用 RS485。三菱 FX3U 加装一块 FX3U-485-BD 通讯板,触摸屏侧走 COM2 的 RS485 口,A、B 线分别对应连接,抗干扰能力明显提升。
通讯接线还要注意共地问题。RS232 通讯如果触摸屏和 PLC 的地电位不一致,轻则通讯不稳定,重则烧通讯口。现场调试时我习惯先用万用表量一下两端接口的 5 脚对地电压,确认没有明显压差再接通讯线。很多现场通讯故障,查到最后都是电源地接触不良。
4.2 一次变频器干扰导致通讯掉线的排查记录
这个项目调试到一半,出现了一个很典型的问题:单独运行触摸屏和 PLC 通讯一切正常,但只要主喷泵变频器一启动,触摸屏画面就开始卡顿,偶尔还弹出“通讯超时”,PLC 输入端偶尔也会误动作。
排查过程我按下面几步走:
- 第一步,检查通讯参数和线序。用万用表量了通讯线通断,确认线序没问题,MCGS 和 PLC 的通讯参数一致。排除参数配置错误。
- 第二步,观察干扰源。变频器启动瞬间,风机和水泵都在运行,判断大概率是变频器产生的电磁干扰耦合进了通讯线。
- 第三步,检查接地。发现变频器接地排和 PLC 的接地排用了同一根地线,而且变频器侧接地线偏长,接地阻抗偏高。把变频器地线单独加粗,PLC 和触摸屏的电源地独立接到配电柜的主接地排。
- 第四步,处理通讯线屏蔽层。通讯线屏蔽层一定要单端接地,不能两端都接,否则会形成接地环路,反而引入更多干扰。重新压接屏蔽层并单端接入 PLC 侧接地端子。
- 第五步,检查走线路径。把通讯线从变频器动力电缆的线槽里拿出来,单独穿管敷设,与动力电缆保持至少 20cm 距离。
这几步做完之后,通讯卡顿和误动作的问题彻底消失。后来我还养成了一个习惯,凡是电控柜里有变频器,通讯线一律要求单独穿管,并且控制柜内布线时不与变频器主回路平行走线,这个成本很低,但能省掉很多后期麻烦。
4.3 触屏乱码与工程版本问题
项目调试中遇到过一次画面中文乱码,当时先排查的是通讯,结果通讯变量正常,唯独画面上的中文文字全部变成乱码。
MCGS 乱码最常见的原因是工程文件版本兼容问题。我电脑上装的是 MCGS 嵌入版 7.7,而现场原来调试用的电脑可能是 7.6 版本,低版本工程在高版本软件打开后再下载,画面文字就可能出现编码错乱。解决方法是尽量用同一版本的组态软件重新生成工程,或者把乱码的文字全部重新输入一遍。
还有一类乱码是字体问题。MCGS 画面里文本构件的字体设置为某些特殊中文字体,而触摸屏运行环境里没有安装这个字体,就会以系统默认字体显示,可能出现乱码。稳妥的做法是把画面文本统一设置为“宋体”或“微软雅黑”这类系统自带字体,脚本里的注释文字尽量用英文,避免编码问题。
4.4 现场调试顺序建议
这次项目虽然没有出大问题,但现场调试的顺序还是值得说一下。我给自己的铁律是:先空载、再手动、后自动。
第一步,PLC 程序单独调试。不接任何输出负载,用编程软件在线监控,模拟输入信号,确认梯形图逻辑正确、输出点动作顺序符合设计要求。这一步能在实验室解决掉的逻辑错误,绝对不带去现场。
第二步,触摸屏工程离线调试。在电脑上用 MCGS 模拟运行功能跑一遍画面,检查页面跳转、按钮动作、变量动画是否正常。模拟环境虽然不能连真实 PLC,但能发现大量的画面控件绑定错误。
第三步,联机调试。触摸屏下载程序后与 PLC 通讯,先用“手动模式”逐个点动水泵、电磁阀、灯光,确认每个输出点对应的设备方向正确。比如电磁阀装反了、水泵相序接反导致反转,这些问题都只能在真实负载下发现。
第四步,带载自动运行。切换到自动模式,按平日节能模式、晚间景观模式逐个跑一遍,观察整个时序循环是否流畅,同时检查水泵电流、变频器频率、水温、水位等运行参数。自动模式运行至少两个完整循环,确认定时切换正常后,再交付甲方。
调试过程中我还随身带了一份 I/O 分配表、一份端子接线图、一份操作说明。不要嫌麻烦,现场一旦有问题,三张纸能帮你节省半小时查线时间。交付的时候,把触摸屏管理员密码设好,再把打印好的操作说明贴在配电柜门内侧,甲方操作人员照着说明就能切换模式。
说回这个项目本身。三菱 PLC 和 MCGS 组态触摸屏的组合,在小中型喷泉控制里确实很能打:PLC 侧逻辑稳定可靠,触摸屏侧画面灵活、价格友好,两者通过串口通讯就能把整个系统串起来。我个人最深的体会是,喷泉这种项目真正花心思的地方不在代码,而在前期的工艺梳理——把喷泉的每一种水型、每一段时间节点、每一种保护条件想明白,程序反而是水到渠成的事。如果后续要升级成音乐喷泉,只需在现有框架上加音频分析模块或者变频器通讯,核心的控制和画面结构都不用推翻重来。