概述背景数据块,又称实例数据块(DI,Instance Data block),是西门子工控产品PLC s7-300/400当中,基于PC/PG编程软件Step 7(以下简称S7)中的一类数据存储区域。
S7工程是由主循环块OB1,及其调用功能、功能块,以及各种中断组织块(OB)构成:
·组织块(OB)
·功能(FC)
·系统功能(SFC)
·功能块(FB)
·系统功能块(SFB)
S7程序包括逻辑块和数据块。相比于FC,FB带有一个存储区,也就是说,有一个局部数据块被分配给FB块,这个数据块被称为背景数据块。
生成一个背景DB一个FB的时间标记要比其背景DB更新,即在用户生成一个背景数据块之前,相应的FB必须已经存在。
现有FB10,欲为其生成背景DB10,方法有二:
·如果某个FB已经创建,则可在调用时,自动生成一个背景DB。
call FB10,DB10 系统弹出对话框“实例数据块DB10不存在。是否要生成它?”提示是否为FB10创建其背景DB10。
·在块目录里插入数据块,在“常规-第1部分”分页栏中的“名称和类型”框输入DB10,从“共享的 DB”、“实例 DB”下拉列表选择后者,并指明所属数据块为“FB10”。
背景DB结构FB中有一个局域变量表和块参数。局域变量表里有:IN(输入参数)、OUT(输出参数)、IN_OUT(输入输出参数)STAT(静态参数)、TEMP(临时数据)。其中IN、IN_OUT、OUT为接口参数,将来直接体现在生成的FB块左右两侧,而STAT、TEMP为内部参数。除了TEMP参数外,其他类型的参数都将体现在背景DB中,意味着可以通过背景DB传递参数。
FB定义的接口参数直接决定了其背景DB的结构。背景DB块中变量数据列表,包括标号、地址、声明、名称、类型、初始值、实际值、备注,8个字段。地址从0.0,依据每一个变量的声明及类型依次分配,先IN、OUT,后IN_OUT,最后为STAT。背景DB的变量都是其所属FB的映射,承担传递数据,背景DB不能被其它块引用。
调用背景DB·FB调用不同背景DB
一个FB可以调用不同的DB,这对于模块化编程时非常有好处的。类型相同的多个控制对象可以生成一种FB,针对各个对象的不同控制要求,可以调用不同的背景DB。
如:call FB10,DB10
call FB10,DB11
call FB10,DB12
·多重背景DB
FB中可以定义变量的数据类型为另一FB。例如在FB20中定义Motor1、Motor2变量为FB10类型,而FB10的背景数据块为DB10。