回复:有兴趣的顺便讨论讨论TEMP的用法及与临时变量的L的区别所在?

Harry_dong

  • 帖子

    480
  • 精华

    16
  • 被关注

    9

论坛等级:侠士

注册时间:2005-01-09

普通 普通 如何晋级?

发布于 2009-04-12 18:33:23

0楼

临时变量并不是功能执行结束就清零的。
局个例子:OB1中调用FC1,FC1中编辑:
A M 0.0
S #temp0
A #temp0
= M 0.1
除此之外不含有其他程序。首先置位M0.0那么M0.1也被置位,然后M0.0复位但M0.1仍然为1。这表明temp0所占用的L区并没有被清零。

做另外一个试验:在OB1中增加调用FC2,在FC2中编辑:
L 0
T #temp0
T #temp0_1
T #temp0_2
T #temp0_3
T #temp0_4
T #temp0_5
T #temp0_6
T #temp0_7
T #temp0_8
T #temp0_9
T #temp0_10
T #temp0_11
T #temp0_12
T #temp0_13
T #temp0_14
T #temp0_15
T #temp0_16
T #temp0_17
T #temp0_18
T #temp0_19
temp都为DWORD类型。重复上面的测试过程先置位M0.0那么M0.1也被置位,然后M0.0复位M0.1变为0。temp0所占用的L区被清零。

根据上面的试验我认为:temp变量在使用后它所对应的物理地址的数值并不变化,除非在另外的块中的临时变量分配了与之前临时变量相同的物理地址可能会改变该物理地址的数值。
这也就是临时变量要先赋值后使用的原因。
学无止境
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。