PLC高效编程及定义程序结构.docx

上传人:李司机 文档编号:7150566 上传时间:2024-06-15 格式:DOCX 页数:8 大小:71.31KB
返回 下载 相关 举报
PLC高效编程及定义程序结构.docx_第1页
第1页 / 共8页
PLC高效编程及定义程序结构.docx_第2页
第2页 / 共8页
PLC高效编程及定义程序结构.docx_第3页
第3页 / 共8页
PLC高效编程及定义程序结构.docx_第4页
第4页 / 共8页
PLC高效编程及定义程序结构.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《PLC高效编程及定义程序结构.docx》由会员分享,可在线阅读,更多相关《PLC高效编程及定义程序结构.docx(8页珍藏版)》请在三一办公上搜索。

1、一、数据块及其数据结构用户程序运行所需的大量数据或变量存储在数据块中,数据块也是实现各逻辑块之间交换、传递和共享数据的重要途径。对于CPU314,用作数据块的存储器最多8KB,用户定义的数据总量不能超过这个限制。对于数据块必须遵循先定义后使用的原则。1、定义数据块定义内容包括数据块号及块中的变量(包括:变量符号名,数据类型以及初始值等)。数据块在使用前,必须作为用户程序的一部分下载到CPU中。2、访问数据块访问时需要明确数据块号和数据块中的数据类型与位置。根据明确数据块号的不同方法,可以用以多种方法访问数据块中的数据。(一)直接在访问指令中写明数据块号,如:1.DB10.DBW01.DB10.

2、DBW2XOWTDB10.DBW4(二)“先打开后访问”OPNDB51.DBW10OPNDB10TDBW20域题1由于有两个数据块寄存器(DB和Dl寄存器),所以,最多可以同时打开两个数据块。一个作为背景数据块,数据块的起始地址存储在Dl寄存器中;另一个作为共享数据块,数据块的起始地址存储在DB寄存器中。打开背景数据块,在调用FB时可以自动实现,由于调用FB时使用Dl寄存器,所以,一般不在FB程序中用OPNDln指令打开数据块。3、背景数据块和共享数据块任何FB、FC或OB均可读写存放在共享数据块中的数据。背景数据块是FB运行时的工作存储区,它存放FB的部分运行变量。调用FB时,必须指定一个相

3、关的背景数据块。作为规则,只有FB块才能访问存放在背景数据块中的数据。一般情况下,每个FB都有一个对应的背景数据块,一个FB也可以使用不同的背景数据块。如果几个FB需要的背景数据完全相同,为节省存储器,则可以定义成一个背景数据块,供它们分别使用。二、数据结构基本数据类型数据结构形式I复式数据类型复式数据类型名称类型说明日期时间DATE_ANDJnME长度8Byte字符串STRING占用256Byte数组ARRAY可定义6维数组构造STRUCT由多种数据类型组成的数据集合辽我/1、用户数据类型STEP7允许将基本或复式组合成用户”自己定义的数据类型,这种类型称为用户数据类型(UDT)。用户数据类

4、型必须首先单独建立,并存放在称为UDT的特殊数据块中。建立用户数据类型的目的,是为了将UDT作为一种数据类型使用,以方便定义多个结构相同的构造变量。2、功能块编程及调用一个程序由许多部分(子程序)组成,STEP7将这些部分称为逻辑块,并允许块间相互调用。被调用块可以是FB,FCSSFB,SPC调用块可以是OB,FB,EC,SFB,SFC功能块由两个主要部分组成:一部分是每个功能块的变量声明表,变量声表声明此块的局部数据;另一部分是逻辑指令组成的程序,程序要用到变量声明表中给出的局部数据。当调用功能块时,需要提供块执行时要用到的数据或变量,也就是将外部数据传递给功能块,这称为参数传递。3、变量声

