假设要做一个插头,有5个插针。一个插头外壳从生产线上流过去,要经过5个工位。每个工位要插进一个插针,同时伴有一个检测装置。
如下图,是每步都合格的情景:
如果在某个工位插针插错了,案例中是第3个工位插错了,则如下图:
第2图中,第3个工位插错了,则第4工位和第5工位都不要插了,最后这个工件是扔进废料盒。
这里是分述两种情景。实际情况是,许多端子是相继着进入工位的,如下图。请注意,前面两幅图是一个端子在不同工位的情景,下图中的每个端子则是一个独立的端子。
图3中,第3个工位的插针插错了,而前面还有端子在接受插针的插入,后面也有。
于是,插错的端子进入到第4个工位,但是不再接受插针。而最前面的一个端子进入了合格装料盒
再下一步,插错的端子进入到第5个工位,前面还剩一个端子也进入了合格装料盒,
最后一步,插错的?子进入废料盒
设MB100这个寄存器做为ROR的操作地址。
给MB100赋值初始值255。255写成二进制就是1111 1111。用M100.0至M100.4这5个位去看管5个工位。
现在,M100.0至M100.4都置位为1。
最开始,M100.0至M100.4都等于1,于是每个工位都必须给端子外壳插进插针,最后把成品放进合格装料盒。
后来,第3个工位出现问题了,于是它对应的M100.2复位为0了。如下图
于是MB100就等于1111 1011了。前述的复位为0不是常开式的复位,而是触发式的。
请注意,5个工位的地址依次是M100.0, M100.1, M100.2, M100.3, M100.4,它们是固化了的。而只有数据在它们上面流淌。ROR的作用只是推着数据转圈,而不是推着地址转圈。此前,ROR推着1111 1111转圈,现在,推着1111 1011转圈。
于是,在生产流程中的程序中,从第3个进行到第4个工位的时候有个脉冲,这个脉冲激发ROR,ROR就推着数据转了一位,这个0就到下一个工位了。或者说,是1111 1011成了1110 111了。如下图:
M100.3接到了0,自然不会给这个工件插针。
在生产流程中,从第4个工位进行到第5个工位时,也有一个脉冲,这个脉冲激发ROR,ROR就推着数据又转了一位,就是0被转到第5个工位了。如下图
第5个工位接到0,自然不会给工件插插针,并且会把它放进废料盒。
关于ROR推动数据转圈,而地址不动,请看下图。外圈是地址,是不动的;内圈是数据,是旋转的。本案例中,第三个工位的数值变成了0,则这个0就会逐级向后面的工位送,禁止相应工位对工件进行操作,直到最后将工件扔进废料盒: