酷德网

Kx-m3酷自造发布!
查看: 94|回复: 0

CoDeSys和TIA的FB/FC的区别

[复制链接]
  • TA的每日心情
    奋斗
    2017-12-16 07:07
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2018-8-17 08:47:09 | 显示全部楼层 |阅读模式
    虽然CoDeSys 和博途 都是基于IEC61131-3 的标准,但是两者之间还是有很大区别的。特别是对FB FC 的处理上,个人认为是最大的区别。
    在CoDeSys中,FB FC 的区别是按输出的类型和个数区分的,而在西门子博途中,是按有无背景数据块来区分的。由于西门子博途应用广泛,本篇就介绍下 在CoDeSys中 FB FC 的区别,这次就以计算圆的面积做个例子。
    我们在程序中分别建立一个 FB 和FC,它的功能相同,都是计算圆的面积 FC
    41ee9b4daedc151c84fc3c838b881bf4.jpg
    FB
    9ab6b98dc00e2a6807cc1d975ae983ca.jpg
    在CoDeSys 中 FC 是函数(FUNCTION)的意思,和高等数学中的函数是一个意思。FB 是功能块(FUNCTION_BLOCK )的意思。FB 和西门子博途中的FB 可以认为是等同的。在FC 中,是没有输出函数的,因为它的名字就是输出,在程序中调用如下
    e294a45e74b57265b7f92f0a3919298f.jpg FB FC 在程序中的调用
    很明显看到,FB 定义了输出 而FC 的输出就是FC 块的名字。注意 FB 块上的S_Circle_FB_0 在CoDeSys中俗称功能块型变量,学名实例。可以理解为博途中的背景数据块,它最直接的应用就是引用输入输出的,比如S_Circle_FB_0.Square,通过一个点来引用功能块的输出变量。所以,CoDeSys和西门子博途的FB 可以认为是一样的,区别就是FC。因为FC 只有一个输出,如果我们还要计算圆的周长,就要用两个FC,但是用一个FB就可以实现。

    b6f03e7a0c6fbbdc6f8c4c58db6ce3f5.jpg 如上图,这就是一个计算圆的周长和面积的FB,它是有两个输出的。在程序中调用如下
    c8cc5b2bd68ed1805058366880dda884.jpg
    还有一个问题就是 如何保存数据,这是CoDeSys和博途最大的区别。在CoDeSys中,由于没有数据块的概念,所以对数据的保存完全依赖变量。在定义变量时,将它定义为RETAIN型,数据就会掉电保持,默认是非RETAIN 型的。         
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|小黑屋|手机版|Archiver|酷德论坛 ( 苏ICP备16065247号 )|网站地图

    GMT+8, 2018-11-13 11:00 , Processed in 0.278037 second(s), 22 queries , MemCache On.

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

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