5、明表(局部数据)局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量)两种。参数是在调用块和被调用块间传递的数据。静态变量和临时变量是仅供逻辑块本身使用的数据。局部数据类型变量名类型说明输入参数In由调用逻辑块的块提供数据,输入给逻辑块的指令输出参数Out向调用逻辑块的块返回参数,即从逻辑块输出结果数据I/O参数In_Out参数的值由调用块的块提供,由逻辑块处理修改,然后返回静态变量Stat静态变量存储在背景数据块中,块调用结束后,其内容被保留状态变量Temp临时变量存储在1.堆栈中,块执行结束变量的值因被其它内容覆盖而丢失宓以色4、逻辑块局部数据的数据类型在变量声明表

6、中,要明确局部数据的数据类型,这样操作系统才能给变量分配确定的存储空间。局部数据可以是基本数据类型或是复式数据类型,也可以是专门用于参数传递的所谓“参数类型”。参数类型大小说明定时密2Byte在功能块中定义一个定时器形参,调用时赋予定时器实参计数器2Byte在功能块中定义一个计数器形参,调用时赋予定时器实参块:Block_FBBlock.FCBlock_DBBlock_SDB2Byte在功能块中定义一个功能块或数据块形参变量,调用时给功能块类或数据块类形参赋予实际的功能块或数据块编号指针6Byte在功能块中定义一个形参,该形参说明的是内存的地址指针.例如,调用时可给形参赋予实参:P*M50.0

7、,以访问内存M500.0ANY10Bvte当实参的数据未知时,可以使用该类型以以病STEP7对分配给块局部数据(在变量声明表中)的数据类型(基本、复式、参数)是有一定限制的。声明类型基本类型复式类型参数类型定时器计数器块指针ANYOB局部变厚【有效的数据类g三Temp可以可以可以FB局部变量有效的彳战据类西In可以可以可以可以可以可以可以Out可以可以In-Out可以可以Stat可以可以Temp可以可以可以FC局部变量有效的数据类为In可以可以可以可以可以可以可以Out可以可以可以可以In-Out可以可以可以可以Tcmp可以可以rWSTEP7允许用物理地址(绝对地址)或符号地址或常数等形式作为

8、实参给形参赋值,但对于不同的形参类型,STEP7限制了赋值形式。声明类型绝对地址符号地址块局部符号常数基本数据类1In可以可以可以可以Out可以可以可以不可In-Out可以可以可以不可复式数据类1In不可可以可以不可Out不可可以可以不可In-Out不可可以可以不匕麻弟5、功能块编程与调用举例对功能块编程分两步进行:第一步工作是定义局部变量(填写局部变量表);第二步是编写要执行的程序。写功能块程序时,可以两种方式使用局部变量:使用变量名,此时变量名前缀“#,以区别于在符号表中定义的符号地址,增量方式下,前缀会自动产生;直接使用局部变量的地址,这种方式只对背景数据块和1.堆栈有效。例一:二分频器

9、二分频器是一种具有一个输入端和一个输出端的功能单元,输出频率为输入频率的一半。(1) FC1的变量声明表(2) FC1梯形图程序Network1:#inp#etf#outpIl1()I#inp#outp-Il(3)OBI调用梯形图程序Network1:例二:时钟脉冲发生器使用定时器实现自由设定时钟脉冲发生器功能脉冲占空系数1:1。(1)FC1变量声明表AddressDcl.NameType0.0inTIME_noTIMER2.0out1.ampWORD4.0in_outPU1.SE_BYTEINT6.0in_outStepOB1.(2)FC1梯形图程序Network1:#SSPO#timeno(SEjIS5T#250MSNetwork2:#TIMEno#StepOIP()INetwork3:#StepOn001JMP)-INetwork4:京PU1.SEBYTE-一1-ADDJENENO#PU1.SEBYTN1OUT-eIN2Network5:11OO1MOVEENENO#PU1.SE_BYTETNOUT卜#1.amp核龙塔划(3)OBI调用梯形图程序Network1:FClENFZCTl-TIME-no1.amp-Q0MWlO-PU1.SE_BYTEMO.0-StepO三、可编程序控制器应用设计P1.C系统设计步骤:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号