1. 项目背景与核心需求
去年接手了一个老旧小区电梯改造项目,需要为两栋六层住宅楼设计全新的电梯控制系统。甲方明确要求采用西门子S7-1200 PLC作为主控设备,这让我有机会深入探索这款中型PLC在电梯控制领域的实战应用。传统继电器控制系统故障率高、维护困难,而PLC方案能完美解决这些问题。
两部电梯需要实现并联控制,这是项目的关键难点。当一栋楼的两部电梯同时运行时,系统需要智能分配呼梯信号,避免空跑浪费能源。比如早高峰时段,如何让两部电梯合理分担不同楼层的运输需求,这涉及到复杂的调度算法设计。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件配置与信号规划
2.1 PLC选型与扩展模块
选用S7-1214C DC/DC/DC作为主控制器,这款CPU自带14点数字量输入/10点输出,正好满足单部电梯的基本控制需求。通过添加SM1223数字量扩展模块(8输入/8输出),为每部电梯增加足够的I/O点。特别要注意的是,所有楼层按钮和轿厢按钮都需要配置输入点,而门机控制、楼层显示等需要输出点。
实际配置时发现:每层需要2个输入(上行/下行呼梯按钮)+ 轿厢内6个楼层按钮,仅按钮就需要18个输入点。加上门限位、安全回路等信号,必须仔细规划I/O分配。
2.2 安全回路设计
电梯安全永远是第一位的。我设计了双重安全保护:
- 硬件回路:包括限速器开关、安全钳开关、缓冲器开关等串联形成急停回路
- 软件检测:PLC程序实时监控所有安全信号,任何异常立即进入保护状态
特别在门机控制上,采用闭环控制策略:
- 光电开关检测门区障碍物
- 扭矩限制防止夹伤
- 开门到位和关门到位双信号验证
3. 核心程序设计解析
3.1 楼层定位与运行控制
采用绝对值编码器测量轿厢位置,通过OB35循环中断(设置100ms)实时计算当前楼层。关键算法包括:
ST复制// 楼层计算示例(结构化文本)
IF "编码器值" >= (n-1)*"层高脉冲数" AND "编码器值" < n*"层高脉冲数" THEN
"当前楼层" := n;
"平层信号" := TRUE;
END_IF;
运行控制采用状态机设计,包含以下状态:
- 待机状态
- 加速运行
- 匀速运行
- 减速平层
- 开关门过程
