
干了好几年自动化项目如果要我选一个最能代表“皮实耐造”的PLC我大概率会投西门子S7-200一票。这个十几年前就定型的老型号至今还在无数停车场、水泵房、小型生产线里稳定运行。这次我把自己搭建一套基于S7-200的智能停车场监控系统的完整路径整理出来从硬件选型、I/O分配、梯形图编写到触摸屏与上位机通讯再到抗干扰调试按完整的项目实施顺序摊开讲。适合正在用S7-200做项目的电气工程师、负责老设备维保的电工以及所有准备用老平台做智能化升级的朋友。停车场这种项目看起来就是几个道闸和指示灯但真要落地涉及车辆检测、车位计数、防砸逻辑、人机界面和现场通讯。信息点不算多可靠性要求却不低。用S7-200来做恰好能发挥它逻辑简单、运行稳定的优势还能把改造成本压在一个非常可控的范围内。1. 方案选型为什么停车场的活交给S7-2001.1 老将仍有市场S7-200的定位与优劣PLC选型的第一原则从来不是参数多高而是现场够用、维护方便、备件好找。S7-200虽然是西门子小型机里的老前辈CPU221、CPU222、CPU224、CPU226这些型号早就停产了但存量设备非常庞大二手模块和备件价格便宜老一代电气工程师几乎人人会写。CPU224本体提供14点数字量输入和10点数字量输出对停车场这种以开关量为主的控制场景非常合适点数不够就挂一块EM223数字量扩展模块或者用EM235模拟量模块接带模拟量输出的传感器方案非常成熟。技术底子上S7-200有不少可圈可点的地方。梯形图直观STEP 7 Micro/WIN软件对新手友好定时器、计数器、边缘检测指令齐全CPU自带一个PPI串口能直连触摸屏也能通过自由口模式刷成Modbus RTU从站。缺点同样摆在桌面上用户程序空间只有十几KB程序大了就得精打细算没有以太网接口原生不支持Modbus TCP脉冲输出通道少做步进电机控制远不如后来的S7-200 SMART顺手。所以在纯逻辑、单机、小规模监控场景里它最有价值。如果是一个全新项目没有历史包袱我会直接推荐S7-200 SMART或者S7-1200。但很多改造项目的现实是现场原来就用S7-200程序是前任工程师留下的图纸齐全柜子里还有备件存货。这种时候强行换平台反而风险更大重写程序、重拉通讯、重新验证I/O绑定业主往往不愿意承担时间成本。基于S7-200做智能化改造才是这类现场最真实的刚需。1.2 停车场监控要管的设备一点不少如果以为停车场监控就是“杆子起来、杆子落下”那就太小看它了。把现场信号拆开看入口地感线圈给出“有车来了”出口地感线圈给出“车要出去”道闸两侧的红外对射负责防砸开到位和关到位限位开关决定电机停止位置超声波探测器判断每个车位是否被占用。执行端同样杂入口道闸电机、出口道闸电机、剩余车位LED引导屏、语音播报器、满位报警灯再加上物业办公室里的上位机数据刷新。把这些要素组合起来系统其实是一个清晰的三层结构底层是现场设备层包括传感器、道闸、指示屏中间是控制层也就是S7-200 PLC和扩展模块顶层是监控层包含触摸屏和组态上位机。PLC在其中相当于一个不知疲倦的现场调度员。触摸屏一般放在门卫室或中控室值班员可以看到进出车记录、当前余位数、闸机状态上位机放在物业办公室远程查看数据和汇总报表。1.3 为什么是“PLC 触摸屏 上位机”这套组合有人问过停车场用单片机方案不行吗靠摄像头加车牌识别不也能控制方案当然多但停车场控制系统的核心追求是可靠、可维护、断电重启后逻辑不乱。PLC的梯形图一旦固化只要供电正常它就会按既定逻辑一直跑没有操作系统崩溃、驱动冲突这些事。触摸屏负责本地人机对话改参数直接在屏上完成上位机负责数据汇总和远程监控。三者各司其职即使上位机停机现场道闸和计数照样运转这一点在停车场场景里非常重要——设备可以检修管理不能停摆。用个生活化的比喻PLC是保安队长一天到晚盯着地感和道闸反应快不乱来触摸屏是值班台上的对讲机和控制面板值班员通过它观察和干预上位机则是物业办公室里的台账管理员负责统计进出车情况。三个角色凑成一个完整的小团队缺了哪个系统都还能继续转。2. 硬件规划与I/O分配先画图再动柜子2.1 传感器选型与安装的几个关键细节车辆检测是整个系统感知层的地基。地感线圈埋在车道下方车辆经过时线圈电感量变化触发检测信号。选型时注意灵敏度和防漂移能力过车速度太快或太慢都会影响触发。埋设时线圈绕4到6圈引出线要双绞并且必须远离电力电缆否则很容易误触发。现场有减速带或钢板的话线圈要预留足够安全距离否则灵敏度调再高也白搭。红外对射或激光雷达装在道闸杆两侧或顶部开闸时一旦检测到人或者车进入闸杆下方区域立即停止下降甚至反向抬起。这类设备响应速度必须足够快至少要选毫秒级输出的对射传感器否则防砸就成了一句空话。超声波探测器吊装在每个车位上方通过发射超声波判断车位是否被占用输出开闭量安装高度一般在2.2到2.5米探头要垂直对准车位中心否则旁边车道的车也能触发它。道闸建议直接采购成品PLC只输出干接点控制升杆和降杆道闸自带电机控制盒起落到位后反馈限位信号。选购时尽量挑带防砸接口的型号一是安全性更高二是能减少PLC侧一部分判断逻辑。LED剩余车位屏多数走RS485通讯少部分用干接点组合输出如果选RS485屏PLC加一块RS485通讯板用Modbus RTU往屏上写剩余数字实现起来成本低、后期维护也方便。2.2 用一张I/O分配表把项目固定下来I/O规划是这类项目最不能省的一步。先列出所有输入输出点再开始画梯形图能避免后面接线一头雾水。以下是我在这个项目里实际使用的分配表CPU224本体刚好容纳输入地址信号名称说明I0.0入口地感有车为1I0.1出口地感有车为1I0.2入口红外防砸遮断为1I0.3出口红外防砸遮断为1I0.4入口道闸上升到位限位信号I0.5入口道闸下降到位限位信号I0.6出口道闸上升到位限位信号I0.7出口道闸下降到位限位信号I1.0手动/自动切换1为手动I1.1消防联动信号1为消防模式输出地址信号名称说明Q0.0入口道闸上升干接点控制Q0.1入口道闸下降干接点控制Q0.2出口道闸上升干接点控制Q0.3出口道闸下降干接点控制Q0.4满位指示灯LED灯塔Q0.5声光报警器超时/故障Q0.6入口LED屏使能屏刷新信号Q0.7出口LED屏使能屏刷新信号CPU224本身是14入10出上面输入10个、输出8个本体刚好够用。如果未来要增加入口数量或者联动车牌识别相机我在柜子里预留了一个EM223扩展模块的位置就是为了避免后期再开柜孔、加导轨。I/O触点的类型也要想清楚。S7-200输入端支持漏型和源型两种接法但大多数现场习惯用漏型接法传感器用PNP输出时需要注意公共端的连接方式。继电器输出型的CPU输出点带载能力有限驱动道闸控制盒、大功率接触器时必须通过中间继电器转换PLC输出点只负责吸合一个中间继电器线圈由中间继电器触点去通断现场负载。这一步不仅保护了PLC输出触点也方便后期检修。2.3 供电与抗干扰几条必须守住的死规矩现场最常见的疑难杂症不是程序错而是干扰。对停车场项目我总结了几条必须遵守的原则。第一控制柜内电源分区。PLC开关电源、传感器电源、继电器电源尽量分开供电空间实在紧张也要用滤波器和隔离变压器把PLC供电隔开。道闸电机、LED屏这类大功率负载绝对不能和PLC共用一个开关电源。第二所有信号线用屏蔽双绞线屏蔽层在PLC柜内单端接地。地感线圈引线是高频信号尤其要遵守“双绞、远离、单端接地”三个原则。第三动力线和信号线分开穿管强电电缆与弱电信号线至少间隔20厘米平行走线距离越长干扰越明显。第四中间继电器线圈两端并联续流二极管或者RC吸收回路。这个做法属于老生常谈但很多柜子里继电器打火花、PLC无端复位都是从这儿省出来的麻烦。道闸电机这类感性负载断电瞬间会产生反向电动势直接在负载两端并一个阻容吸收器比在PLC输出端反复折腾省事得多。3. 梯形图实现出入口控制、车位计数与道闸防砸3.1 进出口的完整控制流程是怎么设计的程序设计先从上电初始状态开始。PLC上电后应把道闸置于关闸状态计数器读取断电前保存的数据。S7-200的V区支持断电保持上电时把备份区域的数值恢复到当前计数值就能避免“断电丢数”的尴尬。随后程序进入主循环检测入口地感若检测到有车且在自动模式则查询剩余车位有车位时输出开闸信号车辆通过后道闸自动下降。出口方向逻辑对称出口地感检测到车辆直接开闸放行车辆通过后关闸同时剩余车位加一。满位时入口开闸条件被锁定LED屏显示“车位已满”。此外要把消防联动和手动模式做成无条件优先。消防信号接入后所有道闸强制开启同时停止计数更新防止与消防指令冲突。手动模式下用控制盒按钮直接控制道闸PLC退出自动逻辑只做状态监视。这样即使PLC程序需要在线修改现场也还能靠手动控制维持基本通行。3.2 车位计数与防误判设计计数逻辑是整套系统最容易出错的地方。如果只给一个方向脉冲做加减计数最常见的问题就是地感信号抖动导致重复计数。我用双信号确认加延时抖动过滤的方式入口安装两个地感一前一后前地感触发后开始计时后地感在设定时间窗口内触发才认为是一辆车正常入场随后执行减一操作。如果只有前地感触发而后面没有触发说明异常自动取消本次计数。单地感场景下至少要在上升沿之后启动一个1秒的防抖定时器信号稳定后才能计数。梯形图网络可以这样理解网络1入口防抖处理。I0.0闭合后启动T37T37计时1秒若I0.0保持稳定则置位M0.0作为“入口稳定有车”标志。网络2计数更新。用M0.0的上升沿触发VW100减一同时把VW100钳在0到总车位数之间。网络3满位判断。VW100小于等于0时置位M1.0满位标志M1.0的常闭触点串在入口开闸回路中。计数存储建议用一个VW双字区域比如VW100记录当前剩余车位。每次入口正常入场立即减一出口正常出场立即加一。同时把VW100和0比较小于等于0时置位满位标志。看似简单但防抖逻辑和上下限钳制一个都不能少。计数变成负数或者超过总车位数很多现场就是这么“跑飞”的。3.3 道闸控制与防砸保护道闸控制逻辑要同时考虑开闸到位、关闸到位、防砸中断、超时保护四种情况。开闸时Q0.0置位当开到位限位信号到达后复位Q0.0并停止输出下降状态同理。如果下降过程中I0.2红外对射被遮断应立即复位下降输出同时重新置位上升输出把闸杆抬起来等障碍物移开后再延时落闸。防砸复位后不能立刻落闸一般延迟2到3秒再执行下降下降前还要再次检测红外状态。超时保护是很多初稿里被漏掉的一环道闸正常升降可能只要4秒如果设定8秒仍未到位程序应停止输出并触发报警避免电机堵转烧毁。置位复位指令虽然直观但顺序必须严格设计开闸信号和关闸信号绝对不能同时为1否则输出点会周期性抖动道闸电机寿命会大打折扣。另外要考虑到道闸控制盒自身的逻辑。有些道闸控制盒自带延时落杆功能PLC侧的关闸信号和它内部逻辑叠加后会出现“明明没输出下降杆子却自己落下来”的现象。接完线后第一件事就是确认控制盒的模式开关最好把自动落杆关掉把所有起落逻辑完全交给PLC这样现场的行为才统一可控。3.4 Micro/WIN编程的几个约定STEP 7 Micro/WIN界面老但不难用建议从一开始就固定几个习惯。第一用符号表定义I/O和中间变量的英文别名比如把I0.0命名为“In_Loop_In”Q0.0命名为“Gate_In_Open”程序整体读起来清晰很多。第二保持每个程序段只负责一个逻辑功能手动、自动、计数不要塞进同一段网络。第三在线监控时用“状态图表”批量观察VW100、MB1这些关键变量比一个点一个点翻效率高得多。下载程序前先确认CPU型号和版本。Micro/WIN对话框里的CPU选项选错下载轻则报错重则把整个程序块搞乱。下载后一定要做断电上电验证确认PLC没有进入STOP状态。这个细节在现场吃过亏程序下载后当时没问题第二天一早设备停了原因就是代码里某个初始化逻辑把CPU卡在循环里上电瞬间触发了STOP。断电验证这一步能提前暴露这类隐患。4. 通讯与人机交互从PPI到跨网段把数据链路打通4.1 触摸屏与S7-200的PPI连接本地人机界面一般选触摸屏MCGS、威纶通、西门子Smart Line都是常见选择。与S7-200连接最传统的方式是PPI协议通过RS485口直连。以MCGS为例新建工程后选择“西门子S7-200 PPI”驱动串口参数一般是波特率9600、数据位8、停止位1、偶校验PLC站号默认2触摸屏站号设成1或者3两者不能重复。连接线可以用西门子原装PPI电缆也可以用触摸屏厂商提供的RS485端子注意A/B线不能接反。连接不上的时候先用串口调试工具确认物理链路是否通再检查协议参数是否一致。很多技术支持一上来就让你改波特率其实多数情况问题出在站号冲突或者A/B线接反。我在现场见过连接线用的是普通网线里的绿白对干扰一大就掉线换成屏蔽双绞线后问题再没出现过。4.2 上位机组态与跨网段通讯如果现场只有S7-200没有网口上位机组态通常用PC串口加PPI电缆。组态王、力控、WinCC都有对应的“西门子S7-200 PPI”驱动参数设置和触摸屏基本一致。WinCC老版本对串口PPI支持不太友好配合老设备时用组态王或力控反而更顺。这里顺便把跨网段通讯的问题说透。现在很多项目新老设备并存老PLC走串口新S7-1200或S7-1500走以太网上位机想把两种设备同时纳管经常发现子网掩码和网关设置没弄对设备之间互相看不见。跨网段通讯核心只有三个参数IP地址、子网掩码、默认网关。PLC和上位机必须在同一个逻辑可达的网络里跨了网段就要在路由器或三层交换机上写路由并让PLC侧把默认网关指向路由接口地址。比如PLC网段是192.168.1.x上位机在192.168.2.xPLC的默认网关就要填192.168.1.1并且该网关要允许两条网段之间的数据转发。触摸屏同样要设置好网关很多触摸屏网络参数里默认网关为空跨网段自然ping不通。这个跨网段的坑我在一个升级项目里踩得很深。当时现场用了一台老式写字楼停车场原系统是S7-200后来物业把上位机搬到了另一栋楼的办公室网段完全不同。刚开始只改了IP地址没动子网掩码和网关上位机始终无法建立通讯。后来把上位机、路由器、触摸屏三者的子网掩码统一为255.255.255.0并在路由器上加了指向PLC网段的静态路由通讯才彻底稳定。新老设备混用的项目里这类网络规划问题非常典型并且它的排错顺序很有讲究先ping网关再pingPLC侧设备然后测试上位机与触摸屏的端口连通性最后才看组态软件里的设备配置。4.3 串口调试工具和组态软件为什么“读不到”网上经常有人问“ModScan能读到串口数据但西门子组态软件就是读不出来。”这个问题的本质是协议栈对不上。ModScan是标准的Modbus主站调试工具它发送的是Modbus RTU请求帧如果S7-200用自由口模式跑了一个Modbus RTU从站程序ModScan当然能读到数据。但组态软件里的驱动如果选的是PPI协议或者虽然选了Modbus驱动但站号、功能码、寄存器地址范围和自由口程序里定义的不一致自然读不到。解决办法是把“物理链路”和“协议链路”分开排查。A/B线反接、波特率不一致、校验位不一致、站号冲突、数据位不对这些属于物理参数层寄存器地址映射错误、功能码选错、保持寄存器和输入寄存器不匹配这些属于协议映射层。对接S7-200的自定义Modbus程序时要严格对照MBUS_SLAVE指令里的启动保持寄存器起始地址。例如从VW100开始映射意味着Modbus寄存器地址40001对应VW100。组态软件里设备地址如果填了400101自然就对不上。顺带说一个硬事实S7-200的CPU集成口不支持Modbus TCP原生也没有以太网口。要实现以太网监控可以加CP243-1模块做S7 TCP通讯或者外挂串口服务器做协议透传但这条路功能受限很明显。如果项目对Modbus TCP有硬性要求更省心的做法是直接换S7-200 SMART或S7-1200这两者以太网和Modbus TCP都是原生支持程序移植成本也比想象中低。4.4 触摸屏画面与数据映射触摸屏变量表里要建的变量不多入口状态、出口状态、剩余车位、满位标志、手动/自动标志、出入口累计。每个变量对应PLC的一个位或一个字。建议在PLC里划出一段连续的V区存放通讯变量比如VB200到VB220触摸屏集中读取这一小段区域比零散点逐个读写效率高。页面不需要花哨核心是稳。值班员需要看清的就是剩余车位、闸机状态、报警位置。故障页面里把每个输入点的状态做成指示灯排查问题时能省一半时间。实际做画面时我习惯把入口和出口分成两个独立页面加上一个总览页。总览页放车位数和满位报警入口页放入口地感、开到位、关到位状态出口页同理。语音播报也挂在触摸屏上用屏自带的报警触发去驱动语音模块比PLC输出语音逻辑更简单改提示语也不需要改PLC程序。5. 调试实录常见问题速查与我踩过的坑5.1 现场常见问题速查表下面这张表是我在多个停车场项目里整理出来的现象、原因和处理方式基本覆盖了S7-200停车场项目八成以上的问题现象常见原因处理方式触摸屏数据乱码或掉线站号冲突、A/B线接反、波特率不一致先用串口调试工具确认物理链路再逐项核对协议参数组态软件读不到数据驱动类型与从站程序不匹配寄存器映射错误统一协议栈核对Modbus寄存器起始地址和功能码计数重复或变成负数地感信号抖动缺少方向确认增加防抖定时器双地感方向确认计数上下限钳制道闸开而不降红外防砸一直被遮断关到位限位未复位检查对射安装位置和输出状态加落闸延时道闸电机过热升降超时无保护程序里增加超时报警超时后立即断输出PLC频繁死机重启供电电源质量差干扰严重加隔离变压器和滤波器PLC供电与动力分开断电后计数丢失数据只存在RAM区使用V区断电保持属性或上电时从备份区恢复排查问题有个顺序口诀先看电源再看物理链路然后看协议参数最后才怀疑程序逻辑。很多时候所谓“PLC坏掉了”其实是柜内某路24V电源端子松了所谓“触摸屏乱码”其实是站号没改对。按这个顺序走能少走大量弯路。5.2 我实际踩过的三个坑第一个坑是地感线圈和道闸控制盒“打架”。当时入口地感接到道闸控制盒自带的防砸接口同时又接到PLC的输入端结果车辆经过时控制盒和PLC同时动作闸杆还没升到位就开始下降差点砸中车头。后来把地感信号分成两路一路给控制盒做防砸一路给PLC做车辆检测中间用继电器电气隔离问题才彻底消失。这个教训让我明白第三方设备自带的逻辑和PLC逻辑不能简单叠加必须先明确分工。第二个坑是变频器干扰串口通讯。停车场旁边加装了一套空闲车位指示用的变频风机变频器一启动触摸屏就掉线ModScan读取也不稳定。排查后发现RS485通讯线有一段夹在动力电缆桥架里。把通讯线单独抽出来、套上屏蔽管并单端接地后变频器就再也干扰不到通讯了。这类问题现场排查很费时间最好在布线阶段就把隔离做足。第三个坑最不起眼调试时为了测Modbus协议往PLC里下载了一版自由口从站程序结果忘了把端口模式改回PPI触摸屏直接“黑屏”。最后重新下载PPI程序才恢复。这也提醒我调试用的临时程序和正式程序必须分开存放下载前一定要确认端口协议设置。5.3 从S7-200向S7-200 SMART平滑迁移如果你是在做一个全新停车场我仍然建议优先考虑S7-200 SMART。它保留了S7-200的编程思路指令兼容性很高但网口是标配程序下载、触摸屏联动、Modbus TCP全部顺畅很多。而且SMART本体多了步进电机控制功能后续要做自动洗车机、机械式立体停车位的定位控制会轻松不少。不过迁移不是无脑替换。模拟量扩展、通讯指令、部分特殊寄存器都要重新映射程序逐段移植后必须做满负荷测试尤其是道闸防砸和计数逻辑一秒钟都不能含糊。我在后续改造另一个停车场时直接把这套逻辑迁到了S7-200 SMART上通讯从PPI改成了以太网触摸屏也换了带网口的型号整体调试只花了一个下午。迁移过程最麻烦的不是梯形图而是要把原有的I/O分配表重新对着实物核对一遍避免地址错位。在服务过的多个项目里我把这代平台的应用边界看得很清楚S7-200不是万能的但在小规模、强逻辑、高可靠性的场景里它依然是一个性价比极高的选择。前提是把硬件规划、抗干扰和通讯协议三件事做扎实。把这套系统从设计图纸变成能稳定运行的项目我最深的体会并不是梯形图画得多么巧妙而是前期把I/O规划、供电隔离和通讯协议这三件事想清楚后面所有事情都是顺水推舟。停车场这种环境对自动化系统的要求其实非常直白——不断地电、不误动作、不瞎报数。只要把握住这几个底线老平台同样能干漂亮活。最后再分享一个小技巧无论项目大小都养成写“一张纸说明”的习惯用一张A4纸画清楚I/O点、通讯参数和供电分区。这套停车场项目做完一年后我靠当年那张纸十分钟就定位了一个道闸控制系统的问题这才是最值钱的东西。