首页 理论教育 二进制算术运算指令详解

二进制算术运算指令详解

时间:2023-06-16 理论教育 版权反馈
【摘要】:二进制算术运算指令分为16位和32位二进制数的加、减、乘、除、加1和减1等的指令一共16条,如表3-14所示。表3-14 二进制算术运算指令1.F20(+)该指令为16位数的加法指令,其功能是当触发信号接通时,将S指定的16位常数或16位数据存储单元中的数据与D指定的16位数据存储单元中的数据相加,结果存储在D指定的数据存储单元中,如图3-10所示。

二进制算术运算指令详解

二进制算术运算指令分为16位和32位二进制数的加、减、乘、除、加1和减1等的指令一共16条,如表3-14所示。

表3-14 二进制算术运算指令

978-7-111-46505-8-Chapter03-24.jpg

1.F20(+)

该指令为16位数的加法指令,其功能是当触发信号接通时,将S指定的16位常数或16位数据存储单元中的数据与D指定的16位数据存储单元中的数据相加,结果存储在D指定的数据存储单元中,如图3-10所示。指令格式及操作数范围如表3-15所示。

978-7-111-46505-8-Chapter03-25.jpg

图3-10 指令的执行

表3-15 指令格式及操作数范围

978-7-111-46505-8-Chapter03-26.jpg

当触发信号使X1接通时,内部字继电器WR2中的数据和数据寄存器DT1中的数据相加,结果存储在WR2中(被加数存储单元D中的数据被加法结果覆盖)。16位数据存储单元的数据存储范围是-32768~32767(H8000~H7FFF)。当计算结果超过16位二进制数的范围时,进位标志继电器:R9009瞬间接通(一个扫描周期);当计算结果为0时,R900B瞬间接通(一个扫描周期)。

特别注意的是,如果指令前面是保持型的触发信号,则在每一个扫描周期该指令都执行一次,所以通常要在触发信号后面加上前沿或后沿微分指令,这样才能得到预期的运算结果。高级指令中有很多类似的情况,后面不再重复说明。

2.F21(D+)

该指令为32位数的加法指令,其功能是将由S指定的32位常数或32位数据存储单元中的数据(S为低16位,S+1为高16位)与由D指定的32位数据存储单元中的数据(D为低16位,D+1为高16位)相加,结果存放在数据存储单元D和D+1中,如图3-11所示。

978-7-111-46505-8-Chapter03-27.jpg

图3-11 指令的执行

指令格式及操作数范围如表3-16所示。

表3-16 指令格式及操作数范围

978-7-111-46505-8-Chapter03-28.jpg

执行时,触发信号使X1接通时,内部继电器WR3、WR2中的数据分别和数据寄存器DT2、DT1中的数据相加,结果存储在WR3、WR2中(被加数存储单元中的数据被加法结果覆盖)。

32位数据存储单元的数据范围是-2147483648~2147483647(H80000000~H7FFFFFFF)。当计算结果超过32位数据的范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

如果低16位存储单元已经指定为(D,S),则高位自动指定为(D+1,S+1)。此处,S(低位)=DT1,S+1(高位)=DT2,D(低位)=WR2,D+1(高位)=WR3。

3.F22(+)

该指令为16位数据相加存储在指定单元的指令,功能是将由S1和S2指定的16位常数或16位存储单元中的数据相加,结果存储在指定的D中,如图3-12所示。指令格式及操作数范围如表3-17所示。

978-7-111-46505-8-Chapter03-29.jpg

图3-12 指令的执行

表3-17 指令格式及操作数范围

978-7-111-46505-8-Chapter03-30.jpg

当触发信号使X1接通时,内部继电器WR2中的数据和数据寄存器DT1中的数据相加,结果存储在DT5中。当计算结果超过16位二进制数的范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

4.F23(D+)

该指令为32位数据相加存储在指定单元的指令,功能是将由S1指定的32位常数或32位数据存储单元中的数据(S1为低16位,S1+1为高16位)与由S2指定的32位数据存储单元(S2为低16位,S2+1为高16位)中的数据相加,结果存储在数据存储单元D和D+1中,如图3-13所示。指令格式及操作数范围如表3-18所示。

978-7-111-46505-8-Chapter03-31.jpg

图3-13 指令的执行

表3-18 指令格式及操作数范围

978-7-111-46505-8-Chapter03-32.jpg

(续)

978-7-111-46505-8-Chapter03-33.jpg

