首页 百科知识 状态序列怎么做

状态序列怎么做

时间:2023-10-21 百科知识 版权反馈
【摘要】:PLC的设计者们为顺序控制系统的程序编制提供了大量通用和专用的编程元件,开发了专门供编制顺序控制程序用的功能表图,使这种先进的设计方法成为当前PLC程序设计的主要方法。顺序控制设计法用转换条件控制代表各步的编程元件,让它们的状态按一定的顺序变化,然后用代表各步的编程元件去控制各输出继电器。功能表图又称状态转移图,它是描述控制系统的控制过程、功能和特性的一种图形,也是设计PLC的顺序控制程序的有力工具。

5.3.2 PLC程序的顺序控制设计法

1.概述

如果一个控制系统可以分解成几个独立的控制动作,且这些动作必须严格按照一定的先后次序执行才能保证生产过程的正常运行,这样的控制系统称为顺序控制系统,也称步进控制系统,其控制总是一步一步按顺序进行。

所谓顺序控制设计法就是针对顺序控制系统的一种专门的设计方法。这种设计方法很容易被初学者接受,对于有经验的工程师,也可提高设计的效率,程序的调试、修改和阅读也很方便。PLC的设计者们为顺序控制系统的程序编制提供了大量通用和专用的编程元件,开发了专门供编制顺序控制程序用的功能表图,使这种先进的设计方法成为当前PLC程序设计的主要方法。

2.顺序控制设计法的设计步骤

采用顺序控制设计法进行程序设计的基本步骤及内容如下。

1)步的划分

顺序控制设计法最基本的思想是将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步,并且用编程元件(辅助继电器M或状态器S)来代表各步。如图5-19(a)所示,步是根据PLC输出状态的变化来划分的,在任何一步之内,各输出状态不变,但是相邻步之间输出状态是不同的。步的这种划分方法使代表各步的编程元件与PLC各输出状态之间有着极为简单的逻辑关系。

img146

图5-19 步的划分

(a)划分方法一 (b)划分方法二

步也可根据被控对象工作状态的变化来划分,但被控对象工作状态的变化应该是由PLC输出状态变化引起的。如图5-19(b)所示,某液压滑台的整个工作过程可划分为停止(原位)、快进、工进、快退四步。但这四步的状态改变都必须是由PLC输出状态的变化引起的,否则就不能这样划分,例如从快进转为工进与PLC输出无关,那么快进和工进只能算一步。

2)转换条件的确定

使系统由当前步转入下一步的信号称为转换条件。转换条件可能是外部输入信号,如按钮、指令开关、限位开关的接通/断开等,也可能是PLC内部产生的信号,如定时器、计数器触点的接通/断开等,转换条件也可能是若干个信号的与、或、非逻辑组合。如图5-19(b)所示的SB、SQ1、SQ2、SQ3均为转换条件。

顺序控制设计法用转换条件控制代表各步的编程元件,让它们的状态按一定的顺序变化,然后用代表各步的编程元件去控制各输出继电器。

3)功能表图的绘制

根据以上分析和被控对象工作内容、步骤、顺序和控制要求画出功能表图。绘制功能表图是顺序控制设计法中最为关键的一个步骤。绘制功能表图的具体方法将后面详细介绍。

4)梯形图的编制

根据功能表图,按某种编程方式写出梯形图程序。有关编程方式将在下文中介绍。如果PLC支持功能表图语言,则可直接使用该功能表图作为最终程序。

3.功能表图的绘制

功能表图又称状态转移图,它是描述控制系统的控制过程、功能和特性的一种图形,也是设计PLC的顺序控制程序的有力工具。功能表图并不涉及所描述的控制功能的具体技术,它是一种通用的技术语言,可以用于进一步设计和不同专业的人员之间进行技术交流。我国于1993年更新了功能表图的国家标准(GB/T 6988.6—1993)。

图5-20所示为功能表图的一般形式,它主要由步、有向连线、转换、转换条件和动作(命令)组成。

1)步与动作

(1)步 在功能表图中用矩形框表示步,方框内是该步的编号。如图5-20所示各步的编号为n-1、n、n+1。编程时一般用PLC内部编程元件来代表各步,因此经常直接用代表该步的编程元件的元件号作为步的编号,如M300等,这样在根据功能表图设计梯形图时较为方便。

