找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
首先,你必须明白SIEMENS PLC 里面的间接寻址的用法。
在SIEMENS PLC 里面间接寻址大概分为3类用法。存取器间接寻址,区域内寄存器间接寻址和区域间寄存器间接寻址。
比如L MW[MD0] 就是存储器间接寻址。L MW[AR1,P#0.0]就是 区域内寄存器间接寻址,L W[AR1,P#0.0]就是区域间寄存器间接寻址
首先AR1和MD0 都是32位指针,里面类容既包括了 地址信息页包括了寻址的区域信息,地址寄存器的类容如下
区域类型+地址 具体请查看STEP7里的帮助文件(比如你可以搜索POINTER 找到POINTER 和ANY 类型里面就有关于指针和存储区域的说明
b#16#80 P I/O area
b#16#81 I Input area
b#16#82 Q Output area
b#16#83 M Bit memory area
b#16#84 DB Data block
b#16#85 DI Instance data block
b#16#86 L Local data (L stack)
b#16#87 V Previous local data
然后就是P指针,P#50.0 就是一个指针常数。
你程序里面 L P#50.0 LAR1 指令执行后 AR1 类容为 16#xx000190 (xx代表不相干)
L P#M50.0 LAR1 指令执行后 AR1类容里除了地址信息 还多了区域信息16#83000190
比如 你要把 MB50 移到 MB100中去你 可以用三种方法实现
1:存取器寻址
L 50
SLD 3
T MD0
L MB[MD0]
T MB100
2:区域内寄存器间接寻址
L P#50.0
LAR1
L MB[AR1,P#0.0]
T MB100
3:区域间寄存器间接寻址
L P#M50.0
LAR1
L B[AR1,P#0.0] //注意由于AR1 里面包含了区域M的信息 所以可以省略M直接以B[AR1,P#0.0}
T MB100
希望你能明白些了。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城