news 2026/10/9 2:35:49

基于西门子S7-200 PLC的八层电梯集选控制与组态王监控设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于西门子S7-200 PLC的八层电梯集选控制与组态王监控设计

做八层电梯控制这个项目,最上头的时刻通常不在写梯形图那两天,而在半夜蹲在实验台前盯着STEP 7-Micro/WIN的在线监控窗口——满屏触点一会儿通一会儿断,活像等着预判下一块俄罗斯方块落到哪。搞过西门子S7-200 PLC和组态王搭电梯的人,大概都有类似体会:硬件配线和画面组态其实都不算难,真正藏在这套系统里的东西,是梯形图里那套怎么响应呼叫、怎么判断方向、怎么保证安全的控制逻辑。这篇文章想聊的正是在这些看不见的地方,适合正在做课程设计、毕业设计,或者对电梯集选控制逻辑感兴趣的工控人参考。

1. 先摆清楚棋盘:八层电梯的I/O分配与硬件选型

做八层电梯,第一步不是打开Micro/WIN写程序,而是先把现场信号一个个列清楚。这个环节最枯燥,也最关键——后面每一段梯形图,都是从这张点位表里"长"出来的。

1.1 输入点:按钮、平层开关、安全信号怎么分

八层轿厢电梯的输入信号大体分三类:

  • 呼叫类:轿厢内1~8层选层按钮,门厅1~7层上行呼按钮,门厅2~8层下行呼按钮,轿厢开门/关门按钮。
  • 位置类:每层一个平层感应开关,用来告诉PLC"轿厢现在在第几层"。
  • 安全类:急停开关、门锁回路、开门到位、关门到位、超载开关、上端站强迫换速、下端站强迫换速。

这里有个细节值得先说:楼层外呼按钮,1层只有上行呼,8层只有下行呼,中间2~7层上下呼都有。这么一算,纯按钮就已经是8个内选加14个外呼,再加上开门、关门两个,光按钮就24个。再把8个平层开关和几个安全点加上,点数需求一下就上去了。这也是第一次做这个项目的人最容易踩的坑——以为拿个CPU224的14输入就够用,算完点位发现差太远了。

我在这个项目里用的是CPU226 + EM223 16DI/16DO扩展模块的组合。CPU226本体自带24DI/16DO,通道数够多,扩展模块补一点内选和安全输入,整体余量也不小。具体分配如下:

输入地址信号名称说明
I0.0 ~ I0.71~8层平层感应轿厢到位检测,常开
I1.0 ~ I1.61~7层上呼按钮门厅上行呼叫
I1.7、I2.0 ~ I2.52~8层下呼按钮门厅下行呼叫
I2.6开门按钮轿厢操纵箱
I2.7关门按钮轿厢操纵箱
I3.0 ~ I3.7内选按钮1~8轿厢目标楼层,来自扩展模块
I4.0超载开关常开,超载时闭合
I4.1急停按钮常闭,串入安全回路
I4.2门锁回路常闭,任一厅门/轿门未关则断开
I4.3开门到位常开
I4.4关门到位常开
I4.5上强迫换速常闭,端站限位动作断开
I4.6下强迫换速常闭,端站限位动作断开

这样分配之后,本体24点输入正好用完,扩展模块还有2个输入点富余,以后想加个消防联动或者检修开关,不用再动硬件。

1.2 输出点:接触器、指示灯、门控如何安排

输出侧的分配思路比输入简单,但要考虑电压等级和驱动能力两个问题。我的输出点位分成五块:

  • 运动控制:上行接触器、下行接触器,或者直接接变频器的正转/反转端子。
  • 门机控制:开门继电器、关门继电器。
  • 楼层指示:1~8层内选记忆灯/到站指示,可以共用一组灯。
  • 方向指示:上行指示灯、下行指示灯。
  • 辅助信号:运行状态灯、到站钟/蜂鸣器。
输出地址信号名称说明
Q0.0上行接触器驱动电机正转
Q0.1下行接触器驱动电机反转
Q0.2开门继电器门电机开门方向
Q0.3关门继电器门电机关门方向
Q0.4到站钟到站短脉冲输出
Q0.5 ~ Q0.7、Q1.0 ~ Q1.31~8层内选记忆灯对应楼层亮起
Q1.4上行方向指示常所述方向点亮
Q1.5下行方向指示常所述方向点亮
Q1.6运行状态灯运行时亮
Q1.7备用可接蜂鸣器