img147

图5-20 功能表图的一般形式

(2)初始步 与系统的初始状态相对应的步称为初始步。初始状态一般是系统等待启动命令的相对静止的状态。初始步用双线方框表示,每一个功能表图至少应该有一个初始步。

(3)动作 一个控制系统可以划分为被控系统和施控系统,例如在数控车床系统中,数控装置是施控系统,而车床是被控系统。对于被控系统,在某一步中要完成某些“动作”,对于施控系统,在某一步中则要向被控系统发出某些“命令”,将动作或命令简称为动作,并用矩形框中的文字或符号表示,该矩形框应与相应的步的符号相连。如果某一步有几个动作,可以用如图5-21所示的两种画法来表示,但是图中并不隐含这些动作之间的任何顺序。

img148

图5-21 多个动作的表示

(4)活动步 当系统正处于某一步时,该步处于活动状态,称该步为活动步。步处于活动状态时,相应的动作被执行。若为保持型动作则该步不活动时继续执行该动作,若为非保持型动作则指该步不活动时,动作也停止执行。一般在功能表图中保持型的动作应该用文字或助记符标注,而非保持型动作不要标注。

2)有向连线、转换与转换条件

(1)有向连线 在功能表图中,随着时间的推移和转换条件的实现,将会发生步的活动状态的顺序进展,这种进展按有向连线规定的路线和方向进行。在画功能表图时,将代表各步的方框按它们成为活动步的先后次序顺序排列,并用有向连线将它们连接起来。活动状态的进展方向习惯上是从上到下或从左至右,在这两个方向有向连线上的箭头可以省略。如果不是上述的方向,应在有向连线上用箭头注明进展方向。

(2)转换 转换是用有向连线上与有向连线垂直的短画线来表示,转换将相邻两步分隔开。步的活动状态的进展是由转换的实现来完成的,并与控制过程的发展相对应。

(3)转换条件 转换条件是与转换相关的逻辑条件,转换条件可以用文字语言、布尔代数表达式或图形符号标注在表示转换的短线的旁边。转换条件X和img149分别表示在逻辑信号X为“1”状态和“0”状态时转换实现。符号X↑和X↓分别表示当X从0→1状态和从1→0状态时转换实现。使用最多的转换条件表示方法是布尔代数表达式,如转换条件(Ximg150

3)功能表图的基本结构

(1)单序列 单序列由一系列相继激活的步组成,每一步的后面仅接有一个转换,每一个转换的后面只有一个步,如图5-22(a)所示。

(2)选择序列 选择序列的开始称为分支,如图5-22(b)所示,转换符号只能标在水平连线之下。如果步2是活动的,并且转换条件e=1,则发生由步5→步6的进展;如果步5是活动的,并且f=1,则发生由步5→步9的进展。在某一时刻一般只允许选择一个序列。

选择序列的结束称为合并,如下页图5-22(c)所示。如果步5是活动步,并且转换条件m=1,则发生由步5→步12的进展;如果步8是活动步,并且n=1,则发生由步8→步12的进展。

img151

图5-22 单序列与选择序列

(a)单序列 (b)选择序列开始 (c)选择序列结束

(3)并行序列 并行序列的开始称为分支,如图5-23(a)所示,当转换条件的实现导致几个序列同时激活时,这些序列称为并行序列。当步4是活动步,并且转换条件a=1、3、7、9这三步同时变为活动步,同时步4变为不活动步。为了强调转换的同步实现,水平连线用双线表示。步3、7、9被同时激活后,每个序列中活动步的进展将是独立的。在表示同步的水平双线之上,只允许有一个转换符号。

并行序列的结束称为合并,如图5-23(b)所示,在表示同步的水平双线之下,只允许有一个转换符号。当直接连在双线上的所有前级步都处于活动状态,并且转换条件b=1时,才会发生步3、6、9到步10的进展,即步3、6、9同时变为不活动步,而步10变为活动步。并行序列表示系统的几个同时工作的独立部分的工作情况。

img152

图5-23 并行序列

(a)并行序列开始 (b)并行序列结束

