PLC编程原则、语言、方法、常用指令及实例
PLC的编程原则
1.梯形图的每一逻辑行(梯级)均起始于左母线,然后是中间接点,终止于右母线。各种元件的线圈接于右母线一边;任何触点不能放在线圈的右边与右母线相连;线圈一般也不允许直接与左母线相连。正确的接线如图1a所示。
2.编制梯形图时,应尽量按“从左到右、自上而下”的执行程序的顺序,并易于编写指令语句表。图1b所示的是合理的接线方法。
3.在梯形图中应避免将触点画在垂直线上,这种桥式梯形图无法用指令语句编程,应改画成能够编程的形式,如图1c所示。
图1 正确接线示意图
4.继电器线圈和触点的使用。同一编号的继电器线圈在程序中只能使用一次,不得重复使用,否则将引起误操作,但其常开常闭触点可重复多次使用,如图1c中的X1、X2、X3。由此可以看出,在同一逻辑支路中,串联和并联触点数目是无限的。
5.不允许几条并联支路同时运行。当PLC处于运行状态时,PLC就开始按照梯形图符号排列的先后顺序(从上到下,从左到右)逐一进行处理,PLC对梯形图是按扫描方式顺序执行,因此不存在几条并列支路同时动作的因素,所以在设计上可减少许多约束关系的联锁电路,从而使程序简单化。
6.计数器、计时器在使用前要赋值。
7.外部输入设备常闭触点的处理。图2a是电动机直接起动控制的继电器接触器控制电路,其中停止按钮SB1是常闭触头。如用PLC来控制,则停止按钮SB1和起动按钮SB2是它的输入设备。在外部接线时,SB1有两种接法。
如图2b所示的接法,SB1仍接成常闭,接在PLC输入继电器的X1端子上,则在编制梯形图时,用的是常开触点X1。因SB1闭合,对应的输入继电器接通,这时它的常开触点X1是闭合的。按下SB1,断开输入继电器,它才断开。
如图2c所示的接法,将SB1接成常开形式,则在梯形图中,用的是常闭触点X1。因SB1断开时对应的输入继电器断开,其常闭触点X1仍然闭合。当按下SB1时,接通输入继电器,它才断开。
图2 电动机直接起动控制的继电器接触器控制电路
在图2c的外部接线图中,输入端的直流电源E通常是由PLC内部提供的,输出端的交流电源是外接的。“COM”是两边各自的公共端子。
从图2a和图c可以看出,为了使梯形图和继电器接触器控制电路一一对应,PLC输入设备的触点应尽可能地接成常开形式。
此外,热继电器FR的触头只能接成常闭的,通常不作为PLC的输入信号,而将其直接接通断接触器线圈。
PLC的编程语言
逻辑功能图表达方式基本上沿用了数字逻辑电路的“与”、“或”、“非”门电路的逻辑语言来描述,用逻辑框图形式表示。对每一种功能都使用一个运算方块,其运算功能则由方块内外的符号确定,如图3所示。
图3 简单的逻辑图
如,“&”表示逻辑“与”运算;“≥1”表示逻辑“或”运算;“o”(框图右边的小圆圈)表示逻辑“非”。
图3a是一个简单的逻辑功能图。一般与功能块有关的输入信号画在方块的左边,与功能块有关的输出信号画在方块的右边。在左边和右边应分别写上标志符和地址码。图中,X000、X001、M100为输入信号的标志符和地址码;Y030为输出信号的标志符和地址码。功能块表示如下的逻辑关系:
Y030=X000•X001•M100
采用逻辑功能图来描述程序,易于描述较为复杂的控制功能,表达直观,查错容易。因此它是编程中较为常用的一种表达方式。但它必须采用带有显示屏的编程器才能描述,而且连接范围也受到显示屏幅面的限制。
(1)常用符号
PLC梯形图图形符号借助于继电器接触器的常开触头、常闭触头、按钮、线圈以及它们的串联、并联的术语和符号,两者对照,则直观明了。和电路图一样,在绘制梯形图之前首先熟悉绘制梯形图的有关符号,如表1所示。
表1 梯形图常用符号
对输入信号和被控制对象必须标上相应的标志符和地址码,如图4(与或门)中的X000、X001、X002和Y030。图中所表示的逻辑关系为
Y030=X000•X001+X002
图4 符号在梯形图中
(2)梯形图的绘制
采用触点梯形图来表达程序的方法,看上去与传统的继电器电路图非常类似。因此它比较直观形象,对于那些熟悉继电器电路的设计者来说,易被接受。
另外,为了在编程器的显示屏上直接读出触点梯形图所描述的程序段,构成触点梯形图的图案电流支路都是一行接一行地横着向下排列的。每一条电流支路的触点符号为起点,而最右边的线圈符号为终点,如图5所示。触点梯形图多半适用于简单的连接功能的编程。
图5 多条支路的梯形图
3.语句表
语句表形式是使用助记符来编制PLC程序的语言,表示程序的各种功能。语句表类似于计算机的汇编语言,但比汇编语言容易得多。每一条指令都包含操作码和操作数两个部分,操作数一般由标志符合地址码组成。下面是一个简单的语句表。
LD X000
AND M100
OR Y030
ANI X002
OUT Y030
语句表中各部分含义如表2所示
表2 语句表
采用这种类似计算机语言的编程方式,可使编程设备简单,逻辑紧凑,而且连接范围也不受限制。上述三种程序的表达方式各有所长,在比较复杂的控制系统中,这三种方式可能会同时使用,但对于简单的控制系统采用一般的可编程序控制器进行人工编程时,大多采用触点梯形图编制程序。当设计好触点梯形图后再根据接口、梯形图写出语句表,最后便可将语句表键入可编程序控制器中进行调试。
PLC的常用指令
表3 常用的基本指令表
PLC的编程方法
以图6所示的交流电动机正反转控制电路为例来介绍用PLC控制的编程方法。
图6 交流电动机的正反转控制电路
1.确定I/O点数及其分配
停止按钮SB1、正传起动按钮SB2、反转起动按钮SB3这3个外部按钮须接在PLC的3个输入端子上,可分别分配为X0、X1、X2来接收输入信号;正转接触器线圈KM1和反转接触器线圈KM2须接在两个输出端子上,可分别分配为Y1和Y2。共需用5个I/O点,如表4所示。
表 4 I/O点数
外部接线如图7所示。按下SB2,电动机正转;按下SB3,电动机则反转。在正转时如要求反转,必须先按下SB1。至于自锁和互锁触点是内部的“软”触点,不占用I/O点。
图7 外部接线
2.编制梯形图和指令语句表
表5 语句表
图8 梯形图
PLC的编程举例
用PLC对喷漆机械手的定位控制
喷漆机械手是采用步进顺序器分步控制的,首先介绍步进顺序控制器。
(1)步进顺序控制器
步进顺序器(SS)能够按顺序逐一启动后续的7个内部继电器线圈(ST),组成一个步进顺序器。当第一个标有(SS)的内部继电器得电后,使随后的7个线圈均处于释放状态。随后当其后一个标有(ST)的内部继电器得电时,这组步进顺序器带的其他继电器均释放,通电顺序必定是由小至大,逐一轮流。因此,步进顺序器是把连续的几个内部继电器组合起来,协调行动,它们在梯形图中的图形符号如表6所示。
表6 步进顺序器图形符号
在EPS软件中并不规定步进顺序器从哪个内部继电器编号开始,也不一定在(SS)线圈后要跟随7个(ST)继电器,但最多是7个。如果需要超过8步时,可以把2个步进顺序器串接起来。
(2)喷漆机械手定位控制电路
若有一个带有红、绿、蓝三种颜色油漆喷枪的机械手在一条有4个工位的通道中移动。机械手能喷出三种颜色,在四工位要喷刷四段颜色,如图9a所示。每个工位的交界处都设置一个位置传感器,此外,在起点及终点也各设一个位置传感器,总共5个位置传感器,其梯形图如图9b所示。
喷漆机械手由X0位置传感器启动控制。红色喷枪由输出点Y2控制,绿色喷枪及蓝色喷枪分别由Y3及Y4控制。R0~R5组成一组步进顺序器。输出点YO控制机械手前进,Y1控制机械手返回。
首先,X0位置传感器发出启动信号,使步进顺序器启动,这时R0内部继电器吸合,其余5个线圈释放。由于R0接通,使R10置位,驱动输出点Y0。于是机械手前进,同时R0触点驱动输出点Y2,使机械手上的红色喷枪工作。当机械手行进到X1处,X1位置传感器发出信号,使X1触点接通,内部继电器R1吸合,同时R0断开。因为R0是步进顺序器的第一个线圈。R1触点驱动输出点Y3,使机械手上的绿色喷枪工作。当机械手继续前进到X2处,X2位置传感器动作,使R2吸合,同时断开R1。与此类同,直至机械手到达终点,R4使R10复位,于是机械手停止前进。当R4接通Y1线圈,机械手便返回起始点。起始点X0的位置传感器X0又发出信号,于是PLC的R0又接通,机械手又开始下一次的喷漆工作。
图9 喷漆机械手的定位控制
PLC编程入门,先来认识6种编程语言
传统的PLC编程语言只有两种,指令表(IL)及梯形图(LD),有的称梯形逻辑图(LLD)。而今为便于各类型的工程技术人员都能使用PLC,PLC厂商都增加了它的编程语言。国际电工组织也制定与几次修订了PLC编程语言国际标准。并在1993年做了全面修订后称之为IEC 61131-3 的修订版。我国在1995年11月发布了GB/T 15969-1/2/3/4 标准,与IEC 61131-1/2/3/4等同。该标准推荐了6种编程语言,除了指令表及结构化文本(ST)为文字语言 ,还有梯形图、功能块图(FBD)、连续功能图(CFC)及顺序功能图(SFC) 等图形语言。
目前,IEC 61131-3编程语言不仅用于PLC,而且还用于集散型控制系统、工业控制计算机、数控系统和远程终端单元。
由于这个标准的建立是在PLC已广泛使用之后,加上它不是强制性标准,所以,有些老的PLC厂商还是在原来语言的基础上做了扩展,并没有完全采用这个标准。再就是,即使语言相同,但细节还是有不少差异。
倒是国产PLC,如和利时公司的LM、LK系列机,是在有了标准之后才开发的,能全面采用这个标准。再就是ABB公司的PLC也使用标准规定的6中语言编程。
下面就给大家简要介绍一番:
指令表(IL)
指令表语言是PLC编程最基本的语言。但是,用它编的程序,可读性较差,目前已不常用。故不在此做介绍。
结构化文本语言(ST)
ST语言与BASIC语言、PASCAL语言或C语言等类似。它没有单一的指令,只有由一组指令构成的含义完整的各种语句。具体语句有赋值语句、条件语句、选择语句、循环语句及其他语句(EXIT语句、RETURN语句、功能块调用语句等)。
不同品牌PLC的ST语言所提供的函数、运算符可能略有不同。
ST语言功能比图形语言强,但不如图形语言直观,目前用的还不大普及。如欧姆龙PLC只是在自编功能块的程序中才可使用它。
同样为ST语言,各PLC厂商的细节不完全一样。
梯形图(LD)
梯形图来源于美国,是一种基于梯级的图形符号布尔语言。
梯形图语言与电气原理图相对应,与原有继电器逻辑控制技术相一致。与原有的继电器逻辑控制技术不同的是,梯形图中的功率流不是实际意义的电流,内部的继电器也不是实际存在的继电器。
梯形图的左母线好像电气原理图的电源线一样,一般不直接与输出类指令(相当于电气原理图的负载)相连,中间总要有能建立逻辑条件的一些指令(相当于电气原理图的控制元件)。但有的PLC也允许这么做。
用梯形图符号编的PLC程序,很像电气原理图。如上图所示。图b为施耐德公司Naza PLC用的梯形图。
下图所示为与IL语言程序对应的梯形图程序
关于梯形图的文章有很多,在此不再赘述,本公众号以前也发过几篇文章,大家可以去看一看:
关于PLC梯形图,你想知道都在这里!
想短时间内掌握西门子PLC梯形图的编程方法就一定要看这篇文章!
学PLC必看:看懂电动机控制系统中PLC梯形图和语句表
PLC常用的基本控制电路及梯形图
功能块图(FBD)
FBD语言(一种对应于逻辑电路的图形语言),与电子线路图中的信号流图非常相似。FBD广泛地用于过程控制。
FBD语言是以功能模块为单位,描述控制功能。特别是控制规模较大、控制关系较复杂的系统,用它表达将更为方便。
目前,PLC厂商推出一些高功能及高性能的硬件模块的同时,多提供与其有关的功能块图程序,这为用户使用这些硬件及进行编程提供了很大方便。
FBD语言占用内存较大,执行时间较长,因此,这种语言多只在大、中型可编程序控制器和集散控制系统的编程和组态中采用。
连续功能图(CFC)
CFC与FBD类似,也是按需要选用种种功能块。所不同的是,它更灵活,块的位置可任意摆放,特别有信号反馈时,画起来更方便。
为了块的执行有明确的顺序,它的每个块的右上角都标有序号。但在实际表达时,这个标号也可选择不显示。
FBD及CFC语言在DCS系统编程中用得较多。此外,由于这两种语言差别不大,有时,仅使用FBD语言。因而,有的也把IEC 61131-3自动化编程语言说成5种。
顺序功能图(SFC)
SFC语言以描述控制程序的顺序为特征,以图形方式,简单、清楚地描述系统的所有现象,并能对系统中存有的像死锁、不安全等反常现象进行分析和建模,并可在此基础上编程。所以,得到了广泛的应用。
其实,SFC语言仅仅是一种组织程序的图形化方式。其实际使用要与其它语言配合,否则无法实现其功能。所以,严格地讲,它不能算是完整的编程语言。
1.组成
步(Step)
用方框表示,分有初始步、活动步、不活动(休止)步三种。一个步是否为活动步,即是否处于激活状态,则取决于上一步及与其相应的转移。
动作(Action)
动作是步的组成部分,一个步含有一个或多个动作,用一个附加在步上的矩形框来表示。每一动作中的程序代码都可以用IEC的任一语言如ST、FBD、LD或IL来编写。每一动作还有一个修饰词(Qualifier),用来确定步激活时其动作什么时候执行或终止。
有向连线
从上到下、从左到右的步间连线。也可用加箭头做非上下、左右的步间连线。
转移
在有向连线上的垂直短线。与转移相关的逻辑条件,用文字、布尔代数表达式、图形符号标注在转移短线旁。
2.SFC转移规则
步的转移指的是有向连线相连的前后步激活状态的转换。
步间转移的规则是:
①步间的转移逻辑条件为真;
②被转移步的前一步是活动的。
不满足此两条件,将不转移。
为了启动顺序功能流程图程序的执行,总是要指定一个初始步,其标志为S0,是程序运行开始时被激活的那个步。有个这个初始步,则随着相应转移逻辑条件满足,流程图中步的激活状态将逐步转换,直至最后一步被激活,或根据有向线指定路线不停地循环转换。
3.SFC主要形式
根据结构的不同,可分为以下几种形式:单序列控制、并行序列控制、分支结构序列、转移序列等。
下图所示为一段SFC语言编写的程序。
同样称SFC语言,但有的是合乎标准的,如欧姆龙CJ2所用的,其Action有以上修饰词。有的没有,使用时要看具体软件的说明。
本文选自《PLC实用编程指南 第3版》
编后语
相关问答
plc几种编程语言?
PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。PLC的编程...
PLC编程语言有什么?
常见的PLC编程语言包括以下几种:1.LadderDiagram(梯形图):最常用的PLC编程语言,将输出信号和输入信号以具有逻辑关系的图形方式表示,类似于电气图。2....
plc编程语言有哪些?
PLC编程语言主要包括以下几种:1.LadderDiagram(梯形图):是PLC最常用的程序设计语言,采用电气线路图的形式表示控制逻辑,能够可视化控制方案,易学易懂。...
PLC编程语言有什么?
PLC编程语言主要包括以下几种:1.LadderDiagram(梯形图):是PLC最常用的程序设计语言,采用电气线路图的形式表示控制逻辑,能够可视化控制方案,易学易懂。...
plc常用的编程语言有三种?
一、梯形图编程语言梯形图沿袭了继电器控制电路的形式,它是在电器控制系统中常用的继电器、接触器逻辑控制基础上简化了符号演变来的,形象、直观、实用。二...
plc编程语言有哪三种?
PLC编程语言五种:梯形图、指令表、功能模块图、顺序功能流程图及结构化文本)。目前编程语言的价值在于用经验的方式来管理软件系统复杂度。而SQL算是一个数...
plc的编程语言有哪些?
1.指令表语言是PLC编程最基本的语言。但是,用它编的程序,可读性较差,目前已不常用。故不在此做介绍。2.ST语言与BASIC语言、PASCAL语言或C语言等类似。它没有...
plc有几种编程语言?
PLC(可编程逻辑控制器)有以下几种编程语言:1.LadderDiagram(梯形图):梯形图是PLC编程中最常用的一种编程语言,它模拟了电气控制电路的逻辑关系,具有易...P...
plc语言有几种表示方法?
①梯形图语言:以图形方式表达触点和线圈以及特殊指令块的梯级。②语句表语言:类似于汇编程序的助记符编程表达方式。③逻辑图语言:类似于数字逻辑电...①梯...
plc编程语言主要有那几种?
PLC编程语言主要有三种:1.梯形图语言(LD):是一种可视化的编程语言,使用类似于电气原理图的符号和逻辑连接方式来表示程序。梯形图语言是PLC中最常用的编...