中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛 艾睿光电产品体验活动 兆华电子手持式工业声学成像仪
工控论坛首页 PLC论坛 → 浏览主题: 0625 【万泉河】PLC程序块FB和FC如何选?
发表新帖 回复该主题
回帖:6个,阅读:347 [上一页] [1] [下一页]
* 帖子主题:

0625 【万泉河】PLC程序块FB和FC如何选?

分享到
1951
万泉河.
文章数:839
年度积分:501
历史总积分:1951
注册时间:2009/12/4
发站内信
发表于:2022/6/26 22:16:42
#0楼
0625  【万泉河】PLC程序块FB和FC如何选?

即, 当做PLC程序的时候,完成同样一个任务,有可能有2种技术路线,而且有可能FB和FC都可以实现,然而很多新手就会疑惑,我开始起步的时候到底应该选择哪一个, 选择的依据是什么?

这个问题通常非常简单,很多有一定经验的PLC工程师甚至认为不能算作一个正式的问题,不需要回答,咋选, 我觉得该用FB的时候自然用FB, 觉得该用FC的时候自然用FC咯!

而其实这个问题又非常复杂。倒不是因为原理复杂,而是针对不同的提问者,不同的应用领域,都可以有不同的回答。

比如如果针对标准化学习营的学员, 提出这样的问题, 回答会是,在做类库的时候用FB, 而在做耦合调用的时候用FC。然而也不限定, 也仍然可以互换。

所以是个复杂的,多答案的问题。

本文对此问题做些探讨。

首先, FC的名称为功能,或者叫做函数。 然而在程序中有两种完全不同的应用。分别是实现数学计算功能的函数,以及实现程序框架划分的调用。其中前者,往往有输入输出参数, 而后者则没有参数,只是用于被OB简单罗列式的调用。

在以前,S5时代的时候, PLC内部块有FB, FC和PB等。 其中PB则代表了上述的后者。 到了S7以及TIA PORTAL以后, SIEMENS取消了PB的定义,统一用FC来实现了。 因而为本问题带来了一定程度的混乱干扰。

而在西门子之外的其它品牌的系统平台中, 往往还会有一个用于在OB1循环调用之下的POU程序块,其实相当于了PB。

所以当下的这个问题,当提问者提出FB/FC不知如何选的时候,就已经同时提出了2个问题,即,

在做函数功能时选择FB还是FC?
在程序框架调用时选择FB还是POU功能的FC?

这两个问题需要分别单独回答。

对于前一个问题

涉及的是FB和FC的功能区别,即FB带有静态变量,而FC不带。 而比较最终实现的功能,FC实现的是任何时刻,只要输入管脚相同, 则输出管脚得到的数值一定是相等的。而FB则不然。 在输入管脚值相同的情况下,有可能因为静态变量存储区的存储计算值不同,而输出值不同。最典型的是PID应用。

那么问题的答案便是,如果当下的控制任务,有需求在相同的输入参数得到不同的输出值的话, 那就用FB。 反之则用FC。

这个时候如果强用FC, 是否能够实现同样的功能?也可以。然而需要显性地增加INOUT管脚,人为地部署存储区域。 这其实要增加调用时的复杂程度, 是以牺牲程序的简洁为代价的。 而在增加了INOUT管脚之后, 不同工况下的INOUT管脚数值不同,上述规律总结仍然正确。

对于后一个问题

通常都是选择使用FC实现。 FC(POU)中的内容就是实现对FB的调用和实例化。 每一次调用,都要生成一个IDB。 如果是梯形图调用,数量少的情况下, 这不存在什么问题。 PORTAL中每次调用时,输入IDB的符号名称,然后系统自动分配DB数字号,即可。

然而,如果调用数量多, 产生IDB多的情况下,再简单重复用梯形图调用,效率就很低,就会希望用SCL来实现。 然而,需要提前生成所有的IDB。 然后SCL程序中调用才可以。

PORTAL的程序块列表中的工位1-5这些,看起来是在一个列表表格中,然而却并不支持与EXCEL的简单对拷,所以并不能用批量复制的方式建立。

我曾经研究了使用生成源文件的方法,通过在EXCEL中批量生成所有IDB的源文件,然后在PORTAL程序中通过对源文件编译,实现了批量生成IDB。 这一技巧,在专著《PLC标准化编程原理与方法》P170页中有过讲解。

这个方法比较笨拙,是实在没有更好的办法的情况下比较尴尬的实现路径。

技术总在进步中, 烟台方法作为一种开放性的程序架构思想,也一直在持续发现与吸收更好的技术路线和方法。

近期,在针对官方LBP例程的直播讲座中,从其应用中领会到了更容易的方法。即用FB而不是FC, 调用库函数FB的时候IDB不再使用全局DB,而是使用多重背景。

把实例建立在FB的变量区有2个好处,其一是将来只需要为这个大FB建立一个IDB即可, 省掉了数量庞大的IDB。 其二便是变量区格式和EXCEL格式是兼容的,可以互相复制。 即即便在位号名称没有连续规律性的情况下, 也可以直接从EXCEL中复制而来。

这一点,我在制作80工位双联开关控制公用指示灯的系列例程中就充分利用了。 所有平台, 除非其不支持FB嵌套调用,都尽量使用FB做框架FC/POU,而不再是简单使用FC了。 这个系列的例程看起来非常简单,实现的功能简单,过程方法也很简单,很多人简单看一眼并没有发现有什么新奇之处,其实我自己还是有很多细节的收获在其中的。每一个平台的例子过程中都有新发现。要和我一样的心得,只简单浏览答案是远远不够的,只有自己动手实践了,收获才是自己的。另外我还布置了一些作业,未来也会在这个例子基础上产生更多的想法,会布置更多的更有意思的作业需求。

