codesys讲义-2iec编程基础_第1页
codesys讲义-2iec编程基础_第2页
codesys讲义-2iec编程基础_第3页
codesys讲义-2iec编程基础_第4页
codesys讲义-2iec编程基础_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WAGO-I/O-PRO

CAA

是基于WAGO-I/O-SYSTEM

750

系列可编程现场总线控制器(PFC)的编程开发与可视化图形

工具

。WAGO-I/O-PRO

CAA符合IEC

61131-3国际标准,提供标准的开发环境与基于该标准的6种程序设计语言:梯形逻辑程序设计语言(LD)指令列表程序设计语言(IL)顺序功能图程序设计语言(SFC)功能块程序设计语言(FBD)结构化语句程序设计语言(ST)流程功能图程序设计语言(CFC)WAGO-I/O-PRO

CAA功能:丰富的程序功能指令WAGO-I/O-PRO

CAA

提供了位逻辑运算、整数与浮点数运算、定时器与计数器功能、比较与赋值功能、移位与循环功能、数据类型转换功能、

PID功能等大量丰富的程序功能指令。此外,用户还可以根据特定需要编写自己的功能块、子程序。离线程序仿真到PFC中,方便用户对程序的测试与修改并节省用户应用程序可在计算机中进行仿真执行,无须将其了开发时间。监视在程序离线仿真或联机运行的过程中,用户可以在WAGO-I/O-PROCAA中以文本或图形的方式监视程序运行状态及数据变化情况。与调试在程序离线仿真或联机运行的过程中,用户可以通过在程序中设置断点、逐步执行程序、手动为变量赋值的方式对程序进行

与调试。多任务管理WAGO-I/O-PROCAA提供了多任务管理功能,复杂的应用系统可以划分为多个任务,任务的执行取决其优先级与执行条件,降低了系统的响应时间。开发环境系统要求:CPU:In

Pentium或更高操作系统:MS-WINDOWS

95MS-WINDOWS

NT

4.0MS-WINDOWS

2000MS-WINDOWS

XP内存:

16MB

RAM

Windows

95)64MB

RAM

(WindowsNT)10MB本机硬盘空间鼠标2倍速以上光驱RS232串行口通讯电缆RS232IPC:758-870,266MHzPFC:

750-8XX运行环境:第一讲POU

的基本概念第二讲程序设计语言梯形图LD第三讲程序设计语言功能块FBD第四讲程序设计语言指令列表IL第五讲结构化文本ST第六讲IEC运算符POU

是程序组织单元(Program

Organization

Unit)的简称。变量部分程序指令部分POU由函数(Function)、功能块(Function

Block)、程序(Program)三种类型组成。POU由变量部分组成部分和程序代码每一个POU包含两部分:变量部分与程序指令部分。程序指令部分

由六种语言(IL、LD、SFC、FBD、ST、CFC)之一编写。程序(Program)是为了完成某项任务而编写的语句序列,是一组指令的集合。程序是唯一可执行的POU,是逻辑执行的主体。程序可以通过任务组态来激活,也可以通过其它程序来调程序可以被调用。程序中所有变量的数据在被调用执行后保留直至下一次执行。PLC_PRG

在用户建立一个新项目时由系统自动加载。PLC_PRG是项目中系统预定义的一个特殊的程序。PLC_PRG每一循环周期被系统调用执行一次,相当于一个单任务程序的主程序。当用户在项目中进行了多任务管理的相关设置后,系统可以不需要PLC_PRG

。否则,用户不要删除PLC_PRG或改变其程序名。变量

部分:PROGRAM

PRGExampleVAR_OUTPUTPAR:INT;END_VAR程序指令部分:LD

PARADD

1ST

PARPOU的类型-程序(Program)与PLC_PRG程序的调用在IL中调用:CAL

PRGExampleLD

PRGExample.PARST

ERG在ST中调用:PRGEXample;ERG:=

PRGEample.PAR;程序(Program)POU的类型-程序(Program)与PLC_PRG功能块(FunctionBlock)是预先编好的、实现某种运算的程序。功能块在执行时,输入量可以是一个或多个值,输出量可以是一个或多个执行结果。功能块以调用其实例(Instance)的方式执

