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