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

S7 300/400循环移位指令

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

简介循环移位指令将累加器 1 的整个内容逐位循环左移或循环右移若干位(见表 3-18 ),即从累加器 1 移出来的位又送回累加器 1 另一端空出来的位,最后移出的位装入状态字的 CC1 位。循

    循环移位指令将累加器1的整个内容逐位循环左移或循环右移若干位(见表3-18),即从累加器1移出来的位又送回累加器1另一端空出来的位,最后移出的位装入状态字的CC1位。循环移位的位数可以用指令中的参数<number>来指定,移位位数也可以放在累加器2的最低字节。移位位数等于0时,循环移位指令被当作NOP(空操作)指令来处理。

    3-18    循环移位指令

语句表

梯形图

    描 

RLD

 ROL_DW

累加器1的双字循环左移

RRD

 ROR_DW

累加器1的双字循环右移

RLDA

累加器1的双字通过CC1循环左移

RRDA

累加器1的双字通过CC1循环右移

    循环移位位数的允许值为032。如果移位位数大于0,状态字的CC0OV位被清零。

    3-19给出了双字循环左移4位,移位前后累加器1中的二进制数的值。

    3-19    循环左移4位前后累加器中的数据

 

累加器1的高字

累加器1的低字

移位前

0101 1111 0110 0100

0101 1101 0011 1011

移位后

1111 0110 0100 0101

1101 0011 1011 0101

    双字通过CC1循环左移指令RLDA< number>将累加器1的整个内容逐位左移1位,移出来的最高位装入CC1CC1原有的内容装入累加器1的最低位。双字通过CC1循环右移指令RRDA< number>将累加器1的整个内容逐位右移1位,移出来的最低位装入CC1CC1原有的内容装入累加器1的最高位。RLDARRDA实际上是一种33位(累加器132位加状态字的CC1)的循环移位,累加器移出来的位装入状态字的CC1位,状态字的CC0OV位被复位为0

    3-20给出了循环左移1位,移位前后累加器1中的二进制数的值。表中的X=01,是CC1在循环移位之前的值。

    3-20    通过CC1循环左移1位前后累加器中的数据

 

CC1

    累加器1的高字

  累加器1的低字

移位前

X

0101 1111 0110 0100

0101 1101 0011 1011

循环移位后

0

1011 1110 1100 1000

1011 1010 0111 011X

    3-63是双字循环左移移位的方框指令,当I0.61时,MD0中的双整数被循环左移4位,移位后的结果写入MD8。如果循环移位指令被成功地执行,Q4.0被置位为1INOUT为双字变量,N为十六进制的字。

 循环移位指令

    3-63    循环移位指令