当前位置: 首页 > 资讯

高效操作 | PMC功能指令详解(十一)运算指令二

2017-07-13 17:45       2017-07-13

代码转换指令:

高效操作 | PMC功能指令详解(十一)运算指令二

5.ADD(BCD加法:SUB 19)

该指令能实现2位或4位BCD码的加法。

指令格式:

高效操作 | PMC功能指令详解(十一)运算指令二

控制条件:

(a) 指定运算数据位数**(BYT)**

BYT=0:2位BCD码长度。

BYT=1:4位BCD码长度。

(b) 复位信号

RST=0:不复位。

RST=1:复位错误输出W1,置W1=0。

(c) 指令信号

ACT=0:不执行ADD指令,W1不改变。

ACT=1:执行ADD指令。

参数:

(a) 加数格式**(常数/地址)**

0:指定加数为常数。

1:指定加数为地址。

(b) 被加数地址

指定被加数的地址。

(c) 加数

由参数(a)指定加数的格式(常数或地址)。

(d) 运算结果地址

指定存储运算结果的地址。

错误输出**(W1)**:

W1=0:正常运算。

W1=1:异常运算。

如果加法结果超过了控制条件(a)指定的长度,那么W1被置1。

注意:

该指令的输出只允许单线圈。任何并到W1处的线圈、取反线圈、S置位或R复位都是不允许的。你必须放置单线圈指令作为这个指令的输出。

指令示例:

高效操作 | PMC功能指令详解(十一)运算指令二

R100.0=0(2位BCD数据)、R100.1=0且R100.2=1时,执行ADD指令。各情况下ADD指令执行结果如下表所示:

高效操作 | PMC功能指令详解(十一)运算指令二

6.SUB(BCD减法:SUB 20)

该指令能实现2位或4位BCD码的减法。

指令格式:

高效操作 | PMC功能指令详解(十一)运算指令二

控制条件:

(a) 指定运算数据位数**(BYT)**

BYT=0:2位BCD码长度。

BYT=1:4位BCD码长度。

(b) 复位信号

RST=0:不复位。

RST=1:复位错误输出W1,置W1=0。

(c) 指令信号

ACT=0:不执行SUB指令,W1不改变。

ACT=1:执行SUB指令。

参数:

(a) 减数格式**(常数/地址)**

0:指定减数为常数。

1:指定减数为地址。

(b) 被减数地址

指定被减数的地址。

(c) 减数

由参数(a)指定减数的格式(常数或地址)。

(d) 运算结果地址

指定存储运算结果的地址。

错误输出**(W1)**:

W1=0:正常运算。

W1=1:异常运算。

如果加法结果超过了控制条件(a)指定的长度,那么W1被置1。

注意:

该指令的输出只允许单线圈。任何并到W1处的线圈、取反线圈、S置位或R复位都是不允许的。你必须放置单线圈指令作为这个指令的输出。

指令示例:

高效操作 | PMC功能指令详解(十一)运算指令二

R100.0=0(2位BCD数据)、R100.1=0且R100.2=1时,执行SUB指令。各情况下SUB指令执行结果如下表所示:

高效操作 | PMC功能指令详解(十一)运算指令二

7.MUL(BCD乘法:SUB 21)

该指令能实现2位或4位BCD码的乘法。

指令格式:

高效操作 | PMC功能指令详解(十一)运算指令二

控制条件:

(a) 指定运算数据位数**(BYT)**

BYT=0:2位BCD码长度。

BYT=1:4位BCD码长度。

(b) 复位信号

RST=0:不复位。

RST=1:复位错误输出W1,置W1=0。

(c) 指令信号

ACT=0:不执行MUL指令,W1不改变。

ACT=1:执行MUL指令。

参数:

(a) 乘数格式**(常数/地址)**

0:指定乘数为常数。

1:指定乘数为地址。

(b) 被乘数地址

指定被乘数的地址。

(c) 乘数

由参数(a)指定乘数的格式(常数或地址)。

(d) 运算结果地址

指定存储运算结果的地址。

错误输出**(W1)**:

W1=0:正常运算。

W1=1:异常运算。

如果加法结果超过了控制条件(a)指定的长度,那么W1被置1。

注意:

该指令的输出只允许单线圈。任何并到W1处的线圈、取反线圈、S置位或R复位都是不允许的。你必须放置单线圈指令作为这个指令的输出。

指令示例:

高效操作 | PMC功能指令详解(十一)运算指令二

R100.0=0(2位BCD数据)、R100.1=0且R100.2=1时,执行MUL指令。各情况下MUL指令执行结果如下表所示:

高效操作 | PMC功能指令详解(十一)运算指令二

8.DIV(BCD除法:SUB 22)

该指令能实现2位或4位BCD码的除法。余数被丢弃,不会输出到余数输出寄存器中。

指令格式:

高效操作 | PMC功能指令详解(十一)运算指令二

控制条件:

(a) 指定运算数据位数**(BYT)**

BYT=0:2位BCD码长度。

BYT=1:4位BCD码长度。

(b) 复位信号

RST=0:不复位。

RST=1:复位错误输出W1,置W1=0。

(c) 指令信号

ACT=0:不执行DIV指令,W1不改变。

ACT=1:执行DIV指令。

参数:

(a) 除数格式**(常数/地址)**

0:指定除数为常数。

1:指定除数为地址。

(b) 被除数地址

指定被除数的地址。

(c) 除数

由参数(a)指定除数的格式(常数或地址)。

(d) 运算结果地址

指定存储运算结果的地址。

错误输出**(W1)**:

W1=0:正常运算。

W1=1:异常运算。如果除数为0,W1=1标志发生错误。

注意:

该指令的输出只允许单线圈。任何并到W1处的线圈、取反线圈、S置位或R复位都是不允许的。你必须放置单线圈指令作为这个指令的输出。

指令示例:

高效操作 | PMC功能指令详解(十一)运算指令二

R100.0=0(2位BCD数据)、R100.1=0且R100.2=1时,执行DIV指令。各情况下DIV指令执行结果如下表所示:

高效操作 | PMC功能指令详解(十一)运算指令二