您现在的位置是:首页 > PLC技术 > PLC技术
四则运算指令的应用
来源:艾特贸易2019-09-01
简介算术运算包括 ADD 、 SUB 、 MUL 、 DIV (二进制加、减、乘、除)指令,源操作数可取所有的数据类型,目标操作数可取 KnY 、 KnM 、 KnS 、 T 、 C 、 D 、 V 和 Z ( 32 位乘除指令中 V 和 Z 不
算术运算包括ADD、SUB、MUL、DIV(二进制加、减、乘、除)指令,源操作数可取所有的数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z(32位乘除指令中V和Z不能用作[D])。16位运算占7个程序步,32位运算占13个程序步。
下面逐一介绍各指令的用法。
1)加法指令
加法指令ADD(Addition)将源元件中的二进制数相加,结果送到指定的目标元件。使用ADD指令时应注意:
(1)加法指令ADD功能指令编号为FNC20。
(2)加法指令每个数据的最高位为符号位(0为正,1为负)。加减运算为代数运算。图4 -2 -1中的XO为ON时,执行(D10)+(D12)→(D14)。
图4 -2 -1 二进制加减法运算的梯形图
(3)在32位运算中用到字编程元件时,被指定的字编程元件为低位字,下一个编程元件为高位字。为了避免错误,建议指定操作元件时采用偶数元件号。
(4)加法指令ADD有3个标志位。M8020为零标志位,M8021为借位标志位,M8022为进位标志位。
如果运算结果为0,零标志M8020置1;运算结果超过32767(16 bit运算)或2147483647(32 bit运算),进位标志M8021置1;运算结果小于-32767(16 bit运算)或- 2147483647(32 bit运算),借位标志M8023置1;标志位的ON与OFF状态与数值的正负关系如图4 -2 -2所示。
(5)若源元件和目标元件号相同,并采用连续执行的ADD指令,每一个扫描周期加法的结果都会改变。
图4 -2 -2标志的状态与数值的正负关系
2)减法指令
减法指令SUB(Subtraction)的功能是将[S1]指定的元件中的数减去[S2]指定的元件中的数,结果送到[D]指定的目标元件。图4-2 -1中的Xl为ON时,执行(D1、D0) - K22→(D1、D0)。使用SUB指令时应注意:
(1)减法指令的功能指令编号为FNC21。
(2)每个标志的功能、32位运算元件的指定方法、连续执行和脉冲执行的区别等均与加法指令中的相同。
(3)用脉冲执行的加减指令来加1或减1与脉冲执行的INC(加1)或DEC(减1)指令的执行结果相似,其不同之处在于INC指令和DEC指令不影响零标志、借位标志和进位标志。
3)乘法指令
乘法指令MUL(Multiplication)将源元件中的二进制数相乘,结果(32 bit)送到指定的目标元件。乘法指令MUL有16位和32位两种情况。如图4-2 -3所示为16位运算,执行条件的XO为ON时,执行(DO)×(D2)→(D4),即将D0和D2中的数相乘,乘积的低位字送到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)除法指令
除法指令DIV(Diwision)是将指定的源元件中二进制数相除,用[Sl]指定被除数,[S2]指定除数,商送到[D]指定的目标元件,余数送到[D]的下一个元件。图4 -2 -3中的Xl为ON时执行(D7、D6)÷(D9、D8),商送到(D3、D2),余数送到( D5、D4)。
使用DIV指令时应注意:
(1)除法指令的功能指令编号为FNC23。
(2)若除数为0则出错,不执行该指令。
(3)若位元件被指定为目标元件,不能获得余数,商和余数的最高位为符号位。