您现在的位置是:首页 > 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循环右移
循环移位位数的允许值为0~32。如果移位位数大于0,状态字的CC0和OV位被清零。
表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位,移出来的最高位装入CC1,CC1原有的内容装入累加器1的最低位。双字通过CC1循环右移指令RRDA< number>将累加器1的整个内容逐位右移1位,移出来的最低位装入CC1,CC1原有的内容装入累加器1的最高位。RLDA和RRDA实际上是一种33位(累加器1的32位加状态字的CC1)的循环移位,累加器移出来的位装入状态字的CC1位,状态字的CC0和OV位被复位为0。
表3-20给出了循环左移1位,移位前后累加器1中的二进制数的值。表中的X=0或1,是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.6为1时,MD0中的双整数被循环左移4位,移位后的结果写入MD8。如果循环移位指令被成功地执行,Q4.0被置位为1。IN和OUT为双字变量,N为十六进制的字。
图3-63 循环移位指令
点击排行
