PLC中文手册与结构化文本编程 .doc
《PLC中文手册与结构化文本编程 .doc》由会员分享,可在线阅读,更多相关《PLC中文手册与结构化文本编程 .doc(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 PLC编程人员参考概述此手册供开放式架构数控系统PA 8000的PLC编程人员参考使用,编程人员在进行PLC编程之前请仔细阅读本手册。手册中将介绍如何利用系统中自带的PLC编程工具进行编程,同时介绍编程指令及格式等,手册中的编程格式为ST,其它的编程格式不详细介绍。最后将以一铣床的PLC程序为例加深对程序的理解为了使手册更加通俗易懂,手册中并没有介绍所有的与PLC相关的内容,用户如有需要可向机床制造商索取专门的介绍资料。希望调试人员能通过对本手册的阅读更快地熟练PLC编程。第二章 PLC-1131-3 DS简介PLC-1131-S3为PLC编程提供了一个完善的环境,为PLC程序员处理各
2、种程序提供了一个简单而又功能强大的途径,它的编程和调试基于完善的环境和高级编程语言(类似与Visual C+)。2.1 PLC-1131-3 DS功能简介工程文件的结构:工程文件的后缀名为pro,在新工程中建立的第一个程序结构单元(Program Organization Unit)将被自动命名为PLC_PRG,这个程序结构单元就类似于C语言中的主程序。在PLC_PRG中可以调用各种函数及功能块,而函数和功能块都属于程序结构单元。PLC-1131-3 DS能够区分在同一工程中的不同对象:程序结构单元(POU)数据类型(data types) 资源(resources)工程的设置:1) 首先应该
3、设置PLC的输入输出以保证工程中使用的地址的准确性。2)接着建立解决问题的程序结构单元3) 选择适当的语言编写程序4) 写好程序之后,对程序进行编译去除程序中的所有错误。工程的测试:当工程之中的所有错误被去除之后激活仿真模式,就是与仿真PLC连接,与此同时将工程下载到PLC中,这样 PLC-1131-3 DS就处于在线方式了。现在能以适当的顺序测试工程了,手动改变输入变量的值,观察输出是否正确。用PLC-1131-3DS调试程序 当程序发生错误时,你可以设置断点。当处理发生中断时,你就可以及时的在断点处检查所有工程变量的值。工作在单步方式(singlestep)下,可以检验程序的逻辑错误。 你
4、可以强制输入或输出变量的值。使用流控制(flowcontrol)可以知道哪些程序段已经执行。采样轨迹(SamplingTrace)显示变量在长时间的变化过程曲线。整个工程可以以文本文件的形式导出。总而言之 PLC-1131-3 DS对于PLC编程是一种完善和方便的工具。2.2 PLC-1131-3 DS基本概念此节包括一些重要的概念帮助你熟悉PLC-1131-3 DS2.2.1工程的组成工程 (Project)一个工程包括了PLC程序中所有的对象,工程中包含了如下对象: 程序结构单元 POUs 数据类型 data types 资源 resources 库函数 libraries程序结构单元(P
5、OU)函数(Functions), 功能块(function blocks)和程序(programs)都是程序结构单元(POUs)。每个POU包括了定义变量和程序主体两个部分。程序主体用IEC编程语言编写,其中包括:指令表 (IL)结构文本 (ST) SFC FBD 梯形图(LD).PLC-1131-3 DS 支持所有的标准IEC程序结构单元。POUs之间能够相互调用,但是不允许递归调用.函数(Function)当定义函数的时候,不要忘记函数中必须含有返回值的数据类型,也就是说在函数名的后面必需紧跟冒号和一个数据类型。下面是一个正确的函数定义:FUNCTION INDUAL :INT 就是说函
6、数名被用作输出变量。函数定义的以关键字FUNCTION开始,以END_FUNCTION 结尾。Example in IL of a function that takes three input variables and returns the product of the first two divided by the third:Image 0.1: Functionbmc bild2_1.bmpx Example of a function in IL函数没有任何的内部条件,就是说当用相同的输入变量时就会得出相同的结果(输出)。x Examples for calling up th
7、e function described aboveExamples for calling up the function described above:in ST:Result := Fct(7, 2, 4);程序(Program)程序是一种程序结构单元,在运行过程中返回一定数量的值。程序在整个工程中都可以被识别。bmc bild2_8.bmpx Example of a program程序能够被调用,但不允许在函数中调用程序。如果在程序结构单元中调用程序时程序的返回值有变化,这些变化将保持到下一次程序调用,即使程序程序是从其它程序结构单元调用的。程序由起始关键字PROGRAM开始,EN
8、D_PROGRAM结束。.x Examples of calls of the program described abovein ST:PRGExample;Res := ;If the variable PAR from the program PRGexample is initialized by a main program with 0, and then one after the other programs are called with above named program calls, then the RES result in the programs will h
9、ave the values 1, 2, and 3. If one exchanges the sequence of the calls, then the values of the given result parameters also change in a corresponding fashion.PLC_PRGPLC_PRG 是一个特殊的预先定义的程序结构单元,任何工程都必须含有这个特殊的程序。每次循环的过程中调用一次PLC_PRG 。在新工程建立之后第一次执行 Project Object Add 命令时,程序结构单元对话框中的初始输入项就是名为PLC_PRG的程序类型。注
10、意: 不要删除或者重命名PLC_PRGResources设置和组织工程所需的资源:全局变量 Global Variables PLC设置 PLC Configuration 任务配置 Task Configuration 采样轨迹 Sampling Trace 观察和接收管理器Watch and Receipt Manager 库函数(Libraries)库函数是一个标准的函数库,可供程序进行调用。第三章 结构文本格式编程语言在此手册中编程语言以 结构文本编程指令为例,其它的指令格式不作详细介绍。结构文本编程指令(Structured Text)包括了一系列的编程语句,如条件语句 (IF.TH
11、EN.ELSE),循环语句(WHILE.DO)等等。下面就是一个结构文本指令格式的一段小程序IF value 7 THENWHILEvalue 8 DOvalue := value + 1;END_WHILE;END_IF;3.1 表达式表达式指操作数被赋值后返回一个确定值的结构。表达式由运算符和操作数组成,操作数可以是常数、变量 、调用函数或则其它表达式。3.2 表达式的计算根据各种运算符优先级别依次运算得到最后的结果。具有最高优先权的运算符最先计算,接着计算第二优先级别的运算符. 直到得出最后结果。具有相同优先级别的运算符按照从左到右的顺序计算。下面给出结构文本的运算符:运算符符号优先级别
12、括号(表达式)最高函数调用函数名 (参数)求幂*求反-NOT乘除求余*/MOD加减+-比较,=等于不等于=逻辑与AND异或XOR逻辑或OR最低优先级3.3 结构文本格式编程格式指令指令类型例子赋值 (Assignment) A:=B; CV := CV + 1; C:=SIN(X);调用功能块或者函数的返回值(Calling a function block and use of the FB output)CMD_TMR(IN := %IX5, PT := 300);A:=CMD_TMR.Q返回 (RETURN) RETURN;IF (条件)D:=B*B;IF D0.0 THENC:=A;E
13、LSIF D=0.0 THENC:=B;ELSEC:=D;END_IF;CASE(分支)CASE INT1 OF1:BOOL1 := TRUE;2:BOOL2 := TRUE;ELSEBOOL1 := FALSE;BOOL2 := FALSE;END_CASE;FOR(循环)J:=101;FOR I:=1 TO 100 BY 2 DO IF ARRI = 70 THEN J:=I; EXIT; END_IF;END_FOR;WHILE(循环)J:=1;WHILE J= 100 AND ARRJ 70 DO J:=J+2;END_WHILE;REPEAT(重复)J:=-1;REPEAT J:=J
14、+2;UNTIL J= 101 OR ARRJ = 70END_REPEAT;EXIT(退出)EXIT;Empty instruction(空指令);用结构文本编程格式编写的程序与其它格式的编程语言相比出错概率低,编写的程序具有可读性高的特点。Instruction in Structured Text赋值运算 (Assignment operator) 此操作将右边表达式的结果赋给左边的操作数。符号为 :=例:Var1 := Var2 * 10;调用功能块(Calling a function block)结构文本编程格式通过在功能块名后面的括号里分配参数值来调用功能块的功能在下面的例子中通
15、过分配参数IN和PT的值调用一定时器功能块,它的结果变量的值被赋给变量A 。CMD_TMR(IN := %IX5, PT := 300);A:=CMD_TMR.Q返回指令(RETURN instruction )返回指令用来结束函数调用,当条件满足时返回主程序条件指令(IF instruction)使用IF指令检验是否满足条件,当条件满足时执行相应的的指令语法:IF THEN ELSIF THEN .ELSIF THEN ELSE END_IF;里面的内容是可选的 。如果的返回值为真 (TRUE),那么只有被执行,而其它的指令不执行。否则检验的返回值是否为真,这样连续判断的返回值,直到返回值为
16、真时执行对应的指令。如果执行到最后表达式的返回值也没有为真,那么执行。例:IFtemp17THENheating_on := TRUE;ELSEheating_on := FALSE;END_IF;这段程序控制加热功能的开启和关闭,当温度高于17度时不加热,当温度低于17度时就加热。分支指令(CASE instruction) 使用分支指令可以将一些具有相同条件变量的指令结合在一个结构中语法:CASE OF: .:ELSEEND_CASE;CASE指令根据下面的模式处理程序: 如果的值为,那么执行中的指 令。 如果没有相应的的值,那么执行 如果需要几个不同的变量值执行相同的指令,那么可以将几个
17、变量值写在一起用逗号隔开,后面接需要执行的指令。例:CASE INT1 OF1, 5:BOOL1 := TRUE;BOOL3 := FALSE;2:BOOL2 := FALSE;BOOL3 := TRUE;ELSEBOOL1 := NOT BOOL1;BOOL2 := BOOL1 OR BOOL2;END_CASE;循环指令(FOR) DO 使用FOR循环指令可以重复程序处理的过程。语法:整形变量INT_Var :INT;FOR := TO BYEND_FOR;中的内容可选的. 只要中的计数值不大于就重复执行 中的指令。在执行指令之前就检验这个条件,如果条件得不到满足就不执行中的指令。当指令被
18、执行一次之后就增加中的相应值。当得到大于的条件时就停止循环。例:FOR Counter:=1 TO 5 BY 1 DOVar1:=Var1*2;END_FOR;Res:=Var1;我们假设Var1的初始值为1,那么循环结束时变量 Var1的值为32。循环指令( WHILE loop)WHILE循环指令的用法与FOR循环指令相似,它们的不同之处在于WHILE循环的判断条件有些不同,它可以是任何布尔表达式。也就是说只要满足你给定的条件时,就执行循环指令。语法:WHILE END_WHILE;只要的返回值为真TRUE,也就是条件满足的时候,将重复执行 ,直到 的返回值为假FALSE。如果在第一次判断
19、条件时就不满足,那么没有执行一次指令循环就结束了。当的返回值始终为真时,指令就无限的循环执行下去,进入死循环状态。这在编程时要尽量避免。例:WHILE counter0 DOVar1 := Var1*2;Counter := Counter-1;END_WHILEWHILE循环和REPEAT循环在某种意义上来说比FOR循环更实用,因为在某种情况下我们不能确定循环的次数,在这种情况下只能用WHILE循环指令或者REPEAT循环指令。但是FOR循环指令的循环次数是一定的,所以用FOR循环指令编程可以避免死循环的出现。循环指令(REPEAT loop)REPEAT循环指令不同于WHILE循环指令的地
20、方在于指令执行条件的判定顺序,REPEAT循环指令在判断条件之前就执行指令,也就是说REPEAT循环指令至少可以执行一次而不考虑判定条件。WHILE循环指令就不同,可能指令一次也不执行就终止循环。语法:REPEAT UNTIL END_REPEAT; 当的返回值为真时,就是说判定条件满足的时候就终止循环。如果在第一次检验的时候满足条件,那么整个循环只执行一次。如果条件始终得不到满足,进入死循环状态,编程时需尽量避免这种情况的发生。例:REPEATVar1 := Var1*2;Counter := Counter-1;UNTILCounter=0END_REPEAT;退出指令(EXIT inst
21、ruction)如果EXIT指令出现在FOR、WHILE、REPET循环指令里面的时候,循环将不考虑中断条件是否满足就无条件中断正在进行中的循环。第四章 PLC编程界面、环境和命令4.1 主窗口打开 PLC-1131-3 DS的主窗口之后,你可以看到下列元件(从上到下)菜单栏工具栏(可选) 对象管理器;有程序结构单元(POUs)选项卡、数据类型(Data types) 选项卡、资源(Resources) 选项卡对象管理和编程区域之间的分隔条编程区域 消息窗口(可选)状态栏(可选)菜单栏(menulbar)菜单栏位于主窗口的最上面,包括所有的菜单命令工具栏(toolbar)通过工具栏可以快速选择
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC中文手册与结构化文本编程 PLC 中文 手册 结构 文本 编程
限制150内