工作:三菱IQ-R PLC的SFC程序编写方式及代码模拟仿真

工作:三菱PLC的SFC程序编写方式及代码模拟仿真

*Ⅰ、理论知识 *

SFC程序将机械一系列动作以1个步动作单位表示出来,在各步创建实际的精细控制的程序。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一、规格

在这里插入图片描述

二、配置

SFC的基本动作
SFC程序从初始步开始,每当转移条件成立时执行下一个步,并通过结束步结束一系列的动作。
在这里插入图片描述

1.块启动时,首先激活初始步(1),执行动作输出(2)。动作输出(2)执行后检查下一个转移条件(3)是否成立。
2.在转移条件(3)成立之前,仅执行动作输出(2)。转移条件(3)成立时将结束动作输出(2),初始步(1)变为非激活状态,激活下一个普通步(4)。
3.在执行普通步(4)的动作输出后,检查下一个转移条件是否成立。如果下一个转移条件成立,将重复执行普通步(4)的动作输出。
4.转移条件成立时将结束动作输出,初始步(4)变为非激活状态,激活下一个步(5)。
5.每当转移条件成立时将激活下一个步,最后激活结束步(6)时结束块。

  • 要点
    1个步最多可创建4个动作输出。创建了多个动作输出的情况下,将从上开始按顺序执行
    初始步与普通步,可以通过赋予属性更改步的类型。

(一)块(及块文件)

块由步及转移条件构成,是表示一系列动作的单位。
在这里插入图片描述
块具有激活/非激活的状态。
激活:块内存在激活步的状态
非激活:块内的所有步处于非激活的状态
块从非激活变为激活时,初始步将变为激活,依次执行处理。

  • 要点
    通过CPU参数的设置,仅块0启动SFC程序时可以自动启动。在这种情况下激活结束步、结束块0时,块0将自动被再启动,再次从初始步开始执行。
    通过SET指令(步启动)向非激活块的步发出启动请求的情况下,激活块后,从指定的步开始执行处理。

目前GX WORKS 3软件里,如果SET BL0或者RST BLO,是启动BL0块文件,一个块文件可以有很多个块组成!这里候将会启动所有块的初始步,不能混淆!通常据说的启动块是启动块文件,不是启动块文件里的某一个块,如果要指定启动块文件里的某一个块,可以指定其所有的块文件的初始步号,如SET BL0\S0。

(二)步

步是构成块的基本单位。
在这里插入图片描述

  • 步有下述特征。
    步被激活时,将执行相关的动作输出。
    在各个步,步继电器S是SFC程序中的各步对应的软元件。如果步状态处于激活中(也包括停止中、保持中)S将变为ON,如果处于非激活状态将变为OFF。
    步名及步No.在各块内是固有的。(不可以空)

  • 要点
    步名、步No.、属性、属性指定目标可以通过步的属性画面更改。
    选择步后,对菜单的[编辑]-[属性]进行选择时,将显示步的属性画面。

1. 步的类型

步的类型如下所示。
在这里插入图片描述

1.1 初始步

初始步是表示各块的起始的步,各块中最多可记述32个,多个初始步进行合并时只能进行选择合并,初始步的执行方法与初始步以外的步相同。

  • 块启动时激活的步
    在这里插入图片描述

  • 初始步有多个被激活时的转移处理
    在这里插入图片描述
    选择合并多个激活的初始步时,如果在合并之前任意1个转移条件成立,则合并之后的步将被激活。在上述程序示例中,如果转移条件t4~t7的其中一个成立,则步8(S8)将被激活。此外,在合并之后的步(在上述程序示例中为S8)被激活后,如果合并之前的其它转移条件(在上述程序示例中为t4~t7)又成立,则合并之后的步(S8)将再次被激活。

  • 将步属性附加到初始步时
    可以附加SC(线圈保持)、SE(动作保持(无转移检查))、ST(动作保持(有转移检查))、R(复位)的各属性到初始步中。附加了属性的情况下,与初始步以外的步相同,除开块启动时自动被激活的动作。此外,也可置为无动作输出的步。

