0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

调用功能块(FB或SFB)

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-04-20 15:35 次阅读

调用功能块(FB或SFB)

Calling Function Blocks (FB or SFB)

当调用功能块时,能够使用共享实例数据块和当前活动的实例数据块的本地实例区域。

用本地实例调用一个功能块与用共享实例调用在数据存贮的方法上不同。此时数据不保存地特定的数据块,但在产生调用的功能块的实例数据块里。

语法(Syntax)

b58aba88-bf88-11ec-9e50-dac502259ad0.png

作共享实例调用(Call as a Shared Instance)

通过说明以下内容在一个调用语句中进行调用:

功能块或系统功能块的名称(FB或SFB的标识符),

实例数据块(DB标识符),

提供的参数(FB参数)。

对于共享实例的函数调用能够是绝对方式的或符号方式的。

b5c25cb8-bf88-11ec-9e50-dac502259ad0.png

作本地实例调用Call as a Local Instance

通过说明以下内容在调用语句中进行调用:

本地实例名称(标识符)

提供参数(FB参数)

对于本地实例的调用总是符号方式的。必须在调用块的声明部分声明符号名。

b5f644d8-bf88-11ec-9e50-dac502259ad0.png

在VASS标准中的使用:

b61eb80a-bf88-11ec-9e50-dac502259ad0.png

b64b6c06-bf88-11ec-9e50-dac502259ad0.png

调用FB660程序.

b66e564e-bf88-11ec-9e50-dac502259ad0.png

脉冲控制上升沿.

提供功能块参数

Supplying FB Parameters

调用一个功能块(作为共享的或本地实例)时,必须提供以下参数:

输入参数

输入/输出参数

当调用一个功能块时,输出参数不必说明。

对定义的FB参数赋值的语法(Syntax of a Value Assignment for Defining FB Parameters)

调用共享的或本地实例时,FB参数说明的语法是一样的。

b698a4f8-bf88-11ec-9e50-dac502259ad0.png

提供参数时应用以下规则:

参数能够以任意顺序。

实际参数和形式参数的数据类型必须匹配。

用逗号分开赋值。

在功能块调用时输出赋值是不可能的。声明的输出参数的值存贮在实例数据中。在那它能够被所有功能块存取。要读取输出数据,必须在功能块中定义存取。

记住ANY数据类型和POINTER(指针)数据类型的特殊性能。

执行块之后的结果(Result after Executing the Block)

执行块之后:

传递的实际参数不改变。

传递的和修改的输入/输出参数的值被修订;基本数据类型的输入/输出参数例外。

输出参数能够被调用块从共享实例数据块或本地实例区读取。

例子(Example)

带一个输入和一个输入/输出参数赋值的调如下:

FB31.DB77(I_Par:=3, IO_Par:=LENGTH);

VASS标准程序中的调用,调用功能块使用出发.

If (R_TRIG_SK90_ZutrittAnfo.Q Or R_TRIG_K90_ZutrittAnfo.Q)

And Not xHM_K90_ZutrittAnfo And ST_BA.K90_AnfoSG = WORD#0

OR MASTER_DIAG_STAT_REG_PF Or R_TRIG_Anfo_Off_Halt.Q Then

xHM_K90_ZutrittAnfo := True;

R_TRIG_SK90_ZutrittAnfo.Q:= False;

End_If;

------激活请求停止

------------------------END-------------------

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6786

    浏览量

    88705
  • 函数
    +关注

    关注

    3

    文章

    4273

    浏览量

    62291

