算术运算指令包括加、减、乘、除及常用函数指令。在梯形图编程和指令表编程时对存储单元的要求是不同的,所以在使用时一定要注意存储单元的分配。梯形图编程时,IN2和OUT指定的存储单元可以相同,也可以不同;指令表编程时,IN2和OUT要使用相同的存储单元。算术运算指令在梯形图和指令表中的具体执行过程见表4-15。若在梯形图编程时,IN2和OUT使用了不同的存储单元,在转换为指令表格式时会使用数据传递指令对程序进行处理,将IN2与OUT变为一致,表4-16中以整数加法指令具体说明。一般来说,梯形图对存储单元的分配更加灵活。
表4-15 算术运算指令在梯形图和指令表中的具体执行过程
表4-16 运算指令在梯形图和指令表中的转换处理
1.整数与双整数加减法指令
整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16bit的结果输出到OUT。
双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32bit的结果输出到OUT。
整数与双整数加减法指令格式见表4-17。
表4-17 整数与双整数加减法指令格式
说明:
①当IN1、IN2和OUT操作数的地址不同时,在STL指令中,首先用数据传送指令将IN1中的数值送入OUT,然后再执行加、减运算,即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省内存,在整数加法的梯形图指令中,可以指定IN1或IN2=OUT,这样,可以不用数据传送指令。如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。
②整数与双整数加减法指令影响算术标志位SM1.0(零标志位)、SM1.1(溢出标志位)和SM1.2(负数标志位)。
例4-10求2000加400的和,2000在数据存储器VW200中,结果放入AC0。程序如图4-12所示。
图4-12 例4-10梯形图
2.整数乘除法指令
整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16bit的积,从OUT指定的存储单元输出。
整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16bit的商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。
双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32bit的乘积,从OUT指定的存储单元输出。
双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32bit的商,从OUT指定的存储单元输出,不保留余数。
整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32bit的乘积,从OUT指定的存储单元输出。
整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32bit的结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。
整数乘除法指令格式见表4-18。
表4-18 整数乘除法指令格式
整数双整数乘除法指令操作数及数据类型和加减运算的相同。
整数乘法除法产生双整数指令的操作数:
IN1/IN2:VW,IW,QW,MW,SW,SMW,T,C,LW,AC,AIW,常量,*VD,*LD,*AC。数据类型:整数。
OUT:VD,ID,QD,MD,SMD,SD,LD,AC,*VD,*LD,*AC。数据类型:双整数。
使ENO=0的错误条件:0006(间接地址),SM1.1(溢出),SM1.3(除数为0)。
对标志位的影响:SM1.0(零标志位),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)。(www.xing528.com)
例4-11乘除法指令应用举例,程序如图4-13所示。
图4-13 例4-11梯形图
3.实数加减乘除指令
实数加法(ADD-R)、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32bit的实数结果,从OUT指定的存储单元输出。
实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32bit的积(商),从OUT指定的存储单元输出。
操作数:
IN1/IN2:VD,ID,QD,MD,SMD,SD,LD,AC,常量,*VD,*LD,*AC。
OUT:VD,ID,QD,MD,SMD,SD,LD,AC,*VD,*LD,*AC。
数据类型:实数。
指令格式见表4-19。
表4-19 实数加减乘除指令
例4-12实数运算指令的应用,程序如图4-14所示。
图4-14 例4-12梯形图
4.数学函数变换指令
①平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32bit的实数结果,从OUT指定的存储单元输出。
②自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。
求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。
③自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。
将“自然指数”指令与“自然对数”指令相结合,可以实现以任意数为底、任意数为指数的计算。求yx,输入以下指令:EXP(x*LN(y))。
④三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。
函数变换指令格式及功能见表4-20。
表4-20 函数变换指令格式及功能
使ENO=0的错误条件:0006(间接地址),SM1.1(溢出),SM4.3(运行时间)。
对标志位的影响:SM1.0(零),SM1.1(溢出),SM1.2(负数)。
例4-13求45°的正弦值。先将45°转换为弧度:(3.14159/180)*45,再求正弦值。程序如图4-15所示。
图4-15 例4-13梯形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。