数据处理指令有哪些?其功能是什么?

数据处理指令含批复位指令、编、译码指令及平均值计算等指令。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某一置 1 位的位码的编译。现择要介绍如下。

(1) 区间复位指令

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

区间复位指令的要素表

指令名称

助记符

指令代码位数

操作数范围

程序步

D1 .

D2 .

区间复位

ZRST

ZRST(P)

FNC40

(16)

T M S T C D (D1 ≤ D2)

ZRST ZRSTP…5

           

区间复位指令也称为成批复位指令,使用如图所示。当 M8022 OFF → ON 时,区间复位指令执行。位元件 M500~M599 成批复位、字元件 C235~C255 成批复位、状态元件 S0~S127 成批复位。

目标操作数 [D1] [D2] 指定的元件应为同类元件, [D1] 指定的元件号应小于等于 [D2] 指定的元件号。若 [D1] 的元件号大于 [D] 的元件号,则只有 [D1] 指定的元件被复位。

该指令为 16 位处理,但是可在 [D1][D2] 中指定 32 位计数器。不过不能混合指定,即不能在 [D1] 中指定 16 位计数器,在 [D2] 中指定 32 位计数器。

8-23 ZRST 区间复位指令使用说明

(2) 解码指令

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

解码指令的要素表

指令名称

助记符

指令代码位数

操作数范围

程序步

S .

D .

n

解码

DECO

DECO(P)

FNC38

(16)

K H

X Y M S

T C D V Z

Y M S

T C D

K H

1≤n≤ 8

DECO DECOP…7

a )当 [D] 是位元件时 , 以源 [S] 为首地址的 n 位连续的位元件所表示的十进制码值为 Q DECO 指令把以 [D] 为首地址目标元件的第 Q ( 不含目标元件位本身 ) 1 ,其他位置 0 。说明如图所示 , 源数据 Q=20+21=3, 因此从 M10 开始的第 3 M13 1 。当源数据 Q 0, 则第 0 ( M10) 1

n=0 时,程序不执行; n=0~8 以外时,出现运算错误。若 n=8 时, [D] 位数为 28=256 。驱动输入 OFF 时,不执行指令,上一次解码输出置 1 的位保持不变。

若指令是连续执行型,则在各个扫描周期都执行,必须注意。

b )当 [D] 是字元件时,以源 [S] 所指定字元件的低 n 位所表示的十进制码 Q DECO 指令把以 [D] 所指定目标字元件的第 Q 位(不含最低位)置 1 ,其他位置 0 。说明如图 8-24 b )所示,源数据 Q=20+21=3 ,因此 D1 的第 3 位为 1 。当源数据为 0 时,第 0 位为 1

n=0 时,程序不执行; n=0~4 以外时,出现运算错误。若 n=4 时, [D] 位数为 24=16 。驱动输入 OFF 时,不执行指令,上一次解码输出置 1 的位保持不变。

DECO 指令应用如图所示,根据 D0 所存储的数值,将 M 组合元件的同一地址号接通。在 D0 中存储 0~15 的数值。取 n=K4 ,则与 D0 0~15 )的数值对应, M0~M15 有相应 1 点接通。

n K1~K8 间变化,则可以与 0~255 的数值对应。但是为此解码所需的目标的软元件范围被占用,务必要注意,不要一其他控制重复使用。

(3) 编码指令

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

编码指令的要素表

指令名称

助记符

指令代码位数

操作数范围

程序步

S .

D .

n

编码

ENCO

ENCO(P)

FNC42

(16)

X Y M S

T C D V Z

T C V Z D

K H

1≤n≤ 8

ENCO ENCOP…7

a )当 [S] 是位元件时,以源 [S] 为首地址、长度为 2n 的位元件中,最高置 1 的位置被存放到目标 [D] 所指定的元件中去, [D] 中数值的分为由 n 确定。说明如图 8-26 a )所示,源元件的长度为 2n=23=8 M10~M17 ,其最高置 1 位是 M13 即第 3 位。将“ 3 ”位置数(二进制)存放到 D10 的低 3 位中。

当源数的第一个(即第 0 位)位元件为 1 ,则 [D] 中存放 0 。当源数中无 1 ,出现运算错误。

n=0 时,程序不执行; n=1~8 以外时,出现运算错误。若 n=8 时, [S] 位数为 28=256 。驱动输入 OFF 时,不执行指令,上一次编码输出保持不变。

若指令是连续执行型,则在各个扫描周期都执行,必须注意。

b )当 [S] 是字元件时,在其可读长度为 2n 位中,最高置 1 的位被存放到目标 [D] 所指定的元件中去, [D] 中的数值的范围由 n 确定。说明如图 8-26 b )所示,源字元件的可读长度为 2n=23=8 位,其最高置 1 位是第 3 位。将“ 3 ”位置数(二进制)存放到 D1 的低 3 位中。

当源数的第一个(即第 0 位)位元件为 1 ,则 [D] 中存放 0 。当源数中无 1 ,出现运算错误。

n=0 时,程序不执行; n=1~4 以外时,出现运算错误。若 n=4 时, [S] 位数为 24=16 。驱动输入 OFF 时,不执行指令,上一次编码输出保持不变。

若指令是连续执行型,则在各个扫描周期都执行,必须注意。