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
位指令)有效。