电工学习网

 找回密码
 立即注册
查看: 169|回复: 2

西门子S7-1200编程中FB和FC使用问题

[复制链接]
发表于 2019-5-16 12:00:48 | 显示全部楼层 |阅读模式
1、编写程序时,FC可以调用FB吗?还有FB中可以使用全局数据块中的数据吗?
2、OB同时调用FB和FC,但FC中用到FB中处理的结果,这样程序执行过程中会有问题了?
6369355548760471648828436.jpg

回复

使用道具 举报

 楼主| 发表于 2019-5-16 12:00:58 | 显示全部楼层
FC就是用来把FB当成数据的,把FB当成参数传进去。块就是数据,不仅仅是FB。
FB体系越完善,FC就越强大,两者互济。
参数化编程的好处就是,明明是封装,数据却从外面来,轻灵不臃肿。
------------------------------------------------------------------------------------------------
就这个问题,多扯几句,分享一点体会。
如果可以靠纯逻辑把当前的任务解决,就用FC。如果只靠逻辑本身还不行,还必须得另外制造一件新工具,用这个工具才能把任务解决,那就用FB。有些事情用眼前现成的积木就可以搭建,有些则不行(不行的原因:可能是眼前本来就没有几块积木,也可能是虽然有很多积木但都不堪用),那你就得去造新的积木块。
UDT、FB和DB这些封装了数据的东西本身也是数据,而数据依然可以被别的块再封装。FC封装了逻辑,如果把FC当成更大的逻辑体系当中的一个组件,也可以说FC是数据。
“块”就是数据,这才是现在编程中谈到的数据的主旨,更多不是指那些基本数据类型。FB和FC一起用的时候,它们处理的数据,在体系结构中,不是一个层面的。
随着封装进去的越来越多,琐碎的少了,新生的也会越来越多,但层面已经完全不同了。逻辑可以变的轻灵起来,这时候不妨用FC。这么说的话,FB是有点干基础封装的脏活累活的意思。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-16 12:01:08 | 显示全部楼层
    FC是一个过程实现了某种功能,要完整调用,赋予参数的同时就给它指定每个明确的接口地址了(本身无明确的整体入口地址);FB是一个接口实现某种功能并存储了过程中的数据,可调用它的整体入口地址。
    全局数据直接写在顶层的组织块里好了(牵扯全局数据的逻辑是全局的“大事”,不是单纯的私事,处处都可能耦合涉及,直接运行在组织块里效率应该是最高的,逻辑耦合应该是最恰当的),何苦再封装再调用一次(费时费力)。

回复 支持 反对

使用道具 举报

|电工学习网 ( )

GMT+8, 2019-5-24 14:54

Powered by © 2011-2019 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表