(4)子步 如图5-24所示,某一步可以包含一系列子步和转换,通常这些序列表示整个系统的一个完整的子功能。子步的使用使系统的设计者在总体设计时容易抓住系统的主要矛盾,用更加简洁的方式表示系统的整体功能和概貌,而不是一开始就陷入某些细节之中。设计者可以从最简单地对整个系统的全面描述开始,然后画出更详细的功能表图,子步中还可以包含更详细的子步,这使设计方法的逻辑性很强,可以减少设计中的错误,缩短总体设计和查错所需要的时间。

img153

图5-24 子步

4)转换实现的基本规则

(1)转换实现的条件 在功能表图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:

①该转换所有的前级步都是活动步;

②相应的转换条件得到满足。

如果转换的前级步或后续步不止一个,转换的实现称为同步实现,如图5-25所示。

img154

图5-25 转换的同步实现

(2)转换实现应完成的操作 转换的实现应完成两个操作:

①使所有由有向连线与相应转换符号相连的后续步都变为活动步;

②使所有由有向连线与相应转换符号相连的前级步都变为不活动步。

5)绘制功能表图应注意的问题

(1)两个步绝对不能直接相连,必须用一个转换将它们隔开。

(2)两个转换也不能直接相连,必须用一个步将它们隔开。

(3)功能表图中初始步是必不可少的,它一般对应于系统等待启动的初始状态,这一步可能没有什么动作执行,因此很容易遗漏这一步。如果没有该步,无法表示初始状态,系统也无法返回停止状态。

(4)只有当某一步所有的前级步都是活动步时,该步才有可能变成活动步。如果用无断电保持功能的编程元件代表各步,则PLC开始进入RUN方式时各步均处于“0”状态,因此必须要有初始化信号,将初始步预置为活动步;否则,功能表图中永远不会出现活动步,系统将无法工作。

6)绘制功能表图举例

某组合机床液压滑台进给运动如图5-26所示,其工作过程分成原位、快进、工进、快退四步,相应的转换条件为SB、SQ1、SQ2、SQ3。液压滑台系统各液压元件动作情况如表5-1所示。根据上述功能表图的绘制方法,液压滑台系统的功能表图如图5-26(a)所示。

img155

图5-26 液压滑台进给系统的功能表图

(a)液压元件动作功能表图 (b)编程元件功能表图

表5-1 液压元件动作表

img156

如果PLC已经确定,可直接用编程元件M300~M303(FX系列)来代表这四步,设输入/输出设备与PLC的I/O点对应关系如表5-2所示,则可直接画出如图5-26(b)所示的功能表图接线图,图中M8002为FX系列PLC的产生初始化脉冲的特殊辅助继电器。

表5-2 输入/输出设备与PLC I/O对应关系

img157

4.顺序控制设计法中梯形图的编程方式

梯形图的编程方式是指根据功能表图设计出梯形图的方法。为了适应各厂家的PLC在编程元件、指令功能和表示方法上的差异,下面主要介绍使用通用指令的编程方式、以转换为中心的编程方式、使用STL指令的编程方式和仿STL指令的编程方式。

为了便于分析,假设刚开始执行用户程序时,系统已处于初始步(用初始化脉冲M8002将初始步置位),代表其余各步的编程元件均为OFF,为转换的实现做好了准备。

1)使用通用指令的编程方式

编程时用辅助继电器来代表步。某一步为活动步时,对应的辅助继电器为“1”状态,转换实现时,该转换的后续步变为活动步。由于转换条件大都是短信号,即它存在的时间比它激活的后续步为活动步的时间短,因此应使用有记忆(保持)功能的电路来控制代表步的辅助继电器。属于这类的电路有“启保停电路”和具有相同功能的使用SET、RST指令的电路。

如图5-27(a)所示Mi-1、Mi和Mi+1是功能表图中顺序相连的3步,Xi是步Mi之前的转换条件。

编程的关键是找出它的启动条件和停止条件。根据转换实现的基本规则,转换实现的条件是它的前级步为活动步,并且满足相应的转换条件,所以步Mi变为活动步的条件是Mi-1为活动步,并且转换条件Xi=1,在梯形图中则应将Mi-1和Xi的常开触点串联后作为控制Mi的启动电路,如图5-27(b)所示。当Mi和Xi+1均为“1”状态时,步Mi+1变为活动步,这时步Mi应变为不活动步,因此可以将Mi+1=1作为使Mi变为“0”状态的条件,即将Mi+1的常闭触点与Mi的线圈串联。也可用SET、RST指令来代替“启保停电路”,如图5-27(c)所示。

