您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:4307 [上一页] [1] [下一页]
617
Jimmysheldon
文章数:4
年度积分:50
历史总积分:617
注册时间:2014/4/9
发站内信
发表于:2014/4/9 21:56:41
#0楼
Pointer指针数据区的表示有
B#16#81 代表的是 I  输入区
B#16#82                 Q 输出区
B#16#83                 M 标志位
B#16#84                 DB 数据块..... 学到指针数据类型指针这块非常困惑,这些是什么意思啊?

还有接下来这段程序,是这样的
L   0     // 初始化临时变量#ADD_TEMP
T  #ADD_TEMP
L  P##In_Data  //指向存储地址指针P#M100.0的首地址,并装载到地址寄存器AR1中
LAR1
L  0                     //判断OB1中赋值的地址指针是否为数据块(参考Pointer的数据格式)
L  W[AR1, P#0.0]
==I
...
...

这里我就看不懂了,怎么判定是否为数据块呢?
B#16#84 DB 数据块与
                           L  0              
                           L  W[AR1, P#0.0]   有啥联系 哪位前辈可以指点一二,不胜感激。
2401
gsxiaojian
文章数:170
年度积分:50
历史总积分:2401
注册时间:2007/11/29
发站内信
发表于:2014/4/9 23:34:04
#1楼
1.Pointer指针是一个48位地址空间的区域,其中第三个字节表示数据区,如果里面的值为16进制的81则代表该寻址区域为I区,以此类推。
2.Pointer指针的第0个字表示是否为DB,如果为0则表示不是对DB进行寻址,如果不是0则代表对DB寻址。
3.你的程序就是用0和Pointer的第0个字进行比较来判断是否为DB
[此贴子已经被作者于2014/4/9 23:34:40编辑过]
617
Jimmysheldon
文章数:4
年度积分:50
历史总积分:617
注册时间:2014/4/9
发站内信
发表于:2014/4/10 23:13:43
#2楼
回复 #1楼 gsxiaojian
谢谢 总算看懂了 谢谢指点表情
2000
ray276488196
文章数:580
年度积分:50
历史总积分:2000
注册时间:2011/9/21
发站内信
发表于:2014/4/11 9:46:13
#3楼
以下是引用gsxiaojian2014/4/9 23:34:04的发言:
1.Pointer指针是一个48位地址空间的区域,其中第三个字节表示数据区,如果里面的值为16进制的81则代表该寻址区域为I区,以此类推。
2.Pointer指针的第0个字表示是否为DB,如果为0则表示不是对DB进行寻址,如果不是0则代表对DB寻址。
3.你的程序就是用0和Pointer的第0个字进行比较来判断是否为DB
[此贴子已经被作者于2014/4/9 23:34:40编辑过]
这边48位,累加器不是32位的吗,他们怎么分配的啊
从现在起,做一个认真学习,力求上进的工控人。
2401
gsxiaojian
文章数:170
年度积分:50
历史总积分:2401
注册时间:2007/11/29
发站内信
发表于:2014/4/11 20:28:18
#4楼
以下是引用ray2764881962014/4/11 9:46:13的发言:
以下是引用gsxiaojian2014/4/9 23:34:04的发言:
1.Pointer指针是一个48位地址空间的区域,其中第三个字节表示数据区,如果里面的值为16进制的81则代表该寻址区域为I区,以此类推。
2.Pointer指针的第0个字表示是否为DB,如果为0则表示不是对DB进行寻址,如果不是0则代表对DB寻址。
3.你的程序就是用0和Pointer的第0个字进行比较来判断是否为DB
这边48位,累加器不是32位的吗,他们怎么分配的啊
这个48位的数据根本就没有存过32位的累加器。它是存在一个叫V的存储区,累加器只是装载了一个32位指向V区的指针而已。
[此贴子已经被作者于2014/4/11 20:31:55编辑过]
此帖发自手机工控论坛
2000
ray276488196
文章数:580
年度积分:50
历史总积分:2000
注册时间:2011/9/21
发站内信
发表于:2014/4/12 9:02:24
#5楼
以下是引用gsxiaojian2014/4/11 20:28:18的发言:
以下是引用ray2764881962014/4/11 9:46:13的发言:
以下是引用gsxiaojian2014/4/9 23:34:04的发言:
1.Pointer指针是一个48位地址空间的区域,其中第三个字节表示数据区,如果里面的值为16进制的81则代表该寻址区域为I区,以此类推。
2.Pointer指针的第0个字表示是否为DB,如果为0则表示不是对DB进行寻址,如果不是0则代表对DB寻址。
3.你的程序就是用0和Pointer的第0个字进行比较来判断是否为DB
这边48位,累加器不是32位的吗,他们怎么分配的啊
这个48位的数据根本就没有存过32位的累加器。它是存在一个叫V的存储区,累加器只是装载了一个32位指向V区的指针而已。
[此贴子已经被作者于2014/4/11 20:31:55编辑过]
谢谢,非常感谢
从现在起,做一个认真学习,力求上进的工控人。

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

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

62.4004