您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > PLC中文手册与结构化文本编程
此手册供开放式架构数控系统PA8000的PLC编程人员参考使用,编程人员在进行PLC编程之前请仔细阅读本手册。手册中将介绍如何利用系统中自带的PLC编程工具进行编程,同时介绍编程指令及格式等,手册中的编程格式为ST,其它的编程格式不详细介绍。最后将以一铣床的PLC程序为例加深对程序的理解为了使手册更加通俗易懂,手册中并没有介绍所有的与PLC相关的内容,用户如有需要可向机床制造商索取专门的介绍资料。希望调试人员能通过对本手册的阅读更快地熟练PLC编程。第一章PLC编程人员参考概述PLC-1131-S3为PLC编程提供了一个完善的环境,为PLC程序员处理各种程序提供了一个简单而又功能强大的途径,它的编程和调试基于完善的环境和高级编程语言(类似与VisualC++)。2.1PLC-1131-3DS功能简介工程文件的结构:工程文件的后缀名为pro,在新工程中建立的第一个程序结构单元(ProgramOrganizationUnit)将被自动命名为PLC_PRG,这个程序结构单元就类似于C语言中的主程序。在PLC_PRG中可以调用各种函数及功能块,而函数和功能块都属于程序结构单元。PLC-1131-3DS能够区分在同一工程中的不同对象:程序结构单元(POU)数据类型(datatypes)资源(resources)工程的设置:1)首先应该设置PLC的输入输出以保证工程中使用的地址的准确性。2)接着建立解决问题的程序结构单元3)选择适当的语言编写程序4)写好程序之后,对程序进行编译去除程序中的所有错误。工程的测试:当工程之中的所有错误被去除之后激活仿真模式,就是与仿真PLC连接,与此同时将工程下载到PLC中,这样PLC-1131-3DS就处于在线方式了。现在能以适当的顺序测试工程了,手动改变输入变量的值,观察输出是否正确。第二章PLC-1131-3DS简介用PLC-1131-3DS调试程序当程序发生错误时,你可以设置断点。当处理发生中断时,你就可以及时的在断点处检查所有工程变量的值。工作在单步方式(singlestep)下,可以检验程序的逻辑错误。你可以强制输入或输出变量的值。使用流控制(flowcontrol)可以知道哪些程序段已经执行。采样轨迹(SamplingTrace)显示变量在长时间的变化过程曲线。整个工程可以以文本文件的形式导出。总而言之PLC-1131-3DS对于PLC编程是一种完善和方便的工具。2.2PLC-1131-3DS基本概念此节包括一些重要的概念帮助你熟悉PLC-1131-3DS2.2.1工程的组成工程(Project)一个工程包括了PLC程序中所有的对象,工程中包含了如下对象:程序结构单元POUs数据类型datatypes资源resources库函数libraries程序结构单元(POU)函数(Functions),功能块(functionblocks)和程序(programs)都是程序结构单元(POUs)。每个POU包括了定义变量和程序主体两个部分。程序主体用IEC编程语言编写,其中包括:指令表(IL)结构文本(ST)SFCFBD梯形图(LD).PLC-1131-3DS支持所有的标准IEC程序结构单元。POUs之间能够相互调用,但是不允许递归调用.函数(Function)当定义函数的时候,不要忘记函数中必须含有返回值的数据类型,也就是说在函数名的后面必需紧跟冒号和一个数据类型。下面是一个正确的函数定义:FUNCTIONINDUAL:INT就是说函数名被用作输出变量。函数定义的以关键字FUNCTION开始,以END_FUNCTION结尾。ExampleinILofafunctionthattakesthreeinputvariablesandreturnstheproductofthefirsttwodividedbythethird:Image0.1:Function{bmcbild2_1.bmp}ExampleofafunctioninIL函数没有任何的内部条件,就是说当用相同的输入变量时就会得出相同的结果(输出)。ExamplesforcallingupthefunctiondescribedaboveExamplesforcallingupthefunctiondescribedabove:inST:Result:=Fct(7,2,4);程序(Program)程序是一种程序结构单元,在运行过程中返回一定数量的值。程序在整个工程中都可以被识别。{bmcbild2_8.bmp}Exampleofaprogram程序能够被调用,但不允许在函数中调用程序。如果在程序结构单元中调用程序时程序的返回值有变化,这些变化将保持到下一次程序调用,即使程序程序是从其它程序结构单元调用的。程序由起始关键字PROGRAM开始,END_PROGRAM结束。.ExamplesofcallsoftheprogramdescribedaboveinST:PRGExample;Res:=PRGexample.PAR;IfthevariablePARfromtheprogramPRGexampleisinitializedbyamainprogramwith0,andthenoneaftertheotherprogramsarecalledwithabovenamedprogramcalls,thentheRESresultintheprogramswillhavethevalues1,2,and3.Ifoneexchangesthesequenceofthecalls,thenthevaluesofthegivenresultparametersalsochangeinacorrespondingfashion.PLC_PRGPLC_PRG是一个特殊的预先定义的程序结构单元,任何工程都必须含有这个特殊的程序。每次循环的过程中调用一次PLC_PRG。在新工程建立之后第一次执行ProjectObjectAdd命令时,程序结构单元对话框中的初始输入项就是名为PLC_PRG的程序类型。注意:不要删除或者重命名PLC_PRGResources设置和组织工程所需的资源:全局变量GlobalVariablesPLC设置PLCConfiguration任务配置TaskConfiguration采样轨迹SamplingTrace观察和接收管理器WatchandReceiptManager库函数(Libraries)库函数standard.lib是一个标准的函数库,可供程序进行调用。在此手册中编程语言以结构文本编程指令为例,其它的指令格式不作详细介绍。结构文本编程指令(StructuredText)包括了一系列的编程语句,如条件语句(IF..THEN..ELSE),循环语句(WHILE..DO)等等。下面就是一个结构文本指令格式的一段小程序IFvalue7THENWHILEvalue8DOvalue:=value+1;END_WHILE;END_IF;3.1表达式表达式指操作数被赋值后返回一个确定值的结构。表达式由运算符和操作数组成,操作数可以是常数、变量、调用函数或则其它表达式。3.2表达式的计算根据各种运算符优先级别依次运算得到最后的结果。具有最高优先权的运算符最先计算,接着计算第二优先级别的运算符...直到得出最后结果。具有相同优先级别的运算符按照从左到右的顺序计算。下面给出结构文本的运算符:运算符符号优先级别括号(表达式)最高函数调用函数名(参数)求幂**求反-NOT第三章结构文本格式编程语言乘除求余*/MOD加减+-比较,,=,=等于不等于=逻辑与AND异或XOR逻辑或OR最低优先级3.3结构文本格式编程格式指令指令类型例子赋值(Assignment)A:=B;CV:=CV+1;C:=SIN(X);调用功能块或者函数的返回值(CallingafunctionblockanduseoftheFBoutput)CMD_TMR(IN:=%IX5,PT:=300);A:=CMD_TMR.Q返回(RETURN)RETURN;IF(条件)D:=B*B;IFD0.0THENC:=A;ELSIFD=0.0THENC:=B;ELSEC:=D;END_IF;CASE(分支)CASEINT1OF1:BOOL1:=TRUE;2:BOOL2:=TRUE;ELSEBOOL1:=FALSE;BOOL2:=FALSE;END_CASE;FOR(循环)J:=101;FORI:=1TO100BY2DOIFARR[I]=70THENJ:=I;EXIT;END_IF;END_FOR;WHILE(循环)J:=1;WHILEJ=100ANDARR[J]70DOJ:=J+2;END_WHILE;REPEAT(重复)J:=-1;REPEATJ:=J+2;UNTILJ=101ORARR[J]=70END_REPEAT;EXIT(退出)EXIT;Emptyinstruction(空指令);用结构文本编程格式编写的程序与其它格式的编程语言相比出错概率低,编写的程序具有可读性高的特点。赋值运算(Assignmentoperator)此操作将右边表达式的结果赋给左边的操作数。符号为:=例:Var1:=Var2*10;调用功能块(Callingafunctionblock)结构文本编程格式通过在功能块名后面的括号里分配参数值来调用功能块的功能在下面的例子中通过分配参数IN和PT的值调用一定时器功能块,它的结果变量的值被赋给变量A。CMD_TMR(IN:=%IX5,PT:=300);A:=CMD_TMR.Q返回指令(RETURNinstruction)返回指令用来结束函数调用,当条件满足时返回主程序条件指令(IFinstruction)使用IF指令检验是否满足条件,当条件满足时执行相应的的指令语法:IF布尔表达式_1THENIF_指令{ELSIF布尔表达式_2THENELSIF_指令1..ELSIF布尔表达式_nTHENELSIF_指令n-1ELSEELSE_指令}END_IF;{}里面的内容是可选的。如果布尔表达式1的返回值为真(TRUE),那么只有IF_指令被执行,而其它的指令不执行。否则检验布尔表达式2的返回值是否为真,这样连续判断布尔表达式n的返回值,直到返回值为真时执行对应的指令。如果执行到最后表达式的返回值也没有为真,那么执行ELSE_指令。例:IFtemp17THENheating_on:=TRUE;ELSEheating_on:=FALSE;END_IF;这段程序控制加热功能的开启和关闭,当温度高于17度时不加热,当温度低于17度时就加热。分支指令(CASEinstruction)使用分支指令可以将一些具有相同条件变量的指令结合在一个结构中语法:CASE变量1OF=1:指令1=2:指令2...=n:指令nELSEELSE指令END_CASE;CASE指令根据下面的模式处理程序:如果变量的值为i,那么执行指令i中的指令。如果没有相应的变量的值,那么执行ELSE指令如果需要几个不同的变量值执行相同的指令,那么可以将几个变量值写在一起用逗号隔开,后面接需要执行的指令。例:CASEINT1OF1,5:BOOL1:=TRUE;BOOL3:=FALSE;2:BOOL2:=FALSE;BOOL3:=TRUE;ELSEBOOL1:=NOTBOOL1;BOOL2:=BOOL1ORBOOL2;END_CASE;循环指令(FOR)步长Stepsize}DO指令Instructions使用FOR循环指令可以重复程序处理的过程。语法:整形变量INT_Var:INT;FOR整形变量INT_Var:=初始值INIT_VALUETO终止值END_VALUE{BYEND_FOR;{}中的内容可选的.只要
本文标题:PLC中文手册与结构化文本编程
链接地址:https://www.777doc.com/doc-5369683 .html