news 2026/9/9 14:04:51

西门子S7-200 PLC三层电梯控制梯形图编程实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
西门子S7-200 PLC三层电梯控制梯形图编程实战

干我们这行的都懂,电梯控制这块,PLC程序说好听点叫“逻辑严密”,说难听点就是个“重度选择困难症患者”。一个三层电梯,楼层虽然不高,但十几路按钮信号——内呼、外呼、楼层感应、门锁、限位、急停——全堆在一起,程序必须在几十毫秒内做完判断:我要不要走、往哪走、走到哪停、能不能开门。

这套东西放到西门子S7-200上,恰恰是最能体现梯形图基本功的场景。它不像大型项目的复杂通讯或运动控制,而是把“输入采样—逻辑运算—输出刷新”这套最核心的PLC运行机制用到极致。这篇我就用实战的口吻,把三层电梯的核心控制逻辑怎么用梯形图一步步搭出来,讲清楚每个触点为什么要这么放,每段程序背后在防什么事故。无论是正在做PLC毕设、准备实操入门,还是想把手头继电器控制柜改造升级成PLC控制,这篇都能直接给你一套能落地的思路。

1. 读懂“电梯社畜”的一天:先想清楚控制器到底要管哪些事

1.1 为什么电梯程序会“纠结”:十几个信号背后的真实逻辑

你想象一下自己站在电梯里,手里捏着好几个诉求:一层有人按了上行,三层有人按了下行,你自己在二层按了去一层的内呼。这时候电梯原本停在三层,它到底该先接谁?是按“顺向优先”规则先下去一层接你自己,还是完全看哪个呼叫离得近?

这就是电梯程序“纠结”的本质。它不是不会算,而是要在多组相互矛盾的输入信号里排序,并且每一步动作都必须有确定的、可预见的判断依据。楼层越高、按钮越多,这种组合爆炸越明显。三层电梯已经是能讲清楚所有逻辑的最小模型——它包含外呼上行、外呼下行、内呼、楼层定位、方向决策、开关门互锁,这些都是高层电梯的基础单元,只是数量少一点。把三层搞透了,写三十层也就是复制粘贴加一点调度算法的事。

1.2 为什么用PLC做这种控制:从继电器电路到程序逻辑

老式电梯用的是继电器控制系统,一个三层电梯的控制柜里能塞几十个继电器,上下行自锁、互锁、楼层选择、门锁回路全靠物理接线实现。这种方案的痛苦在于:改一个运行逻辑,比如“我要增加一个‘双门同时开’的功能”,就得改线,运气不好整个柜子拆了重新配。而且故障排查极其痛苦——几十个继电器的触点,哪个接触不良了,你得一个一个量。

PLC替换继电器,本质是把“硬接线逻辑”变成“软逻辑”。原来需要几个继电器搭出来的自锁、互锁、延时、计数,现在用梯形图里的常开常闭触点、线圈、定时器就能完成。改逻辑就是改程序,下载进去就完事。S7-200作为西门子小型机里的经典机型,指令集简洁,梯形图编辑直观,CPU224自带14输入10输出,对三层电梯这种规模的IO来说刚刚好。虽然它已经停产多年,但二手市场保有量巨大,教学和实际小型设备里到处都在用,学习价值一点不过时。

1.3 程序该有的“性格”:把电梯看成一台状态机

我觉得写PLC程序最忌讳的就是一上来就堆触点。你得先想你写的程序“性格”是什么。电梯本质上是一个有限状态机,就那么几个状态:空闲待命、上行运行、下行运行、减速停靠、开门、关门。

每个状态之间由特定条件触发跳转。比如“运行”状态下,如果当前楼层传感器动作且目标楼层等于当前楼层,那么就要从“运行”切到“停靠”;“停靠”过程中开门信号置位,切到“开门”状态。把状态画清楚之后,梯形图不过就是这些状态和切换条件的机械翻译。这个思路在S7-200上特别合适,因为它的内部辅助继电器M和置位/复位指令可以很优雅地表示“当前处于哪个状态”以及“哪个状态被激活”。

2. 先搭台子:I/O分配表和硬件接线注意点

2.1 三层电梯到底需要多少个输入输出点

