1. 项目背景与核心需求
电梯控制系统作为现代建筑中不可或缺的基础设施,其安全性和可靠性直接关系到用户的使用体验。西门子S7-1200 PLC与TP700触摸屏的组合,是目前中小型电梯控制系统的主流配置方案。这个项目完整呈现了从硬件选型到软件实现的开发全流程。
在实际工程中,三层电梯虽然结构相对简单,但已经包含了电梯控制系统的所有核心要素:楼层呼叫、轿厢调度、安全保护、状态显示等完整功能链。通过博途V15平台实现PLC与HMI的协同开发,可以显著提高开发效率,减少调试周期。
提示:选择S7-1200 PLC时需要注意CPU型号的I/O点数和通信能力是否满足需求,1214C DC/DC/DC型号是电梯控制的常见选择。
2. 硬件系统架构设计
2.1 主要硬件组件清单
- 控制器:西门子S7-1200 PLC(CPU 1214C DC/DC/DC)
- 人机界面:TP700 Comfort触摸屏(6寸,65535色)
- 输入设备:
- 轿厢内控制面板(含楼层选择按钮)
- 各楼层外呼按钮(上行/下行)
- 门状态传感器(光电/机械)
- 平层信号传感器(磁感应或光电)
- 输出设备:
- 曳引电机控制器(变频器)
- 门机控制器
- 轿厢照明/风扇
- 楼层显示LED
- 通信网络:PROFINET工业以太网
2.2 I/O地址分配策略
合理的I/O分配是程序可维护性的基础。建议采用以下分配原则:
-
按功能分区:
- 0.0-0.7:轿厢内控制按钮
- 1.0-1.3:1-3层上行外呼
- 1.4-1.6:2-3层下行外呼
- 2.0-2.2:平层信号输入
- 2.3-2.4:门状态信号
-
输出地址:
- Q0.0-Q0.2:楼层显示控制
- Q0.3:门机开启
- Q0.4:门机关闭
- Q0.5:上行指示
- Q0.6:下行指示
- Q0.7:报警输出
3. 博途V15开发环境配置
3.1 软件安装要点
-
版本匹配:
- TIA Portal V15.1(需包含STEP 7和WinCC组件)
- 确保安装最新的Update(建议至少Update 4)
- 安装时勾选"PLC SIM Advanced"选项以便离线仿真
-
硬件支持包:
- 下载并安装最新的HSP(硬件支持包)
- 确认包含S7-1200和TP700的GSD文件
-
许可证管理:
- 需要STEP 7 Professional和WinCC Advanced许可证
- 建议使用USB License Dongle避免授权问题
3.2 项目创建与设备组态
- 新建项目时选择"Empty project"模板
- 添加设备:
- 控制器:SIMATIC S7-1200 → CPU 1214C DC/DC/DC
- HMI:SIMATIC HMI → TP700 Comfort
- 网络配置:
- 建立PROFINET连接
- 设置IP地址(如PLC:192.168.0.1,HMI:192.168.0.2)
- 编译硬件配置前检查:
- 模块电源计算是否满足
- 通信负载率是否在安全范围内
4. PLC程序设计详解
4.1 主程序架构设计
采用模块化编程思想,将功能分解为多个FC/FB:
-
OB1(主循环组织块):
STL复制CALL "电梯主控逻辑" , "电梯控制DB" CALL "楼层判断逻辑" , "楼层检测DB" CALL "外呼处理逻辑" , "外呼处理DB" CALL "安全保护逻辑" , "安全保护DB" -
关键功能块:
- FB1:电梯运行控制(含方向判断、目标楼层队列管理)
- FC1:楼层位置计算(基于平层信号)
- FC2:门控制逻辑(含防夹检测)
- FC3:故障诊断与处理
-
数据块规划:
- "GlobalVars":系统状态、运行参数
- "CallRecords":外呼信号记录
- "FaultLog":故障历史记录(循环存储)
4.2 核心控制算法实现
楼层调度算法(SCL实现):
SCL复制FUNCTION_BLOCK "电梯调度控制"
VAR_INPUT
CurrentFloor : INT; // 当前楼层(1-3)
UpCalls : ARRAY[1..3] OF BOOL; // 各层上行呼叫
DownCalls : ARRAY[2..3] OF BOOL; // 2-3层下行呼叫
CarCalls : ARRAY[1..3] OF BOOL; // 轿厢内选层
Direction : INT; // 当前方向(0=停止,1=上行,2=下行)
END_VAR
VAR_OUTPUT
TargetFloor : INT; // 目标楼层
NewDirection : INT; // 新方向
END_VAR
VAR_TEMP
i : INT;
HasCallAhead : BOOL;
END_VAR
// 方向保持原则
IF Direction = 1 THEN // 上行中
HasCallAhead := FALSE;
FOR i := CurrentFloor+1 TO 3 DO
IF UpCalls[i] OR DownCalls[i] OR CarCalls[i] THEN
HasCallAhead := TRUE;
EXIT;
END_IF;
END_FOR;
IF HasCallAhead THEN
NewDirection := 1;
// 寻找最近的上方呼叫
FOR i := CurrentFloor+1 TO 3 DO
IF UpCalls[i] OR DownCalls[i] OR CarCalls[i] THEN
TargetFloor := i;
EXIT;
END_IF;
END_FOR;
ELSE
// 检查反向呼叫
IF (DownCalls[CurrentFloor] OR CarCalls[CurrentFloor]) THEN
NewDirection := 0; // 停靠
TargetFloor := CurrentFloor;
ELSE
// 寻找下方的最高呼叫
FOR i := CurrentFloor-1 DOWNTO 1 DO
IF UpCalls[i] OR DownCalls[i] OR CarCalls[i] THEN
NewDirection := 2;
TargetFloor := i;
EXIT;
END_IF;
END_FOR;
END_IF;
END_IF;
END_IF;
// 下行逻辑类似...
END_FUNCTION_BLOCK
4.3 安全保护功能实现
-
安全回路设计:
- 急停按钮串联所有安全触点
- 门锁状态监测(常闭触点)
- 超速检测(编码器脉冲监控)
-
软件保护措施:
- 运行时间监控(看门狗)
- 楼层位置校验(平层信号+运行方向)
- 反向运行保护(方向信号与楼层变化校验)
-
故障处理流程:
LAD复制// 故障检测网络 LD "安全回路断开" OR "门锁异常" OR "超速信号" S "紧急停止", 1 // 故障记录网络 LD "首次故障" EU MOVE "当前故障代码", "FaultLog".Record["FaultLog".Pointer] INC "FaultLog".Pointer
5. TP700触摸屏界面开发
5.1 画面规划与导航结构
-
主界面:
- 楼层显示(动态图形)
- 运行方向指示
- 当前状态(正常运行/检修/故障)
- 快速导航按钮
-
功能界面:
- 轿厢操作面板(模拟)
- 参数设置(密码保护)
- 故障历史查询
- I/O状态监控
-
报警管理:
- 弹出式报警窗口
- 报警确认按钮
- 报警历史记录
5.2 关键元素实现技巧
-
动态楼层显示:
- 使用"图形列表"对象
- 根据PLC变量"CurrentFloor"值切换不同状态图片
- 添加平滑移动动画效果
-
按钮组设计:
XML复制<Button Name="BtnFloor1" Text="1"> <Properties> <Click> SetVariable Tag="HMI_CallCar[1]" Value="1"/> </Click> </Properties> <States> <State Appearance="Pressed" When="Tag{'PLC_CallCar[1]'} == 1"/> </States> </Button> -
趋势图配置:
- 添加运行速度曲线
- 配置采样周期100ms
- 设置Y轴量程(0-1m/s)
5.3 通信变量连接
-
HMI变量规划:
- 建立连接"S7-1200_HMI_Connection"
- 优化通信负载(建议不超过50个动态变量)
- 设置合理的更新周期(关键变量100ms,普通变量500ms)
-
变量表示例:
HMI变量名 PLC地址 类型 说明 HMI_CallCar1 DB1.DBX0.0 Bool 轿厢1层呼叫 PLC_CurrentFloor DB1.DBW2 Int 当前楼层 PLC_Direction DB1.DBX2.0 Bool 运行方向 HMI_DoorOpen DB1.DBX3.0 Bool 开门命令
6. 系统调试与优化
6.1 离线仿真测试
-
PLCSIM Advanced使用:
- 创建虚拟PLC实例
- 导入硬件配置
- 设置仿真网络适配器
-
关键测试场景:
- 正常楼层呼叫响应
- 同方向优先原则验证
- 反向呼叫处理逻辑
- 安全回路触发测试
-
HMI仿真:
- 使用WinCC Runtime Advanced
- 测试所有画面切换
- 验证报警弹出机制
6.2 现场调试要点
-
上电前检查:
- 电源极性确认
- 通信线缆连接
- 安全回路导通测试
-
分步调试流程:
- 先验证I/O点状态
- 测试基本运行功能
- 验证安全保护功能
- 优化运行参数(加减速时间等)
-
常见问题处理:
- 平层信号抖动:增加软件滤波
- 门机动作异常:检查力矩参数
- 通信中断:检查终端电阻设置
6.3 性能优化技巧
-
程序优化:
- 使用"优化块访问"编译选项
- 将频繁调用的FC转换为FC_with_ECC
- 合理设置OB执行周期
-
HMI优化:
- 启用画面预加载
- 使用智能对象替代基本对象
- 减少同时活动的动画数量
-
通信优化:
- 分组变量更新
- 使用优化的DB访问方式
- 设置合理的PDU长度
7. 项目文档与维护
7.1 标准化文档体系
-
必须包含的文档:
- 硬件接线图(含端子编号)
- I/O地址分配表
- 程序结构说明
- 操作维护手册
-
注释规范:
SCL复制// 功能:电梯运行控制 // 作者:XXX // 日期:2023-08-20 // 修改记录: // 2023-08-25 增加方向保持逻辑 FUNCTION_BLOCK FB1 -
版本控制:
- 使用TIA Portal内置版本管理
- 每次修改添加变更说明
- 保留重要版本的归档
7.2 维护要点
-
定期检查项目:
- 备份电池状态
- 通信连接可靠性
- 机械部件磨损情况
-
故障诊断方法:
- 利用"在线与诊断"功能
- 分析故障代码记录
- 检查程序调用堆栈
-
软件更新策略:
- 先离线测试再现场更新
- 更新前备份项目文件
- 记录固件版本变更
8. 进阶开发建议
-
功能扩展方向:
- 增加节能运行模式
- 实现群控功能(多梯)
- 添加远程监控接口
-
安全认证考虑:
- 符合EN 81-20标准
- SIL2安全等级实现
- 冗余设计关键部件
-
新技术集成:
- OPC UA数据接口
- 预测性维护功能
- 人脸识别呼梯
经验分享:在实际项目中,建议将平层信号检测设计为"3取2"表决逻辑,可显著提高可靠性。同时,门机控制建议采用力矩+位置的双重控制策略,既能保证关门力度适中,又能准确定位。