找plc产品、学plc技术、看plc新闻-尽在PLC行业网!

PLC行业网-三菱plc编程入门,plc视频教程,plc学习,plc教程,plc编程实例

当前位置: PLC行业网 > plc教材 > 第5章 >

5.2.1 算术运算指令

时间:2012-03-29 21:31来源:未知 作者:www.plcs.cn 点击:

 算术运算指令

1. 整数与双整数加减法指令

整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。

双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位结果输出到OUT。

整数与双整数加减法指令格式如表5-14所示。

表5-14  整数与双整数加减法指令格式

LAD

STL

MOVW IN1,OUT

+I   IN2,0UT

MOVW IN1,OUT

-I   IN2,0UT

MOVD IN1,OUT

+D   IN2,0UT

MOVD IN1,OUT

+D   IN2,0UT

功能

IN1+IN2=OUT

IN1-IN2=OUT

IN1+IN2=OUT

IN1-IN2=OUT

操作数及数据类型

IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, AC, LW, AIW, 常量, *VD, *LD, *AC

OUT:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, *VD, *LD, *AC

IN/OUT数据类型:整数

IN1/IN2: VD, ID, QD, MD, SMD, SD, LD, AC, HC, 常量, *VD, *LD, *AC

OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC

IN/OUT数据类型:双整数

ENO=0的错误条件

0006   间接地址, SM4.3  运行时间, SM1.1    溢出

说明:

(1)当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。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。

(2)整数与双整数加减法指令影响算术标志位SM1.0(零标志位),SM1.1(溢出标志位)和SM1.2(负数标志位)。

【例5-11】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。程序如图5-17所示。

LD       I0.0               

MOVW   VW200, AC0   //VW200→AC0

+I       +400, AC0      //VW200+400=AC0

 

图5-17  例5-11题图

2. 整数乘除法指令

整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT指定的存储单元输出。

整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。

双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT指定的存储单元输出。

双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。

整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。

整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。

整数乘除法指令格式如表5-15所示。www.plcs.cn

整数双整数乘除法指令操作数及数据类型和加减运算的相同。

整数乘法除法产生双整数指令的操作数: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除)。   

表5-15   整数乘除法指令格式

LAD

STL

MOVW IN1,OUT

*I  IN2,0UT

MOVW IN1,OUT

/I   IN2,0UT

MOVD IN1,OUT

*D   IN2,0UT

MOVD IN1,OUT

/D   IN2,0UT

MOVW IN1,OUT

MUL IN2,OUT

MOVW IN1,OUT

DIV IN2,OUT

功能

IN1*IN2=OUT

IN1/IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

【例5-12】乘除法指令应用举例,程序如图5-18所示。

 

LD  I0.0

MUL AC1 VD100

DIV  VW10 VD200

 

 

图5-18  例5-12题图

注意:因为VD100包含:VW100和VW102两个字,VD200包含:VW200和VW202两个字,所以在语句表指令中不需要使用数据传送指令。

3. 实数加减乘除指令

实数加法(ADD-R)、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32位实数结果,从OUT指定的存储单元输出。

实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从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 。

数据类型:实数。

指令格式如表5-16所示。

 

表5-16  实数加减乘除指令

LAD

STL

MOVD IN1,OUT

+R   IN2,0UT

MOVD IN1,OUT

-R   IN2,0UT

MOVD IN1,OUT

*R   IN2,0UT

MOVD IN1,OUT

/R   IN2,0UT

功能

IN1+IN2=OUT

IN1-IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

ENO=0的错误条件

0006 间接地址, SM4.3 运行时间, SM1.1    溢出

0006  间接地址 ,SM1.1 溢出,SM4.3 运行时间,SM1.3   除数为0

对标志位的影响

SM1.0(零),SM1.1(溢出) , SM1.2(负数),SM1.3 (被0除) 

【例5-13】实数运算指令的应用,程序如图5-19所示。

 

LD     I0.0

+R     AC1, VD100

/R     VD100, AC0

 

 

 

图5-19  例5-13题图

4. 数学函数变换指令

数学函数变换指令包括平方根、自然对数、指数、三角函数等。

(1)平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32位实数结果,从OUT指定的存储单元输出。

(2)自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。

求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。

(3)自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。

将“自然指数”指令与“自然对数”指令相结合,可以实现以任意数为底,任意数为指数的计算。求yx,输入以下指令:EXP (x * LN (y))。

例如:求23=EXP(3*LN(2))=8;27的3次方根=271/3=EXP(1/3*LN(27))=3。

(4)三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。

函数变换指令格式及功能如表5-17所示。

表5-17 函数变换指令格式及功能

LAD

STL

SQRT IN,OUT

LN IN,OUT

EXP IN,OUT

SIN IN,OUT

COS IN,OUT

TAN IN,OUT

功能

SQRT(IN)=OUT

LN(IN)=OUT

EXP(IN)=OUT

SIN(IN)=OUT

COS(IN)=OUT

TAN(IN)=OUT

操作数及数据类型

 

IN: VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *AC

OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC

数据类型:实数

使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出)SM4.3(运行时间)

对标志位的影响:SM1.0(零),SM1.1(溢出),SM1.2(负数)

【例5-14】求45º正弦值。

分析:先将45º转换为弧度:(3.14159/180)*45,再求正弦值。程序如图5-20所示。

 

LD     I0.1

MOVR   3.14159, AC1

/R     180.0, AC1

*R     45.0, AC1

SIN    AC1, AC0

 

 

 

图5-20 例5-14题图

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
推荐内容
  • 5.4 习题

    1.已知VB10=18,VB20=30,VB21=33,VB32=98。将VB10,VB30,VB31,VB32中的数据分别送...

  • 5.3.4 字填充指令

    字填充指令。 字填充(FILL)指令用输入IN存储器中的字值写入输出OUT开始N个连续的字...

  • 5.3.3 表查找指令

    表查找指令。 表格查找(TBL-FIND)指令在表格(TBL)中搜索符合条件的数据在表中的位...

  • 5.3.2 表取数指令

    表取数指令 从数据表中取数有先进先出(FIFO)和后进先出(LIFO)两种。执行表取数指...

  • 5.3.1 填表指令

    填表指令 表填表(ATT)指令:向表格(TBL)中增加一个字(DATA)。如图5-25所示。 说...

  • 5.3 表功能指令

    表功能指令 数据表是用来存放字型数据的表格,如图5-23所示。表格的第一个字地址即首...