img158

图5-27 使用通用指令的编程方式示意图

(a)顺序控制 (b)启保停梯形图 (c)SET、RST启保停

这种编程方式仅仅使用与触点和线圈有关的指令,任何一种PLC的指令系统都有这一类指令,所以称为使用通用指令的编程方式,可以适用于任意型号的PLC。

如图5-28所示的是根据液压滑台系统的功能表图(见图5-26(b))使用通用指令编写的梯形图。开始运行时应将M300置为“1”状态,否则系统无法工作,故将M8002的常开触点作为M300置为“1”条件。M300的前级步为M303,后续步为M301。由于步是根据输出状态的变化来划分的,所以梯形图中输出部分的编程极为简单,可以分为两种情况来处理。

img159

图5-28 使用指令编程的液压滑台系统梯形图

(1)某一输出继电器仅在某一步中为“1”状态,如Y1和Y2就属于这种情况,可以将Y1线圈与M303线圈并联,Y2线圈与M302线圈并联。看起来用这些输出继电器来代表该步(如用Y1代替M303),可以节省一些编程元件,但PLC的辅助继电器数量是充足、够用的,且多用编程元件并不增加硬件费用,所以一般情况下全部用辅助继电器来代表各步,具有概念清楚、编程规范、梯形图易于阅读和容易查错等优点。

(2)某一输出继电器在几步中都为“1”状态,应将代表各有关步的辅助继电器的常开触点并联后,驱动该输出继电器的线圈。如Y0在快进、工进步均为“1”状态,所以将M301和M302的常开触点并联后控制Y0的线圈。注意,为了避免出现双线圈现象,不能将Y0线圈分别与M301和M302的线圈并联。

2)以转换为中心的编程方式

图5-29所示为以转换为中心的编程方式设计的梯形图与功能表图的对应关系。图中要实现Xi对应的转换必须同时满足两个条件:前级步为活动步(Mi-1=1)和转换条件满足(Xi=1),所以用Mi-1和Xi的常开触点串联组成的电路来表示上述条件。两个条件同时满足时,该电路接通时,此时应完成两个操作:将后续步变为活动步(用SET Mi指令将Mi置位)和将前级步变为不活动步(用RST Mi-1指令将Mi-1复位)。这种编程方式与转换实现的基本规则之间有着严格的对应关系,用它编制复杂的功能表图的梯形图时,更能显示出它的优越性。

img160

图5-29 以转换为中心的编程方式

图5-30所示为某信号灯控制系统的时序图、功能表图和梯形图。初始步时仅红灯亮,按下启动按钮X0,4s后红灯灭、绿灯亮,6s后绿灯和黄灯亮,再过5s后绿灯和黄灯灭、红灯亮。按时间的先后顺序,将一个工作循环划分为4步,并用定时器T0~T3来为3段时间定时。开始执行用户程序时,用M8002的常开触点将初始步M300置位。按下启动按钮X0后,梯形图第二行中M300和X0的常开触点均接通,转换条件X0的后续步对应的M301被置位,前级步对应的辅助继电器M300被复位。M301变为“1”状态后,控制Y0(红灯)仍然为“1”状态,定时器T0的线圈通电,4s后T0的常开触点接通,系统将由第二步转换到第三步,依此类推。

使用这种编程方式时,不能将输出继电器的线圈与SET、RST指令并联,这是因为图5-30中前级步和转换条件对应的串联电路接通的时间是相当短的,转换条件满足后前级步马上被复位,该串联电路被断开,而输出继电器线圈至少应该在某一步活动的全部时间内接通。

img161

图5-30 某信号灯控制系统

(a)时序图 (b)功能表图 (c)以转换为中心编程的梯形图

3)使用STL指令的编程方式

许多PLC厂家都设计了专门用于编制顺序控制程序的指令和编程元件,如美国GE公司和GOULD公司的鼓形控制器、日本东芝公司的步进顺序指令、三菱公司的步进梯形指令等。

