一个产品要经过许多道工序才能完成,每道工序都可能让这个产品不合格,如何在出口处让良品进入良品盒,让残次口进入废品盒,只要一个ROR指令就行。
另一个案例,许多人问如何实现“一个键,按一下是开,再按一下是关,如此循环”,也是用ROR指令。
我看过许多案例,ROR指令很少用。但其实它是非常有用的。如何理解这个指令呢?直接上图:


还是举例来说,这样易于理解。取一个寄存器,比如图中的MB100。这个寄存器有8个位,依次是M100.0至M100.7。我们先让它的每个位用1和0相间的方法填满,就是10101010,换成十进制是170。换句话说,如果我们给MB100赋值170的话,则它里面8个格子的数字就是1和0相间。
一般地,数值是呈一条直线摆列。而ROR有个功能,就是让数值盘起来,成为一个圆,见图中的圆就是MB100各个位上的值。
图中,上方的长方形是地址,地址是不动的,就是说从M100.0到M100.7是固定在一个空间中的。
下方的数值是动的,是跟随着圆围绕圆心旋转。圆成分八个格子,每一个格子里以相间的形式填上1和0,每次圆旋转时只动一格。
长方形与圆衔接的地方,是数值赋给地址的地方。圆每动一下,就旋转一个格子,这样,这次是1与长方形衔接,下次就是0与长方形衔接。如图,就是M100.0依次得到1和0。
梯形图如下:

----------------“一个键,按一次是开,再按一次是关”。此前的代码有问题,要写成如下形式才能成效。即ROR的输入端也必须是寄存器的地址,而不能写成某个数值--------------