有一点必须提醒:接触器线圈是典型的感性负载,直接用PLC输出模块驱动,关断瞬间的反电动势很容易把输出点打坏。我做的时候习惯在PLC输出端和接触器线圈之间加一层中间继电器,并且在线圈两端并接续流二极管或者RC阻容吸收。晶体管控股输出被感性负载击穿,这个故障我在别人设备上见过不止一次,因为多数输出模块内部保护电路并不那么"扛造"。

1.3 为什么选CPU226而不是更小的CPU

如果只做一个教学演示用的小电梯模型,有人会觉得CPU224或者CPU221也能跑。这话对,但仅限于"能跑"——只要你想完整实现集选控制,不砍安全信号,不砍外呼记忆,不砍到位检测,点位就是比想象中多。

我自己选CPU226的另一个理由,是它自带两个通信口。一个口留给STEP 7-Micro/WIN编程调试,一个口给组态王做PPI通信,两端互不干扰。如果用单口的CPU224,调试程序的时候组态王就得断开,往返回插很麻烦。八层电梯这种项目,程序调整是家常便饭,双口带来的便利远超那点差价。

2. 梯形图的输入与输出到底有什么区别:触点、线圈和中间的"便签本"

网上搜"梯形图输入与输出的区别",出来的答案多半是课本式的三句话:输入是外部信号进PLC,输出是PLC驱动外部设备。话没错,但不够。真到写程序的时候,输入和输出的区别会以各种奇怪的方式影响你的逻辑设计,尤其是接线常闭触点那类反逻辑,坑过一批又一批人。

2.1 三个环节:输入刷新、程序执行、输出刷新

PLC的工作方式是循环扫描。一个扫描周期里,先读取所有输入点的物理状态,放进输入映像寄存器;然后CPU逐条执行梯形图程序,期间不断读写映像区;程序执行完,再把输出映像寄存器的结果统一送到物理输出端,驱动外部负载。这个机制决定了三件事:

  • 梯形图里的输入触点I0.x,读的是输入映像区的值,不是物理端子实时的电平变化。
  • 梯形图里的输出线圈Q0.x,写的是输出映像区,物理输出端要在输出刷新阶段才跟着变。
  • 程序执行过程中,输入参数已经刷新,这在一个扫描周期内基本不变;如果你在一个周期里反复修改同一个Q位,最后生效的是最后一次赋值。

这个机制对电梯控制非常关键。比如平层开关这样高速变化的信号,如果要求在输入刷新之前就产生动作,PLC是做不到的,必须在程序逻辑里用"沿"、定时器去处理抖动和时序。

2.2 触点反映"状态",线圈决定"动作"

梯形图左侧的触点是对某一地址状态的读取,右侧的线圈是对某一地址状态的写入。记住一个简单的对应关系:

  • I区:只能被外部接线改变,梯形图里只能当触点读,不能写线圈。
  • Q区:主要被程序当线圈写,但也可以在别的网络里当触点读回来。
  • M区:既能在左侧当触点,又能在右侧当线圈,完全由程序内部使用。

有个概念容易被忽略:虽然Q区是输出,但你完全可以用一个辅助继电器M0.0先做逻辑运算,最后再集中映射到Q0.0输出。这种方式的好处是,逻辑层和物理输出层分离,后面改接线或者换输出点的时候,程序不用大动。我在电梯程序里就专门划了一块"输出映射区",所有Q点的赋值语句集中放,看起来非常清爽。

2.3 常闭触点接线的反逻辑陷阱

这是输入与输出区别里最要命的一个点。现场急停按钮、门锁开关、上/下强迫换速开关,通常接常闭触点,因为安全回路必须"断线即停车"——如果有一根线断了或者被剪断,回路断开,设备自然停,而不是继续跑。

但常闭触点接到PLC输入端之后,正常状态下输入点I4.1是导通的,程序里读到的状态是1。于是梯形图里你要表达"急停正常、允许运行",就得用常开触点去读这个I4.1,让"能流"在I4.1为1时流过。你要是照着接线图上"常闭"两个字,直接在梯形图里也画一个常闭触点,那正常运行的时候反倒没有能流,什么动作都执行不了。

