第6讲 功能指令_第1页
第6讲 功能指令_第2页
第6讲 功能指令_第3页
第6讲 功能指令_第4页
第6讲 功能指令_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6 6讲讲 基本指令基本指令第第6 6讲功能指令讲功能指令第第6 6讲讲 基本指令基本指令6.16.1特殊逻辑指令特殊逻辑指令第第6 6讲讲 基本指令基本指令比较指令 比较指令是将两个操作数按指定的条件比较,操作数可以是整数,也可以是实数,在梯形图中用带参数和运算符的触点表示比较指令,比较条件成立时,触点就闭合,否则断开。比较触点可以装入,也可以串、并联。比较指令为上、下限控制提供了极大的方便。 第第6 6讲讲 基本指令基本指令说明:“xx”表示比较运算符:= 等于 、 小于、大于、= 小于等于、= 大于等于、不等于。“”表示操作数N1,N2的数据类型及范围:B(Byte):字节比较(无符

2、号整数),如:LDB=IB2 MB2I(INT)/ W(Word):整数比较,(有符号整数),如:AW= MW2 VW12注意:LAD中用“I”,STL中用“W”。DW(Double Word):双字的比较(有符号整数), 如:OD= VD24 MD1R(Real):实数的比较(有符号的双字浮点数,仅限于CPU214以上)N1,N2操作数的类型包括:I,Q,M,SM,V,S,L,AC,VD,LD,常数。 第第6 6讲讲 基本指令基本指令第第6 6讲讲 基本指令基本指令程序控制类指令 1. 结束指令(1)END:条件结束指令,执行条件成立(左侧逻辑值为1)时结束主程序,返回主程序的第一条指令执行

3、。在梯形图中该指令不连在左侧母线。END指令只能用于主程序,不能在子程序和中断程序中使用。END指令无操作数。(2)MEND:无条件结束指令,结束主程序,返回主程序的第一条指令执行。在梯形图中无条件结束指令直连接左侧母线。用户必须以无条件结束指令,结束主程序。条件结束指令,用在无条件结束指令前结束主程序。在编程结束时一定要写上该指令,否则出错;在调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。 第第6 6讲讲 基本指令基本指令STOP:停止指令,执行条件成立,停止执行用户程序,令CPU工作方式由RUN转到STOP。在中断程序中执行STOP指令,该中断立即终止,并且忽略所有挂

4、起的中断,继续扫描程序的剩余部分,在本次扫描的最后,将CPU由RUN切换到STOP。第第6 6讲讲 基本指令基本指令 循环指令 工作原理:使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。FOR/NEXT指令必须成对使用,循环可以嵌套,最多为8层。第第6 6讲讲 基本指令基本指令跳转指令及标号 (1)指令格式JMP:跳转指令,使能输入有效时,把程序的执行跳转到同一程序指定的标号(n)处执行。LBL:指定跳转的目标标号。操作数n:025

5、5。第第6 6讲讲 基本指令基本指令子程序调用及子程序返回指令 1. 建立子程序可采用下列一种方法建立子程序:1从“编辑”菜单,选择插入(Insert)/ 子程序(Subroutine)2从“指令树”,用鼠标右键单击“程序块”图标,并从弹出菜单选择插入(Insert)子程序(Subroutine)3从“程序编辑器”窗口,用鼠标右键单击,并从弹出菜单选择插入(Insert) 子程序(Subroutine)。第第6 6讲讲 基本指令基本指令CALL SBR_0 CRETRET 第第6 6讲讲 基本指令基本指令6.2运算指令 6.2.1 加法 6.2.2减法 6.2.3乘法 6.2.4除法 6.2.

6、5 数学函数指令 6.2.6增减 6.2.7 逻辑运算 返回本章首页返回本章首页第第6 6讲讲 基本指令基本指令6.2.1 加法 1. 整数加法+I,整数加法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相加,产生一个16位整数结果OUT。第第6 6讲讲 基本指令基本指令LDI0.0/使能输入端+IVW0, VW4/整数加法/VW0+VW4=VW4图图6.25整数加法例整数加法例第第6 6讲讲 基本指令基本指令2. 双整数加法+D,双整数加法指令。使能输入有效时,将两个双字长(32位)的符号双整数IN1和IN2相加,产生一个32位双整数结果OUT。在LAD和FBD中,以指

7、令盒形式编程,执行结果:IN1+IN2=OUT。在STL中,执行结果:IN1+OUT=OUT。 OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。指令格式:+DIN1, OUT例:+DVD0,VD4第第6 6讲讲 基本指令基本指令+R,实数加法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1+IN2=OUT。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1

