三菱PLC应用100例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 PLC的编程语言

PLC是专为工业控制而开发的装置,主要使用者是企业电气技术人员。为了适应他们的传统习惯和掌握能力,通常PLC不采用计算机编程语言,而采用面向控制过程、面向问题的“自然语言”编程。国际电工委员会(IEC)1994年5月公布的IEC 61131—3《可编程控制器语言标准》详细地说明了句法、语义和下述五种编程语言。

(1)梯形图(Ladder Diagram,LD)。

(2)指令语言(Instruction List,IL)。

(3)顺序功能图(Sequential Function Chart,SFC),也称为状态转移图。

(4)功能块图(Function Block Diagram,FBD)。

(5)结构文本(Structured Text,ST)。

其中,梯形图(LD)和功能块图(FBD)为图形语言;指令语言(IL)和结构文本(ST)为文字语言;顺序功能图(SFC)是一种结构块控制流程图。

目前已有越来越多的生产PLC的厂家提供符合IEC 61131—3标准的产品。有的厂家推出的在个人计算机上运行的“PLC软件包”,也是按IEC 61131—3标准设计的。

1.4.1 梯形图

梯形图是使用最多的图形编程语言,其基本结构形式如图1-7所示。梯形图与继电器控制系统的电路图很相似,特别适用于开关量逻辑控制。梯形图常被称为电路或程序,梯形图的设计称为编程。梯形图由触点、“线圈”(主要指Y、M等继电器和辅助继电器)和应用指令等组成。线圈通常代表逻辑输出结果和输出标志位。触点代表逻辑输入条件。

图1-7 梯形图基本结构形式

1.梯形图编程的基本概念

(1)能流。在梯形图中为了分析各个元器件间的输入与输出的关系,就会假想一个概念电流,也称为能流(Power Flow)。认为电流按照从左到右的方向流动,这一方向与执行用户顺序时的逻辑运算关系是一致的。在图1-7中,当X001与X002的触点接通,或者M0与X002的触点接通时,就会有一个假想的能流流过Y000的线圈,使线圈通电。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。能流只能从左向右流动,层次改变只能从上向下。

(2)母线。梯形图两侧的垂直公共线称为母线(Bus Bar)。母线之间有能流从左向右流动。通常梯形图中的母线有左右两条,如图1-7所示。

(3)软触点。PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元,每个软继电器的触点与PLC存储器中映像寄存器的一个存储单元相对应,所以这些触点称为软触点。这些软触点的“1”或“0”状态代表着相应继电器触点或线圈的接通或断开。而且对于PLC内部的软触点,该存储单元如果为“1”状态,则表示梯形图中对应软继电器的线圈通电,其常开触点(┨┠)接通,常闭触点(┨/┠)断开。在继电器控制系统的接线中,触点的数目是有限的,而PLC内部的软触点的数目和使用次数是没有限制的,用户可以根据控制现场的具体要求在梯形图程序中多次使用同一软触点。触点与线圈在梯形图程序与动态检测中所代表的意义如表1-3所示。

表1-3 梯形图程序中触点与线圈所代表的意义

2.梯形图的特点

PLC的梯形图源于继电器逻辑控制系统的描述,并与电气控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。它采用梯形图的图形符号来描述程序设计,是PLC程序设计中最常用的一种程序设计语言。这种程序设计语言采用因果关系来描述系统发生的条件和结果。其中每个梯级是一个因果关系。在梯级中,描述系统发生的条件表示在左面,事件发生的结果表示在右面。PLC的梯形图使用的内部辅助继电器、定时/计数器等,都是由软件实现的,它的最大优点是使用方便、修改灵活、形象、直观和实用。这是传统电气控制的继电器硬件接线所无法比拟的。

关于梯形图的格式,一般有如下一些要求:每个梯形图网络由多个梯级组成。每个输出元素可构成一个梯级,每个梯级可有多个支路。通常每个支路可容纳11个编程元素,最右边的元素必须是输出元素。一个网络最多允许16条支路。

梯形图有以下8个基本特点。

(1)PLC梯形图与电气操作原理图相对应,具有直观性和对应性,并与传统的继电器逻辑控制技术相一致。

(2)梯形图中的“能流”不是实际意义的电流,而是“概念”电流,是用户程序运算中满足输出执行条件的形象表示方式。“能流”只能从左向右流动。

(3)梯形图中各编程元件所描述的常开触点和常闭触点可在编制用户程序时无限引用,不受次数的限制,既可常开又可常闭。

(4)梯形图格式中的继电器与物理继电器是不同的概念。在PLC中编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等。对于PLC来说,其内部的继电器并不是实际存在的具有物理结构的继电器,而是指软件中的编程元件(软继电器)。编程元件中的每个软继电器触点都与PLC存储器中的一个存储单元相对应。因此,在应用时,需与原有继电器逻辑控制技术的有关概念区别对待。

