找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
间接寻址有什么好处?
简单地讲,比如不同地址执行同一程序 用间接寻址最简单。
通过一实例来说明,例如:
将PIW128- PIW137,共100个字送入DB10中:
如果用直接寻址,一取一送两个指令要重复100遍。如用变址:
在OB1:
OPN DB 10 //打开DB 10
L P#128.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 100 // 1100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L PIW [AR1,P#0.0] //按读指针指示的地址读数据
T DBW [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
+AR2 P#2.0 //写指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
这是一个简单实例,如果不同地址执行同一程序,这个程序是一复杂的过程则更能显示应用变址的好处·。
用间接寻址方式存取数据需要作的工作有3种:建立指针、间接存取和修改指针。
建立指针必须用双字传送指令(MOVD),将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:
例: MOVD &VB200,VD302
MOVD &MB10,AC2
MOVD &C2,LD14
注意:建立指针用MOVD指令。
什么情况非要间接寻址,详见——
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=70031&cid=1029
另有参考资料——
《详解西门子间接寻址.pdf》下载:
http://ishare.iask.sina.com.cn/f/3022080.html
《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/faq/F0215.pdf
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!