局部变量一般用于子程序和中断子程序中,使子程序具有可移植性。局部变量表与符号表的区别在于,符号表定义的是全局变量,而局部变量表定义的是局部变量,其作用范围仅限于建立该变量的程序块。局部变量用于以下两种情况:
(1)希望建立不引用绝对地址或全局符号的可移动子程序。
(2)希望使用临时变量(说明为TEMP的局部变量)进行计算,以便释放PLC内存。
程序中的每个程序块都有自己的局部变量表,配备64字节的L(局部存储区)内存。如果在主程序或中断例行程序中赋值,局部变量表只包含TEMP变量。如果在子程序中赋值,局部变量表包含IN、IN_OUT、OUT和TEMP变量。在局部变量表中赋值时,应指定变量类型(TEMP、IN、IN_OUT或OUT)和数据类型,但不指定内存地址;程序编辑器自动在L内存区中为所有的局部变量指定内存位置。将局部变量作为子程序参数传递时,在该子程序局部变量表中指定的数据类型必须与调用程序块中数值的数据类型相匹配。图2.12所示为建立的局部变量表。
图2.12 建立的局部变量表
变量类型有以下几种。(www.xing528.com)
IN:调用程序组织单元(programming organization unit,POU)提供的输入参数。
OUT:返回调用POU的输出参数。
IN_OUT:数值调用POU提供的参数,由子程序修改,然后返回调用程序块。
TEMP:临时保存在局部数据堆栈中的变量。一旦程序块完全执行,临时变量数值将无法使用。在两次程序块执行之间,临时变量不保持其数值。
需要特别注意的是,PLC不会将局部变量数据值初始化为0,必须将使用的局部变量进行初始化。这一点和计算机程序设计中定义变量时需要初始化是一样的,不进行初始化,局部变量的值将会是随机的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。