PLC 基础课 第15讲 手动、自动、急停、复位:设备模式切换逻辑该怎么设计

浏览量:4 次 发布时间:2026-04-14 20:58 作者:明扬工控商城 下载docx

最近更新:PLC 基础课 第11讲 数学运算与工程量换算:加减乘除、比例缩放、显示修正怎么做



前面第14讲,我们把掉电保持、上电初始化、首次扫描讲透了。
那一讲解决的是一个“重启以后程序该站在哪里”的问题:

哪些参数要保留
哪些运行状态不能乱保留
上电后为什么很多设备要先回安全默认状态
为什么顺控设备不能只靠“记住上一次步骤号”就续跑

但 PLC 真正写到现场以后,很多程序“能跑,但不好用”,甚至“功能没错,现场还是总出问题”,往往不是因为某个定时器、计数器、比较指令写错了,而是因为另一个更核心的地方没有设计清楚:

模式逻辑。

也就是说,设备到底什么时候该手动,什么时候该自动,急停按下去以后系统该变成什么状态,复位按钮到底在复什么,复位之后是不是就能直接启动,手动动作和自动流程能不能互相抢,报警消了以后为什么还不能运行,这些事情有没有被你真正设计清楚。

你会发现,现场很多让人头疼的问题,本质上都是模式切换没理顺:

为什么切到手动了,自动的动作还在偷偷起作用
为什么急停拍下去以后,有些输出停了,有些状态却还没清
为什么按了复位,设备还是起不来
为什么有时刚从手动切回自动,设备就突然往下跑流程
为什么自动运行时还能误触发手动动作
为什么模式灯显示已经是自动,但程序里有些条件还按手动逻辑在跑
为什么调试时感觉哪儿都能动,但一进自动就乱

这些问题背后,其实都指向 PLC 编程里非常关键的一块:

模式切换逻辑。

这一讲,我们就把手动、自动、急停、复位这几件事真正讲透。

如果说前面几讲更多是在讲单个功能怎么写,
那么这一讲讲的是:

怎么把一个设备的“运行规则”真正搭起来。

这一步特别重要。
因为一个设备好不好用、稳不稳、现场工程师骂不骂,很多时候不是看你会不会写指令,而是看你有没有把模式逻辑设计清楚。

一 先把最根上的问题讲清楚:为什么模式逻辑比单个功能更重要

很多初学者学 PLC 时,最容易把注意力放在这些地方:

这个按钮怎么写
这个电机怎么启动
这个报警怎么触发
这个气缸怎么伸出
这个顺控怎么跳步

这些当然重要。
但真实设备不是一堆散功能拼起来就够了。
它还必须有一套“统治这些功能的上层规则”。

比如:

设备现在是不是允许自动
现在是不是只能手动
急停以后是不是全部动作都必须退出
复位以后哪些状态该恢复,哪些不该恢复
在自动运行中,手动按钮到底还允许不允许生效
模式切换时,原来的运行命令到底要不要清掉

这些不是某一个触点的问题,
而是整个设备的“管理逻辑”。

所以你可以这样理解:

单个功能逻辑,像是在教设备“会做什么”
模式逻辑,像是在教设备“什么时候能做,谁优先,出了事怎么退”

没有模式逻辑的程序,常常会出现一种典型现象:

每个局部看着都对
合在一起就乱

这就是为什么这一讲特别重要。

二 手动、自动、急停、复位,表面上是四件事,本质上是在解决什么

表面上看,这一讲是四个主题:

手动
自动
急停
复位

但它们背后其实都在解决同一个大问题:

设备当前处于什么运行层级。

手动

强调的是人为直接控制单个动作,方便调试、维修、确认动作是否正常。

自动

强调的是设备按设定流程、条件、联锁自己运行,人不直接一步一步去管。

急停

强调的是在异常或危险情况下,系统立即退出当前动作,优先保证安全。

复位

强调的是在异常退出、故障停机、急停恢复后,系统如何重新回到一个干净、可再次启动的状态。

所以这四件事不是孤立的。
它们是一个完整设备生命周期里的四个关键模式节点。

一个真正成熟的设备,通常都要回答清楚下面这些问题:

