您现在的位置是:首页 > PLC技术 > PLC技术

四则运算指令的应用

来源:艾特贸易2019-09-01

简介算术运算包括 ADD 、 SUB 、 MUL 、 DIV (二进制加、减、乘、除)指令,源操作数可取所有的数据类型,目标操作数可取 KnY 、 KnM 、 KnS 、 T 、 C 、 D 、 V 和 Z ( 32 位乘除指令中 V 和 Z 不


    算术运算包括ADDSUBMULDIV(二进制加、减、乘、除)指令,源操作数可取所有的数据类型,目标操作数可取KnYKnMKnSTCDVZ32位乘除指令中VZ不能用作[D])。16位运算占7个程序步,32位运算占13个程序步。

    下面逐一介绍各指令的用法。

   1)加法指令

    加法指令ADD(Addition)将源元件中的二进制数相加,结果送到指定的目标元件。使用ADD指令时应注意:

   (1)加法指令ADD功能指令编号为FNC20

   (2)加法指令每个数据的最高位为符号位(0为正,1为负)。加减运算为代数运算。图4 -2 -1中的XOON时,执行(D10)+(D12)(D14)

 图4 -2 -1 二进制加减法运算的梯形图

4 -2 -1  二进制加减法运算的梯形图

   (3)32位运算中用到字编程元件时,被指定的字编程元件为低位字,下一个编程元件为高位字。为了避免错误,建议指定操作元件时采用偶数元件号。

   (4)加法指令ADD3个标志位。M8020为零标志位,M8021为借位标志位,M8022为进位标志位。

    如果运算结果为0,零标志M80201;运算结果超过3276716 bit运算)或214748364732 bit运算),进位标志M80211;运算结果小于-3276716 bit运算)或- 214748364732 bit运算),借位标志M80231;标志位的ONOFF状态与数值的正负关系如图4 -2 -2所示。

   (5)若源元件和目标元件号相同,并采用连续执行的ADD指令,每一个扫描周期加法的结果都会改变。

 图4 -2 -2标志的状态与数值的正负关系

4 -2 -2标志的状态与数值的正负关系

  2)减法指令

  减法指令SUB(Subtraction)的功能是将[S1]指定的元件中的数减去[S2]指定的元件中的数,结果送到[D]指定的目标元件。图4-2 -1中的XlON时,执行(D1D0) - K22(D1D0)。使用SUB指令时应注意:

   (1)减法指令的功能指令编号为FNC21

   (2)每个标志的功能、32位运算元件的指定方法、连续执行和脉冲执行的区别等均与加法指令中的相同。

   (3)用脉冲执行的加减指令来加1或减1与脉冲执行的INC(加1)或DEC(1)指令的执行结果相似,其不同之处在于INC指令和DEC指令不影响零标志、借位标志和进位标志。

  3)乘法指令

  乘法指令MUL(Multiplication)将源元件中的二进制数相乘,结果(32 bit)送到指定的目标元件。乘法指令MUL16位和32位两种情况。如图4-2 -3所示为16位运算,执行条件的XOON时,执行(DO)×(D2)(D4),即将D0D2中的数相乘,乘积的低位字送到D4,高位字送到D5。源操作数是16位,目标操作数是32位。使用MUL指令时应注意:

   (1)乘法指令的功能指令编号为FNC22

   (2)乘法指令的每个数据的最高位为符号位(0为正,1为负)。

   (3)目标位元件(如KnM)可用K1~K8来指定位数。如果用K4来指定位数,只能得到乘积的低16位。32位乘法运算指令DMUL如用位元件作目标,则只能得到乘积的低32位;高32位丢失。在这种情况下,应先将数据移入字元件再进行运算。用字元件时,不能监控64位数据的内容,在这种情况下,建议采用浮点运算。

 图4 -2 -3二进制乘除法说明的梯形匿

4 -2 -3二进制乘除法说明的梯形匿

  4)除法指令

  除法指令DIV(Diwision)是将指定的源元件中二进制数相除,用[Sl]指定被除数,[S2]指定除数,商送到[D]指定的目标元件,余数送到[D]的下一个元件。图4 -2 -3中的XlON时执行(D7D6)÷(D9D8),商送到(D3D2),余数送到( D5D4)

    使用DIV指令时应注意:

   (1)除法指令的功能指令编号为FNC23

   (2)若除数为0则出错,不执行该指令。

   (3)若位元件被指定为目标元件,不能获得余数,商和余数的最高位为符号位。