您现在的位置是:首页 > 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=OUT,OUT/IN1=OUT。
在梯形图中,IN1×IN2=OUT,IN1/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