当前是手动还是自动
切到自动之前必须满足什么条件
自动运行时手动是否还允许
急停后哪些东西马上失效
复位时哪些状态要清、哪些不能直接清
复位完以后是不是直接允许启动
从手动切到自动,流程是接着跑还是回待机
从自动切到手动,当前动作是不是立即退出

这些问题你一旦想清楚,模式逻辑就开始成形了。

三 什么叫手动模式,很多人其实只理解了一半

很多人一提手动模式,第一反应就是:

能单独点电机
能单独动气缸
能单独点阀
能单独试动作

这当然对,但只说了一半。

更完整地说,手动模式是:

系统退出自动流程控制,由操作员在受限条件下,直接控制某些单独动作,用于调试、维修、对点、确认机构状态。

这里有几个关键词特别重要。

第一,退出自动流程控制

也就是说,进入手动以后,自动步骤不应该继续偷偷往下跑。
否则就不叫真正的手动模式。

第二,由操作员直接控制单独动作

手动的核心不是“系统自己跑”,而是“人发一个动作,设备做一个动作”。

第三,在受限条件下

这点特别重要。
手动不是“什么都能乱动”。
手动也要受安全条件、联锁条件、机械允许条件约束。

也就是说,手动模式不是自由模式,
它是受限的人工控制模式。

这个理解非常关键。
否则后面很容易出现一种错误思路:

都切到手动了,还管什么联锁
这其实很危险。

四 什么叫自动模式,也不是“按启动就自己乱跑”

自动模式也常常被理解得太简单。

很多人觉得自动模式就是:

按一下启动,设备自己跑流程

这当然是表面现象。
更完整地说,自动模式是:

在满足安全、联锁、准备条件的前提下,系统按预定工艺流程、步骤逻辑和判断条件自动执行动作。

这里也有几个关键词。

第一,满足前提条件

自动不是一切模式中“最自由”的模式,反而通常是约束最多的模式。
因为它一旦运行,设备会连续动作,所以前提条件必须更严格。

第二,按预定流程执行

自动的本质不是“能动”,而是“按逻辑动”。

第三,系统自己接管步骤推进

手动模式下,人管动作;
自动模式下,系统管步骤。

所以自动模式不是只是“把启动按钮做成自保持”,
它背后其实是一整套:

模式允许
启动允许
自动运行命令
步骤推进
自动停止条件
异常退出逻辑

这些东西合在一起,才叫自动模式。

五 手动和自动最核心的区别,不是“谁在按按钮”,而是谁在主导动作

这个理解特别有帮助。

手动模式

操作员主导。
按哪个动作,做哪个动作。
不按就不动。
动作之间通常不自动串联。

自动模式

程序主导。
操作员只给出开始、停止、复位、模式选择等上层命令。
真正的动作顺序和切换由程序控制。

一旦你用这个视角看问题,很多设计就清楚了。

比如:

手动模式下,气缸伸出按钮应该是“按住或按一下才动作”;
自动模式下,气缸什么时候伸出,不应该再看那个手动按钮,而应该看当前步骤逻辑。

所以手动和自动的最大差别,不只是“界面上选了哪一个灯亮”,
而是:

当前设备是由人直接控制动作,还是由流程逻辑控制动作。

六 为什么手动和自动必须“互斥”,不能模糊不清

这点特别重要。

很多不好用的程序,都有一个共同毛病:
模式看着切了,实际上两个逻辑还在混着起作用。

比如:

自动模式灯亮了,但手动按钮一按,动作还能出来
切到手动了,但自动步骤条件还在偷偷往后满足
手动点了一下气缸,自动又马上把它收回去
自动运行时,手动输出也能抢信号

这类问题本质上都说明:

手动和自动没有真正互斥。

什么叫互斥?

就是当前只能明确处于其中一种主导状态,
不能既像手动,又像自动。

这不代表所有内部条件都要完全断掉,
但至少要做到:

自动动作逻辑只在自动模式下生效
手动动作逻辑只在手动模式下生效
模式切换时,原先模式留下来的关键命令要有明确处理

如果这一点没做好,设备现场就会特别难调。

七 一个很关键的设计习惯:模式位要单独做,不要直接拿按钮状态当模式

这一点和前面讲的“命令和状态分开”是连在一起的。

比如:

X0 是手动按钮
X1 是自动按钮