在做任何梯形图之前,先把I/O表和符号表编好。这是我在工程里反复强调的事:程序可以不完美,I/O分配必须先门儿清。三层电梯我按最典型的配置来算——

输入信号方面:

  • 一层外呼上行按钮:1个
  • 二层外呼上行、下行按钮:2个
  • 三层外呼下行按钮:1个
  • 轿厢内呼一层、二层、三层按钮:3个
  • 楼层传感器(一层、二层、三层):3个
  • 门锁反馈信号:1个(所有厅门轿门串联)
  • 上下限位开关:2个
  • 急停按钮和超载信号可以合并成1个故障输入

输出信号方面:

  • 上行接触器:1个
  • 下行接触器:1个
  • 开门继电器:1个
  • 关门继电器:1个
  • 楼层指示(或七段码):3个
  • 运行方向指示灯:2个

这样算下来输入约15个、输出约8个。S7-200 CPU224的14输入10输出,输入勉强够用,输出绰绰有余。如果还想富余点,可以直接上CPU226或者加一个EM223数字量扩展模块,但我建议新手就用CPU224,逼自己把I/O优化着用。

2.2 按钮和传感器的接线方式:NPN、公共端这些坑一次说清

标题里提到了一个很典型的实操点——NPN型传感器接到西门子PLC时,公共端接电源正极。这也是新手最容易翻车的地方。

S7-200的输入回路支持漏型接法(也叫源型输入,具体看你怎么定义参考点),当使用NPN型三线式传感器时,传感器的信号输出线要接到PLC的输入端,传感器电源负极接PLC输入公共端1M或2M。而PLC公共端则要接电源的正极,这样输入端才有低电平有效的信号回路。你要是不小心把公共端接到了电源负极,传感器怎么感应,PLC输入端都收不到信号,而且可能直接把输入口烧了。

我建议接线前拿万用表测一下传感器动作时的输出电平。NPN型传感器在没有感应目标时输出是高阻或高电平,感应到目标后输出拉低。你确认信号线对负极有电压跳变,再接PLC输入,这样最稳妥。另外,所有按钮、传感器建议统一用24V直流供电,别混用220V,安全等级完全不同。

2.3 安全回路怎么进程序:硬件串联加软件互锁的双保险

电梯控制必须回答一个问题:万一程序跑飞了,怎么办?

所以安全回路不能只靠程序。我会在硬件上把急停按钮、上下限位开关、门锁开关全部串联在一个安全继电器回路里,任何一个断开,主接触器直接掉电,电机不可能运转。同时,再把安全回路的反馈信号接到PLC输入点中,让程序也感知到当前安全回路是否导通。硬件断掉的是物理通路,程序断掉的是逻辑输出,两道保险缺一不可。

这个设计思路我强烈建议保留到任何工程项目里。PLC的梯形图再完美,也只是半导体逻辑,它不能代替物理断开。软硬结合,才是电梯这类安全敏感设备的正解。

3. 梯形图核心逻辑编写:从“记性”到“行动”

3.1 呼叫登记记忆与清除:程序的“记性”

电梯程序的第一件事是把按钮信号记住。因为乘客按完按钮不可能一直用手按着,如果程序不做记忆,手一松呼叫就消失,那电梯永远不知道有人要去几楼。

在S7-200梯形图里,我用内部辅助继电器M来做呼叫寄存器。逻辑很简单:内呼一层按钮I0.3按下瞬间,M0.0置位。什么时候复位?当电梯到达一层并且开门到位时,把M0.0复位。这个“到达且开门”才是清除呼叫的正确时机,不能一到楼层就清,否则乘客还没上电梯呼叫就没了。

梯形图的实现用置位和复位指令最方便。常规写法是:

LD I0.3 // 内呼一层按钮 S M0.0, 1 // 记忆内呼一层 // 到达一层的清除条件 LD M1.0 // 电梯当前在一层 A M2.1 // 开门到位 R M0.0, 1 // 清除内呼一层记忆

注意这里用了“置位/复位”而不是普通输出线圈。两者的区别在于:普通线圈在条件不满足时自动断开,而置位线圈一旦置位,即使输入条件消失,它仍然保持导通,直到被复位指令复位。这正是“记忆”功能需要的特性。很多新手在这里用普通线圈,结果按钮一松呼叫就消失,程序逻辑怎么调都不对。

