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

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

3天内不再提示

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

jf_61nrsJTz 来源:方正智芯 2023-11-17 09:08 次阅读

模块化设计的思想是把一些相似的功能(比如电机控制、阀控制)设计成函数或函数块,这样就可以反复调用。其优点是:使程序架构更加清晰,避免重复编写相似功能的代码。不过可能会产生一个疑惑:既然PLC的程序是循环执行,当一个功能块被多个外部函数/函数块调用时,我们应如何查看某一次调用时的内部变量呢?这涉及到函数块的调用环境问题,今天这篇文章,我们来介绍下如何查看及更改函数/函数块的调用环境。

我们以函数库中的电机控制块FB5001_MotorControl为例,创建两台电机控制程序。为了使调用路径便于观察,新创建一个函数:motorControl ,将二号电机在该函数中调用,整体代码如下图所示:

8ebee078-84d5-11ee-939d-92fbcf53809c.png

8eccd994-84d5-11ee-939d-92fbcf53809c.png

这样,在OB1和FC1中两次调用相同的函数块FB5001_MotorControl。

在OB1中打开该函数块,转到在线状态:

在函数块的左上方会显示当前调用路径,比如当前示例:Main[OB1]。

在函数块的右上方有一个更改调用环境的按钮,如下图所示:
8edaabc8-84d5-11ee-939d-92fbcf53809c.png

单击该按钮,会弹出[块的调用环境]对话框,我们将调用环境从之前的OB1改成FC1(OB1->FC1),单击确定,如下图所示:

8eefc80a-84d5-11ee-939d-92fbcf53809c.png

假设我们将FC1下的FB5001_MotorControl的信号fuse、start形参置为真(TRUE),如下图所示:

8f002aa6-84d5-11ee-939d-92fbcf53809c.png

可看到调用环境中其内部变量也跟随着变化(TRUE),如下图所示:

8f16d026-84d5-11ee-939d-92fbcf53809c.png

如果我们把调用环境更改成OB1,由于OB1下的FB5001_MotorControl其形参为假(FALSE),因此其内部变量也跟随变化(FALSE),如下图所示:

8f2cb80a-84d5-11ee-939d-92fbcf53809c.png

好了,关于博途环境下如何查看及更改块的调用环境就先介绍到这里。

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

    关注

    5010

    文章

    13277

    浏览量

    463113
  • 电机
    +关注

    关注

    142

    文章

    9003

    浏览量

    145351
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62576
  • 模块化
    +关注

    关注

    0

    文章

    331

    浏览量

    21344
  • 代码
    +关注

    关注

    30

    文章

    4780

    浏览量

    68539
收藏 人收藏

    评论

    相关推荐

    C语言使用函数调用的知识点

    C语言使用函数调用,我们再熟悉不过了,但是函数调用在内存中究竟发生了什么真的清楚吗?只有搞清楚内存里的内幕,才算完全搞懂函数
    发表于 09-07 11:47 832次阅读

    matlab自定义函数调用的方法

    matlab自定义函数调用的方法 命令文件/函数文件+ 函数文件 - 多
    发表于 11-29 13:14 88次下载

    C++教程之函数的递归调用

    C++教程之函数的递归调用 在执行函数 f 的过程中,又要调用 f 函数本身,称为函数的递归
    发表于 05-15 18:00 35次下载

    高效的C编程之函数调用

    14.9 函数调用 函数设计的基本原则是使其函数体尽量的小。这样编译器可以对函数做更多的优化。 14.9.1 减少
    发表于 10-17 16:49 6次下载
    高效的C编程之<b class='flag-5'>函数</b><b class='flag-5'>调用</b>

    为什么中断处理函数不能直接调用不可重入函数

    1 前言 最近在公司维护的项目中碰到一个解决了定位很久的 bug , bug 找到的时候发现犯了很低级的错误——在中断处理函数调用了 printf 函数,因为中断处理函数
    的头像 发表于 02-17 09:33 6009次阅读

    详解python普通函数创建与调用

    函数是一种仅在调用时运行的代码。您可以将数据(称为参数)传递到函数中,然后由函数可以把数据作为结果返回。
    的头像 发表于 03-01 16:32 1857次阅读

    C语言函数调用的形式及过程

    C语言函数调用时的数据传递 在调用有参函数时,主调函数和被调函数之间有数据传递关系。
    的头像 发表于 03-10 14:28 1738次阅读

    什么是函数调用

    函数调用,就是使用我们已经定义好的函数,或者C语言自带的库函数
    的头像 发表于 04-04 17:21 5818次阅读

    PLC FB函数和FB函数如何调用

    对于很多接触到SIMATIC系列PLC的新手玩家来说,例如在S7-1200或者S7-1500中,最常见的三个函数:FC、FB、DB,该如何调用是不太清楚的,包括小文在刚接触这个行业也还是个小白的时候,也不太明白,那时候觉得,只
    发表于 05-24 09:22 2866次阅读
    PLC FB<b class='flag-5'>函数</b><b class='flag-5'>块</b>和FB<b class='flag-5'>函数</b>如何<b class='flag-5'>调用</b>?

    SCL中调用函数的示例

    在此,可插入函数 (FC) 调用函数 (FB) 调用函数
    的头像 发表于 06-06 10:18 2194次阅读

    调用SCL函数-事例

    在以下部分中,将在组织“Main” 中调用 SCL 函数“SCL_Best_before_date” 并互连输入和输出参数。
    的头像 发表于 08-10 09:51 857次阅读
    <b class='flag-5'>调用</b>SCL<b class='flag-5'>函数</b><b class='flag-5'>块</b>-事例

    python定义函数调用函数的顺序

    定义函数调用函数的顺序 函数被定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得
    的头像 发表于 10-04 17:17 1383次阅读

    python函数函数之间的调用

    函数函数之间的调用 3.1 第一种情况 程序代码如下: def x ( f ): def y (): print ( 1 ) return y def f (): print ( 2 )x(f
    的头像 发表于 10-04 17:17 589次阅读

    OP-TEE的内核初始化函数调用

    init_primary_helper函数来完成系统运行环境的建立 ,如果系统支持ATF,则该函数会返回OP-TEE的处理句柄,该处理句柄主要包含 • 各种安全监控模式调用的处理
    的头像 发表于 11-02 18:18 748次阅读
    OP-TEE的内核初始化<b class='flag-5'>函数</b><b class='flag-5'>调用</b>

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

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