这两个只是命令输入。
真正系统内部更应该有单独的模式状态位,比如:

M10 手动模式
M11 自动模式

为什么这样更好?

因为按钮只是瞬时动作,
模式是需要被系统记住的一种状态。

而且模式逻辑后面还会牵扯:

灯显示
动作允许
步骤允许
启动条件
手动按钮屏蔽
自动流程屏蔽
急停后是否退出模式
复位后是否保持模式

如果你不把“按钮命令”和“模式状态”分开,后面一定越写越乱。

所以很好的做法通常是:

按手动按钮上升沿,置位手动模式,复位自动模式
按自动按钮上升沿,置位自动模式,复位手动模式

这样模式是明确的、可追踪的、可显示的。

八 手动模式下,到底该允许哪些动作,很多人这里最容易写太宽

一说手动,很多人容易放飞:

反正调试嘛,能动就行

这其实很危险。

手动模式当然是为了方便调试,
但不等于所有动作都完全不受约束。

更好的设计思路是:

手动比自动更灵活,但不等于不要安全和联锁。

例如:

气缸手动伸出,是否仍应要求急停正常、气压正常、安全门允许
电机手动点动,是否仍应要求热继没报警、急停释放
加热手动测试,是否仍应受超温保护限制
夹具手动动作,是否仍应受机械互锁限制

很多时候答案是:
应该保留基本安全条件和关键联锁。

也就是说,手动模式下通常可以放宽的是“流程条件”,
而不是放弃“安全条件”。

这个边界一定要清楚。

九 自动模式下,最重要的不是“能启动”,而是“启动前必须满足哪些条件”

自动模式为什么很多现场老是起不来,或者起得莫名其妙?
很大一个原因,就是自动启动条件没理干净。

自动启动前,通常至少要考虑下面这些东西:

模式已在自动
急停已释放
无当前故障锁存
气压正常
安全门正常
原点正常或机构处于允许起步状态
没有未清的待复位条件
自动启动按钮已确认
必要的物料或工位条件满足

也就是说,自动不是一句“在自动模式下按启动”就完了。
而是:

在自动模式下,并且一整串允许运行条件成立时,才允许建立自动运行命令。

这层“自动允许链”,在工程上非常重要。
很多成熟程序里,都会先整理出一个“自动允许运行条件”内部位。
后面真正的自动启动逻辑再基于这个位来做。

这样程序层次会很清楚。

十 什么叫急停,很多人把它只当成一个普通停止信号

这个理解一定要纠正。

急停不是“停止按钮的加重版”,
它本质上是:

在危险、异常、紧急情况下,优先切断危险动作,强制系统退出当前运行状态。

所以急停的优先级,通常高于普通停止、模式切换、自动流程、手动动作。

它和普通停止最大的区别在于:

普通停止更多是工艺性停机
急停更多是安全性退出

这就决定了急停逻辑通常要更严格。

比如:

普通停止可能只是让流程正常结束或撤销运行命令
急停则往往要求立即撤销动作命令、禁止继续启动、保留待复位状态,必要时还伴随硬件断电链动作

所以千万不要把急停只写成“一个普通输入点让输出关掉”。
那样层次是不够的。

十一 急停按下后,程序里通常要发生什么

先讲程序层面,不讲硬件回路细节。

急停按下后,程序里一般至少要考虑几件事。

1 自动运行命令失效

自动流程不能继续。

2 手动动作命令失效

已经建立的手动动作保持位,通常也要退出。

3 当前动作输出撤销

尤其是非安全保持型输出命令,要明确退出。

4 进入急停状态或待复位状态

让系统知道:刚经历了一次异常退出,不能当作正常停机处理。

5 禁止重新自动启动

即使急停后来释放,也不应该设备自己接着跑。

6 视设计需要,保留故障/事件记录

便于排查。

你会发现,急停不是一个“点”的逻辑,
它更像一个“全局打断”逻辑。

所以急停信号在程序里通常具有很高优先级。

十二 急停释放了,为什么设备还是不能直接跑

这是现场特别常见的问题,也是很多操作员最容易问的一句:

“急停我都拧开了,怎么还不动?”

因为急停释放,只代表“急停按钮物理上恢复了”。
它不代表设备已经回到可运行状态。