我见过不止一次的翻车现场:学生把急停的常闭触点接到I端,程序里也写常闭,结果一上电急停明明没按,PLC却认为急停被按下了,整个系统锁死。排查很久发现是自己在梯形图里画反了。

我的个人做法是:安全回路单独抽象成一个M位,例如M4.0代表"安全回路正常"。在程序最前面用一个网络统一处理:

安全回路正常(M4.0)= 急停回路闭合 AND 门锁闭合 AND 上强迫换速未动作 AND 下强迫换速未动作

后面所有逻辑需要用安全条件时,一律引用M4.0的常开触点。这样反逻辑只在一个网络里处理一次,不会满程序都是反逻辑,排查起来也清晰得多。

2.4 M区中间变量:梯形图的"便签本"

M区在S7-200里就是中间继电器区,数量非常充足。它不接任何外部端子,纯粹给程序内部做逻辑中转。

电梯程序里最典型的M区用途有几类:

  • 登记记忆位:内选、外呼按钮按下的瞬间是短脉冲,必须用M位"锁存"住。
  • 方向标志位:M3.0上行中、M3.1下行中,后面所有方向相关逻辑都引用它。
  • 状态标志位:门已开、门已关、运行中、待机中。

这里补充一个容易忽略的细节:S7-200的M区有一部分可以设成掉电保持,在系统块里能配置。如果你做断电测试后,电梯自己记住一堆呼叫,上电后开始乱跑,十有八九就是M区保持设置没弄明白。电梯调试时,内选登记这类信号我通常不设保持,断电就清零,这样上电状态更干净,也更容易复现调试问题。

3. 电梯的灵魂:方向判断与集选控制的状态机

如果说I/O配置和基础指令是骨架,那方向判断就是八层电梯控制逻辑的心脏。这段内容决定了电梯像不像一台"正经电梯",而不是一个"见呼就停的按钮箱子"。

3.1 登记与消号:RS触发器把按钮按下的瞬间"存住"

人在电梯厅按一下上呼按钮,手就松了。如果PLC只在按钮按下的那个扫描周期里响应,接着就忘了,那电梯根本没时间赶过来。所以第一件事是登记——用一个置位指令,把M1.0这类记忆位置1,表示"1层有上行呼叫"。

等到电梯真正响应这个呼叫,也就是轿厢到了对应楼层并且开门之后,再用复位指令把M1.0清成0,这个动作叫消号。同理,内选楼层登记位是M0.0~M0.7,上呼登记位是M1.0~M1.6,下呼登记位是M2.0~M2.6。

用S7-200的S/R位指令做这件事非常直接:

  • 按下内选I3.0,置位M0.0(登记1层内选)。
  • 电梯到达1层平层并开门,复位M0.0(1层内选消号)。

3.2 方向判断:用当前位置过滤请求

有了登记位,下一步是判断电梯该往哪走。判断规则其实很简单:

  • 上行条件:存在某层j,j大于当前楼层,且第j层有任意登记(内选或外呼)。
  • 下行条件:存在某层j,j小于当前楼层,且第j层有任意登记(内选或外呼)。

在梯形图里实现,通常有两种写法。

第一种是逐层位组合法,特别直观,8层也勉强能写。核心思路是:先对每一层做请求汇总Rm = 内选m OR 上呼m OR 下呼m,然后用"当前楼层"过滤。

上行允许 = R2与1层平层信号 加 R3与(1层平层或2层平层) 加 R4与(1层平层或2层平层或3层平层)……
下行允许 = R7与8层平层 加 R6与(8层平层或7层平层)……

这是纯位逻辑,看得见摸得着,但写到第8层已经有点痛,真做20层会更痛苦。

第二种是比较指令法。把当前楼层号存进VB0,每层请求汇总成M区位,然后用字节比较判断哪些楼层在当前楼层上方或者下方。举例来说:

如果"请求层R5 = 1" 且当前楼层 VB0 < 5,说明5层在当前位置上方,可以产生上行条件。

这种写法代码量明显少,逻辑层次也清楚。我最终程序里用的是比较指令法,毕竟电梯楼层越多越省事。

关键的一点是,方向判断不是"哪个按键先按就先去哪",而是顺着运行方向逐个响应。电梯决定上行之后,就只把上方的请求楼当目标层,下方的请求通通先放着,等上行任务清完再掉头。这个规则在下一小节展开。

