工作:三菱PLC的SFC程序编写方式及代码模拟仿真
- *Ⅰ、理论知识 *
- 一、规格
- 二、配置
- 三、SFC控制指令
- 四、SFC信息软元件
- 五、SFC设置
- 六、SFC程序的执行顺序
- 七、SFC程序的执行(第一到六章简述)
- * Ⅱ、实操代码与仿真 *
- 一、SFC程序的启动模式、启动条件、块停止时的输出模式设置
- 二、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(指令形式)