步的进展由下列基本程序结构组成。表4-5是各种程序结构的图形描述。
当转换的实现导致同时有几个步激活时,这些步的序列被称为同步序列(Simultaneous sequence)或并行序列。当它们被同步激活时,这些序列的每个进展都是独立的。为了强调这类序列结构的特殊性,同步序列的分支和合并常用一个水平双线的图形符号表示。
表4-5 程序结构的图形符号
(续)
1.单序列结构
单序列结构由一系列相继激活的步组成。该结构中,每个步后面仅连接一个转换,而每个转换由一个步使能,该转换的实现只使一个后续步激活,见表4-5的序号1。
2.选择序列结构
(1)选择序列的开始:分支
在几个序列中进行选择时,用与进展相同数量的转换表示。转换的图形符号只允许绘制在选择序列开始的水平(双)线下面。需注意,如果只选择一个序列,则在同一时刻与若干个序列相关的转换条件中只能有一个为真,应用时需要防止所有的冲突发生。对序列进行选择的优先次序可在注明转换条件时规定,见表4-5的序号2a、2b和2c。
(2)选择序列的结束:合并
几个序列合并到一个公用序列时,用与需要重新组合的序列相同数量的转换表示。转换的图形符号只允许绘制在选择序列结束的水平(双)线上面,见表4-5的序号3。
除上述结构外,还有序列跳过(Sequence Skip)、序列重复(Sequence Loop)等。它们是选择序列的特例,分别对应表4-5的序号5a、5b、5c和6a、6b、6c。
3.并行序列结构(www.xing528.com)
(1)并行序列的开始:分支
当转换的实现导致几个序列同时激活时,这些序列称为并行序列或同步序列。它们同时被激活后,其每个序列活动步的进展是独立的,只允许在并行序列开始的水平(双)线上面绘制一个转换的图形符号,见表4-5的序号4a和4b。
(2)并行序列的结束:合并
为了使几个序列同时同步停止,采用并行序列合并的结构。只允许在并行序列结束的水平(双)线下面绘制一个转换的图形符号。并行序列的活动或非活动可以分成一段或几段实现。并行序列中转换的完整符号包括转换符号和水平(双)线,见表4-5的序号4c和4d。
选择序列与并行序列结构的区别是转换条件是用选择的还是公用的,在功能表图中,可看转换符号是在水平双线的下面还是上面。
4.不安全序列和不可达序列的结构
在编程时应注意防止出现不安全序列(Unsafe SFC)和不可达序列(Unreachable SFC)结构。不安全序列结构中,会在同步序列外出现不可控制和不能协调的步的激活。不可达序列结构中,可能包含始终不能激活的步。因此,在编程时应避免出现这样的序列结构。
图4-4是不安全序列和不可达序列的程序结构。
图4-4a中,如果转换t1的转换条件满足,则步B和步C成为活动步;如果转换t4的转换条件为假,则步B会保持在活动步状态。但如果转换t3的转换条件满足,在步E成为活动步后,转换t5的转换条件满足,并经步G,在转换t7的转换条件满足后仍使步A成为活动步,并在转换t1的转换条件满足时,使步B成为活动步。如果这时,步B由于转换t4的转换条件没有满足而仍处于活动步状态,即图4-3a设计的SFC会造成对步B的不可控制。因此,这样的SFC网络是不安全的。
图4-4b中,如果转换t1的转换条件满足,则步B和步C成为活动步。当转换t3的转换条件满足时,使步E成为活动步,并在转换t5的转换条件满足时,使步G成为活动步。由于当步E成为活动步时,步C成为非活动步,这时,步D不能成为活动步,这表明步D是不可达的步。同样,由于步D不可达,则转换t4也不能成为使能转换,从而步F也成为不可达。这样的SFC网络是不可达的SFC网络。
图4-4 错误的SFC程序结构
a)不安全SFC序列 b) 不可达SFC序列
为防止出现不安全和不可达序列结构,需要保证在同步序列之外没有序列的跳过。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。