首页 第12讲 跳转与子程序指令

第12讲 跳转与子程序指令

举报
开通vip

第12讲 跳转与子程序指令nullnull西门子S7-200 PLC 多媒体教学光盘主讲教师:阳胜峰null第12讲 跳转与子程序指令一、跳转指令 二、子程序指令null一、跳转指令跳转有关的指令有两条:跳转指令(JMP)和标号指令(LBL)。null说明: (1)跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一主程序或同一个中断程序。不能在不同的程序块中相互跳转; (2)执行跳转后,被跳过程序段中的各元件状态为: 1)Q、M、S、C等元件的位保持跳转前的状态; 2)计数器C停止计数,当前值存储器保持跳转前的计...

第12讲 跳转与子程序指令
nullnull西门子S7-200 PLC 多媒体教学光盘主讲教师:阳胜峰null第12讲 跳转与子程序指令一、跳转指令 二、子程序指令null一、跳转指令跳转有关的指令有两条:跳转指令(JMP)和标号指令(LBL)。null说明: (1)跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一主程序或同一个中断程序。不能在不同的程序块中相互跳转; (2)执行跳转后,被跳过程序段中的各元件状态为: 1)Q、M、S、C等元件的位保持跳转前的状态; 2)计数器C停止计数,当前值存储器保持跳转前的计数值;null3)对定时器来说,因刷新方式不同而工作状态不同。在跳转期间,分辨率为1ms和10ms的定时器会一直保持跳转前的工作状态,原来工作的继续工作,到设定值后,其位的状态也会改变,输出触点动作,其当前值存储器一直累计到最大值32767才停止。对分辨率为100ms的定时器来说,跳转期间停止工作,但不会复位,存储器里的值为跳转时的值,跳转结束后,若输入条件允许,可继续计时,但已失去了准确计时的意义,所以在跳转段里的定时器要慎用。null 用跳转指令来编写设备的手动与自动控制切换程序是一种常用的编程方式。 例: 用跳转指令编程,控制两只灯,分别接于Q0.0、Q0.1。控制要求如下: (1)要求能实现自动与手动控制的切换,切换开关接于I0.0,若I0.0为OFF则为手动操作,若I0.0为ON,则切换到自动运行; (2)手动控制时,能分别用一个开关控制它们的启停,两个灯的启停开关分别为I0.1、I0.2; (3)自动运行时,两只灯能每隔1s交替闪亮。nullnull二、子程序指令子程序在结构化程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 中是一种方便有效的工具。S7-200 PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。建立子程序 操作编程软件 null2. 子程序指令 子程序指令有2条:子程序调用指令(CALL)和子程序条件返回指令(CRET)。null3.指令说明 (1)CRET指令多用于子程序的内部,由判断条件决定是否结束子程序的调用,RET用于子程序的结束。用编程软件编程时,在子程序结束处,不需要输入RET指令,软件会自动在内部加到每个子程序的结尾(不显示出来)。 (2)如果在子程序的内部又对另一子程序执行调用指令,则这种调用称作子程序的嵌套。子程序的嵌套深度最多为8级。 (3)当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。null (4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。 (5)当子程序在一个扫描周期内被多次调用时,在子程序中不能使用上升沿、下降沿、定时器和计数器指令。null 例: 简易机械手的控制。在第8讲中介绍了机械手的自动控制,如图所示,现要求在原自动控制的基础上加手动控制,用一个输入点来进行自动与手动操作的切换。要求机械手要原点才能开始自动运行。nullI/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,驱动右移。null 编程思路如下:设计一个手动程序和一个自动程序,当I0.4为OFF时调用手动子程序,当I0.4为ON时调用自动子程序。主程序 null 右图为手动子程序,自动子程序可参考第8讲中内容。null3. 带参数的子程序 子程序中可以有参变量,带参变量的子程序调用极大地扩大了子程序的使用范围,增加了调用的灵活性。它主要用于功能类似的子程序块的编程。子程序的调用过程如果存在数据的传递,则在调用指令中应包含相应的参数。null(1) 子程序参数 子程序最多可以传递16个参数。参数在子程序的局部变量表中加以定义。参数包含下列信息:变量名、变量类型和数据类型。 (a)变量名。变量名最多用23个字符表示,第一个字符不能是数字。 (b)变量类型。变量类型是按变量对应数据的传递方向来划分的,可以是传入子程序(IN)、传入和传出子程序(IN_OUT)、传出子程序(OUT)和暂时变量(TEMP)等4种类型。 (c)数据类型。局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型和实型。null(2) 参数子程序调用的规则 (1)常数参数必须声明数据类型。如值为223344的无符号双字作为参数传递时,必须用DW#223344来指明。如果缺少常数参数的这一描述,常数可能会被当作不同类型使用。 (2)输入或输出参数没有自动数据类型转换功能。如局部变量表中声明一个参数为实型,而在调用时使用一个双字,则子程序中的值就是双字。 (3)参数在调用时必须按照一定的顺序排列,先是输入参数,然后是输入输出参数,最后是输出参数和暂时变量。null(3) 变量表的使用 按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是L0.0。当在局部变量表中加入一个参数时,系统自动给各参数分配局部变量存储空间。使用编程软件时,地址分配是自动的。在局部变量表中要加入一个参数,单击要加入的变量类型区可以得到一个选择菜单,选择“插入”,然后选择“下一行”即可。局部变量表使用局部变量存储器L。null例: 编写一个计算Y=(X+30)×4÷5的子程序,使该公式能在多处调用。其中X、Y的数据类型为整数。子程序 null主程序
本文档为【第12讲 跳转与子程序指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_400753
暂无简介~
格式:ppt
大小:389KB
软件:PowerPoint
页数:0
分类:生产制造
上传时间:2011-10-04
浏览量:30