指令说明:
ROLP是16位脉冲执行型循环左移指令,即指令激活一次,执行一次数据移位运算。是将不包括进位标志在内的目标操作数[D]的16位数据向左循环移动n位。最后移出的位状态存于进位标志M8022中。
若操作数[D]为KnY,KnM,KnS等位数指定软元件时,则只有K4Y,K4M,K4S有效。
操作数:
D:KnY, KnM, KnS, T,C,D,Z,V, LV,DT
n:D,K,H
指令格式:[ROLP D n ]
编程示例:
当X0闭合时,置位M100,M100的上升沿触点触发,将K1传送到K4Y0,M100的常开触点闭合,M8013触点接通0.5秒,断开0.5秒,使得ROLP指令以1S为周期执行一次,让K4Y0的16个数据位中b0的状态1循环左移1位,最后移出的位状态为1时,进位标志M8022=ON,若为0,则M8022=OFF。

K4Y0的数据位变化情况:
|
Y17 |
Y16 |
Y15 |
Y14 |
Y13 |
Y12 |
Y11 |
Y10 |
Y7 |
Y6 |
Y5 |
Y4 |
Y3 |
Y2 |
Y1 |
Y0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
执行前:
M8022=OFF
|
Y17 |
Y16 |
Y15 |
Y14 |
Y13 |
Y12 |
Y11 |
Y10 |
Y7 |
Y6 |
Y5 |
Y4 |
Y3 |
Y2 |
Y1 |
Y0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
执行1次:
M8022=OFF
|
Y17 |
Y16 |
Y15 |
Y14 |
Y13 |
Y12 |
Y11 |
Y10 |
Y7 |
Y6 |
Y5 |
Y4 |
Y3 |
Y2 |
Y1 |
Y0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
执行2次:
M8022=OFF
|
Y17 |
Y16 |
Y15 |
Y14 |
Y13 |
Y12 |
Y11 |
Y10 |
Y7 |
Y6 |
Y5 |
Y4 |
Y3 |
Y2 |
Y1 |
Y0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
执行15次:
M8022=ON