回复:利用RLD3获得地址指针的问题

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2012-04-01 17:56:52

5楼

quote:以下是引用luckywjl在2012-04-01 13:02:48的发言:

OPN DB100
L 0.0
LAR1
L 3500 (补充一下,3500这个地址只是举例。地址为变量)
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //这时候读出的值是DB100.DBW3500
但是当地址>4095后,由于4096的值 RLD 3 后所的值已经大于等于32768
造成AR1中的值错误 (很大的数值)。
所以此时左移3位已经不能获得正确的地址值。
请教各位有什么其它解决方法?谢谢


地址指针是32位的双字,楼主的程序改为
OPN DB100
L 0.0
LAR1
L L#3500
RLD 3
+AR1
L DBW [AR1, P#0.0] //这时候读出的值是DB100.DBW3500

L#3500是双字常数,这样就没有4095的限制了。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。