1. 项目概述与核心功能
这个红绿灯控制仿真系统是我在工业自动化培训中经常使用的教学案例,基于西门子S7-1200 PLC和HMI人机界面开发。系统最突出的特点是采用模块化设计,通过三种不同的显示方式演示交通信号灯控制逻辑:
- IO域倒计时显示:直接在HMI的输入输出域显示各方向信号灯状态和剩余时间
- 数码管模拟显示:用七段数码管形式呈现倒计时数字
- 夜间模式:在预设时间段自动切换为黄灯闪烁状态
提示:系统使用博途V16平台开发,程序同时包含梯形图(LAD)和SCL语言实现,特别适合PLC初学者理解两种编程方式的差异。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件配置与软件环境
2.1 基础硬件组成
- 控制器:西门子S7-1214C DC/DC/DC (6ES7 214-1AG40-0XB0)
- HMI:KTP700 Basic (6AV2 123-2GB03-0AX0)
- 仿真器:PLCSIM Advanced V3.0
- 通信配置:PROFINET连接,IP地址192.168.0.1/24
2.2 软件依赖
- TIA Portal V16 (需安装STEP7和WinCC组件)
- S7-PLCSIM Advanced V3.0+
- 可选:Visual Studio Code + SCL插件(用于离线代码编辑)
3. 核心程序设计解析
3.1 信号灯状态机设计
系统采用经典的Moore型状态机,定义6个基本状态:
| 状态编号 | 南北方向 | 东西方向 | 持续时间(s) |
|---|---|---|---|
| 1 | 绿灯 | 红灯 | 30 |
| 2 | 黄灯 | 红灯 | 5 |
| 3 | 红灯 | 红灯 | 2 |
| 4 | 红灯 | 绿灯 | 20 |
| 5 | 红灯 | 黄灯 | 5 |
| 6 | 红灯 | 红灯 | 2 |
``
