1. 项目背景与行业痛点
停车场管理系统作为现代城市基础设施的重要组成部分,其自动化程度直接影响着运营效率和服务质量。在传统停车场项目中,我们常常面临几个典型问题:
- 不同品牌PLC设备间的协议兼容性问题(特别是日系与欧系设备的混合使用场景)
- 上位机组态软件与底层控制器的数据交换效率瓶颈
- 多设备协同工作时的时序控制难题
- 系统扩展时遭遇的硬件限制
这个项目之所以特别,是因为它同时整合了三菱FX系列PLC、西门子S7-200 SMART以及国产组态王软件,在100个车位的停车场中构建了一套高性价比的自动化管理系统。这种组合方案既发挥了日系设备在逻辑控制方面的稳定性,又利用了欧系设备在通信协议上的开放性,再通过组态王实现友好的人机交互界面。
2. 核心设备选型解析
2.1 三菱FX3U-32MT/ES-A的优势考量
选择这款基础型PLC主要基于以下实际考量:
- 16点输入/16点晶体管输出的配置刚好满足单个区域的车位检测和道闸控制需求
- 内置的RS-422接口可直接与组态王通信,省去额外通信模块成本
- 脉冲输出功能方便后续扩展LED屏控制
- 实际项目中验证过的抗干扰能力(停车场环境存在大量变频器干扰)
经验提示:在采购三菱PLC时务必注意后缀型号,ES-A版本相比DS型号缺少模拟量功能但价格低30%,本项目纯数字控制场景完全够用。
2.2 西门子S7-200 SMART CR40的互补价值
选用这款设备主要解决三菱PLC的以下短板:
- 自带以太网口便于组网(三菱FX3U需额外加装通信模块)
- 支持Modbus TCP协议,与车牌识别相机直接通信
- 更高的程序存储空间(12KB)适合处理复杂的计费逻辑
- 通过EM AM03模块轻松扩展模拟量输入,用于环境监测
实际配置方案:
plaintext复制西门子S7-200 SMART CR40 ×3台(分区控制)
EM AM03模拟量模块 ×1(温湿度/CO浓度监测)
6ES7 288-1SR20-0AA0继电器扩展 ×2(备用输出)
2.3 组态王6.55版本的适配考量
选择这个经典版本而非最新版的原因:
- 完美支持三菱FX系列编程口协议(省去MX Component组件)
- 内置西门子S7-200 SMART的驱动库
- 对Windows XP系统的兼容性(部分老旧停车场仍在使用工控机)
- 成熟的OPC服务功能便于后期对接云平台
3. 系统架构设计与通信实现
3.1 硬件拓扑结构
采用分层分布式架构:
code复制[现场层]
├─ 三菱FX3U(车位检测/道闸控制)
├─ 西门子S7-200 SMART(计费逻辑/环境监测)
└─ 霍尼韦尔扫码枪(支付终端)
[控制层]
├─ 组态王服务器(WinCC运行版)
└─ 千兆工业交换机
[管理层]
└─ 停车场管理PC(SQL Server数据库)
3.2 关键通信配置
三菱PLC通信参数
ini复制[FX3U_1]
Port=COM1
BaudRate=9600
DataBits=7
Parity=Even
StopBits=1
StationNumber=1
Protocol=FXSeries
西门子PLC的S7协议配置
python复制# 组态王中的Python脚本示例
def S7_Connect():
s7 = S7Client()
s7.SetConnectionType(0) # PG模式
s7.ConnectTo("192.168.1.10", 0, 1) # IP,机架,槽号
if s7.GetConnected():
WriteLog("S7连接成功")
避坑指南:西门子PLC的TSAP设置必须匹配,组态王默认是03.00,而S7-200 SMART通常为03.01,此处不匹配会导致通信失败但无明确报错。
4. 核心功能实现细节
4.1 车位状态联动逻辑
采用三菱PLC的矩阵扫描技术:
ladder复制|--[M8000]----[MOV K4M100 D0]--| # 4x4车位状态采集
|--[CMP D0 K0]----(M100)-------| # 全空检测
|--[CMP D0 K65535]--(M101)-----| # 全满检测
对应组态王画面元素绑定:
xml复制<Item TagName="Parking_Status" Address="M100"
DataType="Bit" Comment="车位全空标志"/>
4.2 跨品牌数据交换方案
通过组态王的全局变量实现数据桥接:
- 西门子PLC将计费金额写入VW100
- 组态王读取后赋值给全局变量[Total_Fee]
- 三菱PLC通过Modbus RTU从组态王读取该值
vbscript复制' 组态王VBS脚本
Sub OnTimer()
Dim fee
fee = ReadS7Data("DB1.DBW100")
SetTagValue("Total_Fee", fee)
End Sub
4.3 异常处理机制
双PLC冗余检测设计:
- 三菱PLC负责硬件级急停(X0接入急停按钮)
- 西门子PLC实现软件看门狗(每500ms握手一次)
- 组态王做状态可视化报警
structured-text复制// 西门子看门狗程序
NETWORK 1
LD SM0.0
TON T37, 500
LD T37
MOVW VW200, VW202
XORW VW202, 16#55AA
MOVW VW202, VW200
5. 现场调试经验实录
5.1 典型问题排查表
| 故障现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 组态王显示通信超时 | 三菱PLC协议版本不匹配 | 1. 检查PLC参数 2. 用GX Works2监控 |
在PLC参数中启用"编程口通信" |
| 西门子PLC数据跳变 | 电磁干扰 | 1. 用示波器测电源 2. 检查接地电阻 |
加装信号隔离器 接地电阻<4Ω |
| 组态王画面卡顿 | 变量刷新频率过高 | 1. 检查变量扫描周期 2. 查看CPU占用率 |
将模拟量采样改为500ms |
5.2 接地处理的教训
在某次雷雨天后出现的随机故障,最终发现:
- 三菱PLC接地线(直径1.5mm²)与变频器共用
- 西门子PLC接地端子虚接
- 组态王工控机未接独立地线
改进方案:
- 所有PLC使用4mm²独芯铜线接至统一接地桩
- 信号线改用双绞屏蔽线(型号RVVP2×1.0)
- 在电源入口加装雷击浪涌保护器
6. 系统优化与扩展
6.1 性能提升技巧
通过以下调整使系统响应速度提升40%:
- 将组态王与西门子PLC的通信由Fetch/Write改为S7协议
- 三菱PLC的扫描周期从10ms调整为15ms(降低CPU负荷)
- 组态王画面分页加载(每页不超过50个动态元素)
6.2 移动端扩展方案
利用组态王的Web发布功能:
html复制<!-- 自定义HTML5页面片段 -->
<div id="parking-map">
<img src="background.jpg" usemap="#parking">
<area shape="rect" coords="10,20,50,60"
onmouseover="showInfo('A01')">
</div>
配套的PLC程序修改:
structured-text复制// 西门子PLC新增Web服务数据区
NETWORK 10
LD SM0.0
MOVW VW300, VW400 // 车位状态上传
MOVW VW302, VW402 // 当前温度
这个项目最让我意外的是三菱PLC的编程口通信稳定性——在连续30天的运行中,通信错误次数居然比西门子的以太网通信还要少。不过西门子PLC在处理复杂计费逻辑时的程序结构化优势确实明显,两种设备的互补性在这个项目中得到了完美体现。