功能表图中功能表图中选择序列和并行序列的

循环和跳步都属于选择序列的特殊情况。对选择序列和并行序列编程的关键在于对它们的分支和合并的处理,转换实现的基本规则是设计复杂系统梯形图的基本准则。与单序列不同的是,在选择序列和并行序列的分支、合并处,某一步或某一转换可能有几个前级步或几个后续步,在编程时应注意这个问题。

1.选择序列的编程

1)使用STL指令的编程

如图5-35所示,步S0之后有一个选择序列的分支,当步S0是活动步,且转换条件X0为“1”时,将执行左边的序列,如果转换条件X3为“1”状态,将执行右边的序列。步S32之前有一个由两条支路组成的选择序列的合并,当S31为活动步,转换条件X1得到满足,或者S33为活动步,转换条件X4得到满足,都将使步S32变为活动步,同时系统程序使原来的活动步变为不活动步。

5-35 选择序列的功能表图一

如图5-36所示为对图5-35采用STL指令编写的梯形图,对于选择序列的分支,步S0之后的转换条件为X0X3,可能分别进展到步S31S33,所以在S0STL触点开始的电路块中,有分别由X0X3作为置位条件的两条支路。对于选择序列的合并,由S31S33STL触点驱动的电路块中的转换目标均为S32

5-36 选择序列的梯形图一

在设计梯形图时,其实没有必要特别留意选择序列的如何处理,只要正确地确定每一步的转换条件和转换目标即可。

2)使用通用指令的编程

如图5-38所示对图5-37功能表图使用通用指令编写的梯形图,对于选择序列的分支,当后续步M301M303变为活动步时,都应使M300变为不活动步,所以应将M301M303的常闭触点与M300线圈串联。对于选择序列的合并,当步M301为活动步,并且转换条件X1满足,或者步M303为活动步,并且转换条件X4满足,步M302都应变为活动步,M302的起动条件应为:,对应的起动电路由两条并联支路组成,每条支路分别由M301X1M303X4的常开触点串联而成。

5-37 选择序列功能表图二

5-38 选择序列的梯形图二

3)以转换为中心的编程

如图5-39所示是对图5-37采用以转换为中心的编程方法设计的梯形图。用仿STL指令的编程方式来设计选择序列的梯形图,请读者自己编写。

5-39 选择序列的梯形图三

2.并行序列的编程

1)使用STL指令的编程

如图5-40所示为包含并行序列的功能表图,由S31S32S34S35组成的两个序列是并行工作的,设计梯形图时应保证这两个序列同时开始和同时结束,即两个序列的第一步S31S34应同时变为活动步,两个序列的最后一步S32S35应同时变为不活动步。并行序列的分支的处理是很简单的,当步S0是活动步,并且转换条件X01,步S31S34同时变为活动步,两个序列开始同时工作。当两个前级步S32S35均为活动步且转换条件满足,将实现并行序列的合并,即转换的后续步S33变为活动步,转换的前级步S32S35同时变为不活动步。

5-40 并行序列的功能表图

如图5-41所示是对图5-40功能表图采用STL指令编写的梯形图。对于并行序列的分支,当S0STL触点和X0的常开触点均接通时,S31S34被同时置位,系统程序将前级步S0变为不活动步;对于并行序列的合并,用S32S35STL触点和X2的常开触点组成的串联电路使S33置位。在图5-41中,S32S35STL触点出现了两次,如果不涉及并行序列的合并,同一状态器的STL触点只能在梯形图中使用一次,当梯形图中再次使用该状态器时,只能使用该状态器的一般的常开触点和LD指令。另外,FX系列PLC规定串联的STL触点的个数不能超过8个,换句话说,一个并行序列中的序列数不能超过8个。

5-41 并行序列的梯形图

2)使用通用指令的编程

如图5-42所示的功能表图包含了跳步、循环、选择序列和并行序列等基本环节。

5-42 复杂的功能表图

如图5-43所示是对图5-42的功能表图采用通用指令编写的梯形图。步M301之前有一个选择序列的合并,有两个前级步M300M313M301的起动电路由两条串联支路并联而成。M313M301之间的转换条件为,相应的起动电路的逻辑表达式为,该串联支路由M313X13的常开触点和C0的常闭触点串联而成,另一条起动电路则由M300X0的常开触点串联而成。步M301之后有一个并行序列的分支,当步M301是活动步,并且满足转换条件X1,步M302与步M306应同时变为活动步,这是用M301Xl的常开触点组成的串联电路分别作为M302M306的起动电路来实现的,与此同时,步M301应变为不活动步。步M302M306是同时变为活动步的,因此只需要将M302的常闭触点与M301的线圈串联就行了。

5-43 使用通用指令编写的梯形图

M313之前有一个并行序列的合并,该转换实现的条件是所有的前级步(即步M305M311)都是活动步和转换条件X12满足。由此可知,应将M305M311X12的常开触点串联,作为控制M313的起动电路。M313的后续步为步M314M301M313的停止电路由M314M301的常闭触点串联而成。

编程时应该注意以下几个问题:

1)不允许出现双线圈现象。

2)当M314变为“1”状态后,C0被复位(见图5-43),其常闭触点闭合。下一次扫描开始时M313仍为“1”状态(因为在梯形图中M313的控制电路放在M314的上面),使M301的控制电路中最上面的一条起动电路接通,M301的线圈被错误地接通,出现了M314M301同时为“1”状态的异常情况。为了解决这一问题,将M314的常闭触点与M301的线圈串联。

3)如果在功能表图中仅有由两步组成的小闭环,如图5-44a所示,则相应的辅助继电器的线圈将不能“通电”。例如在M202X2均为“1”状态时,M203的起动电路接通,但是这时与它串联的M202的常闭触点却是断开的,因此M203的线圈将不能“通电”。出现上述问题的根本原因是步M202既是步M203的前级步,又是它的后序步。如图5-44b所示在小闭环中增设一步就可以解决这一问题,这一步只起延时作用,延时时间可以取得很短,对系统的运行不会有什么影响。

5-44 仅有两步的小闭环的处理

3)使用以转换为中心的编程

与选择序列的编程基本相同,只是要注意并行序列分支与合并处的处理。

4)使用仿STL指令的编程

如图5-45所示是对图5-42功能表图采用仿STL指令编写的梯形图。在编程时用接在左侧母线上与各步对应的辅助继电器的常开触点,分别驱动一个并联电路块。这个并联电路块的功能如下:驱动只在该步为“1”状态的负载的线圈;将该步所有的前级步对应的辅助继电器复位;指明该步之后的一个转换条件和相应的转换目标。以M301的常开触点开始的电路块为例,当M301为“1”状态时,仅在该步为“1”状态的负载Y0被驱动,前级步对应的辅助继电器M300M313被复位。当该步之后的转换条件X1为“1”状态时,后续步对应的M302M306被置位。

5-45 采用仿STL指令编写的梯形图

如果某步之后有多个转换条件,可将它们分开处理,例如步M302之后有两个转换,其中转换条件T0对应的串联电路放在电路块内,接在左侧母线上的M302的另一个常开触点和转换条件X2的常开触点串联,作为M305置位的条件。某一负载如果在不同的步为“1”状态,它的线圈不能放在各对应步的电路块内,而应该用相应辅助继电器的常开触点的并联电路来驱动它。