1、选择性分支状态转移图的特点
从多个流程顺序中选择执行哪一个流程,称为选择性分支。图 4就是一个选择性分支的状态转移图。

图 5 选择性分支状移图
a、该状态转移图有三个流程图,见图5(a)、(b)、(c)所示。
b、S20为分支状态
根据不同的条件( X0,X10,X20), 选择执行其中的一个流程。
X0为ON时执行图5(a),X10为ON时执行图5(b),X20为ON时执行图5(c)。X0,X10,X20不能同时为ON。
c、S50为汇合状态,可由S22、S32、S42任一状态驱动。

图 5 图4分支流程分解图
2、选择性分支、汇合的编程
编程原则是先集中处理分支状态,然后再集中处理汇合状态。
1 分支状态的编程
编程方法是先进行分支状态的驱动处理,再依顺序进行转移处理。
图 4的分支状态S20 见图 6

图 6 图 4 中 S20 的分支状态
按分支状态的编程方法,首先对S20进行驱动处理(OUT Y0),然后按S21、S31、S41的顺序进行转移处理。程序如下
STL | S20 | LD | X10 | ||
OUT | Y0 | 驱动处理 | SET | S31 | 转移到第二分支状态 |
LD | X0 | LD | X20 | ||
SET | S20 | 转移到第一分支状态 | SET | S41 | 转移到第三分支状态 |
2、汇合状态的编程
编程方法是先进行汇合前状态的驱动处理,再依顺序进行向汇合状态的转移处理。
图 5-13的汇合状态及汇合前状态,如图图7所示。

图 7 汇合状态 S50
按照汇合状态的编程方法,依次将 S21、S31、S32、S41、S42的输出进行处理,然后
按顺序进行从 S22(第一分支)、S32(第二分支)、S42(第三分支)向S50的转移。
汇合程序如下。
STL | S21 | 第一分支汇合前的驱动处理 | STL | S22 | 汇合前的驱动处理 |
OUT | Y1 | LD | X2 | ||
LD | X1 | SET | S50 | 由第一分支转移到汇合点 | |
SET | S22 | STL | S32 | ||
STL | S22 | LD | X12 | ||
OUT | Y2 | SET | S50 | 由第二分支转移到汇合点 | |
STL | S31 | 第二分支汇合前的驱动处理 | STL | S42 | |
OUT | Y11 | LD | X22 | ||
LD | X11 | SET | S50 | 由第三分支转移到汇合点 | |
SET | S32 | ||||
STL | S32 | ||||
OUT | Y12 | ||||
STL | S41 | 第三分支汇合前的驱动处理 | |||
OUT | Y21 | ||||
LD | X21 | ||||
SET | S42 | ||||
STL | S42 | ||||
OUT | Y22 |