1. 项目背景与核心价值
作为一名在工业自动化领域摸爬滚打多年的老工程师,我深知西门子S7-1200 PLC和精智HMI(人机界面)是当前中小型自动化项目的黄金搭档。这个广告屏流水灯案例,正是我当年从学校实验室走向工程现场的"启蒙老师"。
这个项目的经典之处在于:它麻雀虽小五脏俱全。通过控制LED灯的流水效果,你能同时掌握PLC基础指令、HMI组态设计、变量关联等核心技能。更重要的是,它完美模拟了工业现场常见的设备状态指示、广告牌控制等真实场景。我带的几个徒弟都是从这个案例开始,逐步成长为能独立承担项目的工程师。
2. 硬件准备与接线图
2.1 基础配置清单
- S7-1200 PLC:建议选用1214C DC/DC/DC型号(6ES7 214-1AG40-0XB0),自带14点数字量输出
- 精智HMI:KTP700 Basic(6AV2 123-2GB03-0AX0)彩色触摸屏
- LED灯带:24V DC防水LED硬灯条(长度根据需求裁剪)
- 电源模块:24V/5A开关电源(给PLC和LED供电)
- 通信线缆:Profinet标准网线(用于PLC与HMI通信)
2.2 电气接线要点
- PLC输出端(Q0.0-Q0.7)通过继电器模块控制LED灯带
- 每组LED正极接继电器常开触点,负极统一接电源24V-
- HMI通过PN接口与PLC建立通信
- 务必在PLC输出端和LED之间加入熔断器保护(推荐1A保险管)
关键提示:实际工程中一定要加装中间继电器,避免PLC输出点直接驱动大电流负载。我曾见过新手烧毁输出模块的惨痛案例。
3. TIA Portal软件组态全流程
3.1 新建项目与设备添加
- 打开TIA Portal V17(推荐版本)
- 创建新项目,命名为"LED_Advertising"
- 在项目树中添加设备:
- 控制器选择"S7-1200 CPU 1214C DC/DC/DC"
- HMI选择"KTP700 Basic PN"
3.2 PLC程序编写
在OB1主程序块中编写梯形图程序:
pascal复制// 网络1:初始化
MOVE(EN := TRUE, IN := 16#01, OUT => "启动标志");
// 网络2:移位寄存器实现流水效果
"移位寄存器" := SHL(IN := "启动标志", N := "移位次数");
IF "移位次数" >= 7 THEN
"移位次数" := 0;
ELSE
"移位次数" := "移位次数" + 1;
END_IF;
// 网络3:输出到LED
"输出字节" := "移位寄存器" AND "使能信号";
3.3 HMI画面组态
- 创建基本画面"MainScreen"
- 添加以下元素:
- 8个圆形指示灯(关联Q0.0-Q0.7)
- 启动/停止按钮(关联M0.0)
- 速度调节滑块(关联MW10,范围1-10)
- 设置画面切换按钮和公司LOGO
4. 核心功能实现技巧
4.1 流水灯算法优化
原始移位指令虽然简单,但实际工程中我推荐使用循环队列算法:
pascal复制// 在DB1中创建数组
"LED_Array" : ARRAY[0..7] OF BOOL;
// 循环移位程序
IF "定时器".Q THEN
FOR i := 7 DOWNTO 1 DO
"LED_Array"[i] := "LED_Array"[i-1];
END_FOR;
"LED_Array"[0] := "LED_Array"[7];
END_IF;
这种实现方式更利于扩展特效模式(如跑马灯、呼吸灯等)。
4.2 HMI动画效果增强
在精智屏上可以做出更专业的视觉效果:
- 为每个LED添加"可见性动画",关联对应PLC变量
- 设置"填充量"动画实现呼吸灯效果
- 使用"矢量图形"替代简单圆形,提升视觉质感
5. 工程调试与问题排查
5.1 典型故障速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| LED全不亮 | 电源未接通 | 检查24V电源输出 |
| 部分LED常亮 | 输出点粘连 | 更换继电器模块 |
| HMI无法通信 | IP设置错误 | 确认PLC与HMI在同一网段 |
| 流水速度异常 | 定时器未生效 | 检查OB块调用周期 |
5.2 调试心得
- 在线监控时建议使用"强制表"功能单独测试每个输出点
- HMI仿真前务必先编译PLC程序
- 实际工程中要添加急停按钮和运行状态指示
- 建议在DB块中添加注释说明每个变量的用途
6. 项目扩展方向
掌握了基础功能后,可以尝试以下进阶开发:
- 增加多种显示模式(随机闪烁、梯度变化等)
- 添加RFID刷卡启动功能
- 通过OPC UA实现远程监控
- 与上位机系统集成,实现节目单管理
这个项目最让我受益的是培养了对工业控制系统"信号流"的直觉理解。当你看到HMI上的按钮按下后,能清晰想象出从触摸信号到PLC输入点,再经过程序处理最终驱动LED的完整路径,这种系统思维才是自动化工程师的核心竞争力。