1. 项目概述与核心需求
这个4×4立体车库控制系统设计项目,是我去年为某商业综合体完成的自动化改造方案。采用三菱FX3U-48MR PLC作为主控制器,配合组态王6.55实现可视化监控,整个系统包含13个车位(实际布局中预留了3个检修位)。在项目验收后的运维数据统计显示,系统平均存取车时间控制在90秒内,故障率低于0.5%。
核心需求可以分解为五个关键功能点:
- 车位状态实时监测与显示(通过13个光电传感器实现)
- 智能分配存取车路径(基于优先使用底层车位的策略)
- 双电机协同控制(升降电机Y0-Y3 + 平移电机Y4-Y7)
- 紧急停止保护(X20急停按钮硬件级保护)
- 人机交互界面(组态王动态可视化)
注意:实际工程中建议保留20%的I/O余量,本案例使用的48点PLC在扩展后实际占用36个I/O点(19入/17出)
2. 硬件系统设计详解
2.1 PLC选型与IO分配
选择FX3U-48MR主要基于三点考量:
- 继电器输出型更适合驱动车库的交流接触器
- 48点配置满足当前需求且预留扩展空间
- 内置的定位指令方便后续添加伺服控制
具体IO分配如下表:
| 类型 | 地址范围 | 功能说明 |
|---|---|---|
| 输入 | X0-X12 | 车位传感器(常开型E3Z光电) |
| 输入 | X14-X17 | 4位二进制输入按钮组 |
| 输入 | X20 | 急停按钮(NC触点) |
| 输出 | Y0-Y3 | 升降电机正反转控制 |
| 输出 | Y4-Y7 | 平移电机四方向控制 |
| 输出 | Y10-Y12 | 车位状态指示灯 |
2.2 电气接线要点
电源回路采用三级保护设计:
- 主回路:断路器+接触器+热继电器
- 控制回路:隔离变压器+熔断器
- 信号回路:DC24V开关电源
电机控制部分特别需要注意互锁:
ladder复制// 升降电机正反转互锁示例
LD X20 // 急停状态检测
ANI Y0 // 正转互锁
OUT Y1 // 反转输出
经验:实际布线时电机动力线(380V)必须与信号线(24V)分槽敷设,平行间距保持30cm以上,我们曾因干扰导致传感器误触发
3. 控制程序设计精要
3.1 核心数据结构设计
使用数据寄存器构建车位状态表:
- D0:系统参数区(总车位数、当前空闲数)
- D10-D22:每个车位的属性标记(0=空/1=占用)
- D100-D113:每个车位的位置坐标(XY编码)
初始化程序示例:
ladder复制MOV K13 D0 // 总车位数
ZRST D10 D22 // 清空状态表
MOV K0 D1 // 空闲计数器
3.2 存取车算法实现
存车流程采用最近路径优先算法:
- 扫描D10-D22找首个空位
- 计算当前位置到目标位的曼哈顿距离
- 生成移动路径队列(先升降后平移)
关键代码片段:
ladder复制LD M8002 // 上电初始化
CALL P0 // 路径规划子程序
// P0子程序内容:
MOV K0 D100 // 起点X坐标
MOV K0 D101 // 起点Y坐标
CMP D10 K0 // 检查1号车位
= M0 // 结果暂存
3.3 安全保护机制
三级安全防护设计:
- 硬件级:急停按钮直接切断控制回路
- 软件级:每步动作前校验限位信号
- 过程级:移动超时检测(T192定时器)
典型保护逻辑:
ladder复制LD X20 // 急停状态
ORI T192 // 超时检测
OUT M100 // 故障标志
RST Y0 // 立即停止输出
4. 组态王界面开发技巧
4.1 动态元素设计
车位状态显示采用条件脚本:
vb复制If GetData("D10")=0 Then
SetFillColor(0,0,255) // 蓝色表示空位
Else
SetFillColor(255,0,0) // 红色表示占用
End If
4.2 数据通信配置
PLC与组态王的通信参数设置:
- 接口类型:RS485
- 波特率:19200bps
- 数据格式:7E1
- 协议:三菱FX系列专用协议
调试发现:组态王的采样周期建议设为300ms,过短会导致通信拥堵
5. 调试经验与问题解决
5.1 典型故障排查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 电机抖动 | 接触器吸合不良 | 检查线圈电压≥85%额定值 |
| 传感器误报 | 金属反光干扰 | 加装遮光罩或调整安装角度 |
| 通信中断 | 终端电阻未接 | 在总线末端接120Ω电阻 |
5.2 关键调试心得
-
光电传感器灵敏度调节:
- 先逆时针调到底
- 缓慢顺时针旋转至刚好触发
- 再顺时针转15°锁定
-
电机时序控制要点:
- 正反转切换必须加200ms延时
- 先停原方向再启新方向
- 用辅助继电器做状态保持
-
程序优化技巧:
- 频繁调用的子程序用CALL/RET
- 批量数据操作用BMOV指令
- 状态检测用ALT指令替代OUT
6. 系统扩展建议
当前系统可进一步优化:
- 增加RFID车辆识别(需扩展FX3U-485BD模块)
- 添加手机APP预约功能(通过PLC的以太网模块)
- 引入能耗监测(加装电表采集数据)
硬件改造示例:
ladder复制// RFID读取指令示例
LD M8000
RS D200 K8 D300 K8 // 读取8字节卡号
这个项目最让我印象深刻的是路径规划算法的调试过程。最初采用简单顺序存取策略,实测发现平均存取时间长达150秒。后来引入曼哈顿距离算法后,配合STL步进指令实现动作队列优化,最终将效率提升40%。建议新手在类似项目中,务必先做纸面推演再写程序,可以节省大量现场调试时间。