静态变量使用

请问我程序中静态变量的仿真结果为什么会这样?我想做一个时间累加:
程序写在FB块中:
static:time_last    time
  temp:temp1        time


network:
       A    m100.0
      FP    #FP120
      JCN   L001
      CALL  TIME_TCK
         RET_VAL :=DB1.time1//启动
L001: AN     m100.0
      JCN   L002
      CALL  TIME_TCK
         RET_VAL :=DB1.time2//停止
L002: L     DB1.time2
      L     DB1.time1
      >=D
      JCN   L004
      -D
      T     #temp1
L003: L     #temp1
      L     #time_last
      +D
      T     #out
      T     #time_last
      JU    L004
L004: NOP 0

问题补充:
正确的程序我已经写出,但是就是不知道为什么使用静态变量之后,最后的输出结果会变化那么快,我这个程序实际才仿真运行了一分钟不到,最后的输出时间就那么大

图片说明:

静态变量使用   

最佳答案

静态变量(STAT)在PLC运行期间始终被存储。
参考同类问题回复,链接:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=66195&cid=1029
补充问题回复:
这个程序计算结果与是否使用静态变量没有关系的。在调用该子程序时,先初始化(清零这个#time_last静态变量)。

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc165571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月10日 下午12:20
下一篇 2017年6月10日 下午12:20

相关推荐