找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1、理解Pointer类型的数据结构,对于正确使用指针有很大帮助。首先需要了解 POINTER类型指针的结构,POINTER指针是一个类似于C语言中指向指针的指针。见附图
POINTER 类型占用 6个字节,0-1字节是存放实参的DB号,2-5字节是存放地址指针。
2、解释,假设父程序调用时形式参数 poniter 这个脚写的是 P#DB2.DBX0.0
L P##poniter //指向存储地址指针ponitert首地址
//这个参数是一个POINTER 类型,P##poniter指向参数poniter的值所在地址,你可以理解为是指向附图中的POINTER 类型占用6个字节的第 0 字节的地址,这就是指针的指针。
LAR1 //装载到地址寄存器AR1中,装的是 POINTER 类型指针第 0 个字节的地址,是个32位的指针,并不是你理解的那 6 个字节中前 4 个字节还是后 4 个组合起来的值。
//为了好理解下面的程序是我加的
L W [AR1,P#0.0] //根据附图所示,0-1字节是DB块号,装载 DB块号DB块
T #DB_BLOCK_NO //传送DB块号,看前面的假设,此时 #DB_BLOCK_NO=2。
OPN DB [#DB_BLOCK_NO] //如果是DB块,打开指定的DB块。
3、可参考西门子官方认证的 Letham 大侠关于这方面问题的回答
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=131890&cid=1029
4、为了更好地理解,推荐一些资料,请参考
S7-300和S7-400寻址 ID 79632832 2013年9月12日
https://support.industry.siemens.com/cs/document/79632832
西门子STL间接寻址常问问题集 76492353 2013年8月8日
https://support.industry.siemens.com/cs/document/76492353
使用间接寻址编写循环程序 ID:19345564发布日期 2007年3月1日
https://support.industry.siemens.com/cs/document/19345564
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城