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

S7-200系列PLC的加、减、乘、除指令

来源:艾特贸易2017-06-04

简介(1) 加法指令 加法操作是对两个有符号数进行相加,包括整数加法指令 +I ,双整数加法指令 +D 以及实数加法指令 +R 。 1)+I :整数加法指令在 LAD 中以功能框的形式编程,如图 5-19a 所示

    (1)加法指令 加法操作是对两个有符号数进行相加,包括整数加法指令+I,双整数加法指令+D以及实数加法指令+R    1)+I:整数加法指令在LAD中以功能框的形式编程,如图5-19a所示。指令名称为ADD_I。在整数加法功能框中,EN为允许输入端;ENO为允许输出端;IN1IN22个需要进行相加的有符号数;OUT为结果输出端,用于存放和。当允许输入端EN有效时,执行加法操作,将2个单字长(16位)的符号整数IN1IN2相加,产生116位的整数和OUT,即IN1 +IN2=OUT
加法指令在LAD中的表示
    5-19    加法指令在LAD中的表示    a)整数加法b)双整数加法c)实数加法    整数加法将影响特殊存储器位SM1.0(零)、SM1.1(溢出)、SM1.2(负)。影响允许输出ENO正常工作的条件是:SM1.1(溢出),SM4.3(运行时间),0006(间接寻址)。    STL中,指令格式:+I IN1OUT    例:+I VW0VW4    这里IN2OUT是同一个存储单元。指令的执行结果:IN1+OUT= OUT   2)+D:双整数加法指令在LAD中以功能框的形式编程,如图5-19b所示。指令名称为ADD_DI。其结构特点及使用方法与整数加法基本相同,只是加数与被加数为2个双字长的整数。在双整数加法功能框中,EN为允许输入端,ENO为允许输出端,IN1IN22个需要进行相加的有符号数,OUT用于存放和。当允许输入端EN有效时,执行加法操作,将2个双字长(32位)的符号整数IN1IN2相加,产生132位的整数和OUT,即IN1+IN2=OUT    双整数加法将影响特殊存储器位SM1.0(零)、SM1.1(溢出)、SM1.2(负)。影响允许输出ENO正常工作的条件是:SM1.1(溢出),SM4.3(运行时间),0006(间接寻址)。    在语句表STL中,指令格式:+D IN1OUT    例: +D VD0VD4    3)+R:实数加法指令在LAD中以功能框的形式编程,如图5-19c所示。指令名称为ADD R。其结构及使用方法与整数加法基本相同,只是加数与被加数为两个双字长的实数。    在语句表STL中,指令格式:+R IN1OUT    例: +R VD0VD4    (2)减法指令减法指令是对两个有符号数进行相减操作。与加法指令一样,也包括整数减法指令(-I)、双整数减法指令(-D)及实数减法指令(-R),如图5-20所示。这3种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。
减法指令在梯形图中的表示
    5-20    减法指令在梯形图中的表示    a)整数减法 b)双整数减法 c)实数减法    LAD中,减法指令以功能框形式编程,执行结果:IN1-IN2=OUT    STL中,指令格式:-I IN2, OUT (整数减法)    -D IN2, OUT (双整数减法)    -R IN2OUT(实数减法)    执行结果:IN1 - IN2=OUT    例:-I AC0VW4    其中整数减法运算情况如表5-9所示。    5-9    整数减法指令题解
整数减法指令题解
    (3)乘法指令乘法指令是对2个有符号数进行相乘运算,包括:整数乘法(*I)、完全整数乘法( MUL)、双整数乘法(*D)以及实数乘法(*R)。    1)*I:整数乘法指令是当允许输入EN有效时,将2个单字长(16位)的有符号整数IN1IN2相乘,产生116位的整数结果OUT。如果运算结果大于3276716位二进制数表示的范围),则产生溢出。
乘法指令在LAD中的表示
    5-21    乘法指令在LAD中的表示    a)整数乘法 b)完全整数乘法    c)双整数乘法d)实数乘法    整数乘法指令在LAD中用功能框形式编程,如图5-21a所示,指令名称为MUL_ I,执行结果:IN1*IN2= OUT    STL中的指令格式:*I IN1OUT    执行结果:IN1*OUT= OUT    这里IN2OUT是同一个存储单元。    例如%I VW0AC0其运算情况如表5 -10所示。    2) MUL:完全整数乘法指令是当允许输入EN有效时,将2个单字长(16位)的有符号整数IN1IN2相乘,产生132位的双整数结果OUT    完全整数乘法指令在LAD中用功能框形式编程,如图5-21b所示,指令名称为MUL。执行结果:IN1 * IN2=OUT    5-10    整数乘法指令题解
整数乘法指令题解
    STL中的指令格式:MUL IN1OUT    执行结果:IN1*OUT= OUT    这里32位结果的低16位曾被用作乘数。    3)*D:双整数乘法指令是当允许输入EN有效时,将2个双字长(32位)的有符号整数IN1IN2相乘,产生132位的双整数结果OUT。如果运算结果大于32位二进制数表示的范围,则产生溢出。    双整数乘法指令在LAD中用功能框形式编程,如图5-21c所示,指令名称为MUL_DI。执行结果:IN1*IN2=OUT    STL中的指令格式:%D IN1OUT    执行结果:IN1* OUT= OUT    这里IN2OUT是同一个存储单元。    4)*R:实数乘法指令是当允许输入EN有效时,将2个双字长(32位)的实数IN1IN2相乘,产生132位的实数结果OUT。如果运算结果大于32位二进制数表示的范围,则产生溢出。    实数乘法指令在LAD中用功能框形式编程,如图5-21d所示,指令名称为MUL_R。执行结果:IN1 * IN2=OUT    STL中的指令格式:*R IN1OUT    执行结果:IN1*OUT= OUT。这里IN2OUT是同一个存储单元。    (4)除法指令 除法指令是对2个有符号数进行相除运算,与乘法指令一样,也包括:整数除法(/I)、完全整数除法( DIV)、双整数除法(/D)以及实数除法(/R),它们在LAD中的表示方法如图5-22所示。这4种除法指令与所对应的乘法指令除运算法则不同之外,其他方面基本相同。
 除法指令在LAD中的表示
    5-22    除法指令在LAD中的表示    a)整数除法b)完全整数除法、    c)双整数除法d)实数除法    LAD中,除法指令以功能框形式编程,执行结果:IN1/IN2=OUT    STL中,指令格式:    I IN2OUT(整数除法)    DIV IN2OUT(完全整数除法)    /D IN2, OUT(双整数除法)    /R IN2OUT (实数除法)    执行结果:OUT/IN2=OUT    在整数除法中,两个16位的整数相除,产生一个16位的整数商,不保留余数。双整数除法也同样过程,只是位数变为32位。在完全整数除法中,两个16位的符号整数相除,产生一个32位结果,其中,低16位为商,高I6位为余数。32位结果的低16位运算前被用于存放被除数。