AR1地址寄存器

已锁定

笑脸相迎

  • 帖子

    249
  • 精华

    2
  • 被关注

    15

论坛等级:侠士

注册时间:2008-07-22

普通 普通 如何晋级?

AR1地址寄存器

1001

2

2009-11-28 16:54:23

最近在调试时,发现一个有意思的问题。
AR1的地址内容被隐形调用了。
在OB1中调用一个FC,在FC的输出接口上有一个UDT格式的输出。
OB1
CALL FC352
FC352
UDT格式为:Comm
#Comm.Test1 INT
#Comm.Test2 INT

L L#3200
LAR1
TAR1 MD 36
L MW [AR1,P#0.0]
TAR1 MD 40
T #Comm.Test1
TAR1 MD 44

L MW [AR1,P#2.0]
TAR1 MD 48
T #Comm.Test2
TAR1 MD 52

监测到AR1地址寄存器的地址发生变化了。

请各位来指点下迷津~~



quote:
--------------------------------------------------------------------------------
以下是引用Zane在2009-11-26 10:08:08的发言:
对UDT的访问就是对数据块的访问,需要用到AR1和AR2,所以在访问数据块之前要保护现场,或先取出UDT中的数值,存放在零时变量中,然后再寻址目标地址。
--------------------------------------------------------------------------------



Zane斑竹,我理解你的意思就是我在用传送指令时,传送的目标是UDT与DB块,地址都会发生变化.即 T #Comm.Test1 与T DB200.DBW0是相同的.

我又做了以下实验,其余保持不变,将FC352中的T #Comm.Test1 与 T #Comm.Test2换成了 T "Test".Time_Dog_Old(即DB200.DBW0) 与 T "Test".Comm_Counter (即DB200.DBW2)

检测AR1的地址未发生变化,一直是L#3200

AR1地址寄存器 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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