3.3 顺向截梯与反向记忆:为什么电梯不"见呼就停"

集选控制的核心可以概括成两句话:顺向截梯,反向记忆。

举个实际场景:电梯停在2层,5层有人按上行呼,8层有人按下行呼,2层轿厢内又多按了4层。方向逻辑怎么走?

电梯会先上行,4层停一下响应内选,然后5层停一下接上呼的人,最后到8层,虽然8层按的是下行呼,但电梯已经到了端站,到站后会开门,然后才切换方向。真正体现"反向记忆"的是另一个例子:电梯正在上行,已经过了3层,正在去6层途中,这时候3层有人按下行呼。电梯不会立刻掉头,而是先把上方的工作清完,返回的时候在3层停。这就是为什么你在电梯里有时候会觉得"明明有人按了,电梯为什么不下"——因为那是个反向呼叫,得等电梯调头。

这一块跟"俄罗斯方块"的感觉最像:方块落位必须遵守规则,一次只能处理一条方向的队列,不能左一下右一下。电梯也是一样,方向一旦决定,就要把这个方向上顺路的请求全处理完,才允许换方向。

梯形图实现时,要专门做一个"换向允许"条件,而不是简单判断"有上方请求就上行,有下方请求就下行"。我的经验是给方向状态加个保持逻辑:上行状态一旦置位,就一直保持,直到"上方没有顺向请求了"才允许复位并切换到下行。没有这个保持逻辑,电梯在运行途中可能因为某个反向登记瞬间触发换向,门还没开就往回跑,这是很危险的。

3.4 平层信号与目标层减速

光有方向还不够,电梯要知道自己该在哪一层停。这里我推荐用物理平层开关定位,而不是用脉冲计数累加楼层。

原因很实在:演示台架的电机带载能力不稳,光电开关或接近开关的抖动也普遍,单纯靠"每过一个楼层信号就VB0加1"的方式,跑几轮之后楼层号就可能漂移,轻则停错层,重则逻辑混乱。可靠的方案是,每层装独立的平层感应开关,每次轿厢到达某层,对应I点导通,程序把VB0直接写入那个楼层的编号。虽然每个楼层多一个传感器的成本,但换来的是定位绝对可靠。

停车过程大致三段:

  • 换速点:轿厢接近目标层时,先控制电机从快车切到慢车。
  • 平层点:慢车继续爬行,直到目标层平层开关动作。
  • 停车开门:平层信号到位后,断开运行接触器,延时0.5秒左右稳定,然后开门。

在梯形图里,换速和停车都要用"运行方向 AND 目标层平层"这样的组合条件,千万别只用平层信号本身,否则上行和下行都会在同一层停,方向判断就乱套了。

4. 安全逻辑不是装饰:互锁、门联锁与端站保护

电梯控制里,真正体现工程素养的不是那些华丽的集选功能,而是安全逻辑。哪怕你只是搭一个实验室模型,这部分也建议老老实实做出来。

4.1 上下行接触器的软互锁与硬互锁

上行和下行接触器绝对不允许同时吸合,否则电机会被直接短路或产生不可控的机械反转。梯形图里要做软互锁:

  • 上行输出网络里,串联下行接触器辅助触点/下行标志的常闭触点。
  • 下行输出网络里,串联上行接触器辅助触点/上行标志的常闭触点。

程序层面哪怕写好了互锁,硬件上还必须有第二道防线:接触器本身要选带机械互锁的型号,或者用两个接触器加装辅助触点交叉连接。为什么非要有两道?因为PLC程序可能因为干扰、误刷、内部逻辑Bug一时出错,输出模块也有可能故障导致两个Q点同时导通。这时候软件互锁完全失效,只有硬件触点能拦住事故。

4.2 门锁回路与运行允许

电梯门没关好,绝不能运行,这是基本底线。我在程序里把门锁回路放在运行条件的最前端:运行允许 = 安全回路正常 AND 门锁闭合 AND 无超载。一旦任一条件不满足,运行接触器立刻断开。

需要注意门锁信号的处理。门锁回路串的是所有厅门和轿门的门锁开关,任何一个门没关严,回路就断开。这个信号通常也是常闭接入PLC,和急停一样存在反逻辑问题。我的做法还是统一在"安全回路正常"M4.0里处理,后面所有运行条件都引用M4.0,不单独去碰I4.2。

