文章目录

三菱PLC的SFC顺序功能图编程

发布于 2026-03-25 11:47:10 · 浏览 16 次 · 评论 0 条

三菱PLC的SFC顺序功能图编程

SFC(Sequential Function Chart,顺序功能图)是一种专为顺序控制设计的图形化编程语言。相比于传统的梯形图,SFC将复杂的控制过程拆解为清晰的“步”和“转换条件”,极大降低了逻辑出错的风险,特别适合流水线、机械手等按步骤执行的自动化设备。


核心逻辑与元件分配

SFC编程的核心在于将控制过程抽象为“步”。系统执行完当前步的动作后,等待转换条件满足,然后自动复位当前步并激活下一步。在开始编写程序前,需先规划好输入输出地址。

以下是一个简单的双气缸顺序控制地址分配示例:

软元件 功能 说明
X0 启动按钮 按下瞬间导通
X1 气缸A缩回限位 常开触点
X2 气缸B伸出限位 常开触点
Y0 气缸A电磁阀 输出高电平伸出
Y1 气缸B电磁阀 输出高电平伸出

编程环境搭建

在使用GX Works2或GX Works3进行编程时,必须正确建立工程结构。

  1. 打开 编程软件,点击 菜单栏的 工程 -> 新建工程
  2. 设置 工程参数:选择 PLC系列(如 FXCPU)和具体 PLC类型(如 FX3U)。
  3. 选择 程序语言:在 程序语言 下拉菜单中 选择 SFC
  4. 点击 确定,系统将自动生成包含 MAIN 主程序的结构。

注意:SFC程序通常由“梯形图块”和“SFC块”组成。初始化逻辑需写在梯形图块中,控制流程写在SFC块中。


编写初始化程序

在进入SFC流程前,必须对状态元件和初始状态进行复位与激活。这部分代码写在第一块“梯形图块”中。

  1. 双击 工程树中的 梯形图块 图标进入编辑界面。
  2. 输入 初始化指令:写入 LD M8002M8002 为上电脉冲,仅在PLC运行瞬间接通一个扫描周期。
  3. 输入 状态复位指令:写入 ZRST S0 S899。此指令用于复位所有普通状态继电器,防止断电重启后状态残留。
  4. 输入 初始状态驱动指令:写入 SET S0S0 为初始状态,代表系统的待机状态。
  5. F4进行 梯形图变换与编译。

构建SFC控制流程

初始化完成后,开始编写SFC主体的“步”与“转移条件”。

步骤1:编写待机状态(S0)

  1. 切换 视图至 SFC块
  2. 定位 到初始状态 S0 的输出处理区域。输入待机动作:写入 RST Y0RST Y1,确保气缸处于复位状态。
  3. 定位S0 下方的转移条件 TRAN 处。输入启动条件:写入 LD X0。这表示按下启动按钮 X0 时,转移条件成立。
  4. 按下 F4 变换。此时SFC逻辑为:若 X0 接通,则从 S0 跳转至下一步 S10

步骤2:编写工步1(S10)

  1. 输入 步号:在转移条件下方自动生成的方框中,确认 步号为 S10
  2. 输入 动作:写入 OUT Y0。此步激活时,气缸A伸出。
  3. 输入 转移条件:写入 LD X1。等待气缸A伸出到位,限位开关 X1 动作。
  4. 按下 F4 变换。逻辑为:S10 激活 -> Y0 输出 -> 等待 X1 接通 -> 跳转至 S20

步骤3:编写工步2(S20)

  1. 输入 步号:确认 步号为 S20
  2. 输入 动作:写入 OUT Y1。此步激活时,气缸B伸出。
  3. 输入 转移条件:写入 LD X2。等待气缸B伸出到位。
  4. 按下 F4 变换。

步骤4:循环与结束处理

在自动化设备中,通常要求一个周期结束后自动回到待机状态或开始下一周期。

  1. 跳转 处理:在最后一步的转移条件后,不使用新的步号,而是 输入 JUMP S0JUMP S10
    • 输入 JUMP S0:设备完成一次循环后回到待机状态,需重新按启动按钮。
    • 输入 JUMP S10:设备完成一次循环后自动开始下一次循环(无限循环模式)。
  2. 本示例采用单次循环,输入 JUMP S0

逻辑可视化验证

为了确保逻辑的正确性,可以参考以下流程结构对照程序:

graph TD A["初始步 S0 (待机)"] -- "启动按钮 X0" --> B["工步 S10 (气缸A动作)"] B -- "限位开关 X1" --> C["工步 S20 (气缸B动作)"] C -- "限位开关 X2" --> A

调试与运行技巧

程序编写完成后,必须进行模拟调试以确认逻辑无误。

  1. 连接 PLC:使用USB线或网线 连接 电脑与PLC,点击 在线 -> 传输设置 确认连接参数。
  2. 写入 PLC:点击 在线 -> PLC写入勾选 程序 选项,点击 执行 将程序下载至PLC。
  3. 监控 模式:点击 在线 -> 监视 -> 软元件批量监视
  4. 观察 状态变化:
    • 上电瞬间,S0 应处于激活状态(通常显示为蓝色或高亮)。
    • 按下 X0S0 熄灭,S10 激活,Y0 指示灯亮。
    • 模拟 X1 接通,S10 熄灭,S20 激活,Y1 指示灯亮。
    • 模拟 X2 接通,S20 熄灭,系统应自动跳回 S0

常见故障排查

在SFC编程中,最常见的故障是“步进逻辑卡死”。

  1. 双线圈冲突:严禁在不同步中重复驱动同一个输出线圈(如 S10 驱动 Y0S20 又驱动 Y0)。若需在不同步控制同一输出,应使用中间继电器 M 过渡,或确认互锁逻辑。
  2. 转移条件死锁:如果转移条件永远无法满足(例如传感器损坏),程序会卡在当前步。使用 监控 功能 检查 对应的转移条件是否接通。
  3. 状态未复位:若程序未按预期执行,可能是断电前状态被保持。确认 初始化程序中包含 ZRST 指令。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文