第12讲 跳转与子程序指令_第1页
第12讲 跳转与子程序指令_第2页
第12讲 跳转与子程序指令_第3页
第12讲 跳转与子程序指令_第4页
第12讲 跳转与子程序指令_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

西门子S7-200PLC多媒体教学光盘主讲教师:阳胜峰第12讲跳转与子程序指令一、跳转指令二、子程序指令一、跳转指令跳转有关的指令有两条:跳转指令(JMP)和标号指令(LBL)。说明:(1)跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一主程序或同一个中断程序。不能在不同的程序块中相互跳转;(2)执行跳转后,被跳过程序段中的各元件状态为:1)Q、M、S、C等元件的位保持跳转前的状态;2)计数器C停止计数,当前值存储器保持跳转前的计数值;3)对定时器来说,因刷新方式不同而工作状态不同。在跳转期间,分辨率为1ms和10ms的定时器会一直保持跳转前的工作状态,原来工作的继续工作,到设定值后,其位的状态也会改变,输出触点动作,其当前值存储器一直累计到最大值32767才停止。对分辨率为100ms的定时器来说,跳转期间停止工作,但不会复位,存储器里的值为跳转时的值,跳转结束后,若输入条件允许,可继续计时,但已失去了准确计时的意义,所以在跳转段里的定时器要慎用。用跳转指令来编写设备的手动与自动控制切换程序是一种常用的编程方式。例:

用跳转指令编程,控制两只灯,分别接于Q0.0、Q0.1。控制要求如下:(1)要求能实现自动与手动控制的切换,切换开关接于I0.0,若I0.0为OFF则为手动操作,若I0.0为ON,则切换到自动运行;(2)手动控制时,能分别用一个开关控制它们的启停,两个灯的启停开关分别为I0.1、I0.2;(3)自动运行时,两只灯能每隔1s交替闪亮。二、子程序指令子程序在结构化程序设计中是一种方便有效的工具。S7-200PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。建立子程序操作编程软件

2.子程序指令

子程序指令有2条:子程序调用指令(CALL)和子程序条件返回指令(CRET)。3.指令说明(1)CRET指令多用于子程序的内部,由判断条件决定是否结束子程序的调用,RET用于子程序的结束。用编程软件编程时,在子程序结束处,不需要输入RET指令,软件会自动在内部加到每个子程序的结尾(不显示出来)。(2)如果在子程序的内部又对另一子程序执行调用指令,则这种调用称作子程序的嵌套。子程序的嵌套深度最多为8级。(3)当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。(4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。(5)当子程序在一个扫描周期内被多次调用时,在子程序中不能使用上升沿、下降沿、定时器和计数器指令。例:

简易机械手的控制。在第8讲中介绍了机械手的自动控制,如图所示,现要求在原自动控制的基础上加手动控制,用一个输入点来进行自动与手动操作的切换。要求机械手要原点才能开始自动运行。I/O分配如下:I0.0,上限位检测开关;I0.1,下限位检测开关;I0.2,左限位检测开关;I0.3,右限位检测开关;I0.4,手动\自动切换,当I0.4为OFF时手动控制,为ON时自动控制;I0.5,手动向上运行;I0.6,手动向下运行;I0.7,手动向左运行;I1.0,手动向右运行;I1.1,手动松开;I1.2,手动夹紧;Q0.0,驱动手抓夹紧;Q0.1,驱动上升;Q0.2,驱动下降;Q0.3,驱动左移;Q0.4,驱动右移。编程思路如下:设计一个手动程序和一个自动程序,当I0.4为OFF时调用手动子程序,当I0.4为ON时调用自动子程序。主程序

右图为手动子程序,自动子程序可参考第8讲中内容。3.带参数的子程序

子程序中可以有参变量,带参变量的子程序调用极大地扩大了子程序的使用范围,增加了调用的灵活性。它主要用于功能类似的子程序块的编程。子程序的调用过程如果存在数据的传递,则在调用指令中应包含相应的参数。(1)子程序参数子程序最多可以传递16个参数。参数在子程序的局部变量表中加以定义。参数包含下列信息:变量名、变量类型和数据类型。

(a)变量名。变量名最多用23个字符表示,第一个字符不能是数字。

(b)变量类型。变量类型是按变量对应数据的传递方向来划分的,可以是传入子程序(IN)、传入和传出子程序(IN_OUT)、传出子程序(OUT)和暂时变量(TEMP)等4种类型。

(c)数据类型。局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型和实型。(2)参数子程序调用的规则(1)常数参数必须声明数据类型。如值为223344的无符号双字作为参数传递时,必须用DW#223344来指明。如果缺少常数参数的这一描述,常数可能会被当作不同类型使用。(2)输入或输出参数没有自动数据类型转换功能。如局部变量表中声明一个参数为实型,而在调用时使用一个双字,则子程序中的值就是双字。(3)参数在调用时必须按照一定的顺序排列,先是输入参数,然后是输入输出参数,最后是输出参数和暂时变量。(3)变量表的使用按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是L0.0。当在局部变量表中加入一个参数时,系统自动给各参数分配局部变量存储空间。使用编程软件时,地址分配是自动的。在局部变量表中要加

温馨提示

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

评论

0/150

提交评论