在很多合理的设计里,急停释放之后,系统通常还要经历一层:

待复位。

也就是说,程序会这样理解:

急停按下时,系统强制退出
急停释放后,说明危险停止链路恢复了
但系统还没有完成“重新确认”和“重新进入可运行状态”
必须再按复位按钮,清掉急停退出留下来的状态,重建启动前提

这才更安全,也更符合工程习惯。

所以急停释放和复位,不是一回事。
这点一定要分开。

十三 什么叫复位,很多人以为复位就是“清报警”

复位当然常常和报警有关,
但如果只把复位理解成“把报警灯弄灭”,就太浅了。

更完整地说,复位是:

把系统从异常退出、故障停机、流程中断、待确认状态,重新拉回一个干净、受控、可以再次起步的状态。

所以复位可能包含的事情有很多。

例如:

清掉故障锁存
清掉待复位标志
清掉本轮未完成流程位
清掉某些动作保持位
让步骤回待机
清掉急停退出状态
允许系统重新进入可启动条件判断

你看,这里面“清报警”只是其中一部分。

真正好的复位逻辑,应该是让系统知道:

刚才那场异常已经被确认处理,现在可以重新从安全起点准备运行了。

十四 复位按钮最容易被误用成“万能重启键”

这个地方一定要讲透。

很多不成熟的程序,复位按钮会被写得特别神。
一按复位,什么都清:

报警清
步骤清
模式切
运行命令清
统计清
临时位清
有时甚至把不该清的也清了

短期看,似乎很好用,
设备一有问题,按一下复位就“活了”。
但长期看,这是很不好的习惯。

为什么?

因为复位按钮应该有明确边界。
它不应该成为“我也不知道哪里乱了,总之按一下全部洗掉”的工具。

更合理的思路是:

复位只清那些本来就应该由复位来清的状态
不应该顺手把长期参数、正常统计、用户设定、模式偏好等乱清掉
也不应该让复位代替真正的逻辑设计

所以以后你写复位按钮时,一定要问自己:

这个状态为什么需要通过复位来解除
它是不是应该由系统自动解除
它是不是不该解除
它是不是需要先满足条件才能解除

这才是成熟设计。

十五 复位之前,为什么经常还要先判断“故障是否真的消失”

这一点特别工程。

比如:

热继报警
门未关
气压不足
伺服报警
超温保护
急停未释放

如果这些故障条件本身还在,
那你按复位能不能直接把故障锁存清掉?

很多时候答案是:
不能。

因为那样就会出现一种很奇怪的现象:

问题还没解决,灯先灭了
甚至系统还可能重新允许运行

这显然不合理。

所以很多工程里的复位条件都会这样设计:

先判断原始故障输入已经恢复正常
再允许复位按钮清掉故障锁存

也就是说,复位不是“无条件清除”,
而是“在故障条件已经解除的前提下,人工确认清除”。

这个顺序非常重要。

十六 一个很关键的设计习惯:停止、急停、复位,这三者一定要分层

很多程序不好用,就是把这三件事写混了。

普通停止

通常表示正常停机、流程停止、人工停止运行。
它不一定意味着异常。

急停

表示紧急退出,优先处理安全。
它留下来的状态一般更重。

复位

表示在停止或异常退出后,把系统重新整理回可再次启动的状态。

所以比较好的层次通常是:

停止解决“我现在不想继续跑了”
急停解决“现在有危险,立刻退出”
复位解决“刚才退出完了,现在我要重新整理系统”

三者职责不同。
如果你写成“一按停止就等于急停”“一按复位什么都恢复”,现场体验通常不会太好。

十七 一个完整小案例:手动、自动、急停、复位怎么串起来

咱们用一个比较典型的气缸送料小设备来讲。

场景要求

设备有手动和自动两种模式。
手动模式下,可以单独点动气缸伸出、缩回和输送电机。
自动模式下,按启动后按流程自动送料。
急停按下时,所有动作命令退出。
急停释放后,系统进入待复位,必须按复位按钮后才允许再次启动。
如果有故障,故障消除后也要按复位。
从手动切到自动时,不能直接沿用手动动作状态。
从自动切到手动时,自动流程要退出。

可以这样分层设计
第一层 模式层

M10 手动模式
M11 自动模式

