您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:1891 [上一页] [1] [下一页]
7712
jiouai84
文章数:655
年度积分:50
历史总积分:7712
注册时间:2013/1/7
发站内信
发表于:2018/5/13 12:43:26
#0楼
附件 IMG_20180513_123635.jpg
上面图片的问题的解答,不是很理他,db10.dbx0.0是个地址,那装入ar1后,是指的是ar1的地址是db10.dbx0.0还是说是指的是要把这个地址转为32位的一个常数,谢谢大神们指点一二。



8394
fujifa
文章数:2943
年度积分:80
历史总积分:8394
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2018/5/14 10:08:21
#1楼
1、AR地址寄存器中都是地址。
2、DB10.DBX0.0在内存中的地址被放入AR1中。
3、无论16位还是32位指针都是对地址进行操作。

HAVE FUN!
7712
jiouai84
文章数:655
年度积分:50
历史总积分:7712
注册时间:2013/1/7
发站内信
发表于:2018/5/14 15:53:34
#2楼
回复 #1楼 fujifa
附件 IMG_20180514_154637.jpg
感谢您的指点,如图中的程序,是多重背景的底层功能块,我想问下,经过
这段程序后,ar1指向的是背景数据块,还是变量tab_ecq指向的外部的数据块,其中的l diw[ar1,p0.0这个语句不是很理解,]
在西门子官网上说在fb块内,ar2就是自动指向了背景数据块的首址,传到ar1后应该是背景数据块才对,可是实际不是这样,还请大神指点我那里理解错了
38104
cvlsam 版主
文章数:12488
年度积分:715
历史总积分:38104
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/5/14 20:17:08
#3楼
你所谓的指向数据块的指针叫做DB指针,其是一个6个字节的48位的指针,例如你的外层调用方式可能是类似于这样的:P#DB10.DBX20.5

这个48位的指针除了包含了一个32位指针外,还包含了数据块序号以及长度数据。

在Step7中,有3种指针:
1、32位的区指针,其包含了一个特殊地址
2、48位的DB指针,除了包含一个区指针,还包含了数据块的序号
3,80位的ANY指针,包含了DB指针和地址中的数据类型。

最重要的是区指针,DB指针和ANY指针只有在传递块参数的时候才会用到。

而DIW[AR1,P2.0]这种方式叫做区内寄存器间接寻址,具体你可以看STEP7编程手册附录A3.4.4章节。

Good Luck~
7712
jiouai84
文章数:655
年度积分:50
历史总积分:7712
注册时间:2013/1/7
发站内信
发表于:2018/5/14 23:24:49
#4楼
回复 #3楼 cvlsam
感谢版主的回复如图片所见
LAR1 AR2将AR2的地址传传送给AR1,
LP##TAB_ECQ是外功能块的输入接口,实参确实是P#DB90.DBX50.0
+AR1  将AR1的值与P#TAB_ECQ的值想加后传给AR1,这时AR1的地址指向了DB99.DBX50.0
LDIW[AR1,P#2.0]这个又怎么理解呢,是指向了DB90吗
38104
cvlsam 版主
文章数:12488
年度积分:715
历史总积分:38104
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/5/15 10:40:24
#5楼
以下是引用jiouai842018/5/14 23:24:49的发言:
感谢版主的回复如图片所见
LAR1 AR2将AR2的地址传传送给AR1,
LP##TAB_ECQ是外功能块的输入接口,实参确实是P#DB90.DBX50.0
+AR1  将AR1的值与P#TAB_ECQ的值想加后传给AR1,这时AR1的地址指向了DB99.DBX50.0
LDIW[AR1,P#2.0]这个又怎么理解呢,是指向了DB90吗

AR1中是一个ANY指针,通过对地址进行操作,指向了一个数据块。

L DIW[AR1,P#2.0]根据ANY指针的定义,由于数据区的类型为一个DB指针,因此在第2个字节处存放了DB块的数据长度
L DIW[AR1,P#4.0]则得到了DB块的编号。

附件 snap3.jpg

Good Luck~

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

46.8003