网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 推广营销 » 正文

循环和子程序调用指令

2019-8-2 11:23:15 | 作者:老铁SEO | 0个评论 | 人浏览

  循环和子程序调用指令_计算机软件及应用_IT/计算机_专业资料。循环和子程序调用指令

  CH2 S7-200系列PLC基本指令 第四节 程序控制类指令 程序控制类指令用于程序运行状态的控制, 主要包括系统控制、跳转、循环、子程序调用、 顺序控制类指令 2.4.1 系统控制类指令 2.4.2 2.4.3 跳转、循环和子程序调用指令 顺序控制指令 Date: 2018/10/1 Page: 1 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 1.暂停指令(STOP) 功能: 使能输入有效时,立即中止 程序的执行。 CPU的工作方式由RUN切换到STOP STOP 如果 STOP 指令在中断程序中执行,那 么该中断立即终止并且忽略所有挂起的 中断继续扫描程序的剩余部分。在本次 扫描的最后完成 CPU 从 RUN 到 STOP 的转变。 Page: 2 Date: 2018/10/1 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 2.结束指令(END/MEND) ?直接连在左母线的为无条件结束指令(MEND) ?未直接连在左母线的为条件结束指令(END) ?MEND指令执行时,中止用户程序的执行,返 回主程序的第一条指令执行。 ?结束指令只能用在主程序,不能用在子程序和 中断服务程序 ?Micro/WIN 32 自动在主程序结束加上一个无条 件结束指令,不得输入MEND指令,否则编译 时出错 END Date: 2018/10/1 Page: 3 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 3.看门狗复位指令(WDR) 看门狗技术在电子技术中经常应用到,不仅PLC,还有单片机, 等。作用是不可忽略的。 看门狗实际就是一个系统监视定时器,用来监视PLC的扫描时 间。 我们都知道,PLC程序工作机制采用循环扫描工作机制,每次 循环都要有一个时间,这个时间就是扫描时间。 扫描时间是要有限制的,不能超出这个限制,一旦超出限制, 说明PLC的扫描机制出现问题,问题一般都是用户编程序时出现了 “合法不合理”现象。在这种情况下,必须停机报警。用什么来监 视呢,就是扫描时间监视器,一个系统定时器,俗称“看门狗”。 Date: 2018/10/1 Page: 4 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 3.看门狗复位指令(WDR) 使能输入有效时: 将看门狗定时器复位。这样可以在不引 起看门狗错误的情况下,增加一次扫描 允许的时间。 若使能输入无效: 看门狗定时器定时时间到,程序将中止 当前指令的执行,重新启动,返回到第 一条指令重新执行。 (可编程控制器原理及应用) 山东英才学院 WDR Date: 2018/10/1 Page: 5 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 3.看门狗复位指令(WDR) 使用 WDR 指令时要小心因为如果你用循环 指令去阻止扫描完成或过度的延迟扫描完成 时间,那么在终止本次扫描之前下列操作过 程将被禁止 ?通讯 (自由端口方式除外) ?I/O 更新 (立即 I/O 除外) ?强制更新 ? SM 位更新 (SM0 SM5~ SM29 不能被更新) ?运行时间诊断 ?如果扫描时间超过 25 秒10 ms 和 100 ms 定时器将不会正确累计时间 ? 在中断程序中的 STOP 指令 (可编程控制器原理及应用) Page: 6 WDR Date: 2018/10/1 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 【例2.22】 暂停(STOP)、条件结束(END)、看门狗指令应用举例。 ?运行时刻发现编程问题时 ?发现I/O错误时 ?I0.0为ON时 强迫CPU转到STOP 方式 Date: 2018/10/1 Page: 7 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 【例2.22】 暂停(STOP)、条件结束(END)、看门狗指令应用举例。 Network 1 LD SM4.3 O SM5.0 O I0.0 STOP Date: 2018/10/1 Page: 8 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.1 系统控制类指令 【例2.22】 暂停(STOP)、条件结束(END)、看门狗指令应用举例。 当I0.2 是on 时结束本次扫描 去进行输出刷新,而不是执行 后面的程序 当M0.0 为on 时重新触发看门 狗定时器WDR 允许增加本次 扫描时间 Date: 2018/10/1 Page: 9 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 1. 程序跳转指令(JMP) JMP n 跳转指令 LBL n 跳转标号 跳转指令(JMP)和跳转地址标号指令(LBL)配合实现 程序的跳转。使能输入有效时,使程序跳转到指定标号n 处执行,跳转标号n=0~255。使能输入无效时,程序顺 序执行。 (可编程控制器原理及应用) Date: 2018/10/1 Page: 10 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 1. 程序跳转指令(JMP) JMP n 跳转指令 LBL n 跳转标号 JMP和LBL指令必须应用在同一个程序块中,即JMP和 LBL可同时出现在主程序中,或者同时出现在子程序中, 或者同时出现在中断服务程序中。不能从主程序跳到子程 序或中断程序,同样不能从子程序或中断程序跳出。 (可编程控制器原理及应用) Date: 2018/10/1 Page: 11 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 1. 程序跳转指令(JMP) 如果保存的数据没有丢失则跳转 到LBL4 NETWORK6 LDN SM0.2 JMP 4 NETWORK 9 LBL 4 (可编程控制器原理及应用) 山东英才学院 Date: 2018/10/1 Page: 12 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 1. 程序跳转指令(JMP) I0.2断开时: 能执行程序A和C 即输出Q0.0受I0.3的控制; 当I0.2接通时: 能执行程序B和C 即输出Q0.0受I0.4的控制。 从上述分析可以看出: 输入点I0.2为一方式选择 开关,通过它的通断来完 成一个2选1的控制 Date: 2018/10/1 Page: 13 //程序B //程序A · · · //程序C (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 1. 程序跳转指令(JMP) 【补充例子】 某生产线对产品进行加工处理,同时利用增减计数器对 成品进行累计,每当检测到10个成品时,就要跳过某些控制 程序,直接进入小包装控制程序。每当检测到40个成品(4个 小包装),直接进入到大包装控制程序。 Date: 2018/10/1 Page: 14 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 //小包装程序 //大包装程序 Date: 2018/10/1 Page: 15 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) 循环控制指令,用于描述一段程 序的重复循环执行。 由FOR和NEXT指令构成程序的 循环体。FOR标记循环开始, NEXT为循环体结束。 当前值 计数器 循环次数 初始值 循环计数 终值 Date: 2018/10/1 Page: 16 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) 工作原理: 使能输入(EN)有效,循环 体开始执行,执行到NEXT指令 时返回,每执行一次循环体,当 前计数器(INDX)增1,达到终 值(FINAL)时,循环结束 Date: 2018/10/1 Page: 17 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) 例如: 给定初值 (INIT) 为 1 终值 (FINAL) 为 10,使能有效时, 执行循环体,同时INDX从1开始 计数,每执行一次循环体,INDX 当前值加1,执行到第10次时, 循环结束。 使能输入无效时,循环体不执行。 每次使能输入有效,自动将各参 数复位。 Date: 2018/10/1 Page: 18 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) FOR/NEXT指令必须成对使用, 循环可以嵌套,最多为8层。 FOR/NEXT举例 Date: 2018/10/1 Page: 19 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) Date: 2018/10/1 Page: 20 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 2. 循环控制指令(FOR) 【补充】 用循环指令完成S=1+2+3+…+100,并将求和结果放在VW100 中。 分析: 这是一个典型的累加求和问题:S=S+i(S放在VW100, I放在VW10),首先要初始化(对两单元清零),然后做循环 结构(FOR、NEXT结构)和循环体(FOR和NEXT之间的程 序),累加求和的循环体要做两件事:i++和S=S+i。 具体程序如下 (可编程控制器原理及应用) 山东英才学院 Date: 2018/10/1 Page: 21 CH2 S7-200系列PLC基本指令 Network 1 LD SM0.1 MOVW 0, VW10 AENO MOVW 0, VW100 Network 2 LD I0.0 EU FOR VW20, 1, 100 Date: 2018/10/1 Page: 22 Network 3 LD SM0.0 INCW VW10 +I VW10, VW100 Network 4 NEXT (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 3. 子程序调用指令(SBR) 通常将具有特定功能、并且要多次使用的程序段作为子程序 子程序可以多次被调用,也可以嵌套(最多8层), 还可以递归调用(自己调自己)。 Date: 2018/10/1 Page: 23 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 3. 子程序调用指令(SBR) 子程序的优点: 它可以用于对一个大的程序进行分段及分块,使其成为较小 的更易管理的程序块。程序调试、程序检查和程序维护时, 可充分利用这项优势。子程序只在需要时才被调用、执行。 这样就可以有效地使用PLC,充分利用CPU的时间。 Date: 2018/10/1 Page: 24 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 3. 子程序调用指令(SBR) CALL SBR0//子程序调用 CRET//条件返回 RET//无条件返回(自动) Date: 2018/10/1 Page: 25 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 3. 子程序调用指令(SBR) 建立子程序的方法: ?点击子程序标签即可进入SUB0子程序显示区 ?通过指令树的项目进入SUB0子程序显示区 ?添加一个子程序使用Edit菜单的insert项,子 程序编号从0开始自动向上生成 Date: 2018/10/1 Page: 26 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 Date: 2018/10/1 Page: 27 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 Date: 2018/10/1 Page: 28 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 【例2.23】循环、跳转及子程序 调用指令应用程序举例 子程序 Date: 2018/10/1 Page: 29 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 4. 带参数的子程序调用指令 子程序可能有要传递的参数(变量和数据),这时可以在 子程序调用指令中包含相应的参数,它可以在子程序和调用 程序之间传送。 参数必须有变量名、变量类型和数据类型等内容。 子程序最多可以传递16个参数。 传递的参数在子程序的局部变量表中定义。 局部变量表中的变量类型有IN、OUT、IN/OUT、TEMP四种。 Date: 2018/10/1 Page: 30 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 局部变 量表 Date: 2018/10/1 Page: 31 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 IN类型 OUT类型 IN/OUT 类型 TEMP 类型 参数的寻址方式可以是直接寻址(如VB10),间 接寻址(如*AC1),立即数寻址(如#1234)。 也可以将数据地址值传入子程序 从子程序的结果值(数据)传入到指定参数位置, 常数和地址值不允许作为输出参数 将指定位置的参数传到子程序,从子程序来的结 果值被返回到同样的地址 局部存储器只能用作子程序内部的暂时存储器, 不能用来传递参数。 (可编程控制器原理及应用) Page: 32 Date: 2018/10/1 山东英才学院 CH2 S7-200系列PLC基本指令 2.4.2 跳转、循环和子程序调用指令 4. 带参数的子程序调用指令 带参数子程序调用指令格式举例 只能显示STL LD I0.0 CALL SBR0 I0.1 VB10 I1.0 &VB100 *AC1 VD200 可以在LAD和FBD中正确显示 LD I0.0 = L60.0 LD I0.1 = L63.7 LD L60.0 CALL SBR0, L63.7, VB10, I1.0, &VB100, *AC1, VD200 Date: 2018/10/1 Page: 33 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 【补充】采用子程序的形式来控制一台交流电动机的起/停 控制,系统的I/O分配为: 电动机起动按钮(常开):I0.0;停止按钮(常开):I0.1; 电动机电源接触器:Q0.0; 编程步骤: ① 采用子程序编写电动机的起/停控制,则该子程序一定带有 参数且需要2个输入参数,1个输出参数。建立子程序SBR0 后,填写局部变量表 地址 L0.0 符号 Start 变量类型 IN 数据类型 BOOL L0.1 L0.2 Date: 2018/10/1 Stop1 Motor Page: 34 IN OUT BOOL BOOL 山东英才学院 (可编程控制器原理及应用) CH2 S7-200系列PLC基本指令 【补充】采用子程序的形式来控制一台交流电动机的起/停 控制,系统的I/O分配为: 电动机起动按钮(常开):I0.0;停止按钮(常开):I0.1; 电动机电源接触器:Q0.0; 编程步骤: ② 填写完局部变量表后,就可以编写应用程序,应采用符号作 为指令的操作数。 Date: 2018/10/1 Page: 35 (可编程控制器原理及应用) 山东英才学院 CH2 S7-200系列PLC基本指令 【补充】采用子程序的形式来控制一台交流电动机的起/停 控制,系统的I/O分配为: 电动机起动按钮(常开):I0.0;停止按钮(常开):I0.1; 电动机电源接触器:Q0.0; 编程步骤: ③ 在主程序中应一直(采用常闭点SM0.0)调用子程序SBR0。 具体子程序及主程序如下图: Date: 2018/10/1 Page: 36 (可编程控制器原理及应用) 山东英才学院

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:子程序调用  
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。