另外,开门到位、关门到位也要参与控制,不能只看门锁。门机如果卡住,门锁信号可能一直保持闭合,但机械门并没有真正运动。把开门到位、关门到位信号引进来,梯形图里就能识别出门机异常,必要时报警停机。

4.3 端站强迫换速:冲顶前最后一道防线

上下端站要装强迫换速限位开关,在主控程序失去判断能力时,直接在硬件层面切断上行或下行控制。梯形图里,这个信号要放在极其靠前的位置:

  • 上强迫换速动作时,无条件断开上行接触器输出,并置一个"上行保护锁定"M位,必须人工检修复位才能恢复。
  • 下强迫换速动作时,无条件断开下行接触器输出,同样锁定。

我见过不少教学项目为省事不接这两个开关,觉得"反正台架小,冲不了多远"。但恰恰是这种简化,让调试时一不留神轿厢就冲到底部,把限位缓冲撞变形。仿真模型里写这几行逻辑成本极低,保留下来,既安全,也让学生养成正确的安全习惯。真梯实施必须由具备资质的单位按照相应法规和标准进行,这套程序只适用于教学台架和仿真验证。

5. 组态王上位机:让控制逻辑从梯形图里"长出来"

梯形图调通以后,整台电梯就是个黑箱子,只有排故的时候才有人愿意盯着Micro/WIN看。要让人直观看到轿厢在哪、谁按了呼、电梯方向是什么,就得靠组态王把画面做出来。

5.1 PPI通信链路:组态王怎么"看见"PLC

S7-200和组态王通信,最省事的路径是走PPI协议。在组态王工程里,设备驱动选择PLC里的西门子S7-200系列,填串口参数(波特率9600,8数据位,1停止位,偶校验),PLC地址默认2,基本就能连上。

实际做的时候有两个细节:

  • 地址要一致:组态王里配的PLC站地址,必须和Micro/WIN系统块里设置的地址匹配,否则一直连不上。
  • 通信口不要抢:S7-200的PPI口在Micro/WIN在线监视时被占用,另一边组态王再连同一个口就会互相干扰。我通常分两阶段:先用Micro/WIN把程序调稳定,再去连组态王做画面,不要同时在线调试。

5.2 数据词典和动画连接:让画面动起来

组态王的核心在数据词典。把所有需要交换的数据都定义成I/O变量,跟PLC的寄存器地址一一映射:

组态王变量类型PLC地址方向
当前楼层I/O整型VB0只读
上行状态I/O离散M3.0只读
下行状态I/O离散M3.1只读
内选1登记I/O离散M0.0读写
内选2登记I/O离散M0.1读写
门状态I/O离散Q0.2只读

画面侧的核心是把轿厢画成一个矩形框,绑定"垂直移动"动画连接。楼层间距比如设100像素,那么轿厢的垂直位移表达式就是(当前楼层-1)×100,8层一共7个间隔,最大移动700像素。变量一变,轿厢方块就在井道里上下动,效果和真实电梯的层楼显示器一致。

楼层数字我用文本动画来实现:每层一个数字显示,对应楼层变量等于该层时显示,不等于时隐藏。这样不用做复杂的字符串换算,变量一翻,8个楼层数字自动切换。

5.3 用画面按钮做半实物仿真

组态王不仅能看,还能"按"。我把内选按钮直接画在画面上,每个按钮的"弹起时"命令语言里对对应M区置位,比如:

内选3按钮按下时,置位M0.2,模拟轿厢3楼选层操作。

这样即使没有实际轿厢操纵箱,也能通过画面按钮触发内选登记,PLC程序照样响应运行,轿厢动画跟着动,到站门开灯光切换。整套系统就从一个"只能看逻辑"的梯形图,变成了一个"看得见、按得动"的半实物仿真平台。

组态王这边还有个实用技巧:调试阶段把数据词典里所有变量做成一个"变量监控画面",全部用小型输入框显示当前值。一旦PLC程序跑出预期外的状态,切到这个画面一眼就能看到问题出现在哪个位,比翻梯形图快得多。

6. 调试实录:一次"电梯乱跑"故障的完整排查链路

调试这段我特意放最后写,因为哪怕前面把逻辑讲得再清楚,台架一跑还是可能给你颜色看。分享一次真实的排故过程,完整链路比结论更有参考价值。

