4. 自动模式与手动模式的本质区别

在产线状态机设计中,“自动”与“手动”并不是两个简单的按钮状态,而是两套控制权归属不同、指令来源不同、安全约束不同、互锁条件不同、切换代价不同的运行体制。很多现场故障并非出在逻辑本身,而是出在对这两种模式边界理解不清:该由程序闭环控制时人为干预,该由人工点动时程序仍在自动推进,或者切换瞬间没有处理好状态交接,导致设备抖动、报警甚至撞机。理解这五个维度的差异,是设计模式管理逻辑的前提。

一、控制权归属:谁在“拿主意”

自动模式下,控制权归属于PLC 状态机。状态机根据当前工位状态、传感器反馈、节拍条件和上下游握手信号,自主决定下一步迁移到哪个状态、输出哪些动作。操作员此时是“监督者”,只能通过启动、暂停、停止等高层命令影响流程,不能直接驱动某个气缸或电机。

手动模式下,控制权归属于操作员或调试人员。状态机退化为“执行器”,只负责把手动指令翻译成安全的输出,不再自主推进流程。此时操作员可以单独点动某个阀、某台电机、某个轴,用于调试、清料、复位或异常处理。

关键点在于:控制权必须唯一且明确。同一时刻不能既允许状态机自动推进,又允许手动点动同一执行器,否则会出现“双重驱动”。工程上通常用模式变量(如 Mode : INT,0=手动、1=自动)作为总闸,所有输出逻辑先判断模式,再决定指令来源。

二、指令来源:闭环条件 vs 人工触发

自动模式的指令来源是状态迁移条件。例如“气缸伸出到位”由磁性开关信号触发,“托盘放行”由下游允许信号触发。指令是条件驱动的、可重复的、与节拍绑定的。

手动模式的指令来源是HMI 按钮、示教器、手持盒或维护面板。指令是事件驱动的、一次性的、与操作员动作绑定的。手动指令通常需要“按住才动”或“点动一次走一步”,避免误触导致连续动作。

因此,在程序结构上,自动逻辑和手动逻辑应分开编写、最后汇合到输出层。常见做法是:自动逻辑输出 AutoCmd,手动逻辑输出 ManCmd,输出层根据模式选择有效指令,并叠加安全条件。这样既保证互斥,又便于排障时快速定位指令来自哪一侧。

三、安全约束:自动更严,手动更“贴身”

自动模式的安全约束偏向系统级:安全门锁、光栅、急停回路、区域互锁、速度限制、防碰撞区。因为自动运行时人员通常不在危险区内,安全策略是“把人和危险隔开”。

手动模式的安全约束偏向操作级:使能开关(三位开关)、点动速度限制、单步确认、双手操作、声光警示。因为手动时人员可能就在设备旁,安全策略是“让操作员看得见、控得住、停得下”。

两者不能互相替代。自动模式下的安全门被短接,不能因为切到手动就认为安全;手动模式下的点动速度限制,也不能因为切回自动就取消。安全约束必须按模式分别配置,并在切换时重新评估。

四、互锁条件:自动看流程,手动看单机

自动模式的互锁是流程级互锁:上工位未完成,下工位不能启动;下游满料,上游不能放行;机械手未退出,冲压不能下行。互锁对象是“工位与工位、设备与设备”。

手动模式的互锁是单机级互锁:气缸伸出前确认缩回到位信号有效;电机启动前确认抱闸已打开;轴运动前确认软限位未超程。互锁对象是“执行器与自身反馈、执行器与相邻执行器”。

切换模式时,互锁条件必须重新初始化。例如自动运行中某气缸处于伸出位,切到手动后如果直接允许缩回点动,可能因为工件未夹紧而掉落。因此手动逻辑中应保留必要的“状态记忆”和“安全确认”,而不是简单地把自动互锁全部旁路。

五、切换代价:不是按一下按钮那么简单

自动切手动、手动切自动,都存在切换代价。代价包括:

  • 状态交接代价:自动运行到一半切手动,当前工位处于中间状态,必须记录“停在哪一步、哪些输出还保持、哪些需要复位”。
  • 节拍损失代价:切换意味着当前节拍中断,重新回自动往往需要回原点或空跑一个循环。
  • 安全确认代价:切回自动前,必须确认所有人员撤离、安全门关闭、急停复位、手动指令已释放。
  • 逻辑复位代价:手动期间可能改变了执行器位置,自动逻辑中的步序变量、计时器、计数器需要按规则复位或保持。

因此,模式切换应设计成受控迁移,而不是随意切换。推荐做法是:切换请求 → 当前循环完成或到达安全停靠点 → 输出安全复位 → 模式变量切换 → 新模

自动模式与手动模式:五维差异与切换代价 自动模式(Auto) 控制权:PLC 状态机自主推进 指令来源:状态迁移条件 / 节拍信号 安全约束:安全门 / 光栅 / 区域互锁 互锁条件:流程级(工位↔工位) 切换代价:节拍中断 / 需回原点 手动模式(Manual) 控制权:操作员 / 调试人员 指令来源:HMI / 示教器 / 手持盒 安全约束:使能开关 / 点动限速 互锁条件:单机级(执行器↔反馈) 切换代价:状态交接 / 安全确认 切手动 切自动 受控切换流程(推荐) 切换请求 HMI / 按钮 到达安全停靠点 循环完成 / 输出复位 安全确认 人员撤离 / 门锁 / 急停复位 模式变量切换 Mode := 0 / 1 新模式初始化 互锁重建 输出层:AutoCmd / ManCmd 互斥选择 + 安全条件叠加

式初始化。其中“到达安全停靠点”和“安全确认”是两道硬门槛,不能省略。

六、工程实现要点

在 PLC 程序中,建议把模式管理做成独立的功能块或状态区,而不是散落在各工位逻辑里。典型结构如下:

// 模式变量定义
Mode : INT;        // 0 = 手动, 1 = 自动
AutoCmd : BOOL;    // 自动指令
ManCmd  : BOOL;    // 手动指令
OutCmd  : BOOL;    // 最终输出指令

// 输出层互斥选择
IF Mode = 1 THEN
    OutCmd := AutoCmd AND SafetyOK;
ELSE
    OutCmd := ManCmd AND EnableSwitch AND SafetyOK;
END_IF;

// 切换请求处理
IF SwitchToManual AND CycleComplete THEN
    Mode := 0;
    ResetAutoStep();
ELSIF SwitchToAuto AND SafetyConfirmed THEN
    Mode := 1;
    InitAutoStep();
END_IF;

这段示例表达三个原则:输出互斥、安全条件始终叠加、切换必须等待条件满足。实际项目中,SafetyOK 可能拆分为门锁、光栅、急停、气压、伺服使能等多个条件,CycleComplete 也可能由当前步序和工位状态共同判断。

排障提示:当设备出现“自动不走”或“手动不动”时,先查模式变量当前值,再查对应侧的指令来源是否有效,最后查安全条件和互锁条件。按“模式 → 指令 → 安全 → 互锁”的顺序排查,通常能快速定位问题层。
注意:不要用同一个按钮同时承担“自动启动”和“手动点动”功能,也不要在自动运行中直接强制手动输出。模式切换必须走受控流程,否则状态机步序与执行器实际位置会失配,恢复自动时极易发生撞机或产品报废。

总结来说,自动与手动的本质区别可以归结为一句话:自动是状态机根据条件闭环推进,手动是人根据观察开环干预。控制权、指令来源、安全约束、互锁条件和切换代价,都是这句话在不同维度上的展开。把这五个维度在程序结构和操作规程中分别落实,模式管理才算真正可靠。