当触发信号使X1接通吋,内部继电器WR3、WR2中的数据分别和数据寄存器DT2、DT1中的数据相加,结果分别存储在DT6、DT5中。

计算结果一旦超过32位数据范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

5.F25(-)

该指令为16位数据的减法指令,其功能是将由D指定的16位数据存储单元中的数据与由S指定的16位常数或16位数据存储单元中的数据相减,结果存储在D指定的数据存储单元中,如图3-14所示。指令格式及操作数范围如表3-19所示。

978-7-111-46505-8-Chapter03-34.jpg

图3-14 指令的执行

表3-19 指令格式及操作数范围

978-7-111-46505-8-Chapter03-35.jpg

当触发信号使X1接通时,WR2中的数据和DT1中的数据相减,结果存储在WR2中(被减数存储单元WR2中的数据被减法的结果覆盖)。当计算结果超过16位二进制数的范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

6.F26(D-)

该指令为两个32位数据的减法指令,其功能是将由D指定的32位数据存储单元(D为低16位,D+1为高16位)中的数据与由S指定的32位常数或32位数据存储单元中的数据(S为低16位,S+1为高16位)相减,结果存储在数据存储单元D和D+1中,如图3-15所示。指令格式及操作数范围如表3-20所示。

978-7-111-46505-8-Chapter03-36.jpg

图3-15 指令的执行

表3-20 指令格式及操作数范围

978-7-111-46505-8-Chapter03-37.jpg

(续)

978-7-111-46505-8-Chapter03-38.jpg

当触发信号使X1接通时,内部继电器WR3、WR2中的数据分别和数据寄存器DT2、DT1中的数据相减,结果存储WR3、WR2中(被减数存储单元DT2、DT1中的数据被减法的结果覆盖)。

计算结果一旦超过32位数据范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

7.F27(-)

该指令为16位数据相减存储在指定存储单元的指令,其功能是将由S1和S2指定的16位常数或16位存储单元中的数据相减,结果存储在指定的D中,如图3-16所示。指令格式及操作数范围如表3-21所示。

978-7-111-46505-8-Chapter03-39.jpg

图3-16 指令的执行

表3-21 指令格式及操作数范围

978-7-111-46505-8-Chapter03-40.jpg

当触发信号使X1接通时,DT1中的数据和WR2中的数据相减,结果存储在DT5中。

计算结果一旦超过16位二进制数的范围时,进位标志继电器R9009瞬间接通(一个扫描周期);计算结果为零时,R900B瞬间接通(一个扫描周期)。

8.F28(D-)

该指令为32位数据相减存储在指定单元的指令,其功能是将由S1指定的32位常数或32位数据存储单元中的数据(S1为低16位,S1+1为高16位)与由S2指定的32位数据存储单元(S2为低16位,S2+1为高16位)中的数据相减,结果存于数据存储单元D和D+1中,如图3-17所示。指令格式及操作数范围如表3-22所示。

978-7-111-46505-8-Chapter03-41.jpg

图3-17 指令的执行(www.xing528.com)

当触发信号使X1接通时,DT2、DT1中的数据和WR3、WR2中的数据相减,结果存储在DT6、DT5中。

计算结果一旦超过32位数据范围时,进位标志继电器R9009瞬间接通(一个扫描周期);当计算结果为零时,R900B瞬间接通(一个扫描周期)。

表3-22 指令格式及操作数范围

978-7-111-46505-8-Chapter03-42.jpg

9.F30(∗)

该指令为16位数据的乘法指令,其功能是将由S1指定的16位数据与S2指定的16位数据相乘,相乘的结果存储在(D+1,D)中(32位存储单元),如图3-18所示。指令格式及操作数范围如表3-23所示。

978-7-111-46505-8-Chapter03-43.jpg

图3-18 指令的执行

表3-23 指令格式及操作数范围

978-7-111-46505-8-Chapter03-44.jpg

当X1接通时,WR2中的数据和DT1中的数据相乘,结果存储在DT6、DT5中。

10.F31(D∗)

该指令为32位数据的乘法指令,功能是将S1指定的32位数与S2指定的32位数相乘,结果存储在(D+3,D+2,D+1,D)中(64位存储单元),如图3-19所示。指令格式及操作数范围如表3-24所示。

978-7-111-46505-8-Chapter03-45.jpg

图3-19 指令的执行

表3-24 指令格式及操作数范围