外呼的上行和下行按钮同理。I0.0是一层外呼上行,对应的有M0.4作为记忆位;二层上行是M0.5,二层下行是M0.6;三层外呼下行对应M0.7。每个外呼的清除时机要和电梯运行方向匹配:顺向停靠时,到达且开门后清对应外呼;反向的呼叫则保留,等电梯换向后再处理。

3.2 楼层位置检测与方向判断:程序的“思考”

电梯怎么知道自己在几楼?常见做法是每层安装一个干簧管或接近开关,轿厢侧的遮磁板/感应片经过时触发对应输入。但问题来了:电梯运行过程中,同一时刻可能有两个楼层传感器同时动作吗?

理论上轿厢长度小于层间距时不会,但实际中如果传感器安装距离过近,或者轿厢在两层之间缓慢移动,完全可能两个传感器都处于触发状态。所以程序不能直接“读”当前楼层,而要用“置位/复位记忆”的方式跟踪位置。我定义一个“楼层占用字”概念:用三个内部继电器M1.0、M1.1、M1.2分别表示当前在哪一层。当一层传感器I0.7导通时,先复位M1.1、M1.2,再置位M1.0;二层传感器I1.0导通时,复位M1.0、M1.2,置位M1.1;三层类似。

这样无论电梯在什么位置,程序中始终只有一个楼层标志是通的。梯形图的写法可以用“比较后置位”的方式,但更直观的方式是每一层传感器触发时都用“复位所有层标志再置位当前层”。S7-200对这种操作有专门的位移指令,但新手阶段建议直接写三个并联支路,清晰好查错。

方向判断是电梯程序最像“思考”的部分。我定义一个方向输出标志:M2.0表示上行、M2.1表示下行。判断规则是:如果电梯当前不在目标楼层,且目标楼层比当前楼层高,则置位上行;反之置位下行。如何在S7-200里做楼层数字比较?

我建议先把当前楼层和各个呼叫楼层都编成数值。当前楼层可以用一个字节变量VB0来记录,楼层传感器动作时,用MOV_B指令把对应的楼层号(1、2、3)传给VB0。然后每一路呼叫对应一个目标楼层字节,比如内呼一层的呼叫值存VB1。当电梯空闲时,把所有已登记的呼叫楼层和VB0做比较,取最近的、同方向的执行。这个过程在S7-200里可以用比较指令实现。先把“方向选择”写出一个简化版:

// 存在高于当前楼层的呼叫且当前不处于下行状态时,置位上行方向 LD M0.0 // 内呼一楼(目标低于当前时,属于下行,这里不参与) LD M0.1 // 内呼二楼 O M0.2 // 内呼三楼 O M0.5 // 二层外呼上行 O M0.7 // 三层外呼下行(也代表三层有人要坐电梯,方向不一定) A M1.2 // 当前在三楼 = M2.0 // 上行标志

这个写法很粗糙,只是为了展示思路。实际工程里我推荐用“目标楼层队列”的方案:先把所有呼楼层存到一个整数数组里,然后依次比较方向和距离。S7-200虽然没有高级数据结构,但用字节存储加轮询比较完全够用。

3.3 运行与停止逻辑:电机的启动、保持和互锁

方向确定后,并不意味着电机马上要跑。电梯要付出动作,还必须满足几个关键条件:门完全关闭、无故障信号、安全回路导通、当前不在目标楼层。把这些条件全部串联在一个输出支路里,就是安全的启动逻辑。

上行输出Q0.0的典型梯形图结构:

LD M2.0 // 上行方向有效 A I0.5 // 门锁信号:所有门已关好 AN I0.6 // 未触发上限位开关 AN I0.4 // 无故障(急停、超载等) AN Q0.1 // 互锁:下行接触器未吸合 = Q0.0 // 输出上行接触器

这里Q0.1作为常闭触点串入Q0.0的输出回路,就是梯形图里最常见的“软互锁”。同一时刻,Q0.1线圈的驱动条件是方向向下且其他安全条件满足且Q0.0未吸合。这样CPU无论如何都不可能同时输出上行和下行接触器。

