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

SIMATIC PLC的整数乘除法指令

来源:艾特贸易2018-09-28

简介整数乘法指令 MUL_I(MultiplyInteger) 将两个 16 位整数相乘,产生一个 16 位乘积。整数除法指令 DIV_I(Divide Integer) 将两个 16 位整数相除,产生一个 16 位的商,不保留余数。如果结果大于一个

    整数乘法指令MUL_I(MultiplyInteger)将两个16位整数相乘,产生一个16位乘积。整数除法指令DIV_I(Divide Integer)将两个16位整数相除,产生一个16位的商,不保留余数。如果结果大于一个字,则溢出位被置1

    双整数乘法指令MUL_DI(MultiplyDouble Integer)将两个32位整数相乘,产生一个32位的乘积。双整数除法DIV_DI(Divide Double Integer)指令将两个32位整数相除,产生一个32位的商,不保留余数。

    整数乘法产生双整数指令MUL(MultiplyInteger to Double Integer)将两个16位整数相乘,产生一个32位乘积。整数除法产生双整数指令DIV(Divide Integer to Double Integer)将两个16位整数相除,产生一个32位结果,高16位为余数,低16位为商。

    在语句表乘法指令中,32位结果的低16位被用做乘数;在语句表除法指令中,32位结果的低16位被用做被除数。

    在语句表中,IN1×OUT=OUTOUT/IN1=OUT

    在梯形图中,IN1×IN2=OUTIN1/IN2=OUT

    使ENO=0的错误条件:SM1.1(溢出)SM1.3(除数为0)SM4.3(运行时间)0006(间接地址)。这些指令影响SM1.0()SM1.1(溢出)SM1.3(除数为0)SM1.2()

    如果在乘除法操作过程中SM1.1(溢出)被置1,则结果不写到输出,而且其他状态位均置位。如果在除法操作中SM1.3被置1(除数为零),则其他算术状态位不变,原始输入操作数也不变。否则,运算完成后其他数学状态位有效。

    【例】  算术运算举例

   LD  I0.0

   +I    AC1, AC0    //AC1+AC0=AC0

   MULAC1, VD100    //AC1×VD100=VD100

   DIV VW10, VD200   //ND200NW10=VD200