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

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

最佳答案

ITD指令已经把输入值变成双整型了,所以大于32768并不会影响指针的读取。
之所以出错是应为+AR1的指令,其允许范围是-32768~32767
只要把+AR1换为+D,比如改为如下程序,就可以正常工作了
ITD   
RLD   3
TAR1
+D  
LAR1
L DBW [AR1, P#0.0]

提问者对于答案的评价:
谢谢了!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午4:30
下一篇 2018年12月2日 下午4:30

相关推荐