STEP7数据块的作用

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STEP7数据块的作用
我想问一下在STEP7中建立数据块(DB)有什么作用,变量表又有什么作用,它们只有监控变量的作用吗?修改会对项目有影响吗?STEP7中数据块(DB)和WICC中变量地址属性中数据DB 有关联吗?
问题补充:如果我在WINCC中建立一个DB类型变量如DB0.DD0,那么我需要在STEP7中定义该变量吗?它的定义有范围吗?
答复
数据块是用作建立临时数据的,在与WINCC连接的时候可以关联,整个STEP7都可以关联,在程序中M的点是有限制的,而DB可以随着内存卡改变大小。

变量表就是一个调试工具。

回答者:小浩浩 - 新生第1级 2010-12-21 14:32
建立数据块是用来集中地存取数据,便于对数据进行操作和管理.分为共享数据块和背景数据块.其中背景数据块是依附于与之相对应的功能块FB使用的.变量表可以用来批量地监管变量.在变量表中还可以对变量的状态和数值进行修改.修改后程序中引用的变量的值为修改后的值.便于对程序进行调试和强制.
STEP7中数据块(DB)和WICC中变量地址属性中数据DB有关联吗?
没错,它们是关联的,它们的地址相对应,DB代表数据块变量在wincc中被缩
写例如:STEP7 中DB0.DBD0 对应 wincc中 DB0.DD0
回答者:smarteye - 中级技术员第6级 2010-12-21 14:40
1.数据块DB
DB用来存储用户数据及程序的中间变量,为全局变量。

DB的最大容量,S7-300为32KB,S7-400为64KB。

DB可分为共享数据块(Share DB)、背景数据块(Instance DB)和用户自定义数据(UDT)类型的数据块。

共享数据块可作为所有程序使用的全局变量,在CPU允许的条件下,一个程序可创建任意多个DB,每个DB的最大容量为64KB。

默认条件下,共享数据块为掉电保持,在其属性菜单中选中“Non Retain”可
以更改为掉电数据丢失。

如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中的数据,也没有什么快捷方法。

(转帖:
/service/answer/solution.asp?Q_id=62575&cid =1029)
3.参考:
《在WinCC里调用STEP7的变量》:下载
/download/download.aspx?id=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”)。

相关文档
最新文档