但还不够。如果接触器本身卡死,比如主触点粘连,程序里互锁得再好,物理上依然可能上下行同时吸合。所以我在硬件上还加了一组接触器的机械联锁,就是接触器自带的正反装互锁机构。软互锁管逻辑,硬互锁管物理,双保险。

电机运行不是点一下就完事。电梯从启动到匀速,中间有一个加速过程;快到目标楼层时要提前减速。S7-200怎么处理加减速?小型电梯最简单的方式是双速电机控制:启动时快速接触器吸合,达到速度切换点后切换到慢速接触器进行减速。程序里用定时器来做时间切换。启动后延时2秒切慢速,快到时再给出停车指令。这个细节决定了乘客的舒适度,如果只有“启动-急停”两个状态,乘客能直接飞出轿厢。

我在程序里加了一个定时器T37做“启动加速时间”,定时2秒后把快速接触器断开,保持慢速接触器吸合。到站停靠时,直接切断慢速接触器,同时启动抱闸接触器刹车。这个逻辑放在运行输出之后,和方向判断独立,便于调试。

3.4 开关门逻辑:最容易出安全隐患的一段程序

电梯到站之后的开关门控制,看着简单,实际是事故高发区。夹到人、门没关好就运行,都是这段逻辑没写好。

开门的条件:电梯处于停止状态、当前楼层就是目标楼层、轿厢已平层。平层的判断可以用专门的平层感应器,也可以用楼层传感器加延时确认。我习惯在楼层传感器导通后加0.3秒的延时确认信号,防止传感器瞬间抖动导致误判。

开门输出Q0.2的驱动条件是:到站且速度为零,同时开门限位I1.3未动作。开门限位动作后,开门输出立即断开,防止开门继电器长时间通电烧毁线圈。

关门逻辑要稍微复杂点:关门有两种触发方式。一是乘客按关门按钮,二是延时自动关门。自动关门我用的定时器T38,开门到位后开始计时,6秒后自动置位关门请求。关门输出Q0.3的驱动条件是:关门请求有效且安全光幕或防夹开关未动作、关门限位未到位。

最关键的防夹处理:关门过程中如果光幕被遮挡,必须立即停止关门并重新开门。这个“停止关门”不是简单断开Q0.3,而是要把关门请求复位,同时置位一个“重新开门”请求。很多人在这里只断开Q0.3,结果光幕一离开,关门输出又恢复了,还是照夹不误。正确做法是:

// 关门中光幕动作 LD Q0.3 // 正在关门 A I1.2 // 光幕/防夹开关动作 R M3.1, 1 // 复位关门请求 S M3.2, 1 // 置位重新开门请求

之后重新开门请求接入开门输出逻辑中。这样每次防夹触发,系统都会“重新走一遍开门流程”,而不是仅仅暂停关门。

3.5 楼层显示与到站提示:给乘客一个反馈

楼层显示相对简单。我把当前楼层值VB0实时传送到楼显输出。S7-200可以直接用数字量输出驱动七段码,但需要编写译码逻辑。小项目不想那么麻烦,就分别用Q0.4、Q0.5、Q0.6三个输出点对应一楼、二楼、三楼指示灯。当前楼层标志M1.0对应一层,直接Q0.4=M1.0即可。

到站提示:蜂鸣器或语音播报。我用一个定时器,在电梯到位停稳后给蜂鸣器输出一个0.5秒的脉冲。S7-200的定时器实现脉冲很简单:到位信号导通时启动T39,T39的常开触点接蜂鸣器输出,延时0.5秒后切断。注意到位信号断开时要同时复位T39,否则下次到站时定时器不会重新计时。

4. 实操过程与调试记录:从仿真到真机

4.1 用STEP 7 Micro/WIN建工程写程序

S7-200的编程软件是STEP 7 Micro/WIN,这东西虽然年代久远,但胜在安装包小、界面简洁、上手快。新建工程后,第一步不是画梯形图,而是先定义符号表。

符号表的作用是把“I0.0”这种冷冰冰的地址映射成“一层外呼上行”这种有语义的名字。别嫌这一步繁琐,程序规模一大,没有符号表你过两天自己都看不懂自己写的什么。我在实际项目里,符号表就是设计的第一个交付物,它同时充当了I/O清单和程序文档的角色。

