请教:FB中的DIX涵义
刘玉蓉
发布于2014-10-28 17:42
1
0
标签:
请教:FB中的DIX涵义
手头有个通用的电机控制块FB,编程语言使用的是梯形图,在程序中出现了几个常开点,标注为DIX4.0 ,DIX4.1 等,我在FB的in,out,in_out,state中没有发现相关标注,我使用交叉索引,查询DB块使用情况,发现DB块显示DB?.DB 4.0和DB?.DB 4.1等,我没这么用过,不知道这是什么用法?请高手指点一下这是什么用法呢?
部分梯形图转换的STL代码如下:
程序段1:
O #CHECK
O #RESET
= #M10
= DIX 4.1
程序段2:
A #M10
= #M11
= DIX 4.0
= #RESETOUT
佳答案
如果你在FB的in,out,in_out,state中没有发现相关标注,我使用交叉索引,查询DB块使用情况,发现DB块显示DB?.DB 4.0和DB?.DB 4.1等,可以肯定你的通用电机块FB使用了多重背景数据块,DI为背景数据块,DIX为背景数据块中某个字节的位号,如DIX4.0为某个背景数据块的第4个字节的0位;完整的数据块调用时使用绝对地址方式为如DI4.DIX4.0就是打开背景数据块为4的字节4中的0位;它实际上相当于两个指令OPN DI4 和L DIX4.0
在建立多重背景数据块时,首先要建立底层功能块FB,再建立上层FB快;如底层功能块FB为FB1(局部背景调用,控制功能块),FB10 为上层功能块,DB3为共享数据块,DB10 为多重背景数据块。在执行菜单命令Inset-S7 Block->Function Block, 创建一个上层功能块时必须在FB10的属性对话框内激活”Multi-Instance capable”(默认),然后在FB10的变量声明表中为FB1的调用声明不同名称的静态变量Stat,数据类型为FB1。如果你不首先建立底层功能块FB,可能就会在定义上层功能块中静态变量Stat的数据类型时出错;
在使用多重背景数据块时应注意以下问题:
首先应生成需要多次调用的功能块;
管理多重背景的功能块必须设置为多重背景功能;
在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量,以被调用的功能块的名称作为静态变量的数据类型;
必须一个背景数据块分配给管理多重背景的功能块。背景数据块中的数据是自动生成的;
多重背景只能声明为静态变量(声明类型为Stat)
关于多重背景数据块的使用,随便买一本关于S7-300编程的书就有具体的例子,都有关于发电机组控制系统设计(使用多重背景),里边有详细的如何建立多重背景。