您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > PLC教程理论篇之PLC编程语言一
稻草人自动化培训编程语言一一、编程语言PLC程序是按一定规则和顺序组织起来的PLC指令序列。PLC运行程序就是按一定顺序,执行这序列中一条条指令。指令,Instruction,也有的厂家叫操作,Operation,是用以告知PLC作什么,以及怎样去作的文字代码或图形符号。而依使用的语言不同,这些代码或符号也不相同。但从本质上讲,指令只是一些二进制代码,即机器码。如同普通计算机一样,PLC的编程器或PLC的编程软件也有编译系统。它可把一些文字代码或图形符号编译成机器代码。所以,用户所看到的PLC指令一般不是机器代码,而是文字代码,或图形符号。为了便于使用PLC及推进PLC技术,国际电工组织还制定与几次修订了PLC程序设计语言的国际标准,即EC61131-3修定版。它规定了5种编程语言。这些是:指令表(InstroductiONlist,IL)、梯形图(LadderLogic,LD)、结构化文本(StrutureText,ST)、功能块图(FunctiONBlockDiagram,FBD)和顺序功能图(SequenceFunctiONChart,SFC)。由于它不是强制性的标准,所以,不是所有公司的PLC都支持这些语言。有的PLC也可用高级语言,如BASIC、C语言,编程。其实,只要有相应的编译软件,什么语言,以至用自然语言,也都可用以编程。由于IEC61131-3自动化程序设计语言的诸多优点,已成为自动化工业中拥有广泛应用基础的国际标准。目前已有少PLC厂商已采用或已基本采用了这个标准。而且已不仅限于PLC,还广泛地应用于集散型控制系统、工业控制计算机、数控系统、远程终端单元等产品。同一程序在多种语言间都有对应关系。使用编程软件都可很方便地从一种语言,转换成另一种语言。在本章将对这5种语言作简要介绍。1.指令表也叫助记符,也叫列表,是基于字母符号的一种语言,类似计算机的汇编语言,用拚音文字(可用多国文字)的缩写及数字代表各相应指令。西门子称之为STL语言。这个语言在欧洲很常用。绝大多数PLC都使用有这种助记符指令。表4-1示的为3个厂家用这个语言写出的功能相同的程序。表4-1助记符(或STL)语言程序。令地址:这里的第一条,为0,标志该指令存于PLC程序存贮区的位置。一般讲,指令总是从0地址的指令开始顺序执行,一直执行到最后一条指令为止。所以,确定指令的地址是重要的。不过,由于程序设计工具及程序设计软件的发达,在送入指令时,这个地址多是自动生成的。操作码:这里的第一条为LD,用它告知PLC应该进行什么操作,是PLC指令的核心,是必不可缺的。其它几个地址的指令码各家的拼写不同,但含义相同。操作数:这里的第一条有的为00001,有的为I0.0,有的为X000,是操作码操作的对象。有一个操作数的,两个操作数的以及多个操作数的。也有无操作数的,如的第五条END指令,稻草人自动化培训它只是表示程序到此结束。到底有多少操作数视操作码而定。各家操作数的拼写也不同,其含义都是指定相应的输入、输出点。西门子程序不用END指令表示程序结束,后面无指令即表示程序的结束,系统会自行处理。它具有容易记忆、便于操作的特点。可用于简易编程器编程,是最基本的编程语言。其它语言无法表达的程序,用它都可表达。但用它编的程序,可读性较差。2.梯形图:梯形图语言源自继电器电气原理图,是一种基于梯级的图形符号布尔语言。它通过连线,把PLC指令的梯形图符号连接在一起,以表达所调用PLC指令及其前后顺序关系。用梯形图符号编的PLC程序,很像电气原理图,较易为电气工作人员理解。目前,它已成为PLC程序设计的基本语言。特别在北美,得到广泛的应用。但是,用梯形图指令程序设计,要用图形编程器(或带有图形编程功能的简易编程器),或用个人计算机、并配置相应的编程软件。图4-1(a)为电气原理图,(b)为梯形图,可知,它们是何等的相似。该图(b)为施耐德公司NazaPLC用的梯形图,图上既注有直接地址(如%Q0.4),又注有符号地址(如M1),很便于理解。梯形图的连线有两种:一为母线,也称电源线,画在梯形图两边,用以梯形图指令间的整体连接;另一为内部小横线与小竖线,用以梯形图指令间的局部连接。有了内部横、竖线,可把若干个梯形图指令连成一个指令组,有的厂家称之为梯级(Rung,有的称为Network)。它是一组前后连贯,能代表一个完整的逻辑含义的梯形图指令集。是设计梯形图程序的最基本单位。有了母线,可把各个梯级连接成连通的整体(但,有的厂家母线不是连通的)。最左方的竖线为左母线;最右方的为右母线。为了方便,右母线可省略。这样的图形类似于梯子,梯形图因此而得名。提示:梯形图的左母线好像电气原理图的电源线一样,一般不直接与输出类指令(相当于电气原理图的负载)相连,中间总要有能建立逻辑条件的一些指令(相当于电气原理图的控制元件)。但有的PLC也允许这么作。稻草人自动化培训、b、c为与表4-1对应的梯形图程序。用梯形图语言编的程序,在联机调试、观察PLC操作状态时,非常生动、直观。这也是它受欢迎的一个原因。图2-2aa、bb、cc示的即为监控时工作的情况。图aa)为OMRON的,它表示10.00点已工作。图bb)为西门子的,它表示Q0.0点已工作。图cc)为三菱的,它表示Y000点已工作。梯形图程序表达的指令顺序,一般为,先上后下,先左后右。即图上方、左方的梯形指令先执行,而下方、右方的梯形图指令后执行。但,用它表达的顺序关系,不如用助记符表达得清楚,弄不好,易出现二义。图形过分复杂时,还容易出错。所以,有的PLC程序如不能用梯形图表达时,最终还是要用助记符表达。总之,梯形图语言与电气原理图相对应,与原有继电器逻辑控制技术相一致,易于被电气技术人员使用。与原有的继电器逻辑控制技术不同的是,梯形图中的能流(PowerFLow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念相相区别。正是梯形图语言优点突出,用的很多,所以,本书介绍程序实例时,都是用这种语言。提示:尽管都是梯形图,但各个厂家PLC的画法还是有差别的。特别是对功能指令(用于实现种种数据操作)的表达上差别更大。图4-3示的为使用功能指令的梯形图程序。它都是表示当条件(这里的触点0.00、I0.0及X000ON)满足时,二进制数按字进行加运算的指令将被执行。此类指令用于数据处理,故操作数较多,这个加运算指令就有3个操作数:被加数、加数及加的结果(和)。稻草人自动化培训还可看出,同样是加运算指令,但各厂家梯形图的表达形式却不完全一样。对OMRONPLC:以封闭的框图表示,最上方的小框为指令码,ADB,表示二进制数加,括弧内50,为指令代码。下方的小框,有3行数据DM0、DM1及DM2,分别为第1、2、3操作数。其含义分别为被加数、加数及加的结果(和)。对西门子PLC:也封闭的框图表示。但框内表示指令码及操作数的含义,ADD-I表示以字为单位的二进制数加,IN1、IN2为输入字,OUT为输出字。而EN表示条件,只有它满足,指令才执行。ENO表示指令是否已正确执行。如正确执行了,则输出为1(ON),否则为0(OFF)。而它的操作数放在框的外边。这里输入操作数有2个,VW0为被加数,VW1为加数;而输出有一个,VW2为和。对三菱PLC:图用方括号表示。括号内的最左方,如图ADD为指令码,再从左向右数,D0为第1操作数,被加数,D1第2操作数,为加数,而D2第3操作数,为和。提示:为了方便,本书对指令操作数的说明,有时不完全都使用厂家的符号,而只简单按其在框图或方括号中的顺序,如本例这样,相应地称之为第1、2、3操作数。功能块:PLC还用有功能块(FBD)语言。它是一种对应于逻辑电路的图形语言。FBD广泛地用于过程控制。每一功能块的功能,取决于它是什么指令。功能块有输入端、输出端。如图4-4,示的为西门子PLC功能块语言程序。它有两个功能块,一为逻辑“OR”功能块,另一为“AND”功能块。前者的输出作为后者的输入。图4-4功能块图该图的“OR”块类似于逻辑电路的“或门”,逻辑或的意思。“AND”块类似于逻辑电路的“与门”,逻辑与的意思。“AND”块两个输入。一来自“OR”功能块,另一来自I0.1的非(这里的小圆圈为逻辑非之意)。AND功能块的输出为Q0.0。显然,图4-4即为与图4-2对应的功能块图程序。功能块语言是用图形化的方法,以功能模块为单位,描述控制功能。其表达简练、逻辑关系清晰,使控制方案的分析和理解变得容易。特别是控制规模较大、控制关系较复录的系统,用它可把控制的关系较清楚地表达出来,可简化编程及缩短调试时间。此外,一些含有标准功能的程序,用功能块语言很便于调用。目前,PLC厂家推出一些高功能及高性能的硬件模块的同时,多提供与其有关的功能块程序,这为用户使用这硬件模块及进行编程提供了很大方便。但是,由于每种功能模块需要占用一定的程序内存,功能模块的执行也需要一定的执行时间,因此,这种设计语言多只在在大中型可编程控制器和集散控制系统的编程和组态中才被采用。稻草人自动化培训结构化文本语言结构化文本语言是基于文本的高级编程语言。它采用一些描述语句,来描述系统中各种变量之间的各种关系,执行所需的操作。大多数制造厂商采用的这种语言,与BASIC语言、PASCAL语言或C语言等高级语言相类似。但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。以下几个语句就是它的例子:FlipFlop(SI:=(%IW3=%MW3)R:=VarIn);VarOut:=FlipFlop.Q1;与其对应于功能块图程序如图4-5。可知,结构化文本语言要比指令表可读性要强一些。但是结构化文本语言对编程人员的技能要求较高,普通电气人员无法使用;同时也不太直观。所以,目前,用的还不大普及。只是个别厂家提供较简易的这类语言。顺序功能图“顺序功能图语言”是近年来发展起来的一种编程语言。它采用顺序功能图的描述程序结构,把程序分成若干“步”(Step,S),每个步可执行若干动作。而“步”间的转换靠其间的“转移”(Tran,T)的条件实现。至于在“步”中要作什么,在转移中有那些逻辑条件,则可使用其它任何一种语言,如梯形图语言,编程实现。功能图来源于佩特利(Petri)网,由于它具有图形表达方式,能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的象死锁、不安全等反常现象进行分析和建模,在模型的基础上能直接编程,所以,得到了广泛的应用。近几年推出的可编程控制器和小型集散控制系统中也已提供了顺序功能图编程的软件。可知,“顺序功能图语言”不仅仅是一种语言,而且,也是一种组织控制程序的图形化方式。图4-6示的是一段“顺序功能图语言”编写的程序。图中S0(起始步)、S1、s2、s3为步,t1、t2、t3、t4、t5为“转移”。“转移”的条件稻草人自动化培训是位逻辑值。为1转换,进入下一步。为0不转换,停留在所在步,执行所在步的程序。图中t1条件为梯形图编程,t2为逻辑图编程。图中S0步转换到S1、S2是分支结构,到底转换到那个步,要依逻辑条件t1(转换到步s1条件)、t4(转换到步s2条件)那个先满足确定。而S1、S2转换S3是逻辑或,执行S1步及t2为1,则从S1转换到S3,执行S2步及t5为1,则从S2转换到S3。S3往下转换,则由逻辑条件t3确定。至于在各个“步”中,PLC要做什麽,还可用不同语言编程。总之,功能表图编程语言的特点是:(1)以功能为主线,条理清楚,便于对程序操作的理解和沟通;(2)对大型的程序,可分工设计,采用较为灵活的程序结构,可节省编程时间和调试时间;(3)常用于系统的规模校大、程序关系较复杂的场合;(4)只有在已“击活”的步
本文标题:PLC教程理论篇之PLC编程语言一
链接地址:https://www.777doc.com/doc-2887342 .html