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

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

3天内不再提示

对于FC或FB中的临时变量使用

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-11-07 16:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

很多初学者容易将 FC 及FB 相混淆,认为 FB 仅仅是比 FC 多了一个背景数据块,这种认识是非常危险的。在 STEP7 的关于 FC 的描述是这样的:

FC 是一个没有存储空间的逻辑块。FC 的临时变量存储在本地数据堆栈中,这些数据在 FC 执行完毕后将会丢失。为了永久的保存数据,FC 可以使用共享数据块。

由于 FC 没有自己的存储空间,所以必须指定实参给它的参数(这就是为什么 FC 的输入输出管脚必须填写参数的原因)。FC 的临时变量(位于本地数据堆栈中)是无法指定初始值的(由于本地数据堆栈是由系统自动动态使用的)。为了更形象的说明这一点,我们来看下面的例子,此例子对 L 堆栈在程序调用时的分配进行了详细的讲解:

L 堆栈永远以地址“0”开始。在 L 堆栈中,会为每个 FC 提供一定地址空间,作为存放每个块所拥有的固有数据或局部数据。当某个块终止时,那么它的空间随之也被重新释放出来。指针总是指向当前打开块的第一个字节。

运行等级 L 堆栈中的字节数 指针
调用OB1(带有 20 个字节的系统固有数据和局部数据的 10 个附加字节) 30 0
调用 FC1(带有 30 个字节的局部数据)
30 个字节 (OB1) + 30 个字节 (FC1)
60 30
调用 FC20(带有 20 个字节的局部数据)
60 个字节 (OB1 + FC1) +20 个字节 FC10
80 60
调用 FC21(带有 20 个字节的局部数据)
60 个字节 (OB1 + FC1) +20 个字节 FC11
80 60
调用 FC2(带有 50 个字节的局部数据)
30 个字节 (OB1) +50 个字节 (FC2)
80 30
调用 FC30(带有 10 个字节的局部数据)
80 个字节 (OB1 + FC2) +10 个字节 FC20
90 80

由上面的例子可以看出:对于FC20 曾经使用过的系统中 L 堆栈 60-80 区间(FC20 中地址范围为 LB0-LB19)在 FC20 调用结束后,被提供给 FC21 使用(FC21 中地址范围同样为 LB0-LB19)。 对于 FC 的临时变量认识不清晰,用户在对临时变量的使用当中,也经常会出现一些错误,下面将使用一个例子非常直观地说明上面的问题

程序原目的:

在 OB1 在程序中调用FC20 后立即调用 FC21

FC20 中将 20 赋值给临时变量 FC20_TEMP1,将 21 赋值给临时变量 FC20_TEMP2FC21 中将 FC21_TEMP1,FC21_TEMP2 相加

程序分析:我们发现 FC20 中的临时变量曾经出现的数值(20,21)被 FC21 中的临时变量FC21_TEMP1, FC21_TEMP2 得到了,如果直接使用这两个临时变量进行加法操作,可以得到结果 41。对于编程人员来说,临时变量必须要在所在程序段中赋值,而后使用。用户对此例中的 FC21_TEMP1, FC21_TEMP2 必须先做清零处理,否则其在使用前即可能拥有数值。

016556ba-5e77-11ed-a3b6-dac502259ad0.png

结论:对于 FC 或 FB 中的临时变量,不要希望将本次调用的数值可以存储在里面以供下次程序调用使用,因为这些临时变量所使用的 L 堆栈空间在 FC 或 FB 调用结束就释放给系统了,其它后续程序可以任意使用。所以下列用法都是错误的:

将临时变量用于上升/下降沿指令

将临时变量用于自保持逻辑

临时变量未在所在程序段中赋值,直接使用

审核编辑:郭婷

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

    关注

    13

    文章

    4693

    浏览量

    89568
  • 堆栈
    +关注

    关注

    0

    文章

    183

    浏览量

    20420

