西门子6ES7322-1HF10-0AA0性能参数
一、跳步与循环
复杂的控制系统不仅i/o点数多,功能表图也相当复杂,除包括前面介绍的功能表图的基本结构外,还包括跳步与循环控制,而且系统往往还要求设置多种工作方式,如手动和自动(包括连续、单周期、单步等)工作方式。手动程序比较简单,一般用经验法设计,自动程序的设计一般用顺序控制设计法。
1.跳步
如图1所示用状态器来代表各步,当步s31是活动步,并且x5变为“1”时,将跳过步s32,由步s31进展到步s33。这种跳步与s31s32s33等组成的“主序列”中有向连线的方向相同,称为正向跳步。当步s34是活动步,并且转换条件时,将从步s34返回到步s33,这种跳步与“主序列”中有向连线的方向相反,称为逆向跳步。显然,跳步属于选择序列的一种特殊情况。
图1含有跳步和循环的功能表图
2.循环
在设计梯形图程序时,经常遇到一些需要多次重复的操作,如果一次一次地编程,显然是非常繁琐的。我们常常采用循环的方式来设计功能表图和梯形图,如图1所示,假设要求重复执行10次由步s33和步s34组成的工艺过程,用c0控制循环次数,它的设定值等于循环次数10。每执行一次循环,在步s34中使c0的当前值减1,这一操作是将s34的常开触点接在c0的计数脉冲输入端来实现的,当步s34变为活动步时,s34的常开触点由断开变为接通,使c0的当前值减1。每次执行循环的后一步,都根据c0的当前值是否为零来判别是否应结束循环,图中用步s34之后选择序列的分支来实现的。假设x4为“1”,如果循环未结束,c0的常闭触点闭合,转换条件满足并返回步s33;当c0的当前值减为0,其常开触点接通,转换条件满足,将由步s34进展到步s35。
在循环程序执行之前或执行完后,应将控制循环的计数器复位,才能保证下次循环时循环计数。复位操作应放在循环之外,图1中计数器复位在步s0和步s25显然比较方便。
二、选择序列和并行序列的编程
循环和跳步都属于选择序列的特殊情况。对选择序列和并行序列编程的关键在于对它们的分支和合并的处理,转换实现的基本规则是设计复杂系统梯形图的基本准则。与单序列不同的是,在选择序列和并行序列的分支、合并处,某一步或某一转换可能有几个前级步或几个后续步,在编程时应注意这个问题。
1.选择序列的编程
(1)使用stl指令的编程
如图2所示,步s0之后有一个选择序列的分支,当步s0是活动步,且转换条件x0为“1”时,将执行左边的序列,如果转换条件x3为“1”状态,将执行右边的序列。步s32之前有一个由两条支路组成的选择序列的合并,当s31为活动步,转换条件x1得到满足,或者s33为活动步,转换条件x4得到满足,都将使步s32变为活动步,同时系统程序使原来的活动步变为不活动步。
图2选择序列的功能表图一
如图3所示为对图2采用stl指令编写的梯形图,对于选择序列的分支,步s0之后的转换条件为x0和x3,可能分别进展到步s31和s33,所以在s0的stl触点开始的电路块中,有分别由x0和x3作为置位条件的两条支路。对于选择序列的合并,由s31和s33的stl触点驱动的电路块中的转换目标均为s32。
图3选择序列的梯形图一
在设计梯形图时,其实没有必要特别留意选择序列的如何处理,只要正确地确定每一步的转换条件和转换目标即可。
(2)使用通用指令的编程
如图5所示对图4功能表图使用通用指令编写的梯形图,对于选择序列的分支,当后续步m301或m303变为活动步时,都应使m300变为不活动步,所以应将m301和m303的常闭触点与m300线圈串联。对于选择序列的合并,当步m301为活动步,并且转换条件x1满足,或者步m303为活动步,并且转换条件x4满足,步m302都应变为活动步,m302的起动条件应为:,对应的起动电路由两条并联支路组成,每条支路分别由m301、x1和m303、x4的常开触点串联而成。
图4选择序列功能表图二
图5选择序列的梯形图二
(3)以转换为中心的编程
如图6所示是对图4采用以转换为中心的编程方法设计的梯形图。用仿stl指令的编程方式来设计选择序列的梯形图,请读者自己编写。
图6选择序列的梯形图三
2.并行序列的编程
(1)使用stl指令的编程
如图7所示为包含并行序列的功能表图,由s31、s32和s34、s35组成的两个序列是并行工作的,设计梯形图时应保证这两个序列同时开始和同时结束,即两个序列的步s31和s34应同时变为活动步,两个序列的后一步s32和s35应同时变为不活动步。并行序列的分支的处理是很简单的,当步s0是活动步,并且转换条件x0=1,步s31和s34同时变为活动步,两个序列开始同时工作。当两个前级步s32和s35均为活动步且转换条件满足,将实现并行序列的合并,即转换的后续步s33变为活动步,转换的前级步s32和s35同时变为不活动步。
图7并行序列的功能表图
如图8所示是对图7功能表图采用stl指令编写的梯形图。对于并行序列的分支,当s0的stl触点和x0的常开触点均接通时,s31和s34被同时置位,系统程序将前级步s0变为不活动步;对于并行序列的合并,用s32、s35的stl触点和x2的常开触点组成的串联电路使s33置位。在图8中,s32和s35的stl触点出现了两次,如果不涉及并行序列的合并,同一状态器的stl触点只能在梯形图中使用一次,当梯形图中再次使用该状态器时,只能使用该状态器的一般的常开触点和ld指令。另外,fx系列规定串联的stl触点的个数不能超过8个,换句话说,一个并行序列中的序列数不能超过8个。
图8并行序列的梯形图
(2)使用通用指令的编程
如图9所示的功能表图包含了跳步、循环、选择序列和并行序列等基本环节。
图9复杂的功能表图
如图10所示是对图9的功能表图采用通用指令编写的梯形图。步m301之前有一个选择序列的合并,有两个前级步m300和m313,m301的起动电路由两条串联支路并联而成。m313与m301之间的转换条件为,相应的起动电路的逻辑表达式为,该串联支路由m313、x13的常开触点和c0的常闭触点串联而成,另一条起动电路则由m300和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的线圈串联。
3)如果在功能表图中仅有由两步组成的小闭环,如图11a所示,则相应的辅助的线圈将不能“通电”。例如在m202和x2均为“1”状态时,m203的起动电路接通,但是这时与它串联的m202的常闭触点却是断开的,因此m203的线圈将不能“通电”。出现上述问题的根本原因是步m202既是步m203的前级步,又是它的后序步。如图11b所示在小闭环中增设一步就可以解决这一问题,这一步只起延时作用,延时时间可以取得很短,对系统的运行不会有什么影响。
图11仅有两步的小闭环的处理
(3)使用以转换为中心的编程
与选择序列的编程基本相同,只是要注意并行序列分支与合并处的处理。
(4)使用仿stl指令的编程
如图12所示是对图9功能表图采用仿stl指令编写的梯形图。在编程时用接在左侧母线上与各步对应的辅助继电器的常开触点,分别驱动一个并联电路块。这个并联电路块的功能如下:驱动只在该步为“1”状态的负载的线圈;将该步所有的前级步对应的辅助继电器复位;指明该步之后的一个转换条件和相应的转换目标。以m301的常开触点开始的电路块为例,当m301为“1”状态时,仅在该步为“1”状态的负载y0被驱动,前级步对应的辅助继电器m300和m313被复位。当该步之后的转换条件x1为“1”状态时,后续步对应的m302和m306被置位。
图12采用仿stl指令编写的梯形图
如果某步之后有多个转换条件,可将它们分开处理,例如步m302之后有两个转换,其中转换条件t0对应的串联电路放在电路块内,接在左侧母线上的m302的另一个常开触点和转换条件x2的常开触点串联,作为m305置位的条件。某一负载如果在不同的步为“1”状态,它的线圈不能放在各对应步的电路块内,而应该用相应辅助继电器的常开触点的并联电路来驱动它。