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