6.1 故障现象:下行时楼层到了却不停车

那天的现象是:电梯在5楼,自动模式下有人按下行呼后,电梯开始往下走。按设计,3楼应该有停站任务,结果轿厢到3楼根本不减速,直接冲过平层一路到底,最后靠下端站限位才停下来。电机嗡嗡响,台架都跟着震,我第一反应是"这要放真梯上已经是蹲底事故了"。

6.2 用状态表一步一步锁定根因

我没有一上来就翻程序,而是先在STEP 7-Micro/WIN里开了状态表,按"物理层 → 逻辑层 → 输出层"的顺序查。

第一步确认硬件。手动把轿厢推到3楼,看状态表里I0.2(3层平层)是否为1。结果显示正常,说明传感器和接线没毛病。

第二步确认登记逻辑。再看下行呼登记位M2.1(3层下呼登记),也是1,说明呼叫被正常记住。

第三步查停车条件。我在程序里把3层"到站停车分量"单独加进状态表盯着,发现下行运行时它始终是0。逐段往下追,原来停车条件的写法是"3层平层信号 AND 运行方向标志",而我在这个网络里引用的方向标志是M3.0(上行标志)。换句话说,这个停车条件只在电梯上行时才成立,下行时自然永远不满足,电梯一路冲底也就不奇怪了。

修正很简单:把这个网络的方向条件改成"M3.0 OR M3.1",也就是用"运行标志"去判断,不管上行下行,只要平层信号到位就该停车。改完重新下装,下行动作立即恢复,故障消失。

这个案例的价值不在于那一条逻辑,而在于排查顺序。如果一开始就去翻梯形图,很容易被无关网络干扰;先从输入点确认物理层面没问题,再沿着数据流一层层往上追,问题点会快速暴露。

6.3 线路反逻辑、M区残留和强制点位的那些坑

同样在这个项目里,我还踩过几个跟方向判断完全无关但同样折腾人的坑,顺手记下来:

  • 反逻辑写反:之前提过急停常闭触点接法,第一次上电时我把安全回路的梯形图写反,结果急停没按,系统锁死,排查了一个小时才发现是触点画错。
  • M区掉电保持未配置:有一次断电重启后,电梯自己响了一遍到站钟,还往某个楼层跑。原因是几个内选登记位默认配了掉电保持,断电前又恰好有登记残留。后来我把登记相关M区全部配置成不保持,上电状态干净许多。
  • 强制点位忘释放:调试早期为了验证逻辑,我强制过某个输入点,后面忘了取消强制,结果程序怎么改都"跳不出那个状态"。S7-200的强制功能能用,但一定要养成调试完统一检查的习惯,否则强制点位会像幽灵一样干扰全局。
  • 双线圈重复赋值:有一个中间状态标志在梯形图里被两个网络重复输出线圈,导致最后赋值的网络覆盖了前面的结果。所以我后来划分程序结构时严格规定,同一个M位或者Q位,全程序只允许一处写线圈,其余地方只能用触点引用。

最后再说个个人习惯:每次下装程序前,先把关键M区的初始值写好,特别是方向标志、安全锁定位这种跟安全相关的位,初始状态必须明确。调试时严格按"先看输入点、再追线圈、最后改逻辑"的顺序走,这个习惯帮我省下的时间,远比写这几行初始值多得多。

电梯控制这种东西,表面看是硬件和程序的堆叠,实际拼的是对"状态"的理解——谁按了、往哪走、该不该停、下一步换不换向,本质就是一个不停流转的状态机。俄罗斯方块玩到最后,比的也是谁对"下一个状态"预判得更准。我玩得不算好,但至少在电梯逻辑这块,算是用PLC把这个游戏玩明白了。

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

Agent Safehouse命令选项完全指南:20个--enable开关逐一讲透

Agent Safehouse命令选项完全指南&#xff1a;20个--enable开关逐一讲透 【免费下载链接】agent-safehouse Sandbox your local AI agents so they can read/write only what they need 项目地址: https://gitcode.com/gh_mirrors/ag/agent-safehouse Agent Safehouse 是…

作者头像 李华
网站建设 2026/10/9 2:30:55

汽车理论课后习题详解:动力性、燃油经济性与制动性解题指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华