FX2 系列可编程控制器移位
指令有移位、循环移位、字移位及先入先出 FIFO
指令等数种,其中循环移位分别带进位位循环及不带进位位的循环。移位有左移和右移之分。 FIFO 分为写入和读出。
从
指令的功能来说,循环移位是指数据在本字节或双字内的移位,是一种环形移动。而非循环移位是线形的移位,数据移出部分会丢失,移入部分从其他数据获得。移位
指令可用于数据的 2 倍乘处理,形成新数据,或形成某种控制开关。字移位和位移位不同,它可用于字数据在存储空间中的位置调整等功能。先入先出 FIFO
指令可用于数据的管理。现择要介绍如下。
该
指令的助记符、
指令代码、操作数、程序步如表 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 位
指令)有效。