手动和自动互斥。
切换时,另一模式复位。

第二层 全局安全层

M20 急停正常
M21 无故障
M22 待复位清除
M23 系统允许进入运行准备状态

比如 M23 可以由多个前提组成:

急停正常
无故障
不在待复位
安全门正常
气压正常

第三层 运行层

M30 自动运行命令
M31 手动允许

手动允许一般要求在手动模式下并满足基础安全条件。
自动运行命令一般要求在自动模式且满足自动启动前提后,由启动按钮建立。

第四层 动作层

手动动作只在 M31 下响应
自动动作只在 M30 和当前步骤条件下响应

第五层 异常退出层

急停按下时:

复位 M30
清手动动作保持位
清当前动作命令
置位待复位标志 M40

故障发生时:

复位自动运行命令
视设计需要退出部分手动动作
置位故障锁存
置位待复位标志

第六层 复位层

复位按钮上升沿到来,并且原始故障已消失、急停已释放时:

清故障锁存
清待复位标志
清临时流程位
让步骤回待机

你看,这样一套逻辑下来,设备的行为就会很清楚。

十八 从手动切到自动时,为什么通常要“重新站队”

这是很多现场很容易忽视的一个问题。

假设你在手动模式下,刚刚让气缸伸出到了某个位置。
现在你一切到自动,系统该怎么办?

如果程序没处理好,可能会出现两种危险情况:

第一,自动直接沿用当前一些手动留下来的动作状态继续跑
第二,自动步骤逻辑和当前机械真实位置不匹配,流程乱套

所以很多设备从手动切到自动时,更合理的做法是:

先退出手动动作命令
必要时要求回原点或回待机状态
清除临时手动保持位
重新确认自动启动前提
再允许按启动进入自动

也就是说,
模式切换不是只改一个灯,而是要把控制权真正交接干净。

这一点特别重要。

十九 从自动切到手动时,为什么也不能只是“灯切一下”

自动切到手动,同样如此。

如果自动正在运行中,你突然切到手动,
程序必须回答几个问题:

自动运行命令要不要立刻退出
当前步骤状态要不要冻结、清除还是保留待复位
自动输出命令要不要撤销
手动是否立刻允许,还是要先停稳再允许

不同设备答案不完全一样,
但有一个总体原则:

切到手动后,不应该让自动流程继续在后台偷偷推进。

否则就不是真正的手动。

所以一般会更倾向于:

模式切到手动时,自动运行命令退出
必要时进入待复位或待机
动作输出按设计安全退出
然后再开放手动单动功能

这样才稳。

二十 手动模式下,按钮到底该是“按住动作”还是“按一下保持”

这个问题现场很常见。

答案不是绝对统一的,要看动作类型和安全要求。

常见更适合“按住动作”的

比如:

气缸点动
电机点动
平台微调
夹爪试动作
刀具接近动作

因为按住才动、松开就停,更直观,也更安全。
尤其调试时,操作员对动作有连续控制感。

哪些可能适合“按一下保持”

比如某些非危险的测试动作、长距离返回动作、非关键辅助机构等,
有时会设计成按一下发命令、再按一下停止,或者按一次到位自动停。

但总体上,基础阶段你可以先记住:

手动调试动作,很多时候更偏向点动和按住式,而不是自动保持式。

这样更容易控制风险。

二十一 为什么很多设备要有“自动允许”但不一定马上“自动运行”

这点非常好用,也很工程化。

也就是说,设备可能已经处在自动模式,
但并不代表它已经自动运行。

通常会分成两层:

自动模式成立

说明当前控制权交给自动流程。

自动运行命令成立

说明已经满足条件并且操作员明确按了启动,流程开始跑。

为什么这样分层更好?

因为自动模式更多像“资格”,
自动运行更多像“开始”。

这会让程序逻辑很清楚:

在自动模式里,你可以先检查安全条件、物料条件、原点条件、门状态、故障状态。
等一切都好,再通过启动按钮建立自动运行命令。

这比“只要切到自动就默认已经在自动跑”要稳得多。

二十二 一个特别实用的思路:把模式逻辑分成四层来写

以后你写设备模式,建议脑子里尽量分这四层。

第一层 模式层

当前是手动、自动、维修、调试中的哪一种。

第二层 全局允许层

