SFWR移位写入和SFRD移位读出分别是控制写入和读出的指令,按照先入先出、后进后出的原则进行控制。
1.SFWR移位写入
SFWR移位写入指令表现形式如图8-157所示。
图8-157 SFWR移位写入指令表现形式
(1)指令使用说明
1)指令只能执行16位操作数;
2)指令可以采用连续执行方式,也可以采用脉冲执行方式,建议采用脉冲执行方式。
(2)指令中操作数说明
1)[S.]:保存想先入的数据的字软元件编号。操作数种类:KnX、KnY、KnM、KnS、T、C、D、U/G。
2)[D.]:保存数据并移位的起始字软元件编号(目标中首元件用于指针)。操作数种类:KnY、KnM、KnS、T、C、D、U/G。
3)n:保存数据的点数(用于指针时,+1后的值)。操作数种类:K、H,2≤n≤512。
4)传送源[S]和传送目标[D]不能重复,否则传送会发生错误。
2.功能动作
图8-157所示移位写入指令动作如图8-158所示,当X20为ON时,每次脉冲执行时,将D257中的内容传到D258开始的n-1点(100-1=99)数据寄存器中。其中的D257作为指针用来计数,本例中最多能计n-1点(99点)。
由于使用连续执行指令SFWR时,每个运算周期都依次被保存,因此本指令用脉冲执行型指令SFWRP编程。
图8-158 移位写入指令动作示意图
3.移位读出SFRD
SFRD移位读出指令表现形式如图8-159所示。(www.xing528.com)
图8-159 SFRD移位读出指令表现形式
(1)指令使用说明
①指令只能执行16位操作数;
②指令可以采用连续执行方式,也可以采用脉冲执行方式。建议采用脉冲执行方式。
(2)指令中操作数说明
1)[S.]:保存想先出的数据的起始字软元件编号(最前端为指针,数据从[S.]+1开始)。操作数种类:KnY、KnM、KnS、T、C、D、U/G。
2)[D.]:保存先出数据的字软元件编号。操作数种类:KnY、KnM、KnS、T、C、D、V、Z、U/G。
3)n:保存数据的点数。操作数种类:K、H,2≤n≤512。
(3)传送源[S]和传送目标[D]不能重复,否则传送会发生错误。
4.功能动作
图8-159所示移位读出指令动作如图8-160所示,当X21为ON时,每次脉冲执行时,依次将D258~D356中的内容读到D357中。每执行一次,从D258+1开始的n-1点数据逐字右移。
由于使用连续执行指令SFRD时,每个运算周期都依次被保存,因此本指令用脉冲执行型指令SFRDP编程。
图8-160 移位读出指令动作图
【例8-32】产品出入库控制
某产品生产线,当入库请求信号接通时,通过X0~X17输入产品编号。当出库请求信号接通时,按产品入库先后顺序进行出库并将产品编号显示出来。
分析:产品入库时,通过X0~X17数字式拨码开关,采用MOV指令先将数据送到某寄存器中,再采用移位写入和读出指令。从而完成控制要求。编制参考程序如图8-161所示。程序执行过程示意如图8-162所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。