如图8所示是对图7功能表图采用STL指令编写的梯形图。对于并行序列的分支,当S0的STL触点和X0的常开触点均接通时,S31和S34被同时置位,程序将前级步S0变为不活动步;对于并行序列的合并,用S32、S35的STL触点和X2的常开触点组成的串联电路使S33置位。在图8中,S32和S35的STL触点出现了两次,如果不涉及并行序列的合并,同一状态器的STL触点只能在梯形图中使用一次,当梯形图中再次使用该状态器时,只能使用该状态器的一般的常开触点和LD指令。另外,FX系列plc规定串联的STL触点的个数不能超过8个,换句话说,一个并行序列中的序列数不能超过8个。
图8 并行序列的梯形图
(2)使用通用指令的编程
如图9所示的功能表图包含了跳步、循环、选择序列和并行序列等基本环节。
图9 复杂的功能表图
如图10所示是对图9的功能表图采用通用指令编写的梯形图。步M301之前有一个选择序列的合并,有两个前级步和M313,M301的起动电路由两条串联支路并联而成。M313与M301之间的转换条件为,相应的起动电路的逻辑表达式为,该串联支路由M313、X13的常开触点和C0的常闭触点串联而成,另一条起动电路则由和X0的常开触点串联而成。步M301之后有一个并行序列的分支,当步M301是活动步,并且转换条件X1,步M302与步M306应同时变为活动步,这是用M301和Xl的常开触点组成的串联电路分别作为M302和M306的起动电路来实现的,与此同时,步M301应变为不活动步。步M302和M306是同时变为活动步的,因此只需要将M302的常闭触点与M301的线圈串联就行了。
图10 使用通用指令编写的梯形图
步M313之前有一个并行序列的合并,该转换实现的条件是所有的前级步(即步M305和M311)都是活动步和转换条件X12。由此可知,应将M305,M311和X12的常开触点串联,作为控制M313的起动电路。M313的后续步为步M314和M301,M313的停止电路由M314和M301的常闭触点串联而成。
编程时应该注意以下几个问题:
1)不允许出现双线圈现象。
2)当M314变为“1"状态后,C0被复位(见图10),其常闭触点闭合。下一次扫描开始时M313仍为“1"状态(因为在梯形图中M313的控制电路M314的上面),使M301的控制电路中上面的一条起动电路接通,M301的线圈被错误地接通,出现了M314和M301同时为“1"状态的异常情况。为了解决这一问题,将M314的常闭触点与M301的线圈串联。