PLC中为子程序开辟了60个字节的可用存贮区域,但这60个字节是所有子程序共享的空间,并不是每个子程序独享。
也就是说,局部变量只保持一个扫描周期赋值的数据,要保证局部变量有效,必须保证每个扫描周期都有赋值,特别
是OUT类型变量,OUT类型变量如果前面有条件,则当条件为假时,输出的是无效值。而赋值之前对OUT类型变量的
读取也是无效的。
故此若这样写程序,只有一个子程序,有可能能工作,若存在其他子程序,也用到了局部变量,则程序就会
不正常。
类似的变量还有 AC0 AC1 AC2 AC3 AC4 .....
这类变量使用前一定要赋值,一段程序结束后该变量应该没用才对。
你也可以把输出变量和中间变量,用IN-OUT类型来定义,效果会大大改变。
给你个试验程序:
子程序一:定义AA OUT WORD
1+AA > AA
子程序二:
MOVW 100 > LW0
在主程序中分别 调用这两个子程序,你会发现,程序一的输出值,恒为101,而不是需要的每个扫描周期+1值(快速变化值)。
[ 此帖被醉湮邃虞在2010-11-15 11:19重新编辑 ]