找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
L #VM_ID // VM_ID
L 1
-I
L 20
*I
L 6
+I
ITD
SLD 3 // get Status Address (2 bytes/output)
T #Address
L #VM_ID // VM_ID
L 1
-I
L 20
*I
L 16
+I
ITD
SLD 3 // get Status Address (2 bytes/output)
T #Address_1
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
存储器间接寻址具有两个指针格式:单字和双字:
. 单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。
. 双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。
1.#Address_1是#VM_ID 减1乘以20加16再左移3,这样做有何用处?
.减1:在西门子PLC中对于字(双字节)的编制为0,2,4,6,.......。VM_ID 的数值可能为奇数,减1后为偶数。
.乘以20加16 : 这是根据要访问的目标地址的偏移量 ,VM_ID 的数值 减1+ 偏移量= 目标地址。
. 再左移3: ITD (将16位整型数据转换为32位双字整型数据),
SLD 3(左移3位)后即形成双字指针(见上述指针的描述)。左移3后,从0-2bit必须确保为全0(表示对非位的区域进行寻址)!
,而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。
2.关于为什么“乘以20加16”,要结合你的完整程序来确定,但这一个指针的偏移量是肯定的。
相关资料:
<STEP7中的指针寻址例程>,下载:
http://bbs.hcbbs.com/thread-138757-1-56.html
<step7编程之地址概念详解>,连接:
http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城