找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
程序如下:
L P##Shiftregister
LAR1
L 0
L W [AR1,P#0.0] //DB No.
==I
JC END //No DB => End
问题:AR1中最终存的是P#DB1300.DBX0.0这个地址,为什么经过L W [AR1,P#0.0] 就变成DB号了呢?,有点看不懂,请高手详细解读下
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
#Shiftregister 是一个 POINTER 类型的形式参数,它由6个字节构成,其存储结构如图,从图中可以看出此结构的第一个字是 DB 块号。
当将实参 P#DB1300.DBX0.0 传给它时,经过下面两条指令
L P##Shiftregister
LAR1
AR1 中装的指针是指向附图结构的首字节,即DB块号的地址。 经下面的指令
L W [AR1,P#0.0] //就读到了附图结构的第一个字,它就是DB块号。
//就是你所附图中,你看到的 514H,你把514H这个16进制数转换成十进制就是 1300,即DB块号是 1300
参考资料
S7-300和S7-400寻址
https://support.industry.siemens.com/cs/document/79632832
西门子STL间接寻址常问问题集
https://support.industry.siemens.com/cs/document/76492353
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!