然后按之前说的逻辑块分段编写。S7-200梯形图编辑器支持主程序、子程序、中断程序。建议把这些逻辑拆成几个子程序:呼叫处理放一个子程序、方向逻辑放一个、运行输出放一个、开关门放一个、显示放一个。主程序里用CALL指令依次调用。这样布局的好处是每段逻辑可以单独在线监控,哪一段出了问题一目了然。

4.2 先用仿真再上真机:通电前的三步检查法

调试顺序非常重要,我总结了一套自己常用的三步检查法,每次都能省下大量排障时间。

第一步,软件仿真。在STEP 7 Micro/WIN里打开仿真器或使用带仿真功能的破解版,把程序加载进去,手动置位各个输入点,观察输出和内部继电器状态变化。这一步重点验证逻辑正确性,比如呼叫记忆是否保持、方向判断是否符合预期、互锁是否生效。仿真能发现80%的逻辑错误,而且是零成本修改。

第二步,空载上电。程序下载到S7-200真机,但电机、接触器先不接。从PLC输入端子用短接线模拟各按钮和传感器信号,逐个验证程序响应。这个阶段要测的是输入接线是否正确、光电隔离是否正常、输出点电压是否正常。尤其要确认每个输入点对应符号表里哪个地址,防止接线错位。

第三步,带载联调。把接触器、电机接上,但电梯轿厢先不坐人,手动低速运行。重点观察运行方向是否和指令一致、换向是否顺畅、限位能否可靠停车。这一步最容易出问题的就是电机相序接反,导致按理说上行结果却往下走。带载测试出现异常,第一时间按急停,然后查硬件,再查程序。

4.3 常见问题与排查技巧:我踩过的坑都在这

调试过程中遇到的问题是五花八门的,我整理了最常遇到的几类,做成一个排查速查表,希望能帮你少走弯路。

故障现象可能原因排查方法
按下呼叫按钮电梯没反应输入接线错误或输入点损坏在线监控输入I状态,按按钮看触点是否置ON
电梯一直上行,到顶才停上限位开关未接入程序或传感器失效检查上限位输入状态,确认程序中串联了限位常闭触点
电梯上下行同时动作软互锁失效或接触器卡死检查梯形图互锁触点,断开电源查接触器机械联锁
门关了电梯还不走门锁信号未返回PLC万用表量门锁回路,确认门锁开关导通时I0.5有信号
呼叫记忆丢失,按钮一松就没了使用了普通输出线圈而不是置位指令检查呼叫记忆段梯形图,把输出线圈改成S置位指令
楼层显示错乱楼层传感器信号干扰或程序复位顺序问题查看多个楼层输入是否同时导通,增加输入滤波或重排复位顺序

还有一个我每次都都会中招的点:S7-200的输入端子是分组的,1M、2M是不同公共端,供电极性接反不报警但愣是没反应。遇到这种“死活不进信号”的情况,先别怀疑PLC坏了,拿万用表量公共端对输入端的电压,确认是否在动作阈值范围内。开关电源电压不稳导致输入信号电平不对,也是低频故障里常见的元凶。

4.4 程序细节里的稳定性优化

电梯程序写完能跑只是及格,真正的高手会在细节上打磨稳定性。我分享几个我认为特别值得加的优化细节。

第一个是输入滤波。传感器和按钮信号在物理接触时会产生抖动,如果直接进程序,可能导致定时器误触发或者计数器多加一次。我在STEP 7 Micro/WIN的系统块里给楼层传感器和急停按钮设置了10ms的输入滤波时间。这个方法不是消灭抖动,而是用时间窗口把短暂干扰滤掉,代价是输入响应慢了10ms,对电梯这种短距离控制完全可接受。

第二个是输出脉冲和保持的区别处理。方向指示灯、楼层显示这种需要保持的输出用普通线圈没问题。但蜂鸣器到站提示这种短时信号,如果也用普通线圈,到站信号一旦断开,声音就没了,乘客根本注意不到。我用了定时器做成“接通后保持0.5秒再断开”的脉冲格式,这样哪怕输入信号只维持一个扫描周期,输出也能完整播报。

