登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:新人求助帖,关于Pointer数据类型指针及对应的一段程序

点击:4311 回复:5

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]   有啥联系 哪位前辈可以指点一二,不胜感激。
14-04-09 21:56
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
14-04-09 23:34
谢谢 总算看懂了 谢谢指点表情
14-04-10 23:13

引用 gsxiaojian 在 2014/4/9 23:34:04 发言【内容省略】

这边48位,累加器不是32位的吗,他们怎么分配的啊
14-04-11 09:46

引用 ray276488196 在 2014/4/11 9:46:13 发言【内容省略】

这个48位的数据根本就没有存过32位的累加器。它是存在一个叫V的存储区,累加器只是装载了一个32位指向V区的指针而已。
最后修改:2014/4/11 20:31:55
14-04-11 20:28

引用 gsxiaojian 在 2014/4/11 20:28:18 发言【内容省略】

谢谢,非常感谢
14-04-12 09:02

工控新闻

更多新闻资讯