白话说电气西门子的fbfc说明分析举例.docx

白话说电气西门子的fbfc说明分析举例.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08] 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08] 白话说电气西门子的FBFC说明分析举例 关于西门子的FB和FC FC,功能。因为是一个功能,如果这个功能在多处都能用到,那么这段FC就具有通用性。我们在程序的其他地方就可以调用,简化代码,这个是FC的模块式的作用。当然,FC也可以作为我们被调用的一个子程序,用OB1去调用他,以实现结构化编程。 因此,得出结论,FC可以干两个事: 第一,实现功能化编程。比如,我们有大车,小车,起升3个结构。我们就可以定义3个FC,跟这3个机构一一对应,然后用OB1依次调用。为什么这样做,为什么不都放在OB1里。你也可以放OB1里,对段数比较少,很简单的项目就把代码都放在OB1里。如果功能,机构多了,最好还是分开来,这样有利于程序的可读可调,更符合规范。否则一个小故障都会导致你把OB1翻个遍,会很麻烦的。找准故障机构,在相应的FC里再去找会少看很多代码。这个道理比较简单。 第二个事,就是我上面说的模块化编程,我的描述不是很准确,因为是自己的总结。这个意思就是我们平常讨论说的,把所有功能都写到一个块里,然后去调用整个块。FC可以干这个事(当然,FB也可以干,区别后面说),新建好FC,确定好输入,输出接口,然后编写逻辑,一个FC就搞定了。大家可以写一些简单的功能,来感受下FC。写好FC之后,在主程序OB1或者其他FC里就可以调用该块,程序界面右边“FC BLOCK”里就有该块,相信做到这里的话大家都应该知道怎么做了。我这里要说明其他问题。关于FC的编写,这里就不得不说一些概念性的东西,FC是不带背景数据块的,就这句话。因为FC是不带背景数据块,所以我们在调用FC时,关于FC这些逻辑的计算完全靠的是我们输入输出接口上的这些地址位,给FC提供数据来源。我们在编写FC的时候,需要注意的是,如果需要中间变量,考虑使用temp,临时变量满足需要。但是使用临时变量需要注意的是,在一个周期没有完成扫描时,A段程序调用FC1,使用了临时变量X,改变了其值。那么B段程序再次调用FC1时,X的值已经被改变了。在下个周期,才会释放。这点要非常小心。这就是跟FB无法比的,没有地址来存放数据。编程的时候,尽量多考虑使能。同样,M寄存器也要慎用,比如,你FC里用了这个位表示中间状态。现在第一次调用FC时,改变了的值,为ON。现在又第二次调用FC,的值已经为ON了,显然这不是我们想要的。虽然你调用了两次,分别赋了两组输入输出变量,但是你FC内的M终究是内存里的那个M,你调用无数次都是跟这个M打交道。不知道我说清楚了没。所以一般不要用这样呀的中间变量,一定要用时,多考虑通过使能来改变调用时序。同样,像定时器啊什么的,如果我们要使用,都需要定义一个in接口,为FC内的定时器提供一个实实在在的通道。第一次调用,我们用T21输入。第二次调用,我们用T22输入。这样就不会出错。否则就会像M那样出错。这个部分很重要。如果没听懂,不要紧。继续听FB。两个比较下,应该就很更清楚了。 FB,功能块。可以干的事,就是FC能干的第二个事。只能干这个事,为什么要特别些呢,干嘛不让FC一个人搞定就行了。是因为FB功能更强悍些,每次调用他都需要一个DB来供他为逻辑计算存放数据。而不像我之前说的FC,需要输入输出接口地址来作为数据来源。每次调用FB时,需要指明一个DB,两个相互配合。而DB中存放的数据,也可以供全局享用。比如,有一个电机的加速功能块,作用是调节电机的加速。我们需要输入的参数是加速时间,最高速度两个参数,然后计算得出速度给定。这个时候我们最好用FB。现有电机1,输入加速时间2,最高速度20。那么2,20这个值放在哪呢,我们调用FB时,就可以放到DB电机1里去了。现有电机2,加速时间3,最高速度30,。我们仍然调用这个FB,3和30放DB电机2里就可以了。如果用FC,也可以做这个块。但是,没有DB来存放这些数据,就很不方便,也就失去了通用性。 记住一点,简单的功能集合用FC,复杂的用FB。保准不错。

文档评论(0)

风伴柔云 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档