自动扶梯这东西,天天在商场、地铁里转,很多人觉得它就是个带踏板的传送带。只有真正接过扶梯控制柜的人才知道,这玩意儿的门道一点不比一条自动化产线少。我这两年用西门子S7-200 PLC做过几套扶梯控制改造,从进场梳理I/O到安全回路设计、变频通讯再到现场调试,踩过不少坑,也攒了不少心得。这篇就把能公开的部分整理出来,从系统设计到程序逻辑,再到调试中的疑难杂症,一条龙讲清楚。适合正在做扶梯、提升机、输送机这类“低速重载、安全要求极高”设备的工控朋友参考,没接触过的也能借这个案例看懂一套典型PLC控制系统的完整套路。
1. 扶梯控制系统到底要控什么:先理顺设备与信号
1.1 扶梯控制的核心任务
很多人第一次接触扶梯项目,上来就想写梯形图,这是本末倒置。扶梯控制系统本质上不是“怎么让电机转”,而是“怎么安全地让电机转、停、调速”。它的控制对象包括三部分:驱动电机(通常是变频电机或双速电机)、抱闸制动器、安全回路。
扶梯的控制逻辑大概分五类:启动/停车时序、运行方向控制、安全保护联锁、检修点动操作、运行状态监控。这五类不是并列的,安全保护拥有最高优先级。具体到西门子S7-200 PLC,我们真正要处理的核心信号包括:
- 输入信号:上下行启动按钮、停止按钮、钥匙开关(检修/运行切换)、检修上下行按钮、安全回路反馈(串联所有安全开关)、抱闸释放反馈、变频器运行反馈、速度传感器脉冲。
- 输出信号:运行接触器(上行/下行)、抱闸接触器、变频器启停/给定、蜂鸣器、指示灯、故障输出。
扶梯项目最麻烦的点在于安全性和舒适性要同时兼顾。启动太猛,乘客会往后仰;停车太急,乘客会往前冲。所有这些细节最终都要落在PLC程序里。
1.2 I/O点表规划与选型
以我做过的一套商场扶梯改造为例,用的CPU是S7-200 CPU 224XP,14点数字量输入、10点数字量输出,自带两个通讯口,还内置高速计数器。选型理由很简单:扶梯的I/O点数一般在20~30点之间,224XP的规模刚好合适,而且它的两个通讯口可以一个连触摸屏(PPI协议),一个做Modbus RTU主站连变频器,非常灵活。
I/O点表可以这样规划:
| 类型 | 地址 | 功能说明 | 备注 |
|---|---|---|---|
| 输入 | I0.0 | 停止按钮(常闭) | 串在安全回路外,PLC检测 |
| 输入 | I0.1 | 上行启动按钮 | 运行模式下使用 |
| 输入 | I0.2 | 下行启动按钮 | 运行模式下使用 |
| 输入 | I0.3 | 检修/运行切换钥匙 | 检修模式时封锁正常运行 |
| 输入 | I0.4 | 检修上行按钮 | 点动,带方向互锁 |
| 输入 | I0.5 | 检修下行按钮 | 点动,带方向互锁 |
| 输入 | I0.6 | 安全回路反馈 | 主安全回路中间继电器触点 |
| 输入 | I0.7 | 监控回路反馈 | 安全回路辅助触点 |
| 输入 | I1.0 | 抱闸释放反馈 | 确认抱闸真实打开 |
| 输入 | I1.1 | 变频器运行反馈 | 变频器而非PLC判断的“正在运行” |
| 高速计数 | I0.0/I0.1 | 梯速脉冲 | HSC0模式,测速度用 |
| 输出 | Q0.0 | 上行运行接触器 | 与Q0.1互锁 |
| 输出 | Q0.1 | 下行运行接触器 | 与Q0.0互锁 |
| 输出 | Q0.2 | 抱闸接触器 | 得电松闸 |
| 输出 | Q0.3 | 变频器启停继电器 | 干接点信号 |
| 输出 | Q0.4 | 蜂鸣器 | 故障/启动预警 |
| 输出 | Q0.5 | 运行指示灯 | 绿色 |
| 输出 | Q0.6 | 故障指示灯 | 红色 |
这里有个经验:停止按钮、安全回路输入通常接常闭触点,这样线路断了PLC也能检测到。很多新手把停止按钮接成常开,结果急停回路断线了系统都不知道,这是要命的事。另外高速计数器HSC0用的也是I0.0,但它是作为高速脉冲计数输入,和普通数字量输入不冲突,配置时注意区分。
2. 核心控制逻辑设计与安全回路
2.1 启动停车时序与抱闸配合
扶梯启停最容易出事的地方,就是电机和抱闸的配合时序。扶梯用的抱闸是常闭式制动器,断电抱死、得电松开。如果电机还没转就把抱闸松开,梯级会溜车;如果电机已经在高速转,抱闸还拖着,就会磨损闸瓦,严重时冒烟。
正确的启动时序应该这样:
- 收到启动指令后,先判断安全回路是否闭合、方向互锁是否满足。
- 启动预警蜂鸣器响2~3秒,提醒乘客扶好扶手。
- 变频器得电,给定低速(一般0.2~0.3m/s左右,视额定速度而定)。
- 等待变频器“运行反馈”信号,确认电机已经在低速转动。
- 再延时0.5秒左右,让电机转速稳定。
- 输出抱闸接触器,松闸。
- 变频器提速到额定速度(常见0.5m/s)。
这个顺序不能乱。第4步是关键,绝对不能靠“启动接触器吸合”来判断电机转了,必须用变频器的运行反馈,或者电流检测、速度传感器。有的项目用硬线直接给抱闸送电,变频器还没输出就松闸,梯级往后溜一小段,乘客能明显感觉到顿挫。
停梯时序反过来:
- 收到停止指令,变频器减速到低速(比如0.2m/s)。
- 确认速度降到低速后,抱闸断电。
- 抱闸反馈信号消失后,变频器停机。
- 延时断开运行接触器。
停车时绝不能直接断接触器、断抱闸,否则梯级在惯性作用下急停,轻则乘客前倾,重则摔倒。我在调试时见过一个现象:停车瞬间梯级猛地一顿,后来发现是程序里把抱闸和变频器停同一个扫描周期执行了。把抱闸断电延时到变频器减速完成之后再执行,问题立刻消失。
2.2 安全回路设计与双触点监控
扶梯安全回路是所有安全开关串联起来的一条硬线回路,任何一个开关动作,回路断电,安全继电器释放,系统立即停车。常见的扶梯安全开关包括:
- 梳齿板开关:梯级进入梳齿板时卡入异物会触发。
- 梯级下陷开关:梯级滚轮损坏、梯级下沉时触发。
- 扶手带入口保护开关:防止手被卷入扶手带入口。
- 围裙板开关:梯级与围裙板间隙夹异物时触发。
- 急停按钮:上下端站各一个。
- 断链保护开关:梯级链断裂或过度伸长时触发。
- 限速器/超速开关:速度异常时触发。
纯粹串联一个回路还不够,我习惯再做一路“监控回路”。具体做法是:每个安全开关除了主触点串进安全回路,辅助触点再串成第二路信号给PLC。两路信号同时消失才说明安全回路真的断开;如果监控回路断了但主回路还好好的,说明有继电器触点粘连或者中间继电器卡死,PLC可以报“安全回路继电器故障”。
这个设计技术上不复杂,但价值极大。有一次现场报“安全回路断开”,主回路和监控回路都断开了,逐个查开关才发现是梳齿板开关被一枚硬币卡住,触点变形没复位。如果没有双回路,这种偶发故障很难定位。
2.3 检修模式与方向互锁
扶梯检修时的控制逻辑和正常运行完全不同。检修模式下,正常运行按钮全部屏蔽,只能通过检修上行/检修下行按钮点动操作,而且速度必须限制在国标要求的检修速度(通常不高于0.5m/s)。检修时操作员站在扶梯上或梯头旁,手离开按钮,梯级必须立即停下。
检修模式在程序里是独立状态机:
- 钥匙开关置为“检修”时,SM0.0级别的正常运行族全部复位。
- 检修上行/检修下行是长动按钮,按下运行,松开即停。不能用自锁,必须即时响应。
- 检修上行和检修下行之间要互锁,不能同时动作。
- 检修模式下,变频器给定频率是固定的低频率,不允许升速。
- 检修运行同样要经过抱闸时序,但不需要蜂鸣预警那么长时间。
方向互锁不止在检修模式,正常运行的上行、下行也要互锁。硬件上,上、下行接触器之间要加机械互锁;软件上,Q0.0和Q0.1要做程序互锁,再往深一层,PLC输出的中间继电器触点也要互串。三层互锁才能避免上下行接触器同时吸合造成短路。
3. S7-200与变频器通讯实战
3.1 变频器选型与通讯方案
扶梯用的变频器不追求复杂功能,但要皮实、过载能力强、能适应频繁启停。森兰SB200这类通用型变频器在扶梯项目里很常见,几百块的国产变频器完全够用。关键不是品牌,而是通讯方式。
S7-200(老款)本身不带以太网口,和变频器通讯通常走两个方案:
- 方案A:开关量端子控制。PLC输出继电器直接接变频器正转/反转/多段速端子,用多段速给定频率。
- 方案B:串口Modbus RTU通讯。S7-200的Port0或Port1口做自由口通讯,调用Modbus主站库指令,读写变频器寄存器。
方案A简单可靠,但是端子占用多、只能给固定速度,扶梯启动、检修、正常运行需要多个速度段,接起来很啰嗦。方案B只需要一根两芯屏蔽线,速度给定在程序里随便改,还能读回变频器电流、故障代码,调试和运维都方便。我推荐方案B。
S7-200的通讯口是RS485,接变频器时注意端子:S7-200的Port0是3(D+)和8(D-),变频器那边是A/B或者正/负,接线时要确认极性。屏蔽层单端接地,不要两端都接,免得形成地环路。
3.2 MODBUS主站配置与程序落地
使用S7-200做Modbus主站,需要在STEP 7-Micro/WIN里安装指令库。安装后在指令树里能看到MBUS_CTRL和MBUS_MSG两个指令。MBUS_CTRL每个扫描周期都要调用一次,负责初始化通讯口,设置波特率、校验方式和超时时间。MBUS_MSG负责具体的读写操作。
关键参数:
- Mode:固定为1,表示Modbus协议。
- Baud:要和变频器侧一致。我常用9600,偶尔19200。波特率越高,干扰越敏感,变频器这种强干扰环境里9600更稳。
- Parity:S7-200的老指令库默认支持无校验、偶校验、奇校验。这里九九成的问题都出在校验不一致。很多国产变频器出厂默认“无校验(8N1)”,而西门子程序模板里习惯选偶校验,不改的话通讯必然失败。
- Timeout:建议设500~1000ms,太短了变频器稍慢一点就报超时。
MBUS_MSG的用法有个细节:EN端要一直保持为1,但触发读写靠的是First端的一个上升沿。写完一次后,Done位会置1表示完成。要注意的是,MBUS_MSG同一时间只能激活一条,上一笔没完成不能发下一笔,所以在程序里要加互锁,等Done位置位后再启动下一轮读写。
一个典型轮询结构是:
- 第一拍:写变频器控制字(启停命令)。
- 第二拍:写速度给定值(频率值)。
- 第三拍:读运行状态字(是否运行、是否故障)。
- 第四拍:读输出电流/输出电压。
- 每拍间隔500ms或等到Done位复位后再发下一拍。
读出变频器电流后,可以同时做个软件过载保护:电流超过额定值持续10秒,PLC直接报故障停机。这个逻辑在没有热继电器的变频驱动方案里很实用。
3.3 通讯异常排查思路
现场通讯不上是最常见的问题。我的排查顺序是固定的:
- 先查线。D+、D-有没有接反,屏蔽层是不是松了。
- 再查参数。变频器站号、波特率、校验方式、数据位,逐个和PLC侧对一遍。
- 用电脑串口调试工具(比如串口助手)抓一下Modbus帧。如果PLC发了请求没有应答,基本是变频器参数或物理线路问题;如果有应答但数据不对,再看CRC校验和寄存器地址。
- 排除干扰。变频器输出侧不能和通讯线走同一根线槽,通讯线要用屏蔽双绞线,如果现场电磁干扰严重,加一个磁环或者装RS485中继器。
有一次现场变频器通讯时好时坏,查了半天,最后发现是通讯线被现场的电焊机回路串扰,焊机一工作通讯就中断。后来把通讯线移出电缆沟,单独走管,问题再没出现过。
4. 编程细节与关键状态机设计
4.1 定时器在扶梯控制中的用法
扶梯程序里用得最多的就是定时器。S7-200的定时器分TON(接通延时)、TONR(保持型接通延时)、TOF(断开延时)。扶梯程序里我主要用TON,搭配状态转移标志。
几个典型场景:
- 启动预警:按下启动按钮后,Q0.4蜂鸣器输出,同时定时器T37延时3秒,时间到才允许进入下一个状态。
- 低速确认:变频器运行反馈到位后,T38延时0.5秒,确认电机转速稳定再松抱闸。
- 运行超时检测:正常运行状态下,用一个长时间定时器(比如10分钟)做无操作检测,如果方向信号一直存在就持续复位定时器。这个逻辑主要用于无人值守时的保护。
定时器编程有个坑:S7-200的TON定时器分辨率不同,T37~T63是100ms分辨率,T32是1ms,T33~T36是10ms。如果用T37做1秒延时,预设值要写10而不是1。很多新手把预设值当成秒写,结果延时变成了0.1秒,抱闸瞬间就松了。
4.2 高速计数器做梯速与梯级检测
扶梯的安全监控里有一项是速度监控。梯速异常(超速或者欠速)都要立即停机。S7-200 CPU224XP内置高速计数器,可以接旋转编码器或接近开关脉冲信号,做速度检测。
我常用HSC0配A/B正交编码器,或者单脉冲接近开关。配置时在Micro/WIN里选HSC模式,并设置SMB37(计数模式控制字节),然后把脉冲频率换算成梯速:
- 编码器每转脉冲数N(比如1024),脉冲频率f,传动比i,梯级链轮直径D,那么梯速v = f × (πD) / (N × i)。
这个换算不用PLC算,在触摸屏里做或者用笔算好阈值就行。PLC里只需要监控固定时间窗口内的脉冲数。比如100ms窗口内收到X个脉冲,代表目前梯速。一旦脉冲数持续低于下限,说明梯级链可能卡滞或者编码器出问题;持续高于上限,说明超速,立即触发安全停车。
调试这个功能时要注意:高速计数器输入是I0.0、I0.1,如果这些点同时被普通输入占用,会导致冲突。所以PLC选型时要把I/O点数和功能点统筹考虑,别到最后发现高速计数器输入点被按钮占用了。
5. 常见故障与现场调试实录
5.1 典型故障排查速查表
| 现象 | 大概率原因 | 排查思路 |
|---|---|---|
| 按启动没反应 | 安全回路没闭合 | 看触摸屏/PLC的I/O监控逐点查安全开关 |
| 按启动蜂鸣响但变频器不启动 | 变频器通信失败或运行信号没发出去 | 查通讯状态字,看变频器面板有没有收到启停命令 |
| 松抱闸后梯级反向溜 | 抱闸时序不对或抱闸机械调整过松 | 检查程序时序,重新按抱闸间隙调整要求处理 |
| 通讯时好时坏 | 屏蔽层接地不良或线路干扰 | 单独走线、加磁环、波特率降到9600 |
| 检修点动松开后不停 | 检修模式自锁未解除 | 检查检修状态机和长动按钮逻辑 |
| PLC检测到安全回路断开但现场找不到 | 中间继电器触点氧化导致间接断开 | 用监控回路辅助判断,拆开中间继电器检查触点 |
| 抱闸打不开异响 | 抱闸线圈电压不足或延时不够 | 量线圈电压,查抱闸接触器触点 |
5.2 调试笔记与避坑心法
现场调试扶梯,我自己有几条铁律:
第一,所有程序修改前先备份。S7-200的程序下载时会覆盖原有内容,一旦新逻辑有问题,想回退都没得退。我都是直接在电脑里按日期保存工程文件,改几行就另存一版。
第二,下载完程序一定要断电重启再验证。S7-200有些参数和高速计数器模块在下载后需要重新上电才生效,尤其改了通讯口模式或者高速计数器配置的时候,不断电试出来的结果会误导人。
第三,调试抱闸时序时,先把梯级清空,让一个人站到上端站,低速点动测试,逐步往上加时间。别一上来就全速度运行,出了事不是小事。
第四,老款S7-200的通讯口是非隔离的,笔记本调试时如果用USB转485适配器,电脑又是接地电源,可能会出现共模电压干扰,严重的甚至影响电脑USB口工作。我后期都习惯用带隔离的USB转485模块,或者直接把笔记本切到电池供电,再去连PLC,能省很多莫名其妙的麻烦。
第五,触摸屏和PLC通讯挂了,很多情况其实是站号冲突或者波特率不一致。一个S7-200通讯口可以挂多个触摸屏,站号要不同,波特率要一致。把触摸屏的站号设为2、PLC站号为1,通常能解决大部分问题。
最后再分享一个小习惯:每次做完一套扶梯程序,我都会把I/O注释写得特别完整,再把安全回路每个开关对应的现场位置打印出来贴在控制柜门内侧。扶梯不像实验室设备,现场维护的人可能换了一茬又一茬,图纸和注释才是留给后面人最实在的东西。我自己接手过一个项目,上一任工程师留下的程序里全是A、B、C这种变量名,没有任何注释,排查起来真的要命。从那以后,注释对我来说就不是可选项,而是程序的一部分了。