发表于:2005-12-03 21:10:00
1楼
PLC梯形图的顺序控制设计
(一)概述
一、顺序功能图(SFC)
这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。
SFC提供了一种组织程序的图形方法,在SFC中可以用别的语言嵌套编程。步、转换和动作(Action)是SFC中的3种主要元件(见图1)。步是一种逻辑块,即对应于特定的控制任务的编程逻辑,动作是控制任务的独立部分,转换是从一个任务到另一个任务的原因。
例如,灌满一个配料罐可以作为一步,它也可以被进一步划分为一些动作,例如打开配料阀A,B与C,液位高度可以作为转换,它 将使系统进入下一步——将加入的液料混合。
作为图形语言,SFC提供给用户以下几种基本的程序结构(见图1),在顺序结构中,CPU首先反复执行步1中的动作,直到转换1变为“1”状态,以后CPU将处理第2步。
对于目前大多数可编程序控制器来说,SFC还仅仅作为组织编程的工具使用,尚需用其他编程语言(如梯形图)将它转换为可编程序控制器可执行的程序。因此,通常只是将SFC作为可编程序控制器的辅助编程工具,而不是一种独立的编程语言。
二、顺序控制设计法
所谓顺序控制,就是按照生产工艺预先规定的顺序,在各个输入信号的作用下,根据内部状态和时间的顺序,在生产过程中各个执行机构自动地有秩序地进行操作。顺序控制设计法又称步进控制设计法,它是一种先进的设计方法,很容易被初学者接受,对于有经验的工程师也会提高设计的效率,程序的调试、修改和阅读也很方便。
顺序控制设计法最基本的思想是将系统的一个工作周期划分为若干个顺序相连的阶段这些阶段称为步(Step),并且用编程元件(例如辅助继电器M和状态S)来代表各步。步是根据输出量的状态变化来划分的,在任何一步之内,各输出量的0/1状态不变,但是相邻两步输出量总的状态是不同的(见图2),步的这种划分方法使代表各步的编程元件与各输出量的状态之间有着极为简单的逻辑关系。
使系统由当前步进入下一步的信号称为转换条件,转换条件可能是外部输入信号,如按钮、指令开关、限位开关的接通/断开等,也可能是可编程序控制器内部产生的信号,如定时器、计数器常开触点的接通等,转换条件也可能是若干个信号的与、或、非逻辑组合。
顺序控制设计法用转换条件控制代表各步的编程元件,让它们的状态按一定的顺序变化,然后用代表各步的编程元件去控制各输出继电器。
顺序控制设计法的这种设计思想由来已久,在继电器控制系统中,顺序控制是用有触点的步进式选线器(或鼓形控制器)来实现的,但是由于触点的磨损和接触不良,工作很不可靠。20世纪70年代出现的顺序控制器主要由分立元件和中小规模集成电路组成,因为其功能有限,可靠性不高,已经被可编程序控制器取代。可编程序控制器的设计者们继承了顺序控制的思想,为顺序控制程序的设计提供了大量通用的和专用的编程元件和指令,开发了供设计顺序控制程序用的顺序功能图语言,使这种先进的设计方法成为当前可编程序控制器梯形图设计的主要方法。
(二)顺序控制设计法中的顺序功能图绘制
一、概述
顺序功能图(SFC)又叫做状态转移图或功能表图,它是描述控制系统的控制过程、功能和特性的一种图形,也是设计可编程序控制器的顺序控制程序的有力工具。
顺序功能图并不涉及所描述的控制功能的具体技术,它是一种通用的技术语言,可以供进一步设计和不同专业的人员之间进行技术交流之用。
在法国的TE(Telemecanique)公司研制的Grafcet的基础上,1978年法国公布了用于工业过程文件编制的法国标准AFCET。第二年法国公布了功能图(Function Chart)的国家标准GRAFCET,它提供了所谓的步(Step)和转换(Transition)这两种简单的结构,这样可以将系统划分为简单的单元,并定义出这些单元之间的顺序关系。
直到1982年欧洲工业控制厂家开始将GRAFCET用于组织和控制顺序过程,GRAFCET不同的实现方法使用户和厂家很快认识到需要制订有关的国际标准。1987年IEC(国际电工委员会)公布了用于所有控制系统的通用标准——IEC848,即“控制系统功能图准备标准”。我国也在1986年颁布了顺序功能图的国家标准(GB 6988.6—86,见:中华人民共和国国家标准.电气制图.中国标准出版社出版,1987),1994年5月公布的IEC可编程序控制器标准(1ECll31)中,顺序功能图(Sequentialfunctionchart)被确定为可编程序控制器位居首位的编程语言。
顺序功能图主要由步、有向连线,转换、转换条件和动作(或命令)组成。
二、步
前文已经给出了步的概念,下面举一个具体的例子来说明。图4是某组合机床动力头进给运动示意图和输入输出信号时序图。设动力头在初始位置时停在左边,限位开关I0.3为“1”状态,Q0.0-Q0.2是控制动力头运动的3个电磁阀。按下起动按钮后,动力头向右快速进给(简称快进),碰到限位开关I0.1后变为工作进给(简称工进),碰到I0.2后快速退回(简称快退),返回初始位置后停止运动。根据Q0.0~Q0.2的0/1状态的变化,显然一个工作周期可以分为快进、工进和快退三步,另外还应设置等待起动的初始步,我们分别用M100~M103来代表这四步。图4是描述该系统的顺序功能图,图中用矩形方框表示步,方框中可以用数字表示该步的编号,也可以用代表该步的编程元件的元件号作为步的编号,如M100等,这样在根据顺序功能图设计梯形图时较为方便。
2、初始步
与系统的初始状态相对应的步称为初始步,初始状态一般是系统等待起动命令的相对静止的状态,即PLC电源有电,系统还没有起动的停止状态。初始步用双线方框表示。大多数系统在运行过程中,只要有停止命令就要返回到停止状态(初始步),在顺序功能图可以不画初始步,而是将停止按钮做为每一步的停止信号,以保证系统在任何运行状态按下停止按钮都能返回初始步。
3、与步对应的动作或命令
可以将一个控制系统划分为被控系统和施控系统,例如在数控车床系统中,数控装置是施控系统,而车床是被控系统。对于被控系统,在某一步中要完成某些“动作”(action),对于施控系统,在某一步中则要向被控系统发出某些“命令”(command)。为了叙述方便,下面将命令或动作简称为动作,并用矩形框中的文字或符号表示,该矩形框应与相应的步的符号相连。
如果某一步有几个动作,可以用图5中的两种画法来表示,但是并不隐含这些动作之间的任何顺序。
说明命令的语句应清楚地表明该命令是存储型的还是非存储型的。例如某步的存储型命令“打开1号阀并保持”,是指该步活动时1号阀打开,该步不活动时继续打开;非存储型命令“打开1号阀”,是指该步活动时打开,不活动时关闭。
4、活动步
当系统正处于某一步所在的阶段时,叫做该步处于活动状态,称该步为“活动步”。步处于活动状态时,相应的动作被执行;处于不活动状态时,相应的非存储型动作被停止执行。
三、有向连线与转换条件
1、有向连线
在顺序功能图中,随着时间的推移和转换条件的实现,将会发生步的活动状态的进展,这种进展按有向连线规定的路线和方向进行。在画顺序功能图时,将代表各步的方框按它们成为活动步的先后次序顺序排列,并用有向连线将它们连接起来。步的活动状态习惯的进展方向是从上到下或从左至右,在这两个方向有向连线上的箭头可以省略。如果不是上述的方向,应在有向连线上用箭头注明进展方向。在可以省略箭头的有向连线上,为了更易于理解也可以加箭头。
如果在画图时有向连线必须中断(例如在复杂的图中,或用几个图来表示—个顺序功能图时),应在有向连线中断之处标明下一步的标号和所在的页数,如步83,12页。
2、转换
转换用有向连线上与有向连线垂直的短画线来表示,转换将相邻两步分隔开。步的活动状态的进展是由转换的实现来完成的,并与控制过程的发展相对应。
3、转换条件
转换条件是与转换相关的逻辑命题,转换条件可以用文字语言、布尔代数表达式或图形符号标注在表示转换的短线的旁边[见图6(a)]。
转换条件X和 分别表示当二进制逻辑信号X为“1”状态H和“0”状态时转换实现。符号↑X和↓X分别表示当X从0→1状态和1→0状态时转换的 ` 件 实现。图6(b)中步12为活动步时,用高电平表示,反之用低电平表示。
使用得最多的转换条件表示方法是布尔代数表达式,例如转换条件 表示X0和X3的常开触点组成的并联电路接通,并且C0的当前值小于设定值(其常闭触点闭合),在梯形图中则用X0和X3对应编程元件的常开触点并联后再与C0的常闭触点串联来表示这个转换条件。
四、顺序功能图的基本结构
1、单序列
单序列由一系列相继激活的步组成,每一步的后面仅接有一个转换,每一个转换的后面只有有一个步[见图7(a)]。
2、选择序列
选择序列的开始称为分支[见图7(b)],转换符号只能标在水平连线之下。如果步5是活动的,并且转换条件e=1,则发生由步5→步6的进展;如果步5是活动的,并且f=1,则发生由步5→步9的进展;如果将选择条件e改为 ,则当e和f同时为“1”状态时,将优先选择f对应的序列,一般只允许同时选择一个序列。
选择序列的结束称为合并[见图7(c)] ,几个选择序列合并到一个公共序列时,用需要重新组合的序列相同数量的转换符号和水平连线来表示,转换符号只允许标在水平连线之上。如果步5是活动步,并且转换条件m=1,则发生由步5→步12的进展。如果步8是活动步,并且n=1,则发生由步8→步12的进展。
3、并行序列
并行序列的开始称为分支[见图8(a)]当转换的实现导致几个序列同时激活时,这些序列称为并行序列。当步3是活动步,并且转换条件e=1,4,6,8这三步同时变为活动步,同时步3变为不活动步。为了强调转换的同步实现,水平连线用双线表示。步4,6,8被同时激活后,每个序列中活动步的进展将是独力的。在表示同步的水平双线之上,只允许有一个转换符号。
并行序列的结束称为合并[见图8(b)],表示同步的水平双线之下,只允许有一个转换符号。当直接连在双线上的所有前级步都处于活动状态,并且转换条件d=1时,才会发生步3,5,7到步8的进展,即步3,5,7同时变为不活动步,而步8变为活动步。
并行序列用来表示系统的几个同时工作的独立部分的工作情况。
除了以上的基本结构之外,使用动作的修饰词(见表1)可以在一步中完成不同的动作。修饰词决定CPU怎样扫描动作,并允许在不增加逻辑的情况下控制动作。例如,可以使用修饰词L来限制配料阀打开的时间。
图9是一个三工位钻床的工作台俯视示意图,图10是控制系统的顺序功能图。步1是初始步,按下起动按钮后,三个工位同时工作。一个工位将工件送到圆形工作台上,然后送料液压缸退回。另一个工位将工件夹紧并钻孔,钻完后钻头向上返回初始位置,并放开工件。第三个工位用深度计测量加工的孔是否合格,合格则测量头上升,并自动卸下加工好的工件,然后卸料缸返回;如果不合格,测量头返回后由工人取走次品,并用按钮发出人工卸料完成的重新启动信号。三个工位的操作都完成后,工作台顺时针旋转120º,最后系统返回初始步。步4,9,14是等待步,它们并不完成什么动作,而是为同时结束三个并行序列服务的。图9中水平双线之下的转换条件“=1”表示转换条件总是满足的,即只要步4,9,14都是活动的,就会发生步4,9,14到步17的进展,步4,9,14变为不活动步,而步17变为活动步。
4、子步(microstep)
在顺序功能图中,某一步可以包含一系列子步和转换(见图11),通常这些序列表示整个系统的一个完整的子功能。子步的使用使系统的设计者在总体设计时容易抓住系统的主要矛盾,用更加简洁的方式表示系统的整体功能和概貌,而不是一开始就陷入某些细节之中。设计者可以从最简单的对整个系统的全面描述开始,然后画出更详细的顺序功能图,子步中还可以包含更详细的子步。这种设计方法的逻辑性很强,可以减少设计中的错误,缩短总体设计和查错所需要的时间。
五、顺序功能图中转换实现的基本规则
1、转换实现的条件
在顺序功能图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:
① 该转换所有的前级步都是活动步;
② 相应的转换条件得到满足。
如果转换的前级步或后续步不止一个,转换的实现称为同步实现(见图12)。为了强调同步实现,有向连线的水平部分用双线表示。
2、转换实现应完成的操作
转换的实现应完成两个操作:
① 使所有由有向连线与相应转换符号相连的后续步都变为活动步;
② 使所有由有向连线与相应转换符号相连的前级步都变为不活动步。
以上规则可以用于任意结构中的转换,其区别如下:在单序列中,一个转换仅有一个前级步和一个后续步。
在并行序列的分支处,转换有几个后续步,在转换实现时应同时将它们对应的编程元件置位。在并行序列的合并处,转换有几个前级步,它们均为活动步时才有可能实现转换,在转换实现时应将它们对应的编程元件全部复位。
在选择序列的分支与合并处,一个转换实际上也只有一个前级步和一个后续步,但是一个步可能有多个前级步或多个后续步(见图8)。
转换实现的基本规则是根据顺序功能图设汁梯形图的基础,它适用于顺序功能图中的各种基本结构和各种顺序控制梯形图的编程方式。
在梯形图中,用编程元件代表步,当某步为活动步时,该步对应的编程元件为“1”状态。当该步之后的转换条件满足时,转换条件对应的触点或电路接通,因此可以将该触点或电路与代表所有前级步的编程元件的常开触点串联,作为与转换实现的两个条件同时满足对应的电路。例如,假设某转换条件的布尔代数表达式为X1.X3,它的两个前级步用M205和M206来代表,则应将这4个元件的常开触点串联,作为转换实现的两个条件同时满足对应的电路。在梯形图中,该电路接通时,应使所有代表前级步的编程元件复位,同时使所有代表后续步的编程元件置位(变为“1”状态并保持)。
六、顺序功能图的特点
掌握下述的顺序功能图的特点,可以帮助我们正确地画出系统的顺序功能图。
1、两个步绝对不能直接相连,必须用一个转换将它们隔开。
2、两个转换也不能直接相连,必须用一个步将它们隔开。
3、自动控制系统应能多次重复执行同一工艺过程,因此在顺序功能图中一般应有由步和有向连线组成的闭环,即在完成一次工艺过程的全部操作之后,应从最后一步返回初始步,系统停留在初始状态,在连续循环工作方式时,将从最后一步返回下一工作周期开始运行的第一步。
4、只有当某一步所有的前级步都是活动步时,该步才有可能变成活动步。
七、顺序功能图语言
在前文中曾经介绍过,顺序功能图是一种位于其他编程语言之上的可编程序控制器编程语言。某些厂家的可编程序控制器允许直接用顺序功能图语言编写用户程序,但是需要高级图形编程器的支持。对于中小型可编程序控制器,一般是将顺序功能图作为一种设计工具,首先根据系统对控制的要求,用手工画出顺序功能图,然后根据顺序功能图画出梯形图,用图形编程器将梯形图写入可编程序控制器,或者将梯形图转换成指令表后,再用指令编程器将它写入可编程序控制器。
各国一些主要的生产厂家的产品都具备了用顺序功能图编程的功能。例如Teleme-caaique公司的TSX7系列可编程序控制器,可以用梯形图或Grafeet图形语言来编程,二者也可以混合使用,即组合逻辑问题用梯形图来编程,顺序逻辑问题用Grafcet来编程。
八、顺序功能图与计算机程序流程图的比较。
计算机程序流程图在程序设计中得到了广泛的应用,它的功能很强,与顺序功能图一样,也具有形象直观的优点。图5.3.40给出了一个顺序功能图与对应的程序流程图相比较的例子。流程图中的矩形框称为处 ` 理框,表示要进行的工作;菱形框表示需要进行检查判别,称为判断框或检查框,它有一个人口、两个出口,在出口处分别用“Y”(YES)表示条件满足,“N”(N0)表示条件不满足,判断框的功能与顺序功能图中的转换相当。显然,用顺序功能图来描述开关量控制系统比使用程序流程图要简单明了得多,特别是对于选择序列和并行序列,这一特点更为明显。此外,计算机程序流程图还没有与并行序列相对应的表示方法。建议读者在设计可编程序控制器梯形图时尽量用顺序功能图来描述系统的功能。
九、顺序功能设计的一般步骤
由图14可以看出用顺序功能图编程方式设计的梯形图与顺序功能图的对应关系。实现图中Ii对应的转换要同时满足两个条件,即该转换的前级步是活动步(Mi-1=1)和转换条件满足(Ii=1)。在梯形图中,可以用Mi-1和Ii的常开触点组成的串联电路来表示上述` ` 图14 以转换为中心的编程方式 条件。该电路接通时,两个条件同时满足,此时应完成两个操作,即将该转换的后续步变为活动步(用S Mi指令将Mi置位)和将该转换的前级步变为不活动步(用R M i-,指令将Mi复位),这种编程方式与转换实现的基本规则之间有着严格的对应关系,用它编制复杂的顺序功能图的梯形图时,更能显示出它的优越性。
下面以某信号灯控制系统的编程为例介绍顺序控制设计法的一般步骤。
1、确定控制要求
按下起动按钮时仅红灯亮,4s后红灯灭,绿灯亮,6s后绿灯和黄灯亮,再过5s后绿灯和黄灯灭,红灯亮……,按下停止按钮时所有灯都灭。
图15是此控制系统的时序图。
4、设计梯形图
根据图16所示的顺序功能图设计的梯形图如图17所示。步M100成为活动步的条件有两个,按下起动按钮(I0.0)和内部位M0动作。因此将I0.0和M0的常开触点以及M100的自保触点并联后接入M100控制回路;M0是步M100和步M101的转换条件,因此用M0的常闭触点断开M100,常开触点接通M101,停止按钮I0.1的常闭触点串联在每一步的控制回路中;定时器TM0是步M100的动作,由M100的常开触点控制(Neza PLC的定时器没有触点,相应的动作由内部位M0来完成)。同理,可以作出步M101、M102的梯形图。
注意:当步的动作为PLC的输出位(Qi.j)时,先不做处理,等所有步的梯形图都设计完成后,再设计PLC输出位的梯形图。本例中步M101和步M102成为活动步时都能使Q0.1动作,在编程时要将M101和M102的常开触点并联,这样可以避免双线圈输出。