PLC教程理论篇之流程控制指令与模块化程序组织一.doc_第1页
PLC教程理论篇之流程控制指令与模块化程序组织一.doc_第2页
PLC教程理论篇之流程控制指令与模块化程序组织一.doc_第3页
PLC教程理论篇之流程控制指令与模块化程序组织一.doc_第4页
PLC教程理论篇之流程控制指令与模块化程序组织一.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

PLC教程理论篇之流程控制指令与模块化程序组织一1、 程序流程控制指令PLC 执行指令,一般是从零地址开始,依次执行,直到最后。但也可用程序流程控制指令予以改变。此类指令除了步进指令外,还有:跳转、循环、调用子程序及中断等1跳转指令OMRON 机用的为 JMP 及 JME。这两条配对使用。JMP 指令执行前,要建立逻辑条件。JME 不要条件,只是表示跳转结束。要跳转的程序列于这两个指令之间。当执行 JMP 时,若其逻辑条件为 ON,则不跳转(注意:它与计算机汇编语言跳转含义相反),照样执行 JMP 与 JME 间的指令,如同 JMP、JME 不存在一样;若为 OFF,则 JMP与 JME 间的程序不执行,有关输出保持不变。JMP、JME 可嵌套使用,但有时其层次要受限制的。JMP、JME 编号使用时,配对的两个,编号要一致。三菱与西门子 PLC 的跳转类似计算机汇编语言的跳转,若其逻辑条件为 ON,则跳转到指定的标号的语句去执行。这种跳转情况稍复杂一些,使用时要小心。弄不好,易出现程序死循环。那是绝对不允许的。图 10-1 示的为跳转指令使用示意。a)OMRON PLC b)西门子 PLC c)三菱 PLC图 10-1 PLC 的跳转指令使用示意图 a)为 OMRON 的跳转,0.00 OFF 时,JMP 到 JME 之间的指令跳过,不执行。反之,执行。图 b)为西门子的跳转,V500.1 ON 时,跳转到 LBL2 处,被跳过的指令不执行。反之不跳,JMP 后的指令依次执行。图 c)为三菱的跳转,X000 ON 时,跳转到标号 P1 处,被跳过的指令不执行。反之不跳,CJP 后的指令依次执行。不同厂家 PLC 跳转指令的差别,正如其它指令的差别一样,都只是大同小异。目的都是跳转,只是表达的方法,各有其不同而已。当程序需要分支执行时,使用到跳转,不仅可实现程序设计要求,而且还可减少程序扫描时间,提高程序的运行效率。与跳转类似的还有互锁、主控指令。OMRON 称互锁 IL、互锁清除 ILC 指令。这两个指令在形式上,与跳转指令类似,也是要配对使用。但功能不同,它不改变程序流程,只是像电路的“总开关”一样,影响 IL 与 ILC 间的程序执行,见图 10-2。图 10-1 PLC 的跳转指令使用示意图 a)为 OMRON 的跳转,0.00 OFF 时,JMP 到 JME 之间的指令跳过,不执行。反之,执行。图 b)为西门子的跳转,V500.1 ON 时,跳转到 LBL2 处,被跳过的指令不执行。反之不跳,JMP 后的指令依次执行。图 c)为三菱的跳转,X000 ON 时,跳转到标号 P1 处,被跳过的指令不执行。反之不跳,CJP 后的指令依次执行。不同厂家 PLC 跳转指令的差别,正如其它指令的差别一样,都只是大同小异。目的都是跳转,只是表达的方法,各有其不同而已。当程序需要分支执行时,使用到跳转,不仅可实现程序设计要求,而且还可减少程序扫描时间,提高程序的运行效率。与跳转类似的还有互锁、主控指令。OMRON 称互锁 IL、互锁清除 ILC 指令。这两个指令在形式上,与跳转指令类似,也是要配对使用。但功能不同,它不改变程序流程,只是像电路的“总开关”一样,影响 IL 与 ILC 间的程序执行,见图 10-2。该图 a、b 示的为三菱 PLC 的主控指令及其使用。图 a 为处于写状态时的梯形图。其中MC 及 MCR 之间的指令执行,受执行条件 X000(可以是别的)控制。X000 ON,则 M0 ON,之间的指令正常执行。否则,输出互锁。图 b 示的为处于读状态时的梯形图。这里“总开关”的作用显示得很形象。指令中的 N0 为配对主控指令使用的编号。当然,MC 与 MCR 的编号要一致。MC 与 MCR 也可嵌套使用。该图 c 示的为西门子 S7 300、400 的主控指令。MCRA(主控指令激活)及 MCRD(主控指令激活停止)是配对的,只有在主控指令激活区中主控指令才有效。MCR(主控继电器 OFF)也是配对使用,而且也可嵌套。图 c 是的为 2 层。这里的几个主控指令的作用如本例是:当 I0.0 及 I0.1 ON,则 Q4.0 及 Q4.1 的状态分别取决于 I0.3 、I0.4,如同这里不存在这几个主控指令一样;当 I0.0 ON 及 I0.1 OFF,则 Q4.1的状态取决于 I0.4,如同这里不存在这第 1 层的 MCR一样,而 Q4.0 则必 OFF,不管 I0.3 的状态如何;当 I0.0 OFF,则 Q4.0、Q4.1 的均 OFF,不管 I0.3、I0.4 以至于 I0.1的状态如何。要说这里的特别之处是在 MCR之后,要执行 MCRD。2循环指令它由FOR 和NEXT两条指令组成,配对使用。FOX为循环开始,而NEXT为循环结束。其功能是,使这两条指令间的指令,按指定的次数,重复执行。重复多少次,则在FOR指令中指明。FOR-NEXT循环可嵌套,但层数是有限制的。其限制的约定,随PLC型别而定。图10-4示的为三家PLC用于两层嵌套的使用例子。从图知,这里外层都是重复执行3次,而内层2,则执行2次。程序段A,B 和C都是如下执行:A B B B C, A B B B C。执行循环程序时,如需要临时退出,对OMRON PLC可在需退出处,用BREAK指令。若要从嵌套循环中退出,则需要多个(嵌套层数) BREAK 指令。而西门子、三菱PLC则可用跳转指令,指定跳到循环外的某标号处。西门子还可用INDX值处理。每当执行一次循环,INDX值将加1。当它大于、等于FINAL值时,也可退出循环。此外,它的FOR指令还要求先设置逻辑条件,如图,I2.0 ON(对1)及I2.1ON(对2)即为它们的逻辑条件。3子程序在程序中,常有一些要重复使用的一组组指令,用以实现某些特定的功能。若把一组组指令编成子程序,则可大大简化程序设计。使用子程序还便于程序的阅读及修改。子程序指令总是含子程序入口、子程序结束标志及子程序调用等指令。表 10-1 示的为三家 PLC 用的子程序指令。表中 N 为子程序标号。表 10-1 PLC 子程序指令子程序指令的要点是:1 子程序入口到子程序结束指令间的程序为子程序;2 在一个程序中,可以有多个子程序,用标号 N 相区别;3 不是子程序的其它程序为主程序;4 西门子 PLC 的子程序安排在不同标号的单独程序模块中,因此,它无入口指令,也无需结束指令;5 OMON、三菱 PLC 子程序安排在主程序之后 END 指令之前,但三菱 PLC 的主程序之后,要加主程序结束指令(FEND),子程序则放在 FEND 指令之后。6 在主程序中,可用相应指令调用子程序,被调用一次,则被扫描、被执行一次,可多次使用;7 在子程序中,也可用相应指令调用其它子程序,但不能调自身,即可嵌套,但不能递归。调的层数也是受限制的,其限制的约定,随 PLC 型别而定;8 子程序一旦调用,总是从入口直到结束。但西门子可用 RET 指令,于中途退出,而其它两家 PLC 则可用跳转指令中途退出。图 10-5 示的为三家 PLC 子程序指令及其使用。图知,当调用子程序逻辑条件成立(如图 0.00 、I0.0、X000 ON),则都将转去执行子程序,执行后,再接着执行主程序的后续部分。如图中 0.02 OFF 及 I0.2、X002 ON,则在子程序中,执行 A 部分程序后,中途退出;否则,执行 A、B 两部分程序都执行完,才退出。提示:所有的子程序都要安排在主程序的后面,在 END 指令之前。不然,子程序后的主程序指令将不被执行。对一些多任务编程的 PLC,其子程序还有全局与局部之分。局部子程序只能用于本任务。要想所有任务都能调用,要用全局子程序。如 OMRON CJ 系列机,全局子程序指 GSBN(751)和 GRET(752)之间的程序段。调用指定编号的全局子程序,要用全局子程序调用指令 GSBS(750)。三菱 Q 系列等中、大型机除了用 CALL 正常调用子程序。还有 FCALL(输出 OFF 调用)、ECALL(程序文件之间子程序调用)、XCALL 等指令。提示:西门子 S7-200 机的子程序可带参数。参数用子程序的局部变量自行定义。参数有子程序输入(IN)、输出(OUT)及输入、输出(IN-OUT)兼而有之,三种。在调子程序时,输入参数要写在输入端;输出参数要写在输出端;输入、输出参数既要写在输入端,又要写在输出端。当然,如不定义局部变量,将不带参数。具体运用实例见后。提示:OMRON 、三菱小型机的子程序不带参数。但在调用前可作预处理,调后再作后处理,也可起到带参数的作用。OMRON PLC 还有宏调用,类似于带参数子程序。只是,它的参数使用限制较多。提示:三菱 Q 系列等中、大型机的子程序也可带参数。但位参数只有输入、输出。并要用专用内部器件,即功能软元件 FX(入)、FY(出)、FD(寄存器)作形式参数。同时也有宏。宏的形式参数也要用专用内部器件(VX、VY、VD)。4中断中断也是调子程序,但它不是靠指令调,而是靠中断事件调。且调的子程序编号与所发生的事情对应。这些子程序有时还称为中断服务程序。PLC 中断事件可以来自外部,也可来自内部。前者称外中断,后者称内中断。外部中断用输入点。当可中断工作(取决于机型及设定)的输入点状态发生变化,如从 OFF 到 ON,则发生与其对应的中断事件,并调用相应的中断服务程序。每发生一次中断事件,则调一次中断服务程序。有了这样中断,可缩短 PLC 对输入信号的响应时间。此外,高速计数信号输入,也会产生多种中断。如计数中断,可输入高速脉冲的输入点(取决于机型及设定)输入高速脉冲会自动中断计数;再如比较中断,中断计数后,会自动进行中断比较;最后,还可根据中断比较结果,调用相应的中断子程序。再,有的 PLC,如 S7-200 机,还有通讯中断。收到字符,或发送字符及出错等,都会引起相应的中断。内部中断的事件来自 PLC 内部。典型的内部中断为定时中断,经设定可准确定时运行相应的中断程序。为了处理好中断,提高程序的控制可靠性与效率,PLC 提供了有关的中断处理指令。表 10-2 是的为三家 PLC 的一些有关的中断指令。表 10-2 PLC 的一些有关的中断指令中断允许、禁止指令用于确定,在运行程序时,是否允许中断。当程序的某一部分不允许中断时,可用中断禁止指令;某一部分允许中断时,可用中断允许指令。提示:OMRON PLC 默认为中断允许。而三菱、西门子 PLC 则默认中断不允许。为此,后者,要使用中断,需先允许中断,而前者,做好有关设定就可以了。设定中断屏蔽是为了确定是否允许某个内、外中断事件产生。如可外中断的输入点,可设定其为从 OFF到 ON 产生中断,也可相反,也可不让其产生中断。提示:中断允许与中断屏蔽是两个概念,前者是指,所运行的程序是否允许接受中断,后者是指,是否允许中断事件出现后产生中断。前者可用指令处理,而后者多为通过相关设定处理。PLC 处理中断事件是有个过程的。当发生中断事件时,PLC 总是先记录发生的事件,并按优先级对其排队。优先级高的先执行,它执行完了,再执行优先级低的。所有中断任务处理完了,再转回执行正常的循环程序。一般讲,优先级与中断的任务号是对应的。中断编号越小,优先级越高。要注意的是,已记录但未执行的中断,其后又发生相同的事件,PLC 对此将不理睬。所以,不是发生的所有中断事件都会处理的。另外,对已作记录,但未执行的外中断中断任务,可用 CLI 指令取消。提示:三菱中断子程序入口编号开始字符为 I(不同的事件,有不同的编号),而不是 P;子程序结束指令为 IRET,而不是 SRET。提示:对多任务编程或模块化组织的 PLC,如 CJ、CS

温馨提示

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

评论

0/150

提交评论