您现在的位置是:首页 > PLC技术 > PLC技术

S7 300/400移位指令概述

来源:艾特贸易2017-06-05

简介移位指令将累加器 1 的低字或累加器 1 的全部内容左移或右移若干位(见表 3-14 )。 左移 n 位相当于乘以 2n ,例如将十进制数 3 对应的二进制数 2#11 左移 2 位,相当于乘以 4 ,左移后

    移位指令将累加器1的低字或累加器1的全部内容左移或右移若干位(见表3-14)。

    左移n位相当于乘以2n,例如将十进制数3对应的二进制数2#11左移2位,相当于乘以4,左移后得到的二进制数2#1100对应于十进制数12。右移n位相当于除以2n,例如将十进制数24对应的二进制数2#11000右移3位,相当于除以8,右移后得到的二进制数2#11对应于十进制数3

    无符号数(字或双字)移位后空出来的位填以0,有符号数(整数或双整数)右移后空出来的位填以符号位对应的二进制数,正数的符号位为0,负数的符号位为1。最后移出的位被装入状态字的CC1位。

    3-14    移位指令

语句表

梯形图

    描 

SSI

SHR_I

将累加器1低字的有符号整数逐位右移,空出的位添上与符号位相同的数

SSD

SHR_DI

将累加器1的有符号双整数逐位右移,空出的位添上与符号位相同的数

SLW

SHL_W

将累加器1低字的16位字逐位左移,空出的位添0

SRW

SHR_W

将累加器1低字的16位字逐位右移,空出的位添0

SLD

SHL_DW

将累加器1的双字逐位左移,空出的位添0

SRD

SHR_DW

将累加器1的双字逐位右移,空出的位添 0

    移位的位数可以用下面的两种方法来指定:

   1)用指令中的参数<number>来指定移位位数,16位移位指令的允许值为01532位移位指令的允许值为0~32。如果<number>大于0,状态字的CC0OV位被清零;如果< number>等于0,移位指令被当作NOP(空操作)指令来处理。

   2)指令没有参数<number>,移位位数在累加器2的最低字节,移位位数的允许值为0255。如果移位位数等于0,移位指令被当作NOP(空操作)指令来处理。