您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > STEP7数据块的作用
STEP7数据块的作用我想问一下在STEP7中建立数据块(DB)有什么作用,变量表又有什么作用,它们只有监控变量的作用吗?修改会对项目有影响吗?STEP7中数据块(DB)和WICC中变量地址属性中数据DB有关联吗?问题补充:如果我在WINCC中建立一个DB类型变量如DB0.DD0,那么我需要在STEP7中定义该变量吗?它的定义有范围吗?答复数据块是用作建立临时数据的,在与WINCC连接的时候可以关联,整个STEP7都可以关联,在程序中M的点是有限制的,而DB可以随着内存卡改变大小。变量表就是一个调试工具。回答者:小浩浩-新生第1级2010-12-2114:32建立数据块是用来集中地存取数据,便于对数据进行操作和管理.分为共享数据块和背景数据块.其中背景数据块是依附于与之相对应的功能块FB使用的.变量表可以用来批量地监管变量.在变量表中还可以对变量的状态和数值进行修改.修改后程序中引用的变量的值为修改后的值.便于对程序进行调试和强制.STEP7中数据块(DB)和WICC中变量地址属性中数据DB有关联吗?没错,它们是关联的,它们的地址相对应,DB代表数据块变量在wincc中被缩写例如:STEP7中DB0.DBD0对应wincc中DB0.DD0回答者:smarteye-中级技术员第6级2010-12-2114:401.数据块DBDB用来存储用户数据及程序的中间变量,为全局变量。DB的最大容量,S7-300为32KB,S7-400为64KB。DB可分为共享数据块(ShareDB)、背景数据块(InstanceDB)和用户自定义数据(UDT)类型的数据块。共享数据块可作为所有程序使用的全局变量,在CPU允许的条件下,一个程序可创建任意多个DB,每个DB的最大容量为64KB。默认条件下,共享数据块为掉电保持,在其属性菜单中选中“NonRetain”可以更改为掉电数据丢失。如CPU中无足够的内部存储空间保存数据,可将指定的数据保存到共享数据块。存储在共享数据块中的数据可被其它任意一个块调用(全局变量)。这一点和背景数据块不同,背景数据块只能被指定的功能块(FB)使用,保存在背景数据块中的数据只能在这个功能块中有效。背景数据块与FB和SFB关联,也是全局变量。背景数据块和共享数据块相比,只保存与FB或SFB接口数据区(Temp)相关的数据。背景数据块中有一种比较特殊的数据块,称为多重背景数据块。有关多重背景数据块的用法和使用注意事项请参看《怎样使用多重背景数据块》。基于UDT的数据块为全局变量,提供一个固定格式的数据结构,便于用户使用。2.声明变量表(又称局部变量声明表)的组成,变量声明表由参数(IN、IN_OUT、OUT)和局部变量两大类组成,局部变量又包括静态变量(STAT)和临时变量(TEMP)两种。参数是调用快(FB)和被调用快(背景数据块)间传递数据,是逻辑块的接口。静态变量和临时变量是仅供逻辑块(这里指FB)本身使用,不能用作不同程序块之间的数据接口,也就是说静态变量仅用于本功能块FB,并且只能在FB的背景数据块中使用,它在PLC运行期间始终被存储。S7将静态变量定义在对应的背景数据块中,当被调用快(FB快)运行时,能读出或修改静态变量(从对应的DI块);被调用快运行结束,静态变量的数据保留在数据块中。由于FB有自己的背景数据块,所有的参数在其背景数据块中都有对应的存储位置,静态变量随着FB打开起作用,随着FB块调用结束而关闭,而且STAT(静态变量)的数据必须在调用FB快时同时打开对应的背景数据时才能修改或读出,所以你是无法在线修改STAT中的数据,也没有什么快捷方法。(转帖:=62575&cid=1029)3.参考:《在WinCC里调用STEP7的变量》:下载=2044在回答你的问题之前,有必要对变量声明表有一个基本了解。在STEP7中有两种用来定义符号地址的表格形式:符号表(共享符号)和变量声明表(局域符号),其本质都是为了建立绝对地址与符号地址之间的内在联系,但表格针对的对象不同。共享符号是整个程序所使用的共同符号(用于全局符号定义的表为符号表);而局域符号是某一特定逻辑快(OB、FB、FC等)所使用的临时性标记,只能在特定的逻辑块中进行临时性定义。用于临时性的、局域符号定义的表被称为变量声明表,又称局部变量声明表。局部变量声明表分为参数(输入参数IN、输出参数OUT、输入/输出参数IN_OUT)和局部变量。局部变量又包括静态变量(STAT)和临时变量(TEMP)两种。参数可在调用块(逻辑块,块中的形参)和被调用块(功能FB有自己自动生成的背景数据块DI,而功能FC只能使用共享数据块,提供调用块的形参的实际参数值,与调用块形式参数一一对应,数据类型必需一致)。静态变量和临时变量是仅供逻辑块本身使用数据,不能用作不同程序块之间的数据接口。通过以上分析,我们知道所谓局部变量(包括静态变量和暂态变量)都是指对特定的逻辑块而言的,局部变量只是在它所在的块中有效,离开具体的逻辑块谈上述变量是没有意义的,你不能在其他块中调用利用变量(包括静态变量和暂态变量),这是与共享符号不一致的,共享符号可以被任意块调用。在每个逻辑块的前上面部分就是变量声明表的区域,在变量声明表中,用户声明本块中专用的变量,即局部变量包括块的形参和参数的系统属性。你可以在不同的块中使用相同的局部变量符号不会产生冲突。静态变量(STAT)在PLC运行期间始终被存储。S7将静态变量定义在背景数据块(针对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中;临时变量(TEMP)是一种在块执行时,用来暂时存储数据的变量,这些数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。临时变量可以在组织快OB、功能FC和功能块FB中使用,当块执行时它们被用来临时存储数据,一旦块执行介绍,堆栈重新分配,临时变量中的数据将丢失。在程序块中,如果在块的变量声明表中有局部变量符号,编程是STEP7软化自动在局部变量名前加一个“#”号,如果要访问与局部变量重名的全局变量(在符号表中定义),则全局变量必须使用双引号(如“Symbol”)
本文标题:STEP7数据块的作用
链接地址:https://www.777doc.com/doc-2860844 .html