移位寄存器有什么作用?
移位寄存器又称为FIFO(First in First out,先人先出)堆栈,FX系列的堆栈长度为2-512个字,先写入堆栈的数据先读出。用移位寄存器保存产品的编号,可以实现先入库的产品先出库。
图4-21中的目标元件D1是FIFO堆栈的首地址,也是堆栈的指针,移位寄存器未装人数据时应将D1清0。在XO由OFF变为ON时,移位寄存器写入指令SFWR将指针的值加1后写人数据。第一次写入时,源操作数DO中的数据写入D2。如果XO再次由OFF变为ON,D1中的数变为2,DO中新的数据写入D3。堆栈写满后不再执行写入操作,且进位标志M8022置1 。
图4-22的X1由OFF变为ON时,移位寄存器读出指令SFRD将D2中的数据送到源操作数D20,同时指针D1的值减1,D3到D9的数据向右移一个字。数据总是从D2读出,指针D1为0时,FIFO堆栈被读空,不再执行上述处理,零标志M8020为ON。
下面的例程用移位寄存器写入、读出指令实现先入库的产品先出库:
相关推荐