第三个是运行方向状态的自锁。电梯在运行过程中,方向标志不能被中途新来的呼叫给推翻。比如电梯正在从一层上二层,这时候三层突然按了外呼下行,方向判断逻辑不能立即把上行标志复位成下行。我的做法是:方向标志一旦置位,就一直保持到电梯到达最近的目标楼层并停稳,然后再重新计算方向。这个“方向保持”用置位指令和停止状态复位指令配合实现,是电梯调度逻辑里最体现“性格”的地方。

5. 这个程序后续还能怎么“长”:给扩展留一点余地

写三层电梯程序不是为了只写三层电梯。三层是麻雀,但五脏俱全。把第三层改成第八层,本质就是多几个输入、多几路呼叫记忆位、多几个楼层位置标志,方向判断和呼叫处理逻辑完全不变。

我会建议你在写这套程序的时候,提前把“楼层数”抽象成一个可以修改的参数。S7-200虽然没有高级宏定义,但你可以用减法指令统一处理“最高楼层”这个值。比如上限位保护、最高层的外呼逻辑,都引用这个数值变量,而不是直接写死一个“3”。这样将来把程序移植到五层、八层的时候,只需要改几个字节存储器的值,而不是重写整个梯形图。

另外,如果你想把这个项目再做得有“专业感”,可以在S7-200上增加一个RS485接口的文本显示器或触摸屏,用Modbus协议把当前楼层、运行方向、故障代码传上去。S7-200的自由口通讯或Modbus库都支持这种扩展,也就是给这个“爱纠结的社畜”配上一个能看到它内心想法的仪表盘,调试和日常维护都会方便很多。

我个人在实际操作里还有一个习惯:程序调试通过后,把符号表、I/O接线图、程序注释打包归档,再把最终版程序上传到电脑里做备份。因为S7-200的原装编程电缆和软件现在越来越难找,设备一旦跑起来,最贵重的不是硬件,而是这份已经被验证过稳定性的程序。很多现场设备用了十年八年,PLC可能都换了两茬,程序没丢就是最大的胜利。

这套三层电梯程序,说到底训练的就是你在复杂输入条件下做安全决策的能力。把它吃透了,以后写什么顺序控制、流程逻辑,都会觉得游刃有余。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 14:03:27

移动机器人学核心链路:从ROS 2与Nav2仿真到自主导航实践

很多刚接触移动机器人学的朋友,上手第一个项目时通常不是倒在算法理解上,而是倒在三件看似琐碎的事情上:坐标系对不上、时间戳不齐、建出来的地图机器人自己都不认。为什么激光雷达和里程计明明都在工作,机器人还是乱转&#xff1…

作者头像 李华
网站建设 2026/9/9 14:03:10

潜在扩散模型:高分辨率图像生成的算力革命

1. 这不是“又一个扩散模型”,而是图像生成的底层基建革命 你可能已经见过太多打着“SOTA”“新突破”旗号的AI图像模型,但真正能动摇行业根基的,往往不是参数堆得更高、训练数据更猛,而是悄悄改写了“计算成本”与“图像质量”的…

作者头像 李华
网站建设 2026/9/9 14:01:40

移动机器人学入门:差速驱动运动学建模与SLAM导航实战

做移动机器人开发也有几年了,从最早的循迹小车到后来接触 ROS、激光雷达 SLAM、差速底盘控制,中间踩过的坑确实不少。最明显的感受是:移动机器人学这门课,概念听一遍好像都懂,但真正要把一台小车跑起来、让它在室内准确…

作者头像 李华
网站建设 2026/9/9 13:59:28

Uncorrectable ECC与MBIST:内存纠错技术实战解析

先问个问题:如果你在服务器上跑MemTest86,跑着跑着看到界面底部出现一行“Uncorrectable ECC Errors : 2”,你第一反应是什么?我当时的反应是后背发凉。ECC三个字母对普通用户来说是“内存纠错”,但对搞服务器、工作站…

作者头像 李华
网站建设 2026/9/9 13:59:18

服务器内存ECC错误排查指南:从uncorr. ECC告警到更换内存

凌晨两点半,机房监控群里弹出一条告警:某台服务器的带外管理界面显示“Uncorrectable ECC”错误,计数为2。新来的运维同事第一反应是问“还能不能撑到明天”,而处理过几次内存故障的老手已经在心里把停机窗口、备件型号、内存槽位…

作者头像 李华