移位指令分为几种?各有什么功能?
2024-02-10  来源:网络或本站原创

FX2 系列可编程控制器移位指令有移位、循环移位、字移位及先入先出 FIFO 指令等数种,其中循环移位分别带进位位循环及不带进位位的循环。移位有左移和右移之分。 FIFO 分为写入和读出。

从指令的功能来说,循环移位是指数据在本字节或双字内的移位,是一种环形移动。而非循环移位是线形的移位,数据移出部分会丢失,移入部分从其他数据获得。移位指令可用于数据的 2 倍乘处理,形成新数据,或形成某种控制开关。字移位和位移位不同,它可用于字数据在存储空间中的位置调整等功能。先入先出 FIFO 指令可用于数据的管理。现择要介绍如下。

1 )位右移指令

该指令的助记符、指令代码、操作数、程序步如表 8-11 所示。

8-11 位右移指令的要素

指令名称

助记符

指令代码位数

操作数范围

程序步

S(.)

D(.)

N1

N2

位右移

SFTR

SFTR(P)

FNC34

16

X Y M S

Y M S

K H

SFTR SFTRP…9

               

位右移指令是对 n1 [D] 所指定的位元件进行 n2 [S] 所指定元件的位右移,其说明如图所示。

X0 OFF → ON 时, [D] 内( M0~M15 )各位数据连同 [S] 内( X0~X3 4 位数据向右移 4 位,( X0~X3 4 位数据从 [D] 高位端移入,( M0~M3 4 位数据从 [D] 低位端移出(溢出)。当 X10 再次从 OFF → ON 时,( X0~X3 4 位数据再次从 [D] 高位端移入,当前( M0~M3 4 位数据从 [D] 低位端溢出。依次类推。

用脉冲执行型指令时,指令执行取决于 X10 OFF → ON 变化;而用连续指令执行时,移位操作是每个扫描周期执行一次,使用指令时必须注意。

2 循环右移

该指令的助记符、指令代码、操作数、程序步如表 8-10 所示。

循环右移指令的要素表

指令名称

助记符

指令代码位数

操作数范围

程序步

D .

n

循环右移

ROR

ROR P

FNC30

(16/32)

KnY KnM KnS

T C D V Z

K H 位移量

N ≤ 16 16 位)

N ≤ 32 32 位)

ROR RORP…5

DROR DRORP…9

循环右移指令可以使 16 位数据、 32 位数据向右循环移位,其说明如图所示。

X0 OFF → ON 时, [D] 内各位数据向右移 n 位,最后一次从最低位移出的状态也存于进位标志 M8022 中。

用连续指令执行时,循环移位操作每个周期执行一次。

在指定位软元件的场合下,只要 K4 16 位指令)或 K8 32 位指令)有效。