《5.6SFC顺序功能图(精品).ppt》由会员分享,可在线阅读,更多相关《5.6SFC顺序功能图(精品).ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本章节描述本章节描述SFCSFC语言的编程方法语言的编程方法5.65.6 SFC SFC 顺序功能图顺序功能图 顺序功能块图(顺序功能块图(SFCSFC)是一种图形化语言,)是一种图形化语言,可以在一个程序内按照时间顺序对动作进行编可以在一个程序内按照时间顺序对动作进行编辑描述。这些动作可以作为独立的编程对象,辑描述。这些动作可以作为独立的编程对象,用任意编程语言进行编写。在用任意编程语言进行编写。在SFCSFC内,它们被内,它们被分配到分配到“步步”元素,其处理顺序由元素,其处理顺序由“转移转移”元元素进行控制。如下图素进行控制。如下图 SFC SFC 段是一个段是一个 状态机器状态机器,
2、即,即,状态由活动步创建状态由活动步创建并且转换传递到切换并且转换传递到切换/更改行为。步和转换通过方向链更改行为。步和转换通过方向链路相互链接在一起。两个步不得直接链接,必须始终路相互链接在一起。两个步不得直接链接,必须始终由转换分隔。活动信号状态沿方向链路的方向进行处由转换分隔。活动信号状态沿方向链路的方向进行处理,并通过切换转换进行触发。链处理的方向沿着方理,并通过切换转换进行触发。链处理的方向沿着方向链路的方向,并从前一步的末端运行到下一步的顶向链路的方向,并从前一步的末端运行到下一步的顶端。分支从左向右进行处理。每一步可以没有操作,端。分支从左向右进行处理。每一步可以没有操作,也可以
3、有多个操作。每个转换都需要有一个转换条件。也可以有多个操作。每个转换都需要有一个转换条件。链中的最后一个转换始终连接到链中的另一步(通过链中的最后一个转换始终连接到链中的另一步(通过图形链路或跳转符号),以便形成一个闭环。因此,图形链路或跳转符号),以便形成一个闭环。因此,步链得到循环处理。步链得到循环处理。SFCSFC内的处理顺序内的处理顺序 在线模式下,一些类型的动作,可以根据定义的序列在线模式下,一些类型的动作,可以根据定义的序列来执行,参见下表。来执行,参见下表。首先注意下述名词:首先注意下述名词:活动步:活动步:一步,它的步动作正在被执行,被叫做一步,它的步动作正在被执行,被叫做“活
4、活动动”。在线模式下,活动步显示为蓝色。在线模式下,活动步显示为蓝色。初始步:初始步:在一个在一个SFC POUSFC POU被调用后的第一个周期内,被调用后的第一个周期内,初始步自动被激活,并且其相关联的初始步自动被激活,并且其相关联的“步动作步动作”被执行。被执行。IEC IEC动作:动作:被至少执行两次:第一次执行是当它们被被至少执行两次:第一次执行是当它们被激活时,第二次执行是在下个周期,他们被禁止时。激活时,第二次执行是在下个周期,他们被禁止时。选择分支:选择分支:如果选择分支的水平起始线前的步被激活,如果选择分支的水平起始线前的步被激活,则将从左至右计算每个特定分支的首个转移。从最
5、左侧则将从左至右计算每个特定分支的首个转移。从最左侧开始,第一个转移条件为开始,第一个转移条件为TRUETRUE的分支将被执行,即,的分支将被执行,即,此分支中后续的步将被激活。此分支中后续的步将被激活。并行分支:并行分支:如果并行分支的起始双连线是活动的,并如果并行分支的起始双连线是活动的,并且前面的转换条件值为且前面的转换条件值为TRUETRUE,则在所有并行分支中的,则在所有并行分支中的第一步都将被激活。这时这些分支会一个接一个的并行第一步都将被激活。这时这些分支会一个接一个的并行处理。当前面所有步都已激活,且双线后的转换条件值处理。当前面所有步都已激活,且双线后的转换条件值为为TRUE
6、TRUE时,分支结尾的双线后的步将被激活。时,分支结尾的双线后的步将被激活。1.1.复位复位元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):IEC IEC动作的所有动作控制标志被复位(但是在动动作的所有动作控制标志被复位(但是在动作内调用的作内调用的IECIEC动作的标志则不会被复位!)。动作的标志则不会被复位!)。2.2.步退出动作步退出动作元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):所有的步将按照流程图中定义的顺序进行检查(从所有的步将按照流程图中定义的顺序进行检查(从上到下
7、,从左到右),来判断步退出动作的执行条件上到下,从左到右),来判断步退出动作的执行条件是否满足,如果满足,则其将被执行。如果步马上要是否满足,如果满足,则其将被执行。如果步马上要被禁止,则会执行一个退出动作,即,它的入口和步被禁止,则会执行一个退出动作,即,它的入口和步动作(如果存在)已经在上一个周期被执行了,并且动作(如果存在)已经在上一个周期被执行了,并且下个步的转换条件为下个步的转换条件为TRUETRUE。3.3.步入口动作步入口动作元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):所有的步按照流程图中定义的顺序被测试,用来判所有的步
8、按照流程图中定义的顺序被测试,用来判断步的入口动作执行条件是否满足,如果满足,则其断步的入口动作执行条件是否满足,如果满足,则其将被执行。如果步前的转移条件为将被执行。如果步前的转移条件为TRUETRUE并且步也已并且步也已被激活,则一个入口动作将会被执行。被激活,则一个入口动作将会被执行。4.4.超时检测,步激活动作超时检测,步激活动作元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):对于所有的步,下面内容将按照流程图中定义的顺对于所有的步,下面内容将按照流程图中定义的顺序进行处理:序进行处理:-(-(尚未实现尚未实现)适用情况下,经过时
9、间会被拷贝到对适用情况下,经过时间会被拷贝到对应的隐含步状态变量应的隐含步状态变量.t.t中中 -(-(尚未实现尚未实现)适用情况下适用情况下,任何超时都可以被检测到,任何超时都可以被检测到,并且并且SFCSFC错误标志会根据需要设定。错误标志会根据需要设定。-对于非对于非IECIEC标准的步,相应的步活动动作现在被标准的步,相应的步活动动作现在被执行了。执行了。5.IEC 5.IEC 动作动作元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):在流程图中使用的在流程图中使用的IECIEC动作,按照字母顺序执行。通动作,按照字母顺序执行。通过
10、动作列表,有两种途径可以实现。第一种,所有在过动作列表,有两种途径可以实现。第一种,所有在当前周期被禁止的当前周期被禁止的IECIEC动作都将被执行。第二种,所有动作都将被执行。第二种,所有在当前周期被激活的在当前周期被激活的IECIEC动作都将被执行。动作都将被执行。6.6.转移检测,激活下一步转移检测,激活下一步元素处理顺序(同元素处理顺序(同CoDeSysV2.3CoDeSysV2.3的处理顺序):的处理顺序):转移被计算:如果当前周期的步是活动的,并且其转移被计算:如果当前周期的步是活动的,并且其后续转移返回后续转移返回TRUETRUE(并且如果已经超过了最小活动时(并且如果已经超过了
11、最小活动时间),则后续步被激活。间),则后续步被激活。注意:注意:关于动作的实现,请务必注意下面的内容:关于动作的实现,请务必注意下面的内容:因为一个动作可以被分配给多个流程,因此其有可能在因为一个动作可以被分配给多个流程,因此其有可能在一个循环周期内被执行多次。(例如,一个一个循环周期内被执行多次。(例如,一个SFCSFC可以有可以有两个两个IECIEC动作动作A A和和B B,它们都在,它们都在SFCSFC内实现,而且由都去内实现,而且由都去调用调用IECIEC动作动作C C;这样在;这样在IECIEC中的动作中的动作A A和和B B就有可能在同就有可能在同一个循环内被同时激活,而且同时一
12、个循环内被同时激活,而且同时IECIEC动作动作C C也可以在这也可以在这两个动作中被激活,这样两个动作中被激活,这样C C就有可能在同一循环内被调就有可能在同一循环内被调用了两次。)用了两次。)如果同样的如果同样的IECIEC动作被在一个动作被在一个SFCSFC内的不同内的不同级别上同时使用,根据前面对处理顺序的说明可知,这级别上同时使用,根据前面对处理顺序的说明可知,这可能会导致不可预期的结果。出于这样的原因,在这种可能会导致不可预期的结果。出于这样的原因,在这种情况下,会产生一个错误信息。在用老版本的编程系统情况下,会产生一个错误信息。在用老版本的编程系统创建工程时,可能会发生这中情况。
13、创建工程时,可能会发生这中情况。3.6 顺序流程图3.6.1 3.6.1 基本概念基本概念1.1.步用顺序功能图编写的程序组步用顺序功能图编写的程序组织单元包含了一系列的步,这些步织单元包含了一系列的步,这些步之间是通过定向连接(转换条件)之间是通过定向连接(转换条件)实现的。每步包括一个动作实现的。每步包括一个动作 和一和一个标记,这个标记用来表示此步是个标记,这个标记用来表示此步是否激活。如果单步动作正在执行,否激活。如果单步动作正在执行,那么在步就会编程蓝色的框。那么在步就会编程蓝色的框。2.2.动作动作 动作是使用其它语言实现的一系列动作是使用其它语言实现的一系列指令,可以是用指令,可
14、以是用IL IL 或或ST ST 语言实现的指语言实现的指令句,也可以是用令句,也可以是用LDLD、FBD FBD、CFC CFC 或或SFC SFC 实现。用鼠标双击动作所属的实现。用鼠标双击动作所属的3.3.进入和退出动作进入和退出动作 可以额外的为一个步添加一个进入和退出的动作,在一个步激活后,一个进入动作只能执行一次。退出动作只在步失效之前执行一次。进入动作用左下角一个“E”来表示,退出动作用右下角的“X”表示。步,进行编辑步,进行编辑.各步的动作编辑画面类似与各步的动作编辑画面类似与POU POU 的界的界面,各种语言的编辑界面均可用。所不同的是动作面,各种语言的编辑界面均可用。所不
15、同的是动作编辑画面里没有变量申明区,所有的局部变量都在编辑画面里没有变量申明区,所有的局部变量都在总的总的SFC SFC 界面里,如下图所示,所有步的局部变量界面里,如下图所示,所有步的局部变量都在都在POU_2(PRG)POU_2(PRG)4.4.转换转换/转换条件转换条件 在步和步之间有所谓的转换。转换条件的值必须是TRUE或FALSE。因而它可以是一个布尔变量、布尔地址或布尔常量。只有当步的转换条件为真时,步的转换才进行。即前步的动作执行完后,如果有出口动作则执行一次出口动作,后步如果有入口动作则执行一次后步入口的动作,然后按照控制周期执行该活动步的所有动作。5.5.激活步激活步 在调用
16、顺序功能图的POU 后,初始化步的动作(被一个双边线包围)将首先执行。动作正在执行的步称为激活步。在线模式下,活动步以蓝色显示 6.6.限定符限定符 为了关联动作和步,用到下面的限定词。限定词L、D、SD、DS 和SL 需要一个时间 常量格式的时间值。时间格式为T#(数值)(单位)。如5秒表示为T#5S。在一个控制循环中激活步的所有动作都将执行。所以,当激活步之后的转换条件是TRUE时,它之后的步被激活。当前激活的步将在下个循环中再执行。相关的位实体取等式的直接结果相关的位实体取等式的直接结果SFC SFC 隐形变量隐形变量在SFC 编程语言里有些隐形变量可以使用。正常情况下这些变量不显示出来
17、。要使用这些变量需要对SFC 属性做设置。右击使用SFC 语言的POU 属性,弹出属性对话框,点击SFC 设置选项,将需要使用变量前打勾。如图所示:各个变量信息如下:还有些针对每个步的隐形变量,步的隐形变量是结构体变量,在使用时需要在变量申明区里构建一个这对步的结构体变量。step1.x 表示当前活动状态step1._x:表示下一个循环的活动状态如果Step1.x=TRUE,该步将会在本周期被执行如果 Step1._x=TRUE 并且 Step1.x=FALSE,该步将在下一个周期中执行。即在一个循环的开始时刻,将Step1._x 的值拷贝到Step1.x 。Step1.t 步激活到当前时刻所花费的时间