TEMP变量使用注意事项

  • 格式:docx
  • 大小:13.29 KB
  • 文档页数:2

TEMP变量不能自锁的原因显而易见:
每个扫描周期开始时,TEMP变量的值并不像Q或M那样可以保持上个周期的值。除非明
确对其赋值,否则它的值是不确定的。

我使用TEMP只有一个原则:
第一次出现某个TEMP变量,必须是对其赋值(或线圈刷新)的写指令,而不能是读指令。
如果出现问题,建议使用STAT变量替代。
对TEMP的认识都有问题!
我的建议是做逻辑不用TEMP,只在做运算是用TEMP,会省去很多麻烦,
使用前必须先赋值,不能用于记忆保持和边沿存储。

如果在TEMP接口中新建一个变量A,数据类型为BOOL,地址0.0
1,正确的FC程序如下:
| #start #A
|--| |---------()
|
| #A #driver
|--|/|---------()

2,错误的例子:
| #A #driver
|--|/|---------()
|
| #start #A
|--| |---------()

分析:
程序的扫描是从上到下。S7 FC中的接口TMEP中的变量必须遵守:先赋值后使用的
原则。

1程序,当start的值从0变为1,A也将从0变为1。扫描到第一段程序时,因为A
的值已经发生改变,程序将成功扫描到A的常闭触点从1变为0,那么driver线圈将成功得
从原来的1改变为0。

2程序,因为扫描到第一段程序的时候CPU没有发现A的值改变。之后A值将一直
保持不变,即使start的值从0变为1,A值也不会发生改变;结果是程序没有反应。