编程指令:指令是PLC被告知要做什么,以及怎样去做的代码或符号。从本质上讲,指令只是一些二进制代码,这点PLC与普通的计算机是完全相同的。同时PLC也有编译系统,它可以把一些文字符号或图形符号编译成机器码,所以用户看到的PLC指令一般不是机器码而是文字代码或图形符号。常用的助记符语句用英文文字(可用多国文字)的缩写及数字代表各相应指令。常用的图形符号即梯形图,它类似于电气原理图,是符号,易为电气工作人员所接受。
指令系统:一个PLC所具有的指令的全体称为该PLC的指令系统。它包含着指令的多少,各指令都能干什么事,代表着PLC的功能和性能。一般来讲,功能强、性能好的PLC,其指令系统必然丰富,所能干的事也就多。在编程之前必须弄清PLC的指令系统。
程序:PLC指令的有序集合,PLC运行它可进行相应的工作,当然这里的程序是指PLC的用户程序。用户程序一般由用户设计,PLC的厂家或代销商不提供。用语句表达的程序不大直观,可读性差,特别是较复杂的程序更难读,所以多数程序用梯形图来表达。
梯形图:梯形图是通过连线把PLC指令的梯形图符号连接在一起的连通图,用以表达所使用的PLC指令及其前后顺序,它与电气原理图很相似。它的连线有两种:一种为母线;另一种为内部横竖线。内部横竖线把一个个梯形图符号指令连成一个指令组,这个指令组一般总是从装载(LD)指令开始,必要时再继以若干个输入指令(含LD指令),以建立逻辑条件。最后为输出类指令,实现输出控制,或为数据控制、流程控制、通信处理、监控工作等指令,以进行相应的工作。母线是用来连接指令组的。图2-33所示是三菱公司的FX2N系列产品的最简单的梯形图例。
图2-33有两组:第一组用以实现启动、停止控制;第二组仅一个END指令,用以结束程序。
图2-33 三菱FX2N系列PLC梯形图
PLC存在的缺点主要是PLC的软、硬件体系结构是封闭的而不是开放的,绝大多数的PLC是专用总线、专用通信网络及协议,编程虽多为梯形图,但各公司的组态、寻址、语句结构不一致,使各种PLC互不兼容。国际电工委员会(IEC)在1992年颁布了IEC1131-3《可编程序控制器的编程软件标准》,为各PLC厂家编程的标准化铺平了道路。现在开发以PC为基础、在Windows平台下,符合IEC1131-3国际标准的新一代开放体系结构的PLC正在规划中。
IEC制订了工业控制5种标准编程语言(IEC1131-3),分别是:
1)梯形图(LD):适合于逻辑控制。
2)功能块图(FBD):适合于典型固定复杂算法控制,如PID调节等。
3)顺序功能图(SFC):适合于多进程时序混合型复杂控制。
4)指令表(IL):适合于简单文本自编专用程序。
5)结构化文本(ST):适合于复杂自编专用程序,如特殊的模型算法等。
目前还没有一种能适合各种PLC的通用的编程语言,但是各种PLC发展过程有类似之处,PLC的编程语言即编程工具都大体差不多。
PLC常用的编程语言主要有三种:功能图、语句表和梯形图。梯形图编程目前依然是应用最广泛的编程语言,因为它与继电接触器控制线路非常相像,容易学习,使用方便。
1.梯形图(Ladder Diagram)
梯形图类似于继电接触器控制线路,是一种以图形符号及图形符号在图中的相互关系表示控制关系的编程语言,它是从继电器控制电路图演变过来的,是目前用得最多的PLC编程语言。梯形图将继电器控制电路图进行简化,同时加进了许多功能强大、使用灵活的指令,将微型计算机的特点结合进去,使编程更加容易,而实现的功能却大大超过了传统继电器控制电路图,是目前最普通的一种PLC编程语言。各厂家梯形图的符号和规则虽不尽相同,但基本上大同小异,如图2-34所示。
图2-34 三种不同厂家的梯形图
注意:梯形图表示的并不是一个实际电路而只是一个控制程序,其间的连线表示的是它们之间的逻辑关系,即所谓的“软接线”。动合触点用表示,也叫常开触点;动断触点用表示,也叫常闭触点;线圈用“”或表示。
梯形图中的各编程元件并非是物理实体,而是“软继电器”,每个“软继电器”仅对应PLC存储单元中的一位。该位状态为“1”时,对应的继电器线圈接通,其动合触点闭合、动断触点断开;状态为“0”时,对应的继电器线圈不通,其动合触点、动断触点保持原态。
梯形图具有如下绘制特点:
1)在梯形图中只有动合和动断两种触点。输入触点用以表示用户输入设备的输入信号,当输入设备的触点接通时,对应的输入继电器动作,其动合触点接通,动断触点断开;当输入设备的触点断开时,对应的输入继电器不动作,其动合触点恢复断开,动断触点恢复闭合。各种机型中动合触点和动断触点的图形符号基本相同,但它们的器件编号随不同机种、不同位置(输入或输出)而不同。统一标记的触点可以反复使用,次数不限,这点与继电器控制电路中同一触点只能使用一次不同,因为在PLC中每一个触点的状态均存入PLC内部的存储单元中,可以反复读写,故可以反复使用。
2)梯形图中输出继电器(输出变量)的表示方法也不同,有圆圈、括弧和椭圆表示,而且它们的器件编号也不同,不论哪种产品,输出继电器在程序中只能使用一次。
3)对电路各器件要分配编号。用户输入设备按输入触点的地址编号,如起动按钮SB2的编号为X001。用户输出设备都按输出地址编号,如接触器KM的编号为Y001。如果梯形图中还有其他内部继电器,则同样按各自分配的地址来编号。如接通SB0,则X000存储单元对应的位为“1”,反之则为“0”。
4)梯形图最左边是起始母线,每一逻辑行必须从起始母线开始画。梯形图最右边还有结束母线,一般可以将其省略。梯形图必须按照从左到右、从上到下的顺序书写,PLC按照这个顺序执行程序。
5)梯形图中触点可以任意地串联或并联而输出继电器线圈可以并联但不可以串联。
6)程序结束后应有结束符。
7)输出继电器只对应输出映像区的相应位,不能直接驱动现场设备。
梯形图编程示意如图2-35所示。
如按SB0,则X000存储单元为“1”,则其动合触点闭合,线圈通电,电动机转动;如按SB1,则X001存储单元为“1”,则其动断触点断开,线圈断电,电动机停车。这些触点或线圈并不是真实的物理继电器触点或线圈,而是在软件编程中使用的编程器件,每个编程器件与存储器中的一个存储单元相对应,该存储单元为“1”则表示梯形图中动合触点闭合、动断触点断开,线圈通电。PLC系统图如图2-36所示。
图2-35 梯形图编程示意图
图2-36 PLC系统图
其内部梯形图如图2-37所示。
图2-37 PLC系统内部梯形图
梯形图是PLC中最常用的编程语言,学习中应注意以下概念:
1)梯形图中流过的电流不是物理电流而是概念电流,是程序执行的形象表示方式。左右垂直线称为母线,触点在水平线上串联为与逻辑关系,并联为或逻辑关系。
“能流”是PLC梯形图中的一个重要概念,但仅是概念上的“能流”。可以假想左母线为电源的相线,右母线为电源的零线。如果有“能流”从左至右流向线圈,则线圈被激励(ON);如没有“能流”通过,线圈未被激励(OFF),不动作。“能流”可以通过被激励(ON)的动合触点和未被激励(OFF)的动断触点自左向右流动,“能流”任何时刻都不会自右向左流动。(www.xing528.com)
2)梯形图中的继电器并不是物理继电器,每个继电器或输入触点各为存储器中的一位,相应位为“1”态,表示继电器线圈通电或动合触点闭合,或动断触点断开。
3)梯形图中的继电器触点在编写用户程序时(即作为逻辑触点)可根据需要在梯形图中反复使用,没有次数限制,既可用动合触点也可用动断触点。
4)只有PLC中的物理继电器才能驱动实际负载,其他继电器只能作为一种逻辑来使用,故称为“软继电器”。
图2-38所示是一个基本的梯形图。
2.指令表(Instruction List)
指令表又叫助记符语言,类似于计算机汇编语言,它用一些简洁易记的文字符号表达PLC的各种指令。同一厂家的PLC产品,其助记符语言与梯形图语言是相互对应的,可互相转换。助记符语言常用于手持编程器中,梯形图语言则多用于计算机编程环境中。梯形图编程语言优点是直观简便,但要求用带屏幕显示的图形编程器才能输入图形符号,小型的编程器一般无法满足。将程序输入到PLC中需使用指令语句(助记符语言),它类似于微型计算机中的汇编语言,由语句系列构成。语句是指令语句表编程语言的基本单元,每个控制功能有一个或多个语句组成的程序来执行。每条语句规定PLC中CPU如何动作的指令,它是由操作码和操作数组成的。操作码用助记符表示要执行的功能,操作数(参数)表明操作的地址或一个预先设定的值,不同厂家的PLC,其操作码和操作数表示不同,见表2-3。
图2-38 基本梯形图
表2-3 不同厂家PLC部分指令表
梯形图按从左到右,从上到下的顺序编程。
梯形图与助记符的对应关系为助记符指令与梯形图指令有严格的对应关系,而梯形图的连线又可把指令的顺序予以体现。一般来讲,其顺序为先输入、后输出(含其他处理);先上、后下;先左、后右。有了梯形图就可将其翻译成助记符程序。图2-39的助记符程序为
地址 指令 变量
0000 LD X0
0001 OR Y0
0002 ANI X1
0003 OUT Y0
0004 END
反之根据助记符,也可画出与其对应的梯形图,如图2-39所示。
梯形图与电气原理图的关系为,如果仅考虑逻辑控制,梯形图与电气原理图也可建立起一定的对应关系。如梯形图的输出(OUT)指令,对应于继电器的线圈,而输入指令(如LD、AND、OR)对应于触点等。这样原有的继电控制逻辑经转换即可变成梯形图,进一步转换即可变成语句表程序。
有了这个对应关系,用PLC程序代表继电逻辑是很容易的,这也是PLC技术对传统继电控制技术的继承。
图2-39 助记符对应的梯形图
3.顺序功能图(Sequential Chart)
顺序功能图又称为功能表图或状态转移图,是一种较新的编程方法,是各种PLC编程语言规范化的方向,常用来编制顺序控制类程序,它包含步、动作、转换三个要素。顺序功能编程法可将一个复杂的控制过程分解为一些小的顺序控制要求,连接组合成整体的控制程序。顺序功能图法体现了一种编程思想,在程序的编制中具有很重要的意义。在介绍步进梯形指令时将详细介绍顺序功能图编程法。图2-40所示为顺序功能图。
4.功能块图(Function Block Diagram)
功能块图编程语言实际上是用逻辑功能符号组成的功能块来表达命令的图形语言,与数字电路中的逻辑图一样,它极易表现条件与结果之间的逻辑功能。图2-41所示为先“与”后“或”再输出操作的功能块图。
由图2-41可见,这种编程方法根据信息流将各种功能块加以组合,它是一种逐步发展起来的新式编程语言,正在受到各种PLC厂家的重视。
5.结构文本(Structure Text)
随着PLC的飞速发展,如果许多高级功能还是用梯形图来表示,那会很不方便。为了增强PLC的数字运算、数据处理、图表显示、报表打印等功能,以方便用户的使用,许多大中型PLC都配备了PASCAL、BASIC、C等高级编程语言,这种编程方式叫做结构文本。与梯形图相比,结构文本有两大优点:其一,能实现复杂的数学运算;其二,非常简洁和紧凑。用结构文本编制极其复杂的数学运算程序只占一页纸,结构文本用来编制逻辑运算程序也很容易。
图2-40 顺序功能图
图2-41 功能块图编程语言图
以上5种编程语言是由IEC 1994年5月在PLC标准中推荐的。对于一款具体的PLC,生产厂家可在这5种表达方式中提供其中的几种编程语言供用户选择,但并不是所有的PLC都支持全部的5种编程语言的。
PLC的编程语言是PLC应用软件的工具。它以PLC输入口、输出口、机内器件之间的逻辑及数量关系表达系统的控制要求,并存储在机内的存储器中,即所谓的“存储逻辑”。图2-42所示是梯形图、顺序功能图、功能块图三种编程语言的比较。
图2-42 三种编程语言的比较
a)梯形图 b)顺序功能图 c)功能块图
为了更好地理解PLC的编程语言,图2-43给出了PLC控制过程解剖图。
图2-43 PLC控制过程解剖图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。