步进梯形指令(step ladder instruction)简称为STL指令。FX系列就有STL指令及RET复位指令。利用这两条指令,可以很方便地编制顺序控制梯形图程序。

FX2N系列PLC的状态器S0~S9用于初始步,S10~S19用于返回原点,S20~S499为通用状态,S500~S899有断电保持功能,S900~S999用于报警。用它们编制顺序控制程序时,应与步进梯形指令一起使用。FX系列还有许多用于步进顺控编程的特殊辅助继电器,以及使状态初始化的功能指令IST,使STL指令用于设计顺序控制程序更加方便。

使用STL指令的状态器的常开触点称为STL触点,它们在梯形图中的元件符号如图5-31所示。图中可以看出功能表图与梯形图之间的对应关系,STL触点驱动的电路块具有三项功能:对负载的驱动处理、指定转换条件和指定转换目标。

img162

图5-31 STL指令与功能表图

除了后面要介绍的并行序列的合并对应的梯形图外,STL触点是与左侧母线相连的常开触点,当某一步为活动步时,对应的STL触点接通,该步的负载被驱动。当该步后面的转换条件满足时,转换实现,即后续步对应的状态器被SET指令置位,后续步变为活动步,同时与前级步对应的状态器被系统程序自动复位,前级步对应的STL触点断开。

使用STL指令时应该注意以下几个问题。

(1)与STL触点相连的触点应使用LD或LDI指令,即LD点移到STL触点的右侧,直到出现下一条STL指令或出现RET指令,RET指令使LD点返回左侧母线。各个STL触点驱动的电路一般放在一起,最后一个电路结束时一定要使用RET指令。

(2)STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈,STL触点也可以使Y、M、S等元件置位或复位。

(3)STL触点断开时,CPU不执行它驱动的电路块,即CPU只执行活动步对应的程序。在没有并行序列时,任何时候只有一个活动步,因此大大缩短了扫描周期。

(4)由于CPU只执行活动步对应的电路块,使用STL指令时允许双线圈输出,即同一元件的几个线圈可以分别被不同的STL触点驱动。实际上在一个扫描周期内,同一元件的几条OUT指令中只有一条被执行。

(5)STL指令只能用于状态寄存器,在没有并行序列时,一个状态寄存器的STL触点在梯形图中只能出现一次。

(6)STL触点驱动的电路块中不能使用MC和MCR指令,但是可以使用CJP和EJP指令。当执行CJP指令跳入某一STL触点驱动的电路块时,不管该STL触点是否为“1”状态,均执行对应的EJP指令之后的电路。

(7)与普通的辅助继电器一样,可以对状态寄存器使用LD、LDI、AND、ANI、OR、ORI、SET、RST、OUT等指令,这时状态器触点的画法与普通触点的画法相同。

(8)使状态器置位的指令如果不在STL触点驱动的电路块内,执行置位指令时系统程序不会自动将前级步对应的状态器复位。

如图5-32所示的小车一个周期内的运动路线由4段组成,它们分别对应于S31~S34所代表的4步,S0代表初始步。

img163

图5-32 小车控制系统功能表图与梯形图

假设小车位于原点(最左端),系统处于初始步,S0为“1”状态。按下启动按钮X4,系统由初始步S0转换到步S31。S31的STL触点接通,Y0的线圈“通电”,小车右行,行至最右端时,限位开关X3接通,使S32置位,S31被系统程序自动置为“0”状态,小车变为左行,小车将这样一步一步地顺序工作下去,最后返回起始点,并停留在初始步。图5-32中的梯形图对应的指令表程序如表5-3所示。

表5-3 小车控制系统指令

img164

4)仿STL指令的编程方式

对于没有STL指令的PLC,也可以仿照STL指令的设计思路来设计顺序控制梯形图,这就是下面要介绍的仿STL指令的编程方式。

图5-33所示为某加热炉送料系统的功能表图与梯形图。除初始步外,各步的动作分别为开炉门、推料、推料机返回和关炉门,分别用Y0、Y1、Y2、Y3驱动动作。X0是启动按钮,X1~X4分别是各动作结束的限位开关。与左侧母线相连的M300~M304的触点,其作用与STL触点相似,它右边的电路块的作用为驱动负载、指定转换条件和转换目标,以及使前级步的辅助继电器复位。

img165

