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

S7-300/400系列PLC移位和循环指令

来源:艾特贸易2018-01-24

简介LAD移位指令可以将输入参数IN中的内容向左或向右逐位移动。循环指令可以将输入参数IN中的全部内容循环地逐位左移或右移,空出的位用输入IN移出位的信号状态填充。 STL移位指令将累


  LAD移位指令可以将输入参数IN中的内容向左或向右逐位移动。循环指令可以将输入参数IN中的全部内容循环地逐位左移或右移,空出的位用输入IN移出位的信号状态填充。

    STL移位指令将累加器1的低字或者全部内容向左或向右逐位移动。循环指令将累加器1的全部内容循环地逐位左移或右移,空出的位用累加器1移出位的信号状态填充。移位和循环指令参数如表2-35所示。

2-35    移位和循环指令

 表2-35 移位和循环指令

字移位指令移位的范围0~15,双字移位指令移位的范围0~31,对于字、双字移位指令,移出的位信号丢失,移空的位使用0补足,例如将一个字左移6位,移位前后位排列次序如图2-21所示。

 图2-21左移6位示意图

2-21左移6位示意图

带有符号位的整数移位范围为0~15,双整数移位范围为0~31,移位方向只能向右移,移出的位信号丢失,移空的位使用符号位补足,整数位负值,符号位为1,整数位正值,符号位为0。例如将一个整数右移4位,移位前后位排列次序如图2-22所示。

 图2-22整数右移4位示意图

2-22整数右移4位示意图

    使用STL编程时,注意固定的格式,例如一个字左移5位的程序:

    L    5    //移动的位数

    LMW  120    //移位的变量

    SLW

    TMW  122    //移位结果

    执行移位指令时,将累加器2中的值作为移动的位数,对累加器1中的值进行移位操作。

    循环移位指令只能对字进行操作,移位范围为0—31,如果移位大于32,实际移位为

(N-1)modul0 32)+1,高位移出的位信号插入到低位移空的位中。例如将一个双字循环左移3位,移位前后位排列次序如图2-23所示。

 图2-23循环移位示意图

2-23循环移位示意图

    STL编程语言中,RLDA与RRDA指令对双字进行循环移位操作,每次触发时循环左移或右移一位,将状态字中CC1的信号插入移空的位上。如果移出的位信号为1,置位状态字中CC1位,可以触发JP程序跳转指令进行逻辑判断。

    使用移位和循环指令的示例程序如表2-36所示。

2-36    移位和循环指令的示例程序

 表2-36 移位和循环指令的示例程序
表2-36 移位和循环指令的示例程序

 

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务