停车场控制西门子S7-1200和TP900触摸屏联机博途V15,带注释和IO表设计要求
最近在做一个停车场控制系统,用到了西门子S7-1200和TP900触摸屏。趁着调试间隙,把项目里几个关键点整理出来,给刚接触博途的朋友做个参考。
硬件组态那点事儿
在TIA Portal V15里新建项目,先搞定硬件配置。S7-1215C DC/DC/DC作为主控,TP900 Comfort作为人机界面。注意在设备视图中要给HMI分配正确的IP段(建议用192.168.0.x),PLC和HMI要在同一子网里。
IO表设计有个小窍门:把传感器信号统一分配到前16个输入点,执行机构放到后16个输出点。比如:
// 车辆检测 I0.0 : "入口地感线圈" // 常开触点 I0.1 : "出口地感线圈" I0.2 : "车位满传感器" // 执行机构 Q0.0 : "入口闸机升杆" Q0.1 : "出口闸机升杆" Q0.2 : "报警指示灯"这种命名方式调试时找信号特别方便,比用默认地址直观多了。
核心控制逻辑
停车场最关键的车位数统计,用了个自编的FC块。这里分享个实用技巧——用加减计数器实现车流统计:
// 在FC1中声明变量 VAR 入场脉冲 : Bool; 出场脉冲 : Bool; 当前车位数 : Int := 200; // 总车位数 END_VAR IF 上升沿(入场脉冲) THEN 当前车位数 := 当前车位数 - 1; END_IF; IF 上升沿(出场脉冲) THEN 当前车位数 := 当前车位数 + 1; END_IF;注意要加防抖处理,实测地感线圈信号偶尔会抖动。我在OB1里加了500ms的延时判定,避免重复计数。
HMI交互设计
TP900的界面布局建议采用三栏式:左侧导航菜单,中间动态显示车位状态,右侧放操作按钮。重点说几个容易踩坑的地方:
- 车辆计数器用"符号IO域"绑定PLC变量时,记得选"十进制有符号"
- 闸机状态指示灯用矢量图形,比位图更清晰
- 报警记录用报警视图控件,配合PLC的报警字使用
关键变量连接示例:
// HMI变量表 "车位显示" := DB1.当前车位数 "满位指示灯" := Q0.2 "入场按钮" := M10.0 // 手动开闸信号调试血泪经验
- 联机时如果找不到设备,先检查PG/PC接口设置,选实际使用的网卡
- 触摸屏第一次下载要勾选"覆盖设备版本"
- IO强制功能慎用,特别是电磁锁这类执行机构
- 现场布线记得加浪涌保护,特别是露天安装的传感器
最后提一嘴注释规范:每个网络段至少有一个注释,复杂逻辑用德语/英语写备注(中文有时会乱码)。程序块的接口变量必须写清楚物理意义,别用a1、b2这种命名——三个月后自己都看不懂。
项目还在收尾,下次有机会再聊聊WinCC的报表功能怎么跟停车收费系统对接。有具体问题欢迎留言区交流,看到都会回。