200和300里面的左移和右移指令有什么作用及意义

L     #IN1
      L     20
      >=I   
      JC    M001
      L     #IN1
      L     10
      *I    
      T     #TEMP8
      SLW   3
      T     #TEMP9

最佳答案

首先我们需要明白这段程序执行的后续目的;
我先介绍你的程序步骤及含义:
局部变量声明表中有:形参
IN        #IN1
TEMPT     #TEMP8
               #TEMP9 
程序执行含义如下:

L     #IN1            //加载形参  #IN1  存储数据(32位)地址      
      L     20    
      >=I            //   #IN1 数据  与20长整数相比较
      JC    M001   //   #IN1    数据大于或等于20则跳转到M001,否则顺序执行
      L     #IN1        // #IN1    数据乘以长整数10数据传到临时变量  #TEMP8得到数据再执行单字左移3位命令。结果送到临时变量  #TEMP9中,其数值等于   #IN1*10*2的三次方,为后面的指针寻址方式地址的合理性做准备。
      L     10
      *I    
      T     #TEMP8
      SLW   3
      T     #TEMP9 
可知左移指令作用:使得数值乘以2的三次方
意义:为后面的指针寻址方式地址的合理性做准备。
右移指令作用:使得数值除以2的三次方
意义:为后面的指针寻址方式地址的合理性做准备。
请参考链接
移位指令实例——西门子S7系列PLC
http://www.plc100.com/siemens/s7-300/yiweizhiling.htm
S7-300和S7-400寻址 http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1597&loginID=&srno=&sendtime=

提问者对于答案的评价:
十分感谢!

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午11:43
下一篇 2018年12月1日 下午11:43

相关推荐