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时:不能先使用,再赋值。不适用于自锁线圈。不适用于上升,下降沿
留言列表