P#DBn.DBX x.y地址常数,例如P# DB1.DBX0.0 ,这是指针型48位寻址。
但在下述文档中在介绍32位寻址时,例举了例如P# DB1.DBX0.0 。这个用意何在?没有看明白。是本人没有看明白,还是下述这篇文档该丢扔进废纸篓里?!
哪位朋友看看明白了讲讲:介绍32位寻址时,为什么例举了例如P# DB1.DBX0.0?
从下述文档中是这样写的。并请看截取的图片。
《关于S7-300和S7-400指针寻址的说明与例程(更新版)》其中第17、第18页:
http://www2.ad.siemens.com.cn/Download/Upload/AS/faq/F0215.pdf
图片说明:
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:10 | 解决时间:2012-12-31 18:53:15 | 提问者: 阿鸣 - 大师  第17级
最佳答案
所以,要使用的话,只能先打开DB块。
如:
OPN DB1
L P#DBX0.0
LAR1
回答者:
火麒麟
-
中级工程师  第10级
2012-12-30 00:08:17
提问者对于答案的评价:
就被本问题询问了几位资深的用户精英,均表示这个文档在描述32位指针时例举了P# DB1.DBX0.0 绝对是不合适的。又反映西门子含有描述不当的文档、手册还有一定数量的。记得前些时候,西门子开展了一次纠错有奖活动。希望西门子及时、彻底地更新常用的手册、文档,以免像我们这样用户中招。
个人认为这部分的说明只限于交叉区域寄存器寻址,它和一个所有信息完整的指针还是有区别的,因为对他的操作都要涉及ar等地址寄存器,并不是单独使用,所以我猜有些信息已经存在于ar中了,所以和正常的完整的指针是不一样的。
或者说,西门子因为某种我们不知道的原因,在交叉区域寄存器寻址时,不允许同时改变DB号,这种限制我觉得影响不大。
想使用完整的指针就自己封装了。
回答者: =^_^= - 中级工程师  第10级
2012-12-30 15:51:53
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!