原文标题:FC 中临时变量的使用:

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    常用变量的介绍

    ,延长了变量生存空间;用在函数上表示仅限当前文件使用 register:将频繁使用的变量放到通用寄存器,避免频繁访问内存,直接从寄存器取值,提高cpu的工作效率;注:只能将局部
    发表于 11-21 07:05

    lc-fc光纤跳线什么意思

    LC-FC光纤跳线是一种两端分别采用LC和FC连接器的光纤跳线光缆,以下是对其的详细介绍: 一、连接器类型及特点 LC连接器: 体积小巧:LC连接器采用模块化插孔(RJ)闩锁机理制成,插针和套筒
    的头像 发表于 10-09 11:03 617次阅读

    fc跳线是圆口还是方口

    FC跳线在连接时需要通过旋转拧紧的方式进行固定,确保连接的稳固性。 应用场景:FC跳线因其连接稳固、抗震动强的特点,广泛应用于需要高稳定性的通信场景,如通信机房、数据中心和光纤配线架等。在这些环境
    的头像 发表于 09-24 18:37 636次阅读

    PLCStatic和Temp变量的区别

    大家好,收到粉丝投稿,让博主讲下Static变量和Temp变量的区别,新入行的兄弟可能会对这两个概念不太能理解。
    的头像 发表于 09-24 14:51 918次阅读
    PLC<b class='flag-5'>中</b>Static和Temp<b class='flag-5'>变量</b>的区别

    在MG51FB9AE MCU,如何使用LDROM的IAP加载程序MCU在APROM中上传程序?

    在MG51FB9AE MCU,如何使用LDROM的IAP加载程序MCU在APROM中上传程序。
    发表于 08-22 06:29

    SC、LC、FC和ST四种类型哪类价格最贵

    在SC、LC、FC和ST四种类型的光纤跳线FC类型的光纤跳线通常价格相对较高,具体分析如下: FC类型的光纤跳线: 特点:采用金属螺纹套筒连接,具有较高的稳定性和抗拉强度,适用于高
    的头像 发表于 07-25 10:16 757次阅读

    FC光纤头有什么作用

    FC光纤头在光纤通信系统扮演着至关重要的角色,其核心作用主要体现在以下几个方面: 一、实现光纤的物理连接 FC光纤头通过其圆形设计和螺纹紧固方式,能够与对应的FC耦合器
    的头像 发表于 06-16 10:14 825次阅读

    FC光纤头和SC光纤头有什么区别

    FC光纤头和SC光纤头在多个方面存在显著区别,以下是对两者的详细比较: 一、外形与结构 FC光纤头: 外形为圆形。 接头内部带有螺纹,通过旋转与FC耦合器相连接,紧固方式为螺丝扣。 通常配有金属
    的头像 发表于 06-16 10:06 2343次阅读

    fc/lc/sc光纤分别是什么头

    ,但却能确保连接的稳定性和可靠性。 应用范围:FC接头常用于光纤配线架,特别是在电信网络,特别是在需要较高连接稳定性的场合,如航空航天等。其外部加强件采用金属套,坚固耐用,可插拔次数比塑料材质的接头多。 SC接头 外观形状:SC接头外壳
    的头像 发表于 05-14 10:20 2427次阅读

    Ansible Playbook变量使用技巧

    在inventory定义的连接变量(比如ansible_ssh_user);优先级第二。
    的头像 发表于 04-15 10:26 672次阅读

    fc-lc光纤是什么光纤

    与LC连接器的定义与特性 FC连接器 定义:FC(Ferrule Connector)是一种圆形带螺纹的光纤连接器,通过螺丝扣进行固定,确保连接的稳固性和防尘性能。 特性: 机械稳定性:螺纹连接设计使其在高振动高冲击环境
    的头像 发表于 04-08 10:01 1627次阅读

    lc-fc光纤是什么意思

    LC-FC光纤指的是一种光纤跳线光缆,它的一端采用LC(Lucent Connector)连接器,另一端采用FC(Ferrule Connector)连接器。以下是关于LC-FC光纤
    的头像 发表于 03-03 10:10 2129次阅读

    西门子TIA Portal函数FC和函数块FB的相互转换

    描述 本文将介绍在西门子 TIA Portal 中使用 Add-In 插件实现函数 FC 和函数块 FB 的相互转换的方法和步骤。 第1步: 添加 PLC 设备。 选择西门子 CPU 1214C
    的头像 发表于 01-15 10:07 3034次阅读
    西门子TIA Portal<b class='flag-5'>中</b>函数<b class='flag-5'>FC</b>和函数块<b class='flag-5'>FB</b>的相互转换

    智慧用电解决方案在临时展会场所的应用

    【摘要】简述了商场临时展会、展摊等场所电气装置用电的特性,针对此类场所隐含的电气安全隐患问题,结合安科瑞智慧用电解决方案,从安全用电管理设备到平台软件等方面介绍了其安全保障技术,以保证此
    的头像 发表于 12-17 08:46 910次阅读
    智慧用电解决方案在<b class='flag-5'>临时</b>展会场所<b class='flag-5'>中</b>的应用

    智能安全配电装置在临时展会场所如何保证用电安全

    安科瑞徐赟杰 18706165067 【摘要】 简述了商场临时展会、展摊等场所电气装置用电的特性,针对此类场所隐含的电气安全隐患问题,结合智能安全配电装置的功能,从用电设备的接地、线路的安装
    的头像 发表于 12-12 09:17 688次阅读
    智能安全配电装置在<b class='flag-5'>临时</b>展会场所<b class='flag-5'>中</b>如何保证用电安全