分享

西门子PLC编程中FB与FC的区别

 金玉满堂jjnla8 2020-10-27

FB是功能块,带有背景数据块  FC是功能,或者说函数。FB,FC块都是子程序,它们都可以调用其它FB,FC块,也可以被OB,FB,FC块调用。

FB使用背景数据块作为存储区,FC没有独立的存储区,可以使用全局DB或M区   
FB有静态变量STAT,FC由于没有自己的存储区因此不具有STAT。
FB,FC都有临时变量TEMP,但临时变量的值不能存储。

IN变量是外部输入的,只能被本程序块读,不能被本程序块写;OUT是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;IN_OUT输入输出变量 本程序块和其他程序都可以读写这个引脚的值。TEMP临时变量,是暂时存储数据的变量。
STAT在PLC运行期间始终被存储。S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。

对于,多次调用的程序块,FB块建议更换调用不同的背景DB;FC则需要确保使用的存储地址不重复,即每次调用,块中调用的地址不重复。    当使用IEC定时器,计数器灯有背景数据块的指令或者子程序时,需要在块接口定义背景数据块,每调用一次FB或FC,使用不同的DB块。

临时变量可以在组织快OB、功能FC和功能块FB中使用,当块执行时它们被用来临时存储数据,一旦块执行结束,堆栈的地址将被重新分配用于其它程序块使用,此地址上的数据不会被清零,直到被其他程序块赋予新值。

在使用临时变量TEMP时:不能先使用,再赋值。不适用于自锁线圈。不适用于上升,下降沿

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多