什么是局部变量? |
时间: 2022-04-20 11:50 浏览: |
什么是局部变量?
在回答这个问题之前,有必要对变量声明表有一个基本了解。在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”) |
上一篇:PLC对工作环境的要求 下一篇:程序中参数和变量的区别和用法? |