图5-33 加热炉送料系统的功能表图与梯形图

由于这种编程方式用辅助继电器代替状态器,用普通的常开触点代替STL触点,因此,与使用STL指令的编程方式相比,有以下的不同之处。

(1)与代替STL触点的常开触点(如图5-33中M300~M304的常开触点)相连的触点,应使用AND或ANI指令,而不是LD或LDI指令。

(2)在梯形图中用RST指令来完成代表前级步的辅助继电器的复位,而不是由系统程序自动完成。

(3)不允许出现双线圈现象,当某一输出继电器在几步中均为“1”状态时,应将代表这几步的辅助继电器常开触点并联来控制该输出继电器的线圈。

5.功能表图中几个特殊编程问题

1)跳步与循环

复杂的控制系统不仅I/O点数多,功能表图也相当复杂,除包括前面介绍的功能表图的基本结构外,还包括跳步与循环控制,而且系统往往还要求设置多种工作方式,如手动和自动(包括连续、单周期、单步等)工作方式。手动程序比较简单,一般用经验法设计,自动程序的设计一般用顺序控制设计法。

(1)跳步 如图5-34所示用状态器来代表各步,当步S31是活动步,并且X5变为“1”时,将跳过步S32,由步S31进展到步S33。这种跳步与S31→S32→S33等组成的“主序列”中有向连线的方向相同,称为正向跳步。当步S34是活动步,并且转换条件X4·C0=1时,将从步S34返回到步S33,这种跳步与“主序列”中有向连线的方向相反,称为逆向跳步。显然,跳步属于选择序列的一种特殊情况。

img166

图5-34 含有跳步和循环的功能表图

(2)循环 在设计梯形图程序时,经常遇到一些需要多次重复的操作,如果一次一次地编程,显然是非常繁琐的。所以常常采用循环的方式来设计功能表图和梯形图,如图5-34所示,假设要求重复执行10次由步S33和步S34组成的工艺过程,用C0控制循环次数,它的设定值等于循环次数10。每执行一次循环,在步S34中使C0的当前值减1,这一操作是将S34的常开触点接在C0的计数脉冲输入端来实现的,当步S34变为活动步时,S34的常开触点由断开变为接通,使C0的当前值减1。每次执行循环的最后一步,都根据C0的当前值是否为零来判别是否应结束循环,图中用步S34之后选择序列的分支来实现的。假设X4为“1”,如果循环未结束,C0的常闭触点闭合,转换条件img167满足并返回步S33;当C0的当前值减为0,其常开触点接通,转换条件X4·C0满足,将由步S34进展到步S35。

在循环程序执行之前或执行完后,应将控制循环的计数器复位,才能保证下次循环时循环计数。复位操作应放在循环之外,图5-34中的计数器复位放在步S0和步S35显然比较方便。

6.选择序列和并行序列的编程

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

1)选择序列的编程

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

img168

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

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

img169

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

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

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

img170

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

img171

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

(3)以转换为中心的编程 图5-39所示为对图5-37采用以转换为中心的编程方法设计的梯形图。

img172

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

2)并行序列的编程

(1)使用STL指令的编程 图5-40所示为包含并行序列的功能表图,由S31、S32和S34、S35组成的两个序列是并行工作的,设计梯形图时应保证这两个序列同时开始和同时结束,即两个序列的第一步S31和S34应同时变为活动步,两个序列的最后一步S32和S35应同时变为不活动步。并行序列的分支的处理是很简单的,当步S0是活动步,并且转换条件X0=1,步S31和S34同时变为活动步,两个序列开始同时工作。当两个前级步S32和S35均为活动步且转换条件满足,将实现并行序列的合并,即转换的后续步S33变为活动步,转换的前级步S32和S35同时变为不活动步。

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

img173

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

img174

图5-41 并行序列的梯形图

(2)使用通用指令的编程 如图5-42所示的功能表图包含了跳步、循环、选择序列和并行序列等基本环节。

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

img177

图5-42 复杂的功能表图

img178

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

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

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

①不允许出现双线圈现象。

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

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

img179

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

(a)处理前 (b)处理后

(3)使用以转换为中心的编程 与选择序列的编程基本相同,只是要注意并行序列分支与合并处的处理。

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

img180

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

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

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