8、.1(溢出);SM1.2(负)。返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.2减法 减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。第第6 6讲讲 基本指令基本指令在LAD和FBD中,以指令盒形式编程,执行结果:IN1-IN2=OUT。在STL中,执行结果: OUT- IN2=OUT。指令格式:-I IN2,OUT(整数减法)-DIN2,OUT(双整数减法)-RIN2,OUT(实数减法)例:-I AC0,VW4返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.3乘法 *I,整数乘法指

9、令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个16位整数结果OUT。指令格式:指令格式:*IIN1,OUT例:例:*IVW0,AC01. 整数乘法整数乘法 第第6 6讲讲 基本指令基本指令2. 完全整数乘法 MUL,完全整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。 在LAD和FBD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。 OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);

10、SM1.2(负);SM1.3(被0除)。指令格式:MUL IN1,OUT例:MUL AC0,VD10 第第6 6讲讲 基本指令基本指令3. 双整数乘法 *D,双整数乘法指令。使能输入有效时,将两个双字长(32位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。 在STL中,执行结果:IN1*OUT=OUT。IN1和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2

11、(负);SM1.3(被0除)。指令格式:*DIN1,OUT例:*DVD0,AC0第第6 6讲讲 基本指令基本指令4. 实数乘法*R,实数乘法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相乘,产生一个32位实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。在STL中,执行结果:IN1*OUT=OUT。IN1和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);

12、SM1.1(溢出);SM1.2(负);SM1.3(被0除)。指令格式:*RIN1,OUT例:*RVD0,AC0返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.4除法 在LAD和FBD中,以指令盒形式编程,执行结果:IN1/IN2=OUT。在STL中,执行结果: OUT/ IN2=OUT。指令格式:/I IN2,OUT(整数除法)DIVIN2,OUT(整数完全除法)/DIN2,OUT(双整数除法)/RIN2,OUT(实数除法)第第6 6讲讲 基本指令基本指令例:DIVVW10, VD100/IVW20, VW200两条指令的编程及执行情况比较如图6.26所示。LDI0.0/使能输入端DI

13、VVW10, VD100/完全除法/VW102/VW10=VD100LDI0.1/使能输入端/IVW20, VW200 /整数除法/VW200/VW20=VW200图图6.26除法指令应用除法指令应用第第6 6讲讲 基本指令基本指令对于除法指令:对于除法指令: 对于完全除法指令:对于完全除法指令: 返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.5 数学函数指令 1.平方根 2. 自然对数 3. 指数 4. 正弦、余弦、正切 第第6 6讲讲 基本指令基本指令1.平方根 SQRT,平方根指令。把一个双字长(32位)的实数IN开平方,得到32位的实数结果。在LAD和FBD中,以指令盒形式编

14、程,执行结果:SQRT(IN)=OUT。在STL中,执行结果:SQRT(IN)=OUT。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出和非法值);SM1.2(负)。使能流输出ENO断开的出错条件:SM1.1(溢出);SM6.3(运行时间);0006(间接寻址)。指令格式:SQRT IN,OUT例:SQRT VD0,AC0第第6 6讲讲 基本指令基本指令2. 自然对数 LN,自然对数指令。将一个双字长(32位)的实数IN取自然对数,得到32位的实数结果。应用实例:求以10为底的50(存于VD0)的常用对数,结果放到AC0。本运算程序如图6.27所示。 LD I0.0 /使能输入 L

15、N VD0, AC0 / /自然对数 / Ln(VD0)=AC0 LN 10.0, VD100 / /自然对数 / Ln(10)=VD100 /R VD100, AC0 / /实数除法指令 / AC0/VD100=VD100 图图6.27自然对数的应用自然对数的应用第第6 6讲讲 基本指令基本指令3. 指数 EXP,指数指令。将一个双字长(32位)的实数IN取以e为底的指数,得到32位的实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:EXP(IN)=OUT。在STL中,执行结果:EXP(IN)=OUT。指令格式:EXPIN, OUT例:EXPVD0, AC0 第第6 6讲讲 基

16、本指令基本指令4. 正弦、余弦、正切 SIN、COS、TAN,即正弦、余弦、正切指令。将一个双字长(32位)的实数弧度值IN分别取正弦、余弦、正切,各得到32位的实数结果。如果已知输入值为角度,要先将角度值转化为弧度值,方法:使用(*R)MUL_R指令用角度值乘以/180即可。第第6 6讲讲 基本指令基本指令例:TANVD0, AC0应用实例:求COS160o的值。如图6.28所示。 LD I0.0 /使能输入 MOVR 3.14159, AC0 / /装入 AC0 /R 180.0, AC0 / / 得/180 弧度 / *R 160.0, AC0 / /角度转化为弧度 / COS AC0,

17、 AC1 / /求余弦指令 /结果存放到 AC1 图图6.28三角函数应用例三角函数应用例返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.6增减 1. 字节增和字节减 2. 字增和字减 3. 双字增和双字减 4. 应用实例 第第6 6讲讲 基本指令基本指令1. 字节增和字节减 INCB,字节增指令。使能输入有效时,把一字节长的无符号输入数(IN)加1,得到一字节的无符号输出结果OUT。DECB,字节减指令。使能输入有效时,把一字节长的无符号输入数(IN)减1,得到一字节的无符号输出结果OUT。第第6 6讲讲 基本指令基本指令2. 字增和字减 第第6 6讲讲 基本指令基本指令3. 双字增

18、和双字减 INCD,双字增指令。使能输入有效时,把双字长(32位)的有符号输入数(IN)加1,得到双字长的有符号输出结果OUT。DECD,双字减指令。使能输入有效时,把双字长的有符号输入数(IN)减1,得到双字长的有符号输出结果OUT。第第6 6讲讲 基本指令基本指令4. 应用实例 控制要求:食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数。程序及说明:程序如图6.29所示。LDI0.0/增脉冲输入端LDC30/复位输入端/循环计数CTU C30, +24/增计数指令/设定脉冲数为 24LDC30/装入计数器触点/作为双字增的/脉冲输入INCDVD100/双字增

19、指令/图图6.29增减指令的应用增减指令的应用返回本节返回本节第第6 6讲讲 基本指令基本指令6.2.7 逻辑运算 1. 字节逻辑运算 2. 字逻辑运算 3. 双字逻辑运算 第第6 6讲讲 基本指令基本指令1. 字节逻辑运算 字节逻辑运算包括字节与、字节或、字节异或、字节取反。第第6 6讲讲 基本指令基本指令2. 字逻辑运算 字节逻辑运算包括字节与、字节或、字节异或、字节取反。第第6 6讲讲 基本指令基本指令3. 双字逻辑运算 字逻辑运算包括双字与、双字或、双字异或、双字逻辑运算包括双字与、双字或、双字异或、双字取反。字取反。 返回本节返回本节第第6 6讲讲 基本指令基本指令6.3其他数据处理

20、指令 6.3.1传送类指令 6.3.2移位指令 6.3.3字节交换指令 6.3.4填充指令 返回本章首页返回本章首页第第6 6讲讲 基本指令基本指令6.3.1传送类指令 1. 单一传送 (1)MOVB,字节传送指令 (2)BIR,传送字节立即读指令 (3)BIW,传送字节立即写指令 (4)MOVW,字传送指令 (5)MOVD,双字传送指令 (6)MOVR,实数传送指令 2. 块传送 (1)BMB,字节块传送指令 (2)BMW,字块传送指令 (3)BMD,双字块传送指令 第第6 6讲讲 基本指令基本指令1. 单一传送 (1)MOVB,字节传送指令使能输入有效时,把一个单字节无符号数据由IN传送到

21、OUT所指的字节存储单元。IN的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:MOVBIN1, OUT例:MOVBVB0, QB0第第6 6讲讲 基本指令基本指令(2)BIR,传送字节立即读指令使能输入有效时,立即读取单字节物理输入区数据IN,并传送到OUT所指的字节存储单元。IN的寻址范围:IBOUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:BIRIN1, OUT例:BIRIB0, VB10第第

22、6 6讲讲 基本指令基本指令2. 块传送 指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。三条指令中N的寻址范围都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。使ENO断开的出错条件:SM6.3(运行时间);0006(间接寻址);0091(数超界)。返回本节返回本节第第6 6讲讲 基本指令基本指令6.3.2移位指令 1. 左移和右移 2. 循环左移、循环右移 3. 寄存器移位 第第6 6讲讲 基本指令基本指令(1)字节左移和字节右移SLB和SRB,字节左移和字节右移。使能输入有效时,把字节型输入数据IN左移或右移N位

23、后,再将结果输出到OUT所指的字节存储单元。最大实际可移位次数为8。1. 左移和右移 第第6 6讲讲 基本指令基本指令以第一条指令为例,指令执行情况如表4.16所示。指令指令SLB执行结果执行结果第第6 6讲讲 基本指令基本指令SLW和SRW,字左移和字右移。指令盒与字节移位比较,只有名称变为SHR_W和SHR_W。使能输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。最大实际可移位次数为16。指令格式:SLWOUT, N(字左移)SRWOUT, N(字右移)例:SLWMW0, 2SRWLW0, 3以第二条指令为例,指令执行情况如表4.17所示。第第6 6讲讲 基本指令基本指令第第6 6讲讲 基本指令基本指令(3)双字左移和双字右移SLD和SRD,双字左移和双字右移。指令盒与字节移位比较,只有名称变为SHL_DW和SHR_DW,其他部分完全相同。使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。最大实际可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论