978-7-111-46505-8-Chapter03-46.jpg

(续)

978-7-111-46505-8-Chapter03-47.jpg

当触发信号使X1接通时,内部继电器WR1、WR2中的数据和数据寄存器DT2、DT1中的数据相乘,结果存储在DT8、DT7、DT6、DT5中。

值得注意的是,FP1系列的PLC中的C14型和C16型不支持本条指令,其余的C24型、C40型、C56型和C72型都支持。

11.F32(%)

该指令为16位数据的除法指令,功能是将S1指定的16位数除以S2指定的16位数,商存储在D中,余数存储在特殊数据寄存器DT9015中,如图3-20所示。指令格式及操作数范围如表3-25所示。

978-7-111-46505-8-Chapter03-48.jpg

图3-20 除法指令的功能

表3-25 指令格式及操作数范围

978-7-111-46505-8-Chapter03-49.jpg

12.F33(D%)

该指令为32位数据的除法指令,功能是将S1指定的32位被除数除以S2指定的32位数,商存储在指定的(D+1,D)中,余数存储在特殊数据寄存器(DT9016,DT9015)中,如图3-21所示。指令格式及操作数范围如表3-26所示。

978-7-111-46505-8-Chapter03-50.jpg

图3-21 指令的执行

表3-26 指令格式及操作数范围

978-7-111-46505-8-Chapter03-51.jpg

当触发信号使X1接通时,内部继电器(WR3,WR2)中的数据和数据寄存器(DT2,DT1)中的数据相除,结果存储在(DT6,DT5)中,余数存储在(DT9016,DT9015)中。

在FP1系列PLC的C14型和C16型PLC不支持本条指令,其余的C24型、C40型、C56型和C72型都支持,这个需要注意。

13.F35(+1)

该指令为16位数据加1指令,其功能是将D指定的16位数据加1,结果仍存储在D中,如图3-22所示。指令格式及操作数范围如表3-27所示。

978-7-111-46505-8-Chapter03-52.jpg

图3-22 指令的功能

表3-27 指令格式及操作数范围

978-7-111-46505-8-Chapter03-53.jpg

当触发信号使X1接通时,数据寄存器DT1中的数据加1,结果仍存储在DT1中。若DT1=HFFFF,则指令执行一次后DT1=H0。

如果计算结果出现溢出(R9009接通),可使用F36(D+1)指令(32位数据加1),此时要先用F89(EX7)指令将16位数据转换成32位数据。

14.F36(D+1)

该指令是32位数据的加1指令,其功能是将D指定的32位数据加1,结果仍存储在(D+1,D)中,如图3-23所示。指令格式及操作数范围如表3-28所示。

978-7-111-46505-8-Chapter03-54.jpg

图3-23 指令的功能

表3-28 指令格式及操作数范围

978-7-111-46505-8-Chapter03-55.jpg

当触发信号使X1接通时,数据寄存器(DT2,DT1)中的数据增加1,结果仍存储在(DT2,DT1)中。若(DT2,DT1)=H1289FFFF,则指令执行一次后(DT2,DT1):H128A0000。

15.F37(-1)

该指令为16位数据的减1指令,其功能是将D指定的16位数据减1,结果仍存储在D中,如图3-24所示。指令格式及操作数范围如表3-29所示。

978-7-111-46505-8-Chapter03-56.jpg

图3-24 指令的功能

表3-29 指令格式及操作数范围

978-7-111-46505-8-Chapter03-57.jpg

当触发信号使X1接通时,数据寄存器DT1中的数据减1,结果仍存储在DT1中。若DT1=H0,则指令执行一次后DT1=HFFFF。

如果计算结果出现溢出(R9009接通),可使用:F38(D-1)指令(32位数据减1),此时要先用F89(EXT)指令将16位数转换成32位数据。

16.F38(D-1)

该指令为32位数据减1指令,其功能是将D指定的32数据减1,结果仍存储在(D+1,D)中,如图3-25所示,指令格式及操作数范围如表3-30所示。

978-7-111-46505-8-Chapter03-58.jpg

图3-25 指令的功能

表3-30 指令格式及操作数范围

978-7-111-46505-8-Chapter03-59.jpg

当触发信号使X1接通时,数据寄存器(DT2,DT1)中的数据减1,结果仍存储在(DT2,DT1)中。若(DT2,DT1)=H128A0000,则指令执行一次后(DT2,DT1)=H1289FFFF。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