四则及逻辑运算的功能是什么
2024-02-10  来源:网络或本站原创

    四则及逻辑运算指令是基本运算指令。可完成四则运算或逻辑运算,可通过运算实现数据的传送、变位及其他控制功能。

可编程控制器中两种四则运算,即整数四则运算和实数四则运算。前者指令较简单,参加运算的数据只能是整数。非整数参加运算需先取整,除法运算的结果分为商和余数。整数四则运算进行较高准确度要求的计算时,需将小数点前后的数值分别计算再将数据组合起来,除法运算时要对余数再做多次运算才能形成最后的商。这就使程序的设计非常繁琐。而实数运算是浮点运算,是一种高准确度的运算。 FX2 系列可编程控制器仅有整数运算指令。 FX2n 系列可编程控制器具有实数运算指令。

1 )加法指令

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

8-1 加法指令的要素

指令名称

助记符

指令代码位数

操作数范围

程序步

S1(.)

S2(.)

D(.)

加法

ADD

ADD(P)

FNC20

(16/32)

K H

KnX KnY KnM KnS

T C D V Z

KnY KnM KnS

T C D V Z

ADD ADDP…7

DADD DADDP…13

ADD 加法指令是将指定的源元件中的二进制数相加,结果送到指定的目标元件中去。 ADD 加法指令的说明如图 8-1 表示。

当执行条件 X0 OFF → ON 时, [D10]+[D12] → [D14] 。运算是代数运算,如 5+ -8 =-3

ADD 加法指令有 3 个常用标志。 M8020 为零标志, M8021 为借位标志, M8022 为进位标志。

如果运算结果为 0 ,则零标志 M8020 1 ;如果运算结果超过 32767 16 位)或 2147483647 32 位),则进位标志 M8022 1 ;如果运算结果小于 -32767 16 位)或 -2147483647 32 位),则借位标志 M8021 1

32 为运算中,被指定的字元件是低 16 位元件,而下一个元件为高 16 位元件。

源和目标可以用相同的元件号。若源和目标元件号相同而采用连续执行的 ADD 、( D ADD 指令时,加法的结果在每个扫描周期都会改变。

2 )减法指令

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

8-2 减法指令的要素

指令名称

助记符

指令代码位数

操作数范围

程序步

S1(.)

S2(.)

D(.)

减法

SUB

SUB(P)

FNC21

(16/32)

K H

KnX KnY KnM KnS

T C D V Z

KnY KnM KnS

T C D V Z

SUB SUBP…7

DSUB DSUBP…13

SUB 减法指令是将指定的源元件中的二进制数相减,结果送到指定的目标元件中去。 SUB 减法指令的说明如图 8-3 表示。

8-3 减法指令使用说明

当执行条件 X0 OFF → ON 时, [D10]-[D12] → [D14] 。运算是代数运算,如 5- -8 =13

各种标志的动作、 32 位运算中软元件的指定方法、连续执行型和脉冲执行型的差异均与上述加法指令相同。

3 )乘法指令

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

8-3 乘法指令的要素

指令名称

助记符

指令代码位数

操作数范围

程序步

S1(.)

S2(.)

D(.)

乘法

MUL

MUL(P)

FNC22

(16/32)

K H

KnX KnY KnM KnS

T C D V Z

KnY KnM KnS

T C D V Z

MUL MULP…7

DMUL DMULP…13

MUL 乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。 MUL 乘法指令使用说明如图 8-4 所示。它分 16 位和 32 位两种情况。

8-4 乘法指令使用说明

当为 16 位运算,执行条件 X0 OFF → ON 时, [D0]x[D2] → [D5 D4] 。源操作数是 16 位,目标操作数是 32 位。当 [D0]=8 [D2]=9 时, [D5 D4]=72 。最高位为符号位, 0 为正, 1 为负。

当为 32 位运算,执行条件 X0 OFF → ON 时, [D1 D0]x[D3 D2] → [D7 D6 D5 D4] 。源操作数是 32 位,目标操作数是 64 位。当 [D1 D0]=238 [D3 D2]=189 时, [D7 D6 D5 D4]=44982 ,最高位为符号位, 0 为正, 1 为负。

如将位组合元件用于目标操作数时,限于 K 的取值,只能得到低位 32 位的结果,不能得到高位 32 位的结果。这时,应将数据移入字元件再进行计算。

用字元件时,也不可能监视 64 位数据,只能通过监视高位 32 位和低 32 位。 V Z 不能用于 [D] 目标元件。

4 )除法指令

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

8-4 除法指令的要素

指令名称

助记符

指令代码位数

操作数范围

程序步

S1(.)

S2(.)

D(.)

除法

DIV

DIV(P)

FNC23

(16/32)

K H

KnX KnY KnM KnS

T C D Z

KnY KnM KnS

T C D

DIV DIVP…7

DDIV DDIVP…13

DIV 除法指令是将指定的源元件中的二进制数相除, [S1] 为被除数, [S2] 为除数,商送到指定的目标元件 [D] 中去,余数送到 [D] 的下一个目标元件。 DIV 除法指令使用说明如图 8-5 表示。它分 16 位和 32 位两种情况。

8-5 除法指令使用说明

当为 16 位运算。执行条件 X0 OFF → ON 时,[D0]/[D2] → [D4] 。当 [D0]=19 [D2]=3 时, [D4]=6 [D5]=1 V Z 不能用于 [D] 中。

当为 32 位运算。执行条件 X0 OFF → ON 时,[D1 D0]/[D3 D2] 。商在 [D5 D4] ,余数在 [D7 D6] 中。 V Z 不能用于 [D] 中。

商数为 0 时,有运算错误,不执行指令。若 [D] 指定位元件,得不到余数。商和余数的最高位是符号位。被除数或余数中有一个为负数,商为负数;被除数为负数时,余数为负数。