数据处理指令含批复位指令、编、译码指令及平均值计算等指令。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某一置
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
时,不执行指令,上一次编码输出保持不变。
若指令是连续执行型,则在各个扫描周期都执行,必须注意。