网站公告:

欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。欢迎光临铖毅科技,我们将竭诚为您服务。

>> 返回     您当前所在位置:首页 > 技术交流 > 正文

西门子S7-300/400的子程序功能块--厦门PLC培训

更新时间:2013-08-14 17:10:00点击次数:1958次字号:T|T
西门子S7-300/400的子程序功能块--厦门PLC培训

西门子S7-300/400的子程序功能块--厦门PLC培训

铖毅PLC培训网站:www.fjplc.com

铖毅公众微信: FJPLC88

西门子S7-300/400的子程序分为功能(Function)和功能块(Function Block)。
    1.功能(FC
    功能是用户编写的没有固定的存储区的程序块,其临时变量存储在局部数据堆栈中,功能执行结束后,不再保存这些数据。可以用共享数据区来存储那些在功能执行结束后需要保存的数据。
    功能与S7-200的子程序的局部变量基本上相同(见下图)。与S7-200的子程序相比,其局部变量多了个返回值(RET_VAL)。返回值实际上属于输出参数。

厦门PLC培训

    2.参数类型
    用于块之间传送数据的形式参数可以定义为12种基本数据类型、5种复杂数据类型(见上图),也可以为块之间传送数据的形式参数定义下列的参数类型:
    1TimerCounter:指定执行块时要使用的定时器或计数器。例如定义功能中的输入变量TON1的数据类型为Timer,两次调用功能时分别设置TON1的实参为T5T6
    2)块:指定用作输入或输出的特定块。例如定义某个输入变量的数据类型为Block_FB,在调用块时指定块地址(例如FB 3)作为实参。
    3POINTER:指针是变量的地址而不是变量的值。POINTER参数类型的形参应为地址,例如P#M50.0。在STEP 7中,指针也可以用地址作实参 (例如M 50.0)
    4ANY:用于将任意的数据类型传递给声明的形参。ANY可用于实参的数据类型未知,或实参可以使用任意数据类型的情况。例如P#DB2.DBX50.0 BYTE 10表示DB 2中的DBB50DBB59ANY也可以用地址作实参,例如DB2.DBW30Q12.5,但是只能指向一个变量。
    5UDT:用户自定义的数据类型。
    3.功能块(FB
    功能块是用户编写的有自己的存储区(背景数据块)的程序块,功能块的输入、输出变量和静态变量(STAT)存放在指定的背景数据块 (DI) 中,临时变量存储在局部数据堆栈中。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。
    4.背景数据块
背景数据块是专门指定给某个功能块(FB)使用的数据块,它是FB专用的工作存储区。
    背景数据块用来保存FB的实参和静态数据,背景数据块中的数据是自动生成的。它们是功能块的变量声明表中的数据(不包括临时变量)。调用功能块时应指定对应的背景数据块。
    5.功能与功能块的区别
    FBFC均为用户编写的子程序,局部变量表中均有INOUTIN_OUTTEMP变量。FC的返回值Ret_Val实际上属于输出参数。下面是FCFB的区别:
    1) 功能块有背景数据块,功能没有背景数据块。
    2)只能在功能内部访问它的局部变量。其他逻辑块可以访问功能块的背景数据块中的变量。
    3)功能没有静态变量(STAT),功能块有保存在背景数据块中的静态变量。
    功能如果有执行完后需要保存的数据,只能存放在全局变量(例如共享数据块和M区)中,但是这样会影响功能的可移植性。如果功能或功能块的内部不使用全局变量,只使用局部变量,不需要作任何修改,就可以将它们移植到其他项目。如果块的内部使用了全局变量,在移植时需要考虑每个块使用的全局变量是否会与别的块产生地址冲突。
    4)功能块的局部变量(不包括TEMP)有初始值,功能的局部变量没有初始值。调用功能时应给所有的形参指定实参。
    调用功能块时可以不设置某些输入、输出参数的实参,此时这些参数将使用背景数据块中的初始值。

   厦门技能培训找厦门铖毅技能培训,厦门PLC培训  厦门PLC自动化培训 厦门三菱PLC培训 厦门西门子PLC培训 厦门视觉系统培训 厦门单片机培训 厦门组态软件培训 厦门触摸屏培训 厦门电工培训 厦门模具设计培训 厦门产品设计培训 厦门有限元分析培训

0 条评论
不想登录?直接点击发布即可作为游客留言。
               合作品牌: