第五章 PLC程序设计的功能表图方法
概 述
功能表图 ( Function Chart ) 亦称顺序功能表图 ( Sequence Function Chart ),简称SFC。
在前面我们已经系统地介绍了梯形图设计方法,这种方法绝大多数是采用经验设计方法,是从传统的继电器逻辑设计方法继承而来,它的基本设计思想是:被控制过程由若干个状态所组成,每个状态都由输入的某些命令信号建立,辅助继电器用于区分状态且构成执行元件的输入变量,而辅助继电器的状态由输入的命令信号控制,正确找出辅助继电器、命令信号及执行元件之间的逻关系,也就基本完成了程序设计任务。
经验法仅适用于简单的单一顺序问题的程序设计,且设计无一定的规律可循,对稍复杂的程序设计起来显得较为困难,而对具有并发顺序选择顺序的问题就更显得无能为力,故有必要寻求一种能解决更广泛顺序类型问题的程序设计方法。
功能表图是一种能很好解决上述问题的程序设计方法,它是描述控制系统的控制过程、功能、特性的一种图形,它最初很象一种工艺性的流程图,它并不涉及所描述的控制功能之具体技术,是一种通用的技术语言。这种设计方法很容易被初学者接受,对有一定经验的技术人员而言也会提高设计效率,有资料称这种设计方法可减少2/3的设计时间,且用此法设计出的程序调试、修改、阅读也很容易。
这种设计方法是在80年代初由法国科技人员最先提出的,因为它有许多优越性,很快得到了推广,法、德等国并对此推出了相关的国家标准,IEC了于88年布了类似的国际标准,我国也已在86年颁布了功能表图的国标。
功能表图法在PLC程设中有两种用法:
直接根据功能表图的原理研制PLC,即将功能表图作为一种编程语言直接使用,目前已有此类产品,多数应用在大、中型PLC上,其编程主要通过CRT终端,直接使功能表图输入控制要求。
用功能表图说明PLC所要完成的控制功能,然后再据此找出逻辑关系并画出梯形图。这种应用法较多,本节主要讨论这种方法。
功能表图的基本概念
功能表图是一种描述顺序控制系统过程、功能和特性的图形表示方法。主要由步、转移,有向线等元素组成。
步
步是控制系统中一相对不变的状态,在功能表图中,步通常表示某个或某些执行元件的状态,其符号见图5-1。步又分成起始步、动步、静步。
1.起始步:
起始步对应于控制系统的初始状态,是系统运行的起点。一个控制系统至少要有1个起始步,起始步的符号见图5-2
2.动步、静步
静步是指控制系统当前没有运行的步。
动步是指控制系统当前正在运行的步。
动步用1个小黑点放在步的方框图中表示,见图5-3。
动步、静步是系统分析时用的术语,平时进行程设4并不用。
3.步对应的动作
步是一个稳定的状态,表示过程中的一个动作。在该步的右边用1个矩形框表示,见图5-4,当一个步对应多个动作4,可用图5-5表示。
有向线和转移
有向线
在控制系统中动步是变化的,会向前转移的,转移的方向是按有向线规定的路线进行,4惯上是从上到下、由左至右;如不是上述方向,应在有向线上用箭头标明转移方向。
必要时为了便于理解也可加箭头。
转移条件
动步的转移是有条件的,转移条件在有向线上划一短横线表示,见图5-6,横线旁边注明转移条件。
若同一级步都是动步,且该步后的转移条件满足,则实现转移,即后一s步变为动步,原来的动步变为静步。
功能表图的构成规则
画控制系统功能表图必须遵循以下规则:
步与步不能直接相连,必须用转移分开。
转移与转移不能相连,必须用步分开。
步与步之间的连接采用有向线,从上→s或由左→右画时,可以省略箭头。当有向线从下→上或由右→左时,必须画箭头,以明示方向。
至少有1个起始步。
功能表图的基本形式
单一序列
单一序列由一系列前后相继激活的步组成,每步的后面紧接一个转移,每个转移后面只有一个步,见图5-7(a)。
选择序列
选择序列的开始称为分支,见
图5-68(b),转移符号只能标在水平
连之下。如果步5是活动的,并且转移条件 e=1,则发生由步5→步6的进展。
如果步5是活动的,并且f=1,则发生由步5→步9的进展。一般只允许同时选择一个序列。
选择序列的结束称为合并,见图5-7(c)。几个选择序列合并到一个公共序列时,转移符号和需要重新组合的序列数量相同,转移符号只允许标在水平连线之上。如果步7是活动步,并且转移条件m=1,则发生由步7→步13的进展。如果步8是活动步,并且n =1,则发生由步8→步13的进展。
并发序列
并发序列的开始称为分支,见图5-8(a)。当转移的实现导致几个序列同时激活时,这些序列称为并发序列。当步3是活动的,并且转移条件d=1时,步4、步6、步8这三步同时变为活动步。同时步3变为静步。为了强调/移的同步实现。水平连线用双线表示。步4、步6、步8被同时激活后,每个序列中活动步的进展将是独立的。在表示同步的水平双线之上。只允许有一个转移符号。
并发序列的结束称为合并,见图5-8(b)。在表示同步的水平双线之下,只允许有一个转移符/。当直接连在双线上的所有前级步都处于活动状态,并且转移条件e=1时,才会发生步2、步5、步7到步9的进展,即步2、步5、步7同时变为静步,而步9变为活动步。
并发序列用来表示系统的几个同时工作的独立部分的工作情况。
例如:图5-9是一个三工位钻床的/作台示意图。图5-10是该工作台控制系统的功能表图。步1是初始步,按下起动按钮后,三个工位同时工作。一个工位将工件送到圆形工作台上,然后送料推杆退回。另一个工位将工件夹紧并钻孔,钻完后钻头向上返回初始位置并松开工件。在第三个工位用深度计测量加工的孔
是否合格:如果合格,则测量头上升,并自动卸下加工好的工件。然后卸料杆返回;如果不合格,测量头返回后人工取走次品,并用按钮发出人工卸料完成的信号。三个工位的操作都完成以后,工作台顺时针旋转120℃,最后系统返回初始
步。步4、步9、步14并不完成什么动作,是为同时结束三个并发步而设置的等待步。图5-10中水平双线之下的转移条件“=1”表示转移条件总是满足的,即只要步4、步9、步14都是活动的,就会发生步4、步9、步14到步17的转移,步4、步9、步14变为静步,而步17变为活动步。