ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

S7-200 PLC与组态王实现二十层电梯控制系统完整方案

S7-200 PLC与组态王实现二十层电梯控制系统完整方案 先交代一下背景我这两年带学生做过好几套基于 S7-200 的电梯实训项目从五层、八层做到二十层积累了一些能直接用的经验。这篇博文就把“S7-200 PLC 组态王”实现二十层电梯控制系统的完整思路捋一遍覆盖梯形图程序、接线图、IO分配、组态画面设计还有我实际调试中踩过的坑。这套方案不是唯一的答案但它结构清晰、容易复现特别适合课程设计、毕业设计或者想入门 PLC 电梯控制的朋友参考。之所以选 S7-200 而不是 200 SMART 或 S7-1200主要有两个原因一是很多高校和实训室的老设备、老教材还是以 S7-200 为主带教老师熟悉它二是 S7-200 的指令集简单梯形图写起来直观正好能把电梯这种“逻辑密集、状态多”的控制项目讲透。而组态王作为上位机和 S7-200 走 PPI 通讯非常稳定做监控画面也够灵活。下面我按“方案设计→IO与接线→梯形图→组态画面→排错”这个顺序展开。1. 二十层电梯控制系统整体方案与选型1.1 系统组成与控制分工一套完整的二十层电梯实训系统通常由三部分组成现场设备层、PLC 控制层、上位监控层。现场设备层包括电梯轿厢、曳引电机实训台一般用直流电机或小型异步电机模拟、开关门机构、每层的平层感应器、上下限位开关、轿内选层按钮、层站外呼按钮等。这一层是直接和被控对象打交道的。PLC 控制层是核心负责采集按钮、限位、平层信号执行所有运行逻辑判断电梯当前楼层、登记呼梯、决定运行方向、控制电机正反转、实现平层停车、处理开关门和安全保护。S7-200 在这一层做实时控制所有关键逻辑都用梯形图实现。上位监控层就是组态王。它的职责不是参与实时控制而是给操作人员一个可视化的操作界面。在二十层这种模型上实体外呼按钮如果全部接到 PLC 输入端IO 点数量会非常紧张所以常见的做法是轿内实体按钮直接进 PLC外呼按钮和楼层状态指示放到组态王画面上通过组态王的下发变量去触发 PLC 内部的呼梯登记。这个分工很重要。很多初学者把组态王当成“控制核心”试图用组态王脚本去算电梯逻辑结果画面卡顿、状态不同步这是方向性错误。正确思路是“PLC 做逻辑组态王做界面”组态王只是一个远程操作面板和数据监视器。1.2 硬件选型建议针对二十层电梯这种 IO 密集场景我推荐主控制器选用 S7-200 CPU226 CN AC/DC/继电器输出型。为什么是 CPU226因为它自带 24 路数字量输入和 16 路数字量输出是 S7-200 系列里 IO 点数最多的 CPU可以满足轿内 20 个选层按钮、4 个开关门相关按钮接入后不用再加大量扩展。同时 CPU226 还支持两个通讯口一个用来和组态王走 PPI另一个可以留给程序下载或触摸屏调试时不用反复拔线。如果现场还需要接入门锁信号、平层信号、超载信号、安全触板信号以及驱动楼层数码管的段码输出我建议再加一块 EM223 数字量混合扩展模块16DI/16DO。这样总输入点数达到 40 点输出达到 32 点二十层电梯的典型 IO 需求基本覆盖。传感器方面平层检测推荐使用 NPN 常开型接近开关如 LJ12A3-4-Z/BX检测距离 4mm 左右配合安装在轿厢上的铁质隔磁板使用。上下限位开关可以用行程开关或接近开关实训台上用行程开关更直观出故障也好排查。输出回路驱动电机正反转、开关门S7-200 的继电器输出可以直接驱动中间继电器再由中间继电器去控制接触器线圈。不建议让 PLC 的继电器输出直接驱动大功率接触器线圈虽然瞬时电流可能扛得住但长期拉弧容易缩短 PLC 输出继电器寿命。1.3 电梯控制策略集选控制二十层电梯的控制策略不是简单“先按先服务”而是要用电梯行业最经典的“集选控制”方式也就是“顺向截梯、反向换向”。顺向截梯的意思是电梯上行时只响应当前楼层以上的同向呼梯。比如电梯在 5 楼正在上行这时 8 楼有人按了上行呼梯电梯会在 8 楼停靠如果 12 楼有人按的是下行呼梯电梯不会立刻上去接他而是继续向上直到把上行方向的所有呼梯都处理完再自动换向下行去接 12 楼的乘客。反向换向的意思是电梯把当前方向上的所有呼梯都执行完毕后如果反方向还有呼梯才换向运行。这个策略能最大化运输效率避免电梯像“无头苍蝇”一样上下乱跑。集选控制用梯形图写核心就是“方向决策”和“消号”两件事。方向决策负责判断当前该上行还是下行消号负责在电梯到达某层停靠时把这一层已被响应的呼梯登记清除掉。这两块逻辑下面会重点展开。2. IO分配表与硬件接线图解析2.1 输入点分配表IO 分配是电梯项目的地基分配不好后面程序写得再漂亮也是空中楼阁。我在做 IO 分配时原则是“按钮类按楼层连续性排列信号类单独集中冗余点全部保留备用”。以下是我在这套方案中使用的完整输入分配表。地址信号名称说明I0.0 ~ I1.7轿内选层按钮 1~16 层16 个点对应楼层按钮I2.0 ~ I2.3轿内选层按钮 17~20 层4 个点和前 16 个连续I2.4开门按钮常开按钮I2.5关门按钮常开按钮I2.6开门限位开关门开到位信号I2.7关门限位开关门关到位信号I3.0门锁/安全回路信号串联合闸后为 1I3.1超载信号超载动作后为 1I3.2上平层感应器轿厢经过某层时脉冲I3.3下平层感应器下行校验用I3.4顶层强制换速信号到顶前减速I3.5底层强制换速信号到底前减速I3.6 ~ I4.7备用输入点消防、司机、检修等注意CPU226 本体的 24 个输入点地址是 I0.0 ~ I2.7刚好用完轿内选层 20 点加开关门 4 点。EM223 扩展模块从 I3.0 开始编号所以门锁、平层、限位这些信号都被安排在扩展模块输入区这在实际接线时很容易区分维护也方便。外呼按钮我没有占用 PLC 输入点而是全部放到组态王画面上操作通过变量下发到 PLC 的 V 区再由梯形图完成登记。这样既控制了硬件成本也让二十层的外呼逻辑能在组态王界面上一目了然地展示。2.2 输出点分配表输出点分三组第一组是电机与门的控制第二组是楼层数码管显示第三组是方向与提示信号。地址信号名称说明Q0.0上行接触器 KM1电梯上行驱动Q0.1下行接触器 KM2电梯下行驱动Q0.2开门继电器 KM3门电机开门方向Q0.3关门继电器 KM4门电机关门方向Q0.4上行箭头指示灯方向指示Q0.5下行箭头指示灯方向指示Q0.6到站铃/蜂鸣器平层到站提示Q2.0 ~ Q2.6七段数码管段码 a~g显示当前楼层Q2.7 ~ Q3.5备用输出后续扩展这里有一个容易搞混的地方CPU226 的本体输出点只有 Q0.0 ~ Q1.7 共 16 点我把楼层显示的部分输出放在了扩展 EM223 上也就是 Q2.0 开始。接线时必须对照模块标签确认地址很多初学者第一次接扩展模块经常把 Q1.0 当成第一个扩展输出点结果输出接到地址不匹配的端子上查了半天才发现。楼层显示为什么用七段数码管而不是 20 个指示灯因为 20 层要做电梯当前位置显示用 20 个指示灯太浪费输出点。七段数码管只需要 7 个输出点程序里做一张段码表根据当前楼层号查出对应的七段码输出即可效率和实用性都更好。2.3 PLC接线图核心回路接线图没法在这篇文字里画出完整图但我可以把核心回路用文字描述清楚照着画就行。主回路三相电源进线经过断路器 QF接到上行接触器 KM1 和下行接触器 KM2 的主触点两个接触器输出分别以不同相序接到曳引电机。KM1 闭合时电机正转电梯上行KM2 闭合时电机反转电梯下行。实训台如果用的是直流电机则用双向继电器切换电枢电压极性原理一样。为了安全KM1 和 KM2 必须有电气互锁不能同时导通梯形图里也要做输出互锁。控制回路PLC 输出 Q0.0 接中间继电器 KA1 线圈KA1 触点再驱动 KM1 线圈Q0.1 接 KA2KA2 驱动 KM2。这样 PLC 输出点只承受中间继电器的小电流延长使用寿命。Q0.2、Q0.3 分别接开门、关门继电器 KA3、KA4驱动门电机正反转。每一路继电器线圈两端都要并联 RC 吸收回路防止断电瞬间反向电动势干扰 PLC 输出。输入回路所有按钮和开关都接成 PLC 漏型输入方式。S7-200 的输入公共端 1M 接 24V 电源正极按钮一端接输入端子另一端接 24V 电源负极。这样按钮按下时输入点得到 24V 高电平信号PLC 内部指示灯亮起梯形图对应触点动作。接近开关采用 NPN 常开型棕色线接 24V 正极蓝色线接 24V 负极黑色信号线接 PLC 输入点同样共用一个公共端。2.4 接线实操要点与注意事项接线这块我踩过不少坑挑重点说。第一PLC 的 24V 电源和传感器电源最好分开。S7-200 CPU 自带一个 24V DC 传感器电源可以给接近开关供电但如果电磁阀、继电器线圈也从这个电源取电很容易造成电压跌落导致传感器误动作。我把传感器电源独立配了一个 24V 开关电源PLC 自身电源只给本机输入回路用这样干扰小得多。第二输入回路一定要用屏蔽线。平层接近开关的信号线距离一般有 2~5 米如果直接走普通电线电机启动瞬间的干扰会让 PLC 误收到平层脉冲电梯位置就会莫名其妙多一层或少一层。屏蔽层单端接地后这个现象能明显改善。第三所有公共端连线要接牢固。S7-200 输入端子分为两组公共端 1M/2M输出也有两组 1L/2L接线时不要把两组公共端混在一起用。特别是继电器输出两组公共端可以接不同电压但如果搞混了轻则信号异常重则烧模块。第四关门限位和门锁信号是两个完全不同的概念。关门限位只是表示门已经关到位而门锁信号是每一层厅门和轿门全部闭合且电气联锁导通后的综合信号。电梯要能运行必须门锁信号为 1。我把这两个信号分开接其中一个可以短接调试程序里再分别判断避免调试时互相牵制。3. 梯形图程序核心逻辑实操3.1 变量规划与程序结构梯形图程序的变量规划决定后面写起来顺不顺手。我建议把所有关键变量用符号表定义好不要直接在梯形图里写裸地址不然二十层程序写到后面自己都找不着北。变量类型地址范围用途VB0当前楼层1~20实时位置VB1运行方向0停止/1上行/2下行方向标志VB2运行状态0待机/1运行状态标志M10.0 ~ M12.3内呼登记位20 个楼层内呼M13.0 ~ M15.2上行外呼登记位1~19 层上行呼梯M16.0 ~ M18.3下行外呼登记位2~20 层下行呼梯M20.0 ~ M21.7本层停车请求标志平层停车用VW100内呼按钮下发区组态王写入VW102上行外呼下发区组态王写入VW104下行外呼下发区组态王写入VW200当前楼层送组态王上位显示VW202运行方向送组态王上位显示程序整体分成主程序 OBR1 和几个子程序初始化子程序、楼层检测子程序、呼梯登记子程序、方向决策子程序、运行控制子程序、开关门子程序。主程序里每个扫描周期调用这些子程序结构清晰改起来也方便。组态王下发的呼梯按钮信号为什么不直接接到 M 区而是先用 V 区做中转这是出于通讯稳定性的考虑。组态王通过 PPI 协议访问 PLC 的 V 区最可靠M 区虽然也能访问但在某些组态王版本和驱动组合下会出现掉线或读写冲突。所以我让组态王只读写 V 区梯形图里第一件事就是把 V 区按钮信号转存到 M 区登记位同时把 V 区按钮位清掉相当于“PLC 收到了一封按钮按下的消息”。3.2 楼层位置检测与校正楼层位置检测是我在电梯项目里花时间最多的一块也是最容易出问题的。二十层电梯不可能靠 20 个平层开关每个都接一个输入点来检测那样 IO 太多了所以实际工程中普遍采用“平层脉冲计数 上下限校正”的方案。具体做法在轿厢上装一个平层感应器接近开关每一层的井道壁上装一块隔磁板或铁片。轿厢运行经过每一层时感应器感应到铁片输出一个脉冲PLC 对这个脉冲做上升沿计数。电梯上行时每经过一层当前楼层 VB0 加 1下行时每经过一层VB0 减 1。梯形图实现的核心逻辑Network 1 上行楼层加1 LD 运行方向上行 A I3.2 // 平层感应器 EU // 上升沿 INC_B VB0 // 当前楼层加1这个逻辑写起来很简单但工程上必须增加校正手段。因为一旦电机启动瞬间产生干扰脉冲或者平层开关抖动多计了一个脉冲电梯的显示楼层就会和实际位置不一致后面所有方向决策都会跟着错。所以我在顶层和底层各加了一个强制换速开关作为位置校正点。校正逻辑Network 2 顶层位置校正 LD I3.4 // 顶层强制换速信号 MOV_B 20, VB0 // 强制当前楼层等于20 Network 3 底层位置校正 LD I3.5 // 底层强制换速信号 MOV_B 1, VB0 // 强制当前楼层等于1这样无论中途怎么丢脉冲电梯只要到了顶层或底层位置都会被强制校正回来系统就永远不会把楼层“跑丢”。另外还要考虑一种常见情况实训台调试时手动盘车或者程序异常导致位置错乱。可以在初始化子程序里让 PLC 上电后先自动低速找一次底层碰到底层限位后把 VB0 复位为 1再自动回升停止。这也是不少真实电梯的上电自检逻辑。3.3 呼梯登记、消号与顺向截梯呼梯登记分三类轿内选层登记、上行外呼登记、下行外呼登记。基本套路都一样按钮按下或组态王下发按钮信号登记位置 1保持住电梯到达该层并停靠后登记位清零。内呼登记示例第 1 层Network 4 1楼内呼登记 LD I0.0 // 轿内1楼按钮 O M10.0 // 原登记保持 AN M20.0 // 本层停车请求未到达前为0 M10.0这里用了“AN 本层停车请求”来消号。当电梯到达 1 楼平层开门时M20.0 变为 1这个网络输出变为 0登记位被清除。其他楼层的内呼登记逻辑完全一样只是把层号和对应的 M 地址换掉。上行外呼登记示例第 5 层Network 5 5楼上行外呼登记 LD VW102.4 // 组态王第5楼上呼按钮VW102.0对应1层 O M13.4 AN M20.4 // 5楼停车请求 AN 运行方向下行 // 下行方向不响应上行外呼 M13.4外呼登记比内呼多了一个条件电梯下行时5 楼上行外呼登记不会被清除要等电梯换向上行并到达 5 楼后才会消号。这是实现“顺向截梯”的关键也符合电梯实际运行规则。顺向截梯的消号规则细化一下就是电梯上行到达某层停车时清除该层的内呼登记和上行外呼登记如果电梯到了最高层之后换向下行下行过程中到达某层停车时清除该层的内呼登记和下行外呼登记。在程序里每层用一个“本层停车请求”位去控制消号逻辑非常统一。3.4 运行方向决策与目标楼层选择运行方向决策是集选控制的核心。我的实现思路是每层把内呼、上呼、下呼汇总成一个“呼梯状态字”然后用扫描法判断当前楼层以上或以下是否存在呼梯。方向决策梯形图的简化逻辑Network 6 上行条件判断 LD 停止状态 // 当前方向为0 A 上方有呼梯 // VB200VW202中高层位置有呼叫 AN 下方有呼梯 // 若无下方呼叫则直接上行 置上行方向这里“上方有呼梯”不能只判断一层而要判断当前层以上的所有层。最稳妥的办法是写一个循环程序段用移位指令把二十层的呼梯状态逐位扫描。S7-200 虽然有 FOR/NEXT 指令但在梯形图里写逐层比较更直观也更容易理解。推荐做法是写一个“求最高呼梯楼层”子程序和“求最低呼梯楼层”子程序。上行时只要最高呼梯楼层大于当前楼层就继续上行直到最高呼梯楼层等于当前楼层且已平层停车才换向。下行时同理用最低呼梯楼层判断。方向决策时要特别注意“同向优先”。比如电梯在 3 楼5 楼有上行呼梯8 楼有下行呼梯系统应优先向上走处理 5 楼上行呼梯后继续去 8 楼接下行呼梯。如果 5 楼上方还有 6 楼内呼则电梯会在 6 楼停靠然后继续上行到 8 楼。这个链条就是靠“求最高呼梯楼层”实现的。3.5 启动、换速与平层停车电梯运行过程分三个阶段启动加速、稳速运行、换速平层停车。启动条件门锁信号 I3.0 为 1关门限位 I2.7 为 1运行方向已确定此时输出 Q0.0 或 Q0.1 置 1电机抱闸打开电梯开始运行。启动时最好加一个 0.5 秒延时让电梯先建立速度避免直接全速冲击模拟系统里用定时器即可。换速电梯接近目标楼层时需要从高速切换为低速。如果实训台用双速电机这对应高速接触器和低速接触器的切换如果是变频器驱动则对应多段速端子或模拟量给定。在教学模型中为简化处理可以把整段运行都当作低速运行通过平层信号直接停车。平层停车是最关键的动作。顺序是电梯运行到目标楼层时平层感应器检测到隔磁板PLC 立刻把运行输出复位电机断电抱闸动作电梯由于惯性滑行一小段后停在平层位置。由于实训台电机惯性小平层感应器的安装位置只要稍微调整就能做到比较准确的平层。平层停车的梯形图逻辑Network 7 平层停车 LD 运行状态 // 正在运行 A 运行方向 // 上行或下行 A I3.2 // 平层感应器有信号 A 到达目标层 // 当前楼层等于目标楼层 S M20.x // 置本层停车请求 R Q0.0 // 撤上行输出 R Q0.1 // 撤下行输出 MOV_B 0, VB1 // 方向改为停止 MOV_B 0, VB2 // 状态改为待机 TON T37, 10 // 停车后延时1秒注意平层感应器信号是持续存在的不是只闪一下。如果不加“当前楼层等于目标楼层”这个条件电梯会变成每层都停。加了目标层判断后平层信号才真正起到“精确停车”的作用。这也是很多初学者写程序时最容易疏忽的一点。3.6 开关门控制与安全保护电梯停稳后要自动开门门开到位后延时关门关门过程中遇到障碍要立即开门。这就是开关门控制的基本流程。开门控制逻辑电梯平层停车后延时 1 秒置 Q0.2 开门继电器开始开门门开到位后开门限位 I2.6 动作Q0.2 复位开门结束同时启动关门延时定时器延时时间可以设置为 3~5 秒。关门控制逻辑关门延时到后置 Q0.3 关门继电器开始关门门关到位后关门限位 I2.7 动作Q0.3 复位关门结束。关门过程中如果安全触板动作立即复位 Q0.3置 Q0.2 开门让门重新打开。超载保护超载信号 I3.1 为 1 时禁止关门继电器 Q0.3 输出同时驱动蜂鸣器报警。在组态王画面上做一个超载指示灯联动闪烁方便实训演示。开关门梯形图还有一个细节开门和关门继电器之间也要做互锁。虽然在物理上通过限位开关已经能保证不会同时动作但程序里用“AN 正在关门”和“AN 正在开门”互锁双保险能有效防止门电机两路输出同时供电烧毁设备。4. 组态王监控画面设计与通讯配置4.1 PPI通讯设置与设备添加组态王和 S7-200 的通讯我建议走 PPI 协议。硬件连接上用一根 USB-PPI 编程电缆把电脑的 USB 口和 S7-200 CPU226 的 PORT0 口连起来。如果用的是老式串口 PPI 电缆则插到电脑 COM 口上然后安装好驱动。组态王里添加设备步骤工程项目窗口选“设备” → 双击“新建”设备驱动选择“PLC” → “西门子” → “S7-200 系列” → “PPI”。通讯参数里串口号选择实际使用的 COM 口波特率设置为 9600数据位 8偶校验停止位 1。PLC 站号默认填 2这是 S7-200 CPU 的默认 MPI 地址。设备添加完成后先别急着做画面先在组态王的“测试”功能里试读一个 V 区变量确认能读到数据再往下做。这个步骤能省掉后面排查通讯问题的大量时间。4.2 数据词典变量映射组态王的数据词典是连接画面和 PLC 的桥梁。我把变量分成两类I/O 变量和内存变量。I/O 变量直接对应 PLC 的 V 区地址内存变量则用于画面内部的动画计算。组态王变量名类型连接设备寄存器方向说明n_CurrentFloorI/O整数VW200只读当前楼层n_RunDirI/O整数VW202只读运行方向b_CarCall1 ~ b_CarCall20I/O离散V100.0 ~ V102.3读写轿内按钮下发b_UpCall1 ~ b_UpCall19I/O离散V104.0 ~ V106.2读写上行外呼下发b_DownCall2 ~ b_DownCall20I/O离散V108.1 ~ V110.3读写下行外呼下发n_CurFloorCopy内存整数——动画计算用d_OpenDegree内存整数——门开度注意 V 区位的映射关系要严格按照 PLC 程序里约定好的来。我在 PLC 程序里定义 VW100 是内呼按钮下发区那么组态王 1 楼内呼按钮就应该连接 V100.05 楼内呼按钮连接 V100.420 楼内呼按钮连接 V102.3不能错位。外呼区 VW104 中V104.0 对应 1 楼上呼V104.1 对应 2 楼上呼依次类推。4.3 井道剖面与轿厢运动动画组态王主画面我建议设计成“电梯井道剖面图 右侧控制面板”的布局。井道剖面图画一条竖直的长方体代表电梯井道在两侧按 1~20 层标注楼层线每层线用文本标注楼层号。轿厢用一个矩形块表示放置在井道内。它的垂直位置必须能随当前楼层实时变化。操作方法是在组态王的“动画连接”里选中轿厢矩形选择“垂直移动”表达式写为(n_CurrentFloor - 1) * 40这里假设每层之间在画面上的间距是 40 像素。如果画面里楼层线间距是 50 像素就把 40 改成 50。这样电梯在组态王画面里就能根据 PLC 读取的当前楼层值平滑上下移动实时反映电梯位置。为了让电梯移动有“动画感”而不是一格一跳可以在画面脚本里加一段滑动过渡。做法是新增一个内存变量 n_CurFloorCopy每秒把 n_CurrentFloor 的最新值读进来然后用脚本让 n_CurFloorCopy 逐步向目标值靠近轿厢矩形连接的表达式改成 n_CurFloorCopy这样看起来就像电梯在连续运动了。4.4 呼梯按钮面板与状态显示右侧控制面板分成三块轿内操作盘、楼层外呼面板、状态指示区。轿内操作盘放 1~20 层选层按钮和一个内呼指示灯。按钮的动作脚本是“按下时给对应 I/O 离散变量置 1再延时 0.5 秒置 0”模拟一个瞬时按钮。比如 5 楼内呼按钮b_CarCall5 1; \\ 延时后 b_CarCall5 0;状态显示区放当前楼层数码管直接从 n_CurrentFloor 取数显示、上下行方向箭头连接 n_RunDir等于 1 时绿色等于 2 时红色、开关门动画、超载指示灯、门锁指示灯。这里要提醒一个组态王常见坑I/O 离散变量的写入不能太快。如果你在按钮脚本里连续执行“置 1、置 0”组态王下发的两条指令中间必须间隔足够时间否则 PLC 可能只收到置 0 信号登记位完全没反应。我实测下来间隔 500 毫秒以上再置 0成功率接近 100%。4.5 组态画面与PLC通讯调试要点画面全部连好以后先分步调试别一次性把所有功能都打开。第一步确认 n_CurrentFloor 能变化手动拖曳电梯位置用 PLC 程序临时改 VB0画面轿厢跟着动。第二步确认呼梯按钮能下发点击组态王按钮PLC 程序里的 M 登记位置 1。第三步确认状态显示看方向箭头、楼层数字、门开度是否和 PLC 侧一致。如果画面上的按钮点击没有反应先打开组态王的“设备通讯状态”查看窗口看看 I/O 变量是否处于“正在通讯”状态。如果显示“通讯失败”多半是设备地址、波特率、站号配置有问题逐项排查很快能定位。5. 常见问题与排查技巧实录5.1 组态王连不上PLC这个是我遇到的最高频问题。现象是组态王画面里所有 I/O 变量都显示“设备通讯失败”或者数据完全不刷新。排查顺序第一检查 USB-PPI 电缆驱动是否安装成功电脑设备管理器里有没有识别出 COM 口。第二检查组态王设备配置里的串口是否和实际 COM 口一致。第三检查波特率、数据位、校验位是否和 PLC 侧一致。S7-200 的 PPI 默认是 9600 波特率但我碰到过有的电缆固件默认 19200这时就要在 STEP7 Micro/WIN 的通讯设置里把 PLC 通讯口参数改成 19200两边统一才能通。第四检查 PLC 站号默认是 2组态王设备地址也要写 2。还有一个容易被忽略的点如果电脑上同时打开了 STEP7 Micro/WIN 或者其它占用串口的软件组态王会抢不到串口。调试时把别的软件全部关掉只留组态王问题会少很多。5.2 电梯楼层显示乱跳或者丢失楼层显示乱跳几乎都是平层感应器信号受到干扰或平层开关抖动造成的。排查时可以打开 S7-200 的状态监视表直接看平层感应器对应输入点 I3.2 的状态。如果电梯不动时 I3.2 偶尔闪一下说明信号有干扰优先查屏蔽线接地、传感器电源稳定性。如果电梯运行中楼层显示跳得特别快多跳了一层甚至几层一般是平层感应器的隔磁板太宽导致一个楼层触发两次脉冲。可以调整隔磁板宽度或者在程序里对平层信号做“脉冲延时确认”也就是检测到平层信号后延时几十毫秒再确认一次过滤掉部分干扰。位置校正逻辑一定要保留即使楼层显示偶尔乱了一两层只要到了顶层或底层强制校正能把位置拉回来系统就能自愈。如果连校正都没有电梯跑十几个来回之后楼层显示可能彻底乱掉那时候就只能断电重启或者手动复位。5.3 呼梯登记后电梯不响应这类问题的根源大多在“方向决策”和“消号”的配合上。最常见的现象是按了内呼按钮登记位已经置 1但电梯就是不启动。排查步骤先看运行方向 VB1 有没有被置成上行或下行。如果方向一直为 0说明“上方有呼梯”的判断条件有问题。检查呼梯状态汇总时是不是漏掉了当前层正好等于呼梯层的情况。很多程序里写“上方有呼梯”只判断“大于当前楼层”如果呼梯层等于当前楼层那电梯永远不会去响应它因为不存在“大于当前层”的呼梯。还有一种情况是电梯到了某层停车后登记位没有被清除导致这层呼梯一直存在电梯总是优先停靠在这一层。这时候要检查消号逻辑重点是“本层停车请求”标志有没有正确置位和复位以及是不是在开门瞬间就被置 0 了。5.4 开关门动作异常开关门最常见的怪异现象是门开到一半自己又关了或者关门时老是反复弹开。前者一般是开门限位接触不良导致 PLC 认为门还没有开到到位关门延时从来没启动门电机一直保持开门方向看起来就像“开门开个没完”后者要检查安全触板信号是否误触发NPN 传感器的信号线如果接触不好会间歇性给 PLC 一个触发信号相当于关门途中一直有人在挡门。调试开关门逻辑时我习惯先在 STEP7 Micro/WIN 的状态表里同时监视 I2.6、I2.7、Q0.2、Q0.3 四个点用“强制”功能逐个强制输入点看输出响应是否符合预期。这样能快速把“输入检测问题”和“程序逻辑问题”区分开。5.5 数码管显示字符不对数码管显示楼层时如果某几个数字的段码不对先别急着改程序用万用表量数码管各段的电压。常见原因是段码输出端和数码管引脚接错特别是扩展模块 Q2.0~Q2.6 的端子比较密集很容易错位。程序侧要注意七段码表的编码规则。共阴数码管和共阳数码管的段码是完全反相的关系。我默认用的是共阳数码管逻辑 0 点亮。如果你的实训台是共阴数码管把段码表里的 0 和 1 全部取反即可。这里写一段参考段码表逻辑Network 8 七段码查表输出 LDW VB0, 1 MOV_B 16#C0, QB2 // 共阳数码管 1 的段码程序里需要为 1~20 层各写一个比较输出网络用 MOV_B 指令把对应段码传送到 QB2 输出字节。如果不想写 20 个网络可以用查表指令配合变址寻址但我觉得 20 个网络虽然笨但最容易看懂也方便学生改成显示字母或特殊字符。写在最后的几点经验整套二十层电梯系统调试下来我最费时间的不是梯形图程序反而是 IO 接线和通讯配置。梯形图逻辑再复杂只要变量规划清楚了一步一步写都能调通。而接线一旦有个公共端没接好或者某个接近开关信号线被电机干扰查起来才是真的折磨人。我的建议是先规划 IO 表再做接线最后写程序顺序不要乱每接一根线就在 IO 表上打一个勾确认无误再通电调试。这个项目后面还可以往两个方向扩展一是把单速电机换成变频器驱动程序里增加多段速换速逻辑让电梯启动和停车更平稳接近真实电梯的运行感受二是做双梯并联群控用两台 S7-200 通过通讯协调调度让两台电梯自动分配呼梯那才是真正的工程级难度。先把单梯二十层这套逻辑吃透后面这些扩展都是水到渠成的事。
返回列表