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