原文标题:Supplying FB Parameters

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STEP7-5.5-F程序中FB修改后的变化

    STEP7-5.5-F程序中FB修改后的变化
    发表于 04-07 11:46 504次阅读
    STEP7-5.5-F程序中<b class='flag-5'>FB</b><b class='flag-5'>块</b>修改后的变化

    FILTER单元无法过滤出重复的故障及受影响的功能块

    电子发烧友网站提供《FILTER单元无法过滤出重复的故障及受影响的功能块.pdf》资料免费下载
    发表于 02-21 10:26 0次下载
    FILTER单元无法过滤出重复的故障及受影响的<b class='flag-5'>功能块</b>

    西门子博途:SCL中FB模块的结构

    模块FB是用于控制执行器和单元的功能模块执行某一功能的其他FB。 VASS库中不可用
    发表于 01-18 10:38 1251次阅读
    西门子博途:SCL中<b class='flag-5'>FB</b>模块的结构

    SCL中FB模块的结构

    模块FB是用于控制执行器和单元的功能模块执行某一功能的其他FB
    的头像 发表于 01-17 09:22 640次阅读
    SCL中<b class='flag-5'>FB</b>模块的结构

    西门子博途:属性- 隐藏参数

    在 LAD FBD 中调用时,可隐藏参数。刚开始时,隐藏的参数不可见;但可通过框底部边缘处的小箭头进行显示。
    发表于 01-16 09:30 1615次阅读
    西门子博途:<b class='flag-5'>块</b>属性- 隐藏<b class='flag-5'>块</b>参数

    西门子博途示例:设置优化访问

    默认情况下,为 S7 - 1200/1500 的所有新创建的启用优化访问。可为 OB、FB 和全局DB设置访问。对于背景DB,设置来自各自的
    的头像 发表于 01-15 10:41 4845次阅读
    西门子博途示例:设置优化<b class='flag-5'>块</b>访问

    西门子博途:手动更新调用

    选择不一致的调用,然后在上下文菜单(鼠标右键)中选择函数“Update”。 然后会出现一个窗口,其中显示旧的(不正确的)和新的调用(带有已删除的“ActiveNotAck”参数)。
    的头像 发表于 12-25 11:12 2685次阅读
    西门子博途:手动更新<b class='flag-5'>块</b><b class='flag-5'>调用</b>

    西门子博途:创建实例数据

    有三种方法可以创建实例数据: 当第一次调用FB时,用户指定应该使用的FB的实例DB。这将打开一个对话框,在该对话框中可以手动指定符号名称,如果需要,还可以指定实例DB的数量。
    的头像 发表于 12-25 11:10 823次阅读
    西门子博途:创建实例数据<b class='flag-5'>块</b>

    西门子博途:监控呼叫路径

    全局数据FB、FC) 只有调用具有选定全局数据时,才会显示的程序状态。
    的头像 发表于 12-25 11:08 322次阅读
    西门子博途:监控呼叫路径

    西门子博途:调用FB(实例化)

    功能块(FC)相比,功能块FB)具有存储器。这意味着功能块被分配了一个本地数据,即所谓的实例数据
    的头像 发表于 12-25 11:04 2744次阅读
    西门子博途:<b class='flag-5'>调用</b><b class='flag-5'>FB</b>(实例化)

    西门子博途: 功能块、组织介绍-从设备上传

    请注意,加载单个时,变量其它可能引用的所需不会与各个一起加载。在加载过程中,将根据名称重新分配对变量和的引用。加载操作完成之后,检
    的头像 发表于 12-10 16:06 2506次阅读
    西门子博途: <b class='flag-5'>功能块</b>、组织<b class='flag-5'>块</b>介绍-从设备上传

    我们应如何查看某一次函数调用时的内部变量呢?

    模块化设计的思想是把一些相似的功能(比如电机控制、阀控制)设计成函数函数,这样就可以反复调用
    的头像 发表于 11-17 09:09 437次阅读
    我们应如何查看某一次函数<b class='flag-5'>块</b><b class='flag-5'>调用</b>时的内部变量呢?

    如何查看及更改函数/函数调用环境

    模块化设计的思想是把一些相似的功能(比如电机控制、阀控制)设计成函数函数,这样就可以反复调用。其优点是:使程序架构更加清晰,避免重复编写相似功能
    的头像 发表于 11-17 09:08 796次阅读
    如何查看及更改函数/函数<b class='flag-5'>块</b>的<b class='flag-5'>调用</b>环境

    什么是FB功能块?为什么要使用FB功能块?如何制作一个FB功能块

      FB功能块是一种封装了特定逻辑功能的模块。它类似于一个子程序函数,但是它有自己的内部变量和接口。FB
    的头像 发表于 11-09 16:13 3583次阅读
    什么是<b class='flag-5'>FB</b><b class='flag-5'>功能块</b>?为什么要使用<b class='flag-5'>FB</b><b class='flag-5'>功能块</b>?如何制作一个<b class='flag-5'>FB</b><b class='flag-5'>功能块</b>?

    使用可参数化功能块(例如FB20)进行故障评估

    这提供了这样的优点,即不必将外部全局标签传递到FB以用于报警消息检测的内部所需边缘评估和内部所需存储器位。
    的头像 发表于 11-06 09:33 453次阅读
    使用可参数化<b class='flag-5'>功能块</b>(例如<b class='flag-5'>FB</b>20)进行故障评估