第5章可编程序控制器程序的设计第5章可编程序控制器的程序设计方法5.1梯形图的编程规则5.2典型单元的梯形图程序分析5.3PLC程序的经验设计法5.4PLC程序的顺序控制设计法5.5PLC程序的逻辑设计法5.6PLC程序的移植设计法5.7PLC程序及调试说明5.1梯形图的编程规则国际电工委员会(IEC)1994年5月公布的IEC1131-3(可编程控制器语言标准)详细地说明了句法、语义和下述5种编程语言:功能表图(sequentialfunctionchart)梯形图(Ladderdiagram)功能块图(Functionblackdiagram)指令表(Instructionlist)结构文本(structuredtext)。梯形图和功能块图为图形语言,指令表和结构文本为文字语言,功能表图是一种结构块控制流程图。5.1梯形图的编程规则5.1.1梯形图概述梯形图是使用得最多的图形编程语言,被称为PLC的第一编程语言。梯形图与电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂电气人员掌握,特别适用于开关量逻辑控制。梯形图常被称为电路或程序,梯形图的设计称为编程。梯形图编程中,用到以下四个基本概念:软继电器5.1梯形图的编程规则5.1.1梯形图概述软继电器PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。该存储单元如果为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。如果该存储单元为“0”状态,对应软继电器的线圈和触点的状态与上述的相反,称该软继电器为“0”或“OFF”状态。使用中也常将这些“软继电器”称为编程元件。5.1梯形图的编程规则5.1.1梯形图概述能流如图5-1所示触点1、2接通时,有一个假想的“概念电流”或“能流”(PowerFlow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。能流只能从左向右流动。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。图5-1a中可能有两个方向的能流流过触点5(经过触点1、5、4或经过触点3、5、2),这不符合能流只能从左向右流动的原则,因此应改为如图5-1b所示的梯形图。5.1梯形图的编程规则5.1.1梯形图概述母线梯形图两侧的垂直公共线称为母线(Busbar),。在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。右母线可以不画出。5.1梯形图的编程规则5.1.1梯形图概述梯形图的逻辑解算根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。梯形图中逻辑解算是按从左至右、从上到下的顺序进行的。解算的结果,马上可以被后面的逻辑解算所利用。逻辑解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。5.1梯形图的编程规则5.1.2梯形图的编程规则1)每一逻辑行总是起于左母线,然后是触点的连接,最后终止于线圈或右母线(右母线可以不画出)。注意:左母线与线圈之间一定要有触点,而线圈与右母线之间则不能有任何触点2)梯形图中的触点可以任意串联或并联,但继电器线圈只能并联而不能串联。3)触点的使用次数不受限制。5.1梯形图的编程规则5.1.2梯形图的编程规则4)一般情况下,在梯形图中同一线圈只能出现一次。如果在程序中,同一线圈使用了两次或多次,称为“双线圈输出”。对于“双线圈输出”,有些PLC将其视为语法错误,绝对不允许;有些PLC则将前面的输出视为无效,只有最后一次输出有效;而有些PLC,在含有跳转指令或步进指令的梯形图中允许双线圈输出。5.1梯形图的编程规则5.1.2梯形图的编程规则5)对于不可编程梯形图必须难过等效变换,变成可编程梯形图,例如图5-1所示。5.1梯形图的编程规则5.1.2梯形图的编程规则6)有几个串联电路相并联时,应将串联触点多的回路放在上方,如图5-2a所示。在有几个并联电路相串联时,应将并联触点多的回路放在左方,如图5-2b所示。这样所编制的程序简洁明了,语句较少。5.1梯形图的编程规则5.1.2梯形图的编程规则另外,在设计梯形图时输入继电器的触点状态最好按输入设备全部为常开进行设计更为合适,不易出错。建议用户尽可能用输入设备的常开触点与PLC输入端连接,如果某些信号只能用常闭输入,可先按输入设备为常开来设计,然后将梯形图中对应的输入继电器触点取反(常开改成常闭、常闭改成常开)。5.2典型单元的梯形图程序分析PLC应用程序往往是一些典型的控制环节和基本单元电路的组合,熟练掌握这些典型环节和基本单元电路,可以使程序的设计变得简单。本节主要介绍一些常见的典型单元梯形图程序。5.2典型单元的梯形图程序分析5.2.1具有自锁、互锁功能的程序具有自锁功能的程序利用自身的常开触点使线圈持续保持通电即“ON”状态的功能称为自锁。如图5-3所示的起动、保持和停止程序(简称起保停程序)就是典型的具有自锁功能的梯形图,X1为起动信号和X2为停止信号。5.2典型单元的梯形图程序分析5.2.1具有自锁、互锁功能的程序具有互锁功能的程序利用两个或多个常闭触点来保证线圈不会同时通电的功能成为“互锁”。三相异步电动机的正反转控制电路即为典型的互锁电路,如图5-4所示。其中KMl和KM2分别是控制正转运行和反转运行的交流接触器。5.2典型单元的梯形图程序分析5.2.1具有自锁、互锁功能的程序具有互锁功能的程序如图5-5所示为采用PLC控制三相异步电动机正反转的外部I/O接线图和梯形图。实现正反转控制功能的梯形图是由两个起保停的梯形图再加上两者之间的互锁触点构成。5.2典型单元的梯形图程序分析5.2.1具有自锁、互锁功能的程序具有互锁功能的程序应该注意的是虽然在梯形图中已经有了软继电器的互锁触点(X1与X0、Y1与Y0),但在I/O接线图的输出电路中还必须使用KM1、KM2的常闭触点进行硬件互锁。因为PLC软继电器互锁只相差一个扫描周期,而外部硬件接触器触点的断开时间往往大于一个扫描周期,来不及响应,且触点的断开时间一般较闭合时间长。例如Y0虽然断开,可能KM1的触点还未断开,在没有外部硬件互锁的情况下,KM2的触点可能接通,引起主电路短路,因此必须采用软硬件双重互锁。采用了双重互锁,同时也避免因接触器KM1或KM2的主触点熔焊引起电动机主电路短路。5.2典型单元的梯形图程序分析5.2.2定时器应用程序周期可调的脉冲信号发生器如图5-6所示采用定时器T0产生一个周期可调节的连续脉冲。5.2典型单元的梯形图程序分析5.2.2定时器应用程序占空比可调的脉冲信号发生器如图5-7所示为采用两个定时器产生连续脉冲信号,脉冲周期为5秒,占空比为3:2(接通时间:断开时间)。5.2典型单元的梯形图程序分析5.2.2定时器应用程序顺序脉冲发生器如图5-8a所示为用三个定时器产生一组顺序脉冲的梯形图程序,顺序脉冲波形如图5-8b所示。5.2典型单元的梯形图程序分析5.2.2定时器应用程序断电延时动作的程序如图5-9所示为断开延时程序的梯形图和动作时序图。5.2典型单元的梯形图程序分析5.2.2定时器应用程序多个定时器组合的延时程序如图5-10所示为定时时间为1h的梯形图及时序图,从X14接通,到Y4输出,其延时时间为1800s+1800s=3600s=1h。5.2典型单元的梯形图程序分析5.2.3计数器应用程序应用计数器的延时程序如图5-11所示为采用计数器实现延时的程序,由M8012产生周期为0.1s时钟脉冲信号。5.2典型单元的梯形图程序分析5.2.3计数器应用程序定时器与计数器组合的延时程序利用定时器与计数器级联组合可以扩大延时时间,如图5-13所示。5.2典型单元的梯形图程序分析5.2.3计数器应用程序计数器级联程序计数器计数值范围的扩展,可以通过多个计数器级联组合的方法来实现。图5-14为两个计数器级联组合扩展的程序5.2典型单元的梯形图程序分析5.2.4其它典型应用程序单脉冲程序单脉冲程序如图5-15所示,从给定信号(X0)的上升沿开始产生一个脉宽一定的脉冲信号(Y1)。5.2典型单元的梯形图程序分析5.2.4其它典型应用程序分频程序在许多控制场合,需要对信号进行分频。下面以如图5-16所示的二分频程序为例来说明PLC是如何来实现分频的。5.3PLC程序的经验设计法5.3.1概述基本思路:在已有的些典型梯形图的基础上,根据被控对象对控制的要求,通过多次反复地调试和修改梯形图,增加中间编程元件和触点,以得到一个较为满意的程序。基本特点:没有普遍的规律可以遵循,设计所用的时间、设计的质量与编程者的经验有很大的关系。适用场合:可用于逻辑关系较简单的梯形图程序设计。基本步骤:分析控制要求、选择控制原则;设计主令和检测元件,确定输入输出设备;设计执行元件的控制程序;检查修改和完善程序。5.3PLC程序的经验设计法5.3.2例1---送料小车自动控制的梯形图程序设计控制要求:说明:X4处装料,20s后装料结束,开始右行,碰到X3后停下卸料,25s后左行,碰到X4后又停下装料,这样不停地循环工作。按钮X0和X1分别用来起动小车右行和左行。5.3PLC程序的经验设计法5.3.2例1---送料小车自动控制的梯形图程序设计设计思路:以众所周知的电动机正反转控制的梯形图为基础,设计出的小车控制梯形图。为使小车自动停止,将X3和X4的常闭触点分别与Y0和Y1的线圈串联。为使小车自动起动,将控制装、卸料延时的定时器T0和T1的常开触点,分别与手动起动右行和左行的X0、X1的常开触点并联,并用两个限位开关对应的X4和X3的常开触点分别接通装料、卸料电磁阀和相应的定时器。5.3PLC程序的经验设计法5.3.2例1---送料小车自动控制的梯形图程序设计程序说明5.3PLC程序的经验设计法5.3.3例2---两处卸料小车自动控制的梯形图程序设计控制要求说明:小车仍然在限位开关X4处装料,但在X5和X3两处轮流卸料。5.3PLC程序的经验设计法5.3.3例2---两处卸料小车自动控制的梯形图程序设计程序设计5.3PLC程序的经验设计法5.3.4总结经验设计法对于一些比较简单程序设计是比较奏效的,可以收到快速、简单的效果。经验设计法没有规律可遵循,具有很大的试探性和随意性,往往需经多次反复修改和完善才能符合设计要求,设计的结果往往不很规范,因人而异。特点:考虑不周、设计麻烦、设计周期长;梯形图的可读性差、系统维护困难。5.4PLC程序的顺控设计法5.4.1概述顺序控制系统:如果一个控制系统可以分解成几个独立的控制动作,且这些动作必须严格按照一定的先后次序执行才能保证生产过程的正常运行,也称为步进控制系统。顺序控制设计法就是针对顺序控制系统的一种专门的设计方法。这种设计方法很容易被初学者接受,对于有经验的工程师,也会提高设计的效率,程序的调试、修改和阅读也很方便。PLC的设计者们为顺序控制系统的程序编制提供了大量通用和专用的编程元件,开发了专门供编制顺序控制程序用的功能表图,使这种先进的设计方法成为当前PLC程序设计的主要方法。5.4PLC程序的顺控设计法5.4.2顺控设计法的设计步骤步的划分转换条件的确定功能表图的绘制梯形图的编制5.4PLC程序的顺控设计法5.4.2顺控设计法的设计步骤步的划分将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步,并且用编程元件来代表各步。步是根据PLC输出状态的变化来划分的,在任何一步内,各输出状态不变,但是相邻步之间输出状态是不同的。5.4PLC程序的顺控设计法5.4.2顺控设计法