急停、故障、安全门、气压、原点、待复位这些全局条件是否允许继续。

第三层 运行层

自动运行命令是否建立,手动单动是否允许,停止是否生效。

第四层 动作层

具体哪个电机、阀、气缸、灯该动作。

很多程序乱,就是因为一上来就直接写动作,
没有先把上面三层整理出来。

你一旦按这个思路写,逻辑会稳很多。

二十三 初学者最容易踩的几个坑

这一段你后面做项目时会特别有感触。

1 手动和自动没有真正互斥

结果两个逻辑互相抢控制权。

2 自动模式下手动按钮还能直接生效

导致流程中被人工打乱。

3 手动模式下完全放弃安全条件

以为手动就可以不管联锁,这是很危险的。

4 急停只关输出,不处理运行状态

结果急停恢复后程序内部还带着旧状态。

5 急停释放就允许直接启动

缺少待复位环节。

6 复位按钮变成万能清空键

什么都靠复位洗掉,程序边界越来越模糊。

7 从手动切自动、从自动切手动,没有做状态交接

结果模式灯切了,逻辑没切干净。

8 自动启动条件没整理成一条清晰的允许链

最后起不来时很难查,到底卡在哪个条件上。

9 把模式按钮直接当模式状态

按钮松开以后,模式也丢了,程序层次不清。

10 停止、急停、复位职责混乱

结果操作员体验非常差,程序也难维护。

二十四 本课小结

这一课你最少要真正吃透下面这些点。

第一,手动、自动、急停、复位不是四个孤立功能,而是一套完整的设备运行规则。

第二,手动模式的本质是受限的人为单动控制,自动模式的本质是程序接管流程推进。

第三,手动和自动必须真正互斥,不能表面切换了,底层逻辑还混着跑。

第四,模式按钮只是命令,真正的模式状态最好单独做成内部位来管理。

第五,手动模式可以放宽流程条件,但通常不能放弃基本安全条件和关键联锁。

第六,自动模式下通常应先整理出一条“自动允许链”,再建立自动运行命令。

第七,急停不是普通停止,它是高优先级的安全退出;急停释放也不等于系统已经可以继续运行。

第八,复位不只是清报警,而是把系统从异常退出状态重新整理回一个干净、可再次启动的状态。

第九,从手动切自动、从自动切手动,都必须处理好原模式留下来的状态,真正完成控制权交接。

第十,更稳的模式设计通常会分层:模式层、全局允许层、运行层、动作层。

二十五 学完这一课后,你应该能做到什么

学完这一课,你至少应该能做到这些事情:

知道为什么很多设备不是不会跑,而是模式切换没设计好
知道手动和自动最核心的区别是什么
知道为什么模式按钮和模式状态最好分开
知道急停和普通停止为什么不能混成一回事
知道为什么急停释放后往往还要复位
知道复位按钮到底该干什么、不该干什么
知道从手动切自动、从自动切手动时,为什么必须做状态交接
知道怎样把一个设备的模式逻辑分层整理出来

如果这些你已经顺了,后面你写出来的 PLC 程序就会越来越像真正能落地的工程程序,而不是只会“单个动作能动”的练习程序。

二十六 下节预告

下一课我们继续往下走,讲的是:

PLC 基础课 第16讲
程序分段与结构化:主程序、子程序、功能块,怎么让程序更好维护

这一课会把很多程序“能跑但看不懂、能改但不敢改”的根源讲清楚。
因为前面这一讲讲的是“设备的规则怎么搭”;
下一讲要讲的是:

这些规则、动作、判断、报警、模式,怎么在程序里排布,才能不越写越乱


明扬工控商城

推荐阅读:

PLC 基础课 第15讲 手动、自动、急停、复位:设备模式切换逻辑该怎么设计

PLC 基础课 第13讲 置位、复位、翻转、保持:什么时候该用 SET/RST,什么时候不能乱用

PLC 基础课 第12讲 上升沿、下降沿、单次触发:为什么按一次按钮,程序会执行好几遍?

PLC 基础课 第11讲 数学运算与工程量换算:加减乘除、比例缩放、显示修正怎么做

热门标签:
PLC 基础课 第15讲 手动、自动、急停、复位:设备模式切换逻辑该怎....docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网