1. 项目背景与需求分析
最近完成了一个三层三列立体停车库的PLC控制系统开发项目,这个中型立体车库方案在商业综合体地下停车场改造中非常典型。客户需要在有限空间内将原有平面车位扩容3倍,同时保证存取车效率不低于每小时60辆次。
立体车库的核心痛点在于:
- 空间利用率与存取效率的平衡
- 多轴同步运动的精确控制
- 故障情况下的安全保护机制
我们选用西门子S7-200 SMART系列PLC作为主控制器,主要基于以下考量:
- 最多支持6轴运动控制,满足3层升降+3列横移需求
- 自带高速计数器功能(100kHz)可精准检测载车板位置
- 经济型方案比S7-1200节省30%成本
2. 控制系统架构设计
2.1 硬件配置方案
整个系统采用分布式IO架构:
- 主站:CPU SR40(18DI/12DO)
- 扩展模块:EM DR32(32DI)+ EM AQ04(4AO)
- 变频器:MM420驱动升降电机,G120控制横移电机
- 传感器:欧姆龙E3Z光电开关组(36个定位点)
- HMI:KTP700 Basic触摸屏
关键经验:立体车库必须配置双回路急停电路,我们采用硬件继电器+软件双重保护,急停响应时间<50ms
2.2 控制逻辑分解
将车库操作分解为三个核心状态机:
- 空闲态:检测车位占用情况(DI输入扫描周期100ms)
- 调度态:根据就近原则选择最优路径(Dijkstra算法实现)
- 执行态:升降轴与横移轴的协同控制
运动控制采用绝对位置模式,各轴参数设置:
// 升降轴参数 Axis_Param[1].MaxSpeed := 0.5; // m/s Axis_Param[1].Accel := 0.2; // m/s² Axis_Param[1].Decel := 0.3; // m/s² // 横移轴参数 Axis_Param[2].MaxSpeed := 0.8; // m/s Axis_Param[2].Accel := 0.3; // m/s²3. PLC程序开发要点
3.1 运动控制梯形图设计
采用模块化编程结构,关键程序块包括:
- FB1:单轴定位控制(带软限位保护)
- FB2:多轴联动插补
- FB3:故障自诊断(包含32种错误代码)
典型运动控制逻辑:
Network 1: 升降轴使能 LD I0.0 // 使能按钮 S Q0.0,1 // 驱动器使能 Network 2: 位置比较 LPS A I0.1 // 原点信号 MOVW 0, VW100 // 当前位置清零 LPP AW> VW100, 500 // 超过上限位 R Q0.0,1 // 紧急停止3.2 安全联锁实现
设计了三重保护机制:
- 机械限位:各轴两端安装行程开关
- 软件限位:在数据块中设定运动范围
- 速度监控:通过OB35中断组织块检测超速
安全回路采用独立继电器控制,关键联锁条件:
- 横移轴未到位时禁止升降
- 载车板上有车时禁止移动
- 门禁打开时禁止所有运动
4. 现场调试问题实录
4.1 典型故障排查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 升降轴抖动 | 变频器参数不匹配 | 调整P1120=5s(加速时间) |
| 定位偏差大 | 编码器线受干扰 | 改用双绞屏蔽线+终端电阻 |
| 突然急停 | 24V电源波动 | 增加稳压电源模块 |
4.2 关键调试技巧
- 先单轴后多轴:逐轴调试完成后再测试联动
- 模拟测试方法:用按钮模拟传感器信号验证逻辑
- 运动曲线优化:通过Trace功能记录实际速度曲线
实测发现:横移轴加速度设为0.4m/s²时会出现载车板晃动,最终调整为0.3m/s²
5. 系统优化与扩展
5.1 性能提升措施
通过以下改进将存取车周期从90s缩短到65s:
- 优化调度算法(增加优先级策略)
- 采用重叠运动控制(升降同时准备横移)
- 预读下一指令(提前旋转电机)
5.2 物联网扩展
后期增加了远程监控功能:
- 通过SMART LINE IE V3模块上传数据到云平台
- 微信小程序实时查看车位状态
- 故障自动推送告警信息
这个项目让我深刻体会到,立体车库控制不仅是简单的逻辑编程,更需要综合考虑机械特性、运动控制和安全性设计。特别是在多轴协同控制时,加速度参数的微小调整可能直接影响设备寿命,这需要反复实测才能找到最优值。