4. 顺控设计基础与状态迁移思想

在MELSEC iQ-R的复杂顺控程序中,如果只依靠继电器逻辑的“与或非”堆叠,程序规模一旦扩大,调试和维护都会变得非常困难。步进顺控与状态迁移思想,正是为了解决“设备现在处于什么阶段、下一步该做什么、什么条件下才能进入下一步”这三个核心问题。它把一台设备的运行过程拆解为若干个稳定的“步”或“状态”,每个状态只负责自己该做的动作,状态之间的切换由明确的转移条件控制。这样,程序结构就从“一堆并行的逻辑”变成了“一条可追踪的状态链”。

步进顺控的三个基本要素

步进顺控的核心可以概括为三个要素:状态(步)、转移条件和动作输出。状态表示设备当前所处的稳定阶段,例如“原位等待”“工位1加工”“工位2检测”“返回中”。转移条件是从当前状态进入下一状态的判断依据,通常由传感器信号、定时器完成位、计数器比较结果或前一步动作完成标志组合而成。动作输出则是该状态下需要驱动的执行机构,例如气缸电磁阀、电机启动、指示灯或数据写入。

三者之间的关系可以这样理解:状态是“舞台”,动作输出是“演员在舞台上做什么”,转移条件是“换幕的指令”。一个状态可以同时有多个动作输出,但同一时刻通常只有一个状态是激活的。转移条件成立时,当前状态退出,下一状态激活,动作输出随之切换。这种“状态决定输出、条件决定迁移”的机制,使程序具有清晰的时序性和可预测性。

在iQ-R中,步进顺控既可以用梯形图的SET/RST指令实现,也可以用SFC(顺序功能图)或ST语言中的CASE语句实现。无论采用哪种形式,设计阶段都应先画出状态迁移图,再编写程序。

状态迁移图:多工位自动循环过程

下面以一个三工位自动循环搬运过程为例。设备结构为:工件从上料位由气缸A推入工位1,工位1完成压紧加工后,由气缸B将工件推至工位2进行检测,检测合格后由气缸C推至下料位,然后各气缸返回原位,等待下一个工件。整个过程要求自动循环,且每个工位动作完成后才能进入下一工位。

用状态迁移图描述时,需要明确每个状态的编号、名称、动作输出和转移条件。以下SVG展示了该多工位自动循环的状态迁移关系,图中同时标注了各状态对应的输出和转移条件,便于与程序中的步标志位一一对应。

三工位自动循环搬运 — 状态迁移图 状态决定输出 · 条件决定迁移 · 循环运行 S0 原位等待 输出:全部气缸复位 Y0=0 Y1=0 Y2=0 S1 上料推入 输出:气缸A伸出 Y0=1 S2 工位1加工 输出:压紧+加工 Y3=1 定时器T0 S3 工位2检测 输出:气缸B伸出 Y1=1 检测传感器 S4 下料推出 输出:气缸C伸出 Y2=1 S5 返回原位 输出:A/B/C复位 Y0=0 Y1=0 Y2=0 启动+工件到位 A伸出到位 T0完成 检测完成 C伸出到位 全部复位 S6 不合格排出 输出:报警+排出阀 Y5=1 蜂鸣器 检测不合格 复位后返回S0 正常状态 异常状态 正常转移 异常/循环转移 S:步标志位 Y:输出继电器 T:定时器

从状态迁移图到iQ-R程序实现

在iQ-R中实现上述状态迁移,推荐使用步标志位(如M0~M6分别对应S0~S6)配合SET/RST指令。每个扫描周期只允许一个步标志位为ON,程序按以下规则组织:

  1. 步激活与输出:用步标志位驱动对应输出。例如M2为ON时,驱动Y3压紧和启动定时器T0。
  2. 转移条件判断:在当前步标志位为ON的前提下,判断转移条件是否成立。条件成立时,用SET指令置位下一步标志位,用RST指令复位当前步标志位。
  3. 互锁保护:在转移条件中串联下一步标志位的常闭触点,防止重复置位;同时串联急停、安全门等全局互锁信号。
  4. 循环与异常:S5返回S0时,用S5标志位和全部复位完成信号触发S0置位;S3检测不合格时,跳转至S6,S6完成后返回S0。

以S1到S2的转移为例,梯形图逻辑可以简化为:当M1为ON且气缸A伸出到位传感器X1为ON时,SET M2、RST M1。这样,M2激活后,S2的动作输出自动生效,而S1的输出自动停止。整个过程不需要复杂的自锁和互锁网络,因为“同一时刻只有一个步激活”这一约束已经由步标志位的SET/RST机制保证。

关键设计原则:转移条件必须使用“当前步标志位 AND 转移条件”作为触发条件,而不是仅用转移条件本身。否则,当设备处于其他状态时,该条件可能误触发转移,导致状态混乱。

状态迁移思想带来的工程收益

采用状态迁移思想后,程序的可读性和可维护性显著提升。调试时,只需观察当前激活的步标志位,就能知道设备处于哪个阶段;修改时,只需调整对应状态的输出或转移条件,不会影响其他状态。对于多工位自动循环设备,状态迁移图还可以直接作为与机械、电气人员沟通的接口文档,减少理解偏差。

需要注意的是,状态划分不宜过粗也不宜过细。过粗会导致一个状态内动作过多、转移条件复杂;过细会增加程序步数和扫描负担。一般建议以“一个稳定的工艺阶段”作为一个状态,例如“等待”“推入”“加工”“检测”“排出”“返回”。对于动作时间较长的工位,可以在状态内使用定时器或计数器,但状态本身保持稳定,直到该阶段全部完成后再迁移。

此外,状态迁移图应包含异常分支和复位路径。实际设备中,急停、报警、手动干预都会打断自动循环。设计时应明确:异常发生时,当前状态如何退出、输出如何安全复位、恢复后从哪个状态重新开始。通常做法是设置一个全局复位状态S0,任何异常处理后都回到S0,再根据启动条件重新进入自动循环。这样,状态机就具备了完整的“正常循环+异常处理+安全复位”能力,能够支撑复杂顺控程序的长期稳定运行。