所以从中可以对标准化烟台方法了解到更多细节。

而对于没有做到标准化架构应用的普通的应用,我给同行们的建议也是,尽量使用FB来做程序,哪怕它并不是库,哪怕它最终只会调用一次,只生成一个IDB。

好处是,在这一个特定的程序块范围内, 需要的辅助变量,以前可能会用M或者全局DB的变量, 那么现在可以使用STATIC静态变量,IEC定时器TON也可以直接建立在其中,从一个最简单意义上实现了不使用M和T。

系统中有多个程序模块, 对应的就是多个FB, 互相之间建立的变量表互不干扰,相当于各自维护一个完整的变量空间。

我在十多年前,烟台方法还未诞生之前, 辅导一个同事做项目的时候, 当时是一个设备改造项目, S7-300PLC新增加了独立的功能模块,与原来的功能全部没有关系。 然而改造前的项目源程序打开之后, 对原来的工程师使用了多少M和T,还有多少资源段可以使用,就感觉很乱。 我就提议说,直接建一个FB好了。 你新加的所有功能就在一个FB1里面实现,增加的程序只有1个FB+IDB,系统的全局资源你一概不用,自然也不需要担心干扰到其系统原来的功能。

所以, 对于标准化学习营的学员,文中的建议可以参考。 而对于刚刚步入自动化行业,刚开始从事学习PLC的新手,建议则是, 在不懂区别, 不知如何取舍的情况下,都尽量选用FB即可。 可以享用FB带来的便捷。

而至于副作用, 或许会有人恐吓你说什么用FB多占用一个IDB,多耗费一些资源啥的,则完全不必理会。在资源的消耗方面,差别微乎其微。 而且,你作为一个新手,基本没可能用到这样极致的资源耗尽的地步。等将来你真有机会遇到的时候, 你早就全懂了,这个问题对你也早就不是什么问题了。



0619 【万泉河】论一个好的程序框架的重要性

0618 【万泉河】(多品牌PLC)80个工位双联开关控制公用灯示例

0615 【万泉河】PLC程序中SR逻辑的本质

0613【万泉河】一言不合就开讲

0612 【万泉河】浅议PLC程序中SR和RS逻辑的区别

0610 【万泉河】S7-1200 PLC中实现WINCC报警

0527 【万泉河】PLC程序中启保停的本质

【万泉河】面向企业的PLC系统设计编程标准化培训

图解WANQ-Y1更改WIFI网络


一位新加入三菱标准化的学员


0503 【万泉河】王者归来:完美报表谢幕后又要回来了。

0428 【万泉河】PLC编程:谈虎色变双线圈

0426 【万泉河】论PLC程序的可移植性(上):关于移植的定义

0417 【万泉河】三菱标准化程序打印版

0416 【万泉河】PLC标准化编程烟台方法的本质是颠覆

《PLC标准化编程原理与方法》已出版发行, 各大网上书店有售。

MCGS-OPC UA初体验

0407 【万泉河】汽车行业标准SICAR本质上是对自动化工程师的羞辱

0402 【万泉河】论工控行业中工艺的重要性

0407 SICAR程序获取方式

附件:0625  【万泉河】PLC程序块FB和FC如何选?.pdf
[本地下载]
PLC标准化编程
31664
知道一点
文章数:19327
年度积分:2362
历史总积分:31664
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/6/27 10:00:29
#1楼
作为一个科普文章,发在PLC板块,是不是应该先声明试用那家的PLC?不是所有读者都清楚身世,就像atpid指令,在没有pid参数的情况下,带有atpid指令的PLC只要执行一边就OK了,否则就要试,可atpid不是谁家PLC都有。
快乐 幸福 自由 比什么都重要
1648
xiao007
文章数:251
年度积分:263
历史总积分:1648
注册时间:2001/4/11
发站内信
发表于:2022/6/28 9:16:57
#2楼
盲猜西门子。
10772
蛇会大学
文章数:4151
年度积分:814
历史总积分:10772
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2022/6/29 0:12:39
#3楼
我更喜欢用FU,FB和FC从来没用过

为了给国产更多发展机会,我的采购清单直接排除西门子
敏问找算丁亏楼累
敏问找算哭哲累嘿
敏问够算恐哈做累揍忍没催妹
比漏累伤醒更八音舍黑
我晕能以身问晕陪笨累
21423
goldage
文章数:12635
年度积分:1673
历史总积分:21423
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2022/6/29 21:45:19
#4楼
楼上啊,国产工控板也是有很多的兼容西门子200的板卡的,价格便宜,很多性能也基本稳定
8960
逍遥的久鸣
文章数:3723
年度积分:673
历史总积分:8960
注册时间:2017/3/6
发站内信
2018论坛热心网友
发表于:2022/6/30 0:02:40
#5楼
回复 #3楼 蛇会大学
汇川PLC值得推广一下,感觉很香表情
1549
janrainy
文章数:389
年度积分:555
历史总积分:1549
注册时间:2020/5/30
发站内信
发表于:2022/7/1 14:11:36
#6楼
学习了。
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2022 Gkong.com, All Rights Reserved

78.0005