行。功能块的实例需在POU的变量

部分进行

。实例可以

为局部实例或全局实例。功能块实例的输入输出变量可以在POU中设置,

变量在调用时对于用户是不可见的。变量

部分:FUNCTION_BLOCK

FUBVAR_INPUTPAR1:INT;PAR2:INT;END_VARVAR_OUTPUTMULERG:INT;VERGL:BOOL;END_VAR程序指令部分:输入变量输出变量MULERG=PAR1*PAR2LD

PAR1MUL

PAR2PAR1=PAR2STMULERGVERGL=TRUELDPAR1EQPAR2PAR1≠PAR2STVERGLVERGL=FALSEPOU的类型-功能块(Function

Block)功能块的实例*)变量并赋初值*)程序

部分:PROGRAM

PLC_PRGVARINSTANCE:FUB;

(*ERG:INT:=0;

(*QUAD:BOOL;END_VAR在IL中调用:CAL

INSTANCE(PAR1:=5,PAR2:=5)LD

INSTANCE.VERGLST

QUADLD

INSTANCE.MULERGST

ERG在ST中调用:INSTANCE(PAR1:=5,PAR2:=5);

QUAD:=INSTANCE.VERGL;ERG:=INSTANCE.MULERG;在程序中

名为INSTANCE的功能块FUB

的实例,乘积的结果保存在变量ERG中,比较的结果保存在变量QUAD中。功能块(Function

Block)POU的类型-功能块(Function

Block)函数(Function)也是预先编好的、实现某种运算的程序。函数在执行时,会针对一系列特定的输入,产生一个输出结果,这个输出结果被赋给函数本身,称为返回值。函数只能被其它POU

调用,函数本身不能单独执行。在

一个Function后,需要指定该Function所返回的数值的数据类型。Function的名字为该Function的输出变量结果。变量

部分:FUNCTION

Fct:

INTVAR_INPUTPAR1:INT;PAR2:INT;PAR3:INT;

END_VAR程序指令部分:LDPAR1MULPAR2Fct=(PAR1*PAR2/PAR3)DIVPAR3STFctINT:function返回的数据类型Fct:

Function输入变量POU的类型-函数(Function)result=(7*2/4)在IL中调用:LD

7FCT

2,4ST

Result在ST中调用:Result:=Fct(7,2,4);函数(Function)POU的类型-函数(Function)POU

的调用有两种方法:••被其它已经调用的POU来调用。通过任务配置来调用,这种方法仅限于程序调用。当程序中没有进行任务配置时,系统会自动调用主程序PLC_PRG。POU的组成程序。••POU

的调用有两种方法:程序可以调用函数、功能块和其它功能块可以调用函数和其它功能块。函数可以调用函数。POU的调用POU

的组成

。所有的POU

都包含一个

部分和一个代码部分。代码部分可以选用IEC

标准编程语言的一种或几种来编写。不同性质的POU,其标题名称也不相同。第一讲POU

的基本概念第二讲程序设计语言梯形图LD第三讲程序设计语言功能块FBD第四讲程序设计语言指令列表IL第五讲结构化文本ST第六讲IEC运算符LD

是梯形图(Ladder

Diagram)的简称。LD

是一种图形化的编程语言。用LD

可以方便地构造逻辑运算。LD

主要由触点、线圈、功能块和连接线等编程元件组成。是LD通过水平线和垂直线连接成平面网状图。一般称最左边的垂直线为“能量线”,其状态真(TRUE)。各编程元件以一定的规则互相连接,最终连接到这条能量线上,形成一个个“节”、“段”或“网络”,完成特定的逻辑运算。梯形图

LD介绍元素:标识:注释:常开触点—|

|—如果指定地址信号状态为“1”,则触点闭合,反之触点断开。常闭触点—|/|—如果指定地址信号状态为“1”,则触点断开,反之触点闭合。输出线圈—(

)—线圈前运算结果为“1”,输出状态为“1”,反之输出状态“0”。置位输出线圈—(S

)—线圈前运算结果为“1”,输出状态为“1”,反之信号状态不变。复位输出线圈—(

R

)—线圈前运算结果为“1”,输出状态为“0”,反之信号状态不变。串联结构:相当于位逻辑的“与”运算。并联结构:相当于位逻辑的“或”运算。输出线圈不允许串联结构梯形图

LD介绍当新

触点、线圈时,标记文本缺省值为“???”。点击文本输入可以所要的变量或常量。或者,可以使用输入助手(快捷键F2),直接从变量列表中选择输入。梯形图

LD-窍门1在梯形逻辑程序设计语言中允许以图形的方式使用系统运算符与功能块,运算符与功能块可以在梯级网络中间使用(如图1),也可以在梯级网络右侧以“使能”的方式使用(如图2)。图1注:在此种方式下,要求运算符或功能块所连接的变量为布尔型。图2注:“EN”为该运算符或功能块的使能端,如果前面运算结果为“1”,则使能端激活,程序执行;反之程序不执行。梯形图

LD-

功能块/运算符&使能功能块/运算符当新

触点、线圈时,标记文本缺省值为“???”。点击文本输入可以所要的变量或常量。或者,可以使用输入助手(快捷键F2),直接从变量列表中选择输入。梯形图

LD-窍门第一讲POU

的基本概念第二讲程序设计语言梯形图LD第三讲程序设计语言功能块FBD第四讲程序设计语言指令列表IL第五讲结构化文本ST第六讲IEC运算符功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,

不同的功能模块有不同的功能。它有

若干个输入端和输出端,通过软连接

的方式,分别连接到所需的其它端口,完成所需的运算或控制功能。FBD包含一系列程序网络,每个网络以图形的方式表示逻辑或数算,POU的调用。功能块

FBD使用FBD:对当前运算符添加输入端

对当前运算符或添加输出端运算符赋值指令(Assign),用于为运算符或POU的输入/输出变量或其他变量赋值。跳转指令(Jump)返回指令(Return)运算符或POU的输入/输出变量或其他变量(布尔型)取反变量置位/复位功能块

FBD功能块

FBD-使用输入/输出命令对于某些运算符,输入/输出的数量是变化的,有时需要扩展运算符的输入。例如,ADD

可两个数相加,也可以是

的数相加。选中输入,

的新输入成为功能块的第一个输入。如果要一个位于末端位置的输入,能块本身。

的输入缺省值为文本“???”。点击选中文本,改变成所需要的常量必须选或变量。用户使用“Insert”下拉菜单中的相关命令可以在梯级网络中运算符、POU、赋值指令、跳转指令、返回指令和程序注释等,使用“Extras”下拉菜单中的相关命令可以设置变量取反,变量置位/复位。注意:用户应用程序的开发可以在IL、LD、FBD3种程序设计语言之间相互切换。操作方法:选中所需切换的

POU,使用“Project”-“Object”-“Convert”命令,在“ConvertObject” 框中选择所需切换的程序设计语言。功能块

FBD-编程语言切换功能块

FBD-示例本程序可以产生“1s断2s通”的脉冲信号。第一讲POU

的基本概念第二讲程序设计语言梯形图LD第三讲程序设计语言功能块FBD第四讲程序设计语言指令列表IL第五讲结构化文本ST第六讲IEC运算符IL语言是用布尔助记符来描述程序的一种程序设计语言。IL语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。IL语言程序由一系列指令构成,每一条指令包括一个操作符与一个或多个操作数。在程序的每一行起始出可以设置(Label),在每行指令后可以添加注释文本(Comment)。下面是一个用IL

语言实现的简单运算程序。举例:操作a符:操作数:注释:LDTRUE(*将“TRUE”存入缓存*)ANDNBOOL1(*取“BOOL1”反,与“TRUE”做与运算*)JMPCmark(*如果结果为“True”,跳转到“mark”*)LDNBOOL2(*取“BOOL2”反STERG存入变量“ERG”中*)mark:LDBOOL2(*取“BOOL2”STERG存入变量“ERG”中*)修饰符:C:用于JMP、CAL、RET语句,如果该指令前的表达式结果为“真”,则执行该指令。N:用于JMP、CAL、RET语句,如果该指令前的表达式结果为“假”,则执行该指令。N:在其他语句中用于操作数(布尔量)取反。操作符、操作数、函数与功能用户使用“Insert”下拉菜单中的相关命令可以在指令中块。ANDN位逻辑“与”运算ORN位逻辑“或”运算XORN位逻辑“异或”运算ADD“加”运算SUB“减”运算MUL“乘”运算DIV“除”运算操作符可用修饰符:注释:LDN将操作数结果写入缓存STN将运算结果写入操作数S置位布尔操作数R复位布尔操作数操作符可用修饰符:注释:LT小于EQ等于NE不等于LE小于等于GT大于GE大于等于JMPC,N跳转到“Label”CALC,N调用程序或功能块RETC,N返回本程序可以产生“1s

断2s

通”的脉冲信号。第一讲POU

的基本概念第二讲程序设计语言梯形图LD第三讲程序设计语言功能块FBD第四讲程序设计语言指令列表IL第五讲结构化文本ST第六讲IEC运算符结构化语句程序设计语言是用结构化的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作的一种程序设计语言。结构化语句描述程序设计语言是一种类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,

常采用结构化语句描述程序设计语言

来描述控制系统中各个变量的关系。ST与IL同属于基于文本的程序设计语言,但是由于ST采用了类似于高级语言的程序结构,在开发较复杂的应用程序时更为简便快捷。赋值表达式运算符优先级:括号函数调用(…)最高指数运算取负数EXPT-取反NOT乘除运算*

,

/求余数MOD加减运算+

,

-比较运算<

,

>

,

<=

,

>=等于=不等于<>逻辑与AND逻辑异或XOR逻辑或OR最低优先级注意:优先级相同的运算符运算顺序为“从左至右”。赋值语句赋值语句(:=)用于将右边的数值赋值给左边的运算数(变量、地址)。例如:Var1

:=

Var2

*

10;变量Var2的十倍数值被赋值给变量Var1。在ST中调用功能块在ST中调用功能块,需要功能块的实例名,然后在圆括号中给参数赋值。通过下面的例子可以看到,调用定时器并给参数IN和PT赋值,然后将结果变量Q的值赋给变量A。同IL一样,结果变量由功能块名,点号和变量名表示。TON(IN

:=

TRUE,

PT

:=

t#300S);A:=CMD_TMR.Q在ST中调用功能块IF语句IF

语句用于检查某个执行条件,并根据具体条件执行相应的指令。IF

语句语法结构:IF

<Boolean_expression1>

THEN<IF_instructions>;{ELSIF

<Boolean_expression2>

THEN<ELSIF_instructions1>;:ELSIF

<Boolean_expressionn>

THEN<ELSIF_instructions

n-1>;ELSE<ELSE_instructions>;}END_IF例子:IF

temp<17THENELSEheating_on

:=

TRUE;heating_on

:=

FALSE;END_IF;CASE语句CASE语句可以根据同一个条件变量的数值变化而去执行多个不同的程序段。CASE

语句语法结构:CASE

<Var1>

OF<Value1>:

<instruction1>;<Value2>:

<instruction2>;<Value3,Value4>

:<instruction3>;…<Value

n>

:

<instruction

n>;ELSE

<ELSE

instruction>;END_CASE例子:CASE

INT1

OF1,5:BOOL1:=TRUE;BOOL3:=FALSE;2:BOOL2:=FALSE;BOOL3:=TRUE;ELSEBOOL1:=TRUE;BOOL2:=TRUE;BOOL3:=TRUE;END_CASE;FOR循环语句FOR

循环语句用于编写可重复执行的程序。FOR

语句语法结构:Var:

INT;FOR

<Var>

:=

<Init

_Value>

TO<End_Value>

{

BY

<Step_Size>

}

DO<instructions>;END_FOR例子:FORCounter:=1TO5

BY

1

DOVar1:=Var1*2;END_FOR;Erg:=Var1;(*Var1is

32*)WHILE循环语句WHILE循环语句的用法和FOR循环语句类似,只是WHILE循环语句的中断条件可以是任何的逻辑表达式。即只要满足给定的条件,循环就会一直被执行。WHILE语句语法结构:WHILE

<Boolean_expression><instructions>;END_WHILE例子:WHILE

counter<>0

DOVar1:=Var1*2;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论