(5)梯形图中输入继电器的状态只取决于对应的外部输入电路的通断状态,因此在梯形图中没有输入继电器的线圈。输出线圈只对应输出映像区的相应位,不能用该编程元件直接驱动现场机构,位的状态必须通过I/O模板上对应的输出单元驱动现场执行机构进行最后动作的执行。

(6)根据梯形图中各触点的状态和逻辑关系,可以求出与图中各线圈对应的编程元件的ON/OFF状态,称为梯形图的逻辑运算。逻辑运算按照梯形图中从上到下、从左至右的顺序进行。逻辑运算是根据输入映像寄存器中的值,而不是根据逻辑运算瞬时外部输入触点的状态来进行的。

(7)梯形图中的用户逻辑运算结果马上可为后面用户程序的逻辑运算所利用。

(8)梯形图与其他程序设计语言有一一对应关系,便于相互的转换和对程序的检查。但对于较为复杂的控制系统,与顺序功能图等程序设计语言比较,梯形图的逻辑性描述还不够清晰。

3.梯形图设计规则

(1)由于梯形图中的线圈和触点均为“软继电器”,因此同一标号的触点可以反复使用,次数不限,这也是PLC区别于传统控制的一大优点。

(2)每个梯形图由多层逻辑行(梯级)组成,每层逻辑行起始于左母线,经过触点的各种连接,最后结束于线圈,不能将触点画在线圈的右边,只能在触点的右边接线圈。每一逻辑行实际代表一个逻辑方程。

(3)梯形图中的“输入触点”仅受外部信号控制,而不能由内部继电器的线圈将其接通或断开,即线圈不能直接与左母线相连接。所以在梯形图中只能出现“输入触点”,而不可能出现“输入继电器的线圈”。

(4)在几个串联回路相并联时,应将触点最多的那个串联回路放在梯形图的最上面。在几个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。这种安排所编制的程序简洁明了,指令较少。

(5)触点应画在水平线上,不能画在垂直分支上。被画在垂直线上的触点,难以正确识别它与其他触点间的关系,也难以判断通过触点对输出线圈的控制方向。因此梯形图的书写顺序是自左至右、自上至下,CPU也按此顺序执行程序。

(6)梯形图中的触点可以任意串联、并联,但输出线圈只能并联,不能串联。

1.4.2 语句表

PLC的指令是一种与计算机的汇编语言中的指令相似的助记符表达式。语句表表达式与梯形图有一一对应的关系,由指令组成的程序叫做指令(语句表)程序。在用户程序存储器中,指令按步序号顺序排列。将图1-7所示梯形图程序用语句表编写如下:

每一条语句表指令都包含操作码和操作数两部分,操作数一般由标志符和地址码组成。在上面的语句表表达式中,操作码为LD、OR、ANI、OUT等;操作数为X001、X002、M000、Y000。其中,X、M、Y为操作数中的标志符;001、002、0等为操作数中的地址码。这一组指令语言应包括可编程控制器处理的所有功能。

1.4.3 顺序功能图

顺序功能图(状态转移图)是一种较新的编程方法,如图1-8所示。它将一个完整的控制过程分为若干阶段,各阶段具有不同的动作,阶段间有一定的转换条件,转换条件满足就实现阶段转移,上一阶段动作结束,下一阶段动作开始。它提供了一种组织程序的图形方法。在顺序功能图中可以用别的语言嵌套编程,步、路径和转换是顺序功能图中的三种主要元素。顺序功能图主要用来描述开关量顺序控制系统,根据它可以很容易地画出顺序控制梯形图程序。图1-8所示为顺序功能图的一个实例。图1-8(a)所示为该任务的示意图,要求控制电动机正反转,实现小车往返行驶,按钮SB控制电动机的启动和停止, SQ11、SQ12、SQ13分别为三个限位开关,控制小车的行程位置;图1-8(b)所示是动作要求示意图;图1-8(c)所示是按照动作要求画出的流程图;图1-8(d)所示是将流程图中符号改为PLC指定符号后的功能流程图程序。可以看到,整个程序完全按动作顺序直接编程,非常直观简便,思路很清楚,很适合顺序控制的场合。

图1-8 顺序功能图

1.4.4 功能块图

功能块图类似于数字逻辑门电路,它是PLC的一种编程语言形式,有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系。方框的左侧为逻辑运算的输入变量,右侧为输出变量。I/O端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号自左向右流动。功能块图程序如图1-9所示,该功能块图输出:

图1-9 功能图块程序

1.4.5 结构文本

结构文本是为IEC 61131—3标准创建的一种专用的高级编程语言,如BASIC、Pascal、C语言等。它采用计算机的描述语句来描述系统中各种变量之间的运算关系、完成所需的功能或操作。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。在大中型可编程控制器系统中,常采用结构文本设计语言来描述控制系统中各变量之间的关系,如一些模拟量等。它也被用于集散控制系统的编程和组态。在进行PLC程序设计过程中,除了允许几种编程语言供用户使用外,标准还规定编程者可在同一程序中使用多种编程语言,这使编程者能选择不同的语言来适应特殊的工作,使PLC的各种功能得到更好的发挥。