1.2 普通步(无附带属性)

构成块的基本的步。
在步处于激活状态时,始终对该步的下一个转移条件进行检查,并在转移条件成立时将激活转移到下一个步。
步的动作输出根据使用的指令,转移至下一个步时的输出状态有所不同。

在这里插入图片描述
在这里插入图片描述

  • 无动作输出的步
    不对动作输出进行创建的步,可以作为等待用的步使用。
    在步的激活过程中,始终对转移条件进行检查,在转移条件成立后,下一个步将变为激活。
    创建动作输出时,将作为普通的步进行动作。
1.3 结束步

结束块的步。
激活转移到结束步,块内不存在保持中以外的激活步时,会将块内的全部保持中步[SC、SE、ST]置为非激活后结束块。
块内存在保持中以外的激活步的情况下,根据SM328(END步到达时清除处理模式)的状态进行下述处理。
在这里插入图片描述

在执行清除处理时,将通过OUT指令进行的线圈输出全部置为OFF。但是,关于保持中步[SC、SE、ST]的线圈输出,根据SM327(END步执行时的输出)的状态进行下述处理。

在这里插入图片描述
块结束后再次启动块的方法:
在这里插入图片描述

  • 注意事项
    不可以将动作输出创建到结束步中。
    仅激活转移到结束步中的情况下,SM327(END步执行时的输出)的设置将变为有效。通过RST指令(块结束)等进行强制结束的情况下,将所有步的线圈输出置为OFF。
    在激活转移到结束步中的时刻仅剩余保持中步[SC、SE、ST] 的情况下,即使SM328(END步到达时清除处理模式)为ON,该**保持中步[SC、SE、ST]也将变为非激活。不希望将保持中步[SC、SE、ST]的线圈输出置为OFF的情况下,应将SM327置为ON。SM328与保持步[SC、SE、ST]**的动作的关系如下所示。

在这里插入图片描述
左:剩余普通的激活步或者剩余转移不成立的保持步[SC、SE、ST],右:有剩余保持中的激活步

SM328为ON的情况下,通过块启动步来启动的块将在非保持的 激活中步 不存在于块内时返回到原来的块处理。
动作保持步(有转移检查)[ST]之后的转移条件应置为不常时成立。动作保持步(有转移检查)[ST]之后的转移条件为常时成立的情况下,下一个步始终变为激活状态,因此SM328为ON时将无法结束块。

  • 要点
    在SFC图内可以创建多个结束步。
    对选择分支中的步进行选择后,通过选择菜单的[编辑]–>[更改]–>[结束步/跳转],可以创建多个结束步。

在这里插入图片描述

  • 步继电器(S)的步的分配
    步继电器Sn是SFC程序中的各步对应的软元件。如果步处于激活中(也包括停止中、保持中),步继电器Sn将变为ON,如果处于非激活状态,步继电器Sn将变为OFF。
    步继电器按下述方式分配。
    从SFC程序的块0开始按块No.顺序,在1个块内按步No.顺序从起始开始向末尾分配步继电器。
    不分配步继电器到不存在的块No.中。
    在1个块内,步继电器被分配到缺少编号的步No.中。该位始终变为OFF。
    最后的块中,分配的步继电器以后的位将全部变为OFF。
    例: 下述的块配置时的步继电器分配如下所示。
    Block0:最大步No.为8,步No.3及步No.6不存在。
    Block1:不存在。
    Block2:最大步No.为12,步No.3不存在。
    Block3及其以后:不存在。
    在这里插入图片描述

  • 要点
    可自由对各步(结束步除外)分配步No.。
    步No.中缺少编号时,可创建的最多步数会变少,因此应尽可能以小编号顺序创建。
    在最上行的左端初始步中,只能使用No.0(S0)。
    不可以进行超出上限的步No.分配。此外在同一块内,步No.不可以重复。但是,在不同的块中可以使用同一步No.。
    指定其它块的步继电器的情况下,按下述形式进行指定。
    例: 指定块No.12的步No.23的情况
    在这里插入图片描述

  • 注意事项
    即使SFC设置的“块停止时的输出模式”的设置变为OFF,停止中步继电器也变为ON。

2. 步的属性

在这里插入图片描述

2.1 线圈保持步[SC]

在这里插入图片描述

2.2 动作保持步(无转移检查)[SE]

在这里插入图片描述

2.3 动作保持步(有转移检查)[ST]

在这里插入图片描述
在这里插入图片描述

2.4 复位步[R]
  • 是将指定步置为非激活的步。
    复位步[R]在执行每个扫描动作输出之前,将本块内的指定步置于非激活状态。复位指定步以外将与普通的步(无属性)相同。
    指定的步No.为S999的情况下,将本块内保持中的保持步[SC、SE、ST]全部置为非激活。在这种情况下,仅保持中的保持步[SC、SE、ST]可进行非激活。动作保持步[SE、ST]正在以非保持进行动作时,将不为非激活的对象。
    不可以指定本步No.到指定步No.中。
2.5 块启动步(有结束检查)[BC]

在这里插入图片描述
在这里插入图片描述

2.6 块启动步(无结束检查)[BS]

在这里插入图片描述

(三)动作输出

1. 表示在步为激活状态时被执行的程序的动作输出。

在这里插入图片描述
步进行激活时,每个扫描中将执行动作输出。步变为非激活时,将结束动作输出,变为非执行,直至下一个步被激活为止。
1个步最多可创建4个动作输出。创建了多个动作输出的情况下,将从上开始按顺序执行。
动作输出的详细表示,可以通过梯形图语言、ST语言、FBD/LD语言创建。如果是梯形图语言,则可以切换详细表示与MELSAP-L(指令形式)。

2. MELSAP-L(指令形式)的动作输出

MELSAP-L(指令形式)是使用文本在SFC图内记述动作输出指令的形式。
在这里插入图片描述

  • 从梯形图的详细表示切换为MELSAP-L(指令形式)的情况下,选择菜单的[显示]——》[梯形图显示切换]——》[MELSAP-L(指令格式)]。
  • 在通过MELSAP-L(指令形式)的动作输出中,不记述作为各指令输入条件的触点,而是记述指令或希望输出的线圈。
    在这里插入图片描述
    *1长定时器、长计数器也以同样方式指定。
    *2部分指令无法使用。(无法使用的指令)
    记述多个指令时,使用“,”(逗号)间隔。在动作输出的最后记述IMASK、NOPLF。

在这里插入图片描述

  • 要点
    必须在详细表示内的梯形图中创建作为各指令的输入条件的触点。
    在这里插入图片描述
  • 限制事项
    根据创建动作输出的程序语言,有下述限制。
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
  • 即使动作输出内的输入条件为常时ON,在步为非激活时,输入条件将被视为OFF。因此,步变为激活状态之后,将在OFF→ON的条件下执行此指令。例如,PLS指令及INCP指令等的上升沿指令中,在输入条件置为常时ON的情况下,只有每次步被激活时才执行指令。
  • PLS指令及PLF指令指定的软元件仅在1个扫描中变ON,之后都为OFF
  • 从梯形图的详细表示切换为MELSAP-L(指令形式)时,在详细表示中创建了MELSAP-L(指令形式)无法记述的程序的情况下,在MELSAP-L(指令形式)中显示为“???”。此外,如果程序内使用的标签的定义被删除,也显示为“???”。希望进行程序的确认或修正的情况下,应切换为详细表示。
  • 以MELSAP-L(指令形式)创建的程序切换为梯形图的详细表示的情况下,作为指令的执行条件,追加SM400(常时ON)触点。
    在这里插入图片描述
    MELSAP-L(指令形式)的判断代码
    在这里插入图片描述

(四)转移条件

转移条件是构成块的基本单位,通过条件成立将激活转移到下一个步。
在这里插入图片描述
转移条件的详细表示,可以通过梯形图语言、ST语言、FBD/LD语言创建。如果是梯形图语言,则可以切换详细表示与MELSAP-L(指令形式)

1. 转移条件的类型

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尖枫508

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值