当前位置: 东星资源网 > 高考资料 > 招生计划 > 正文

浅谈FX2N系列PLC多路输出程序的编程|如何plc输出 多路报警显示

时间:2019-01-30 来源:东星资源网 本文已影响 手机版

   摘 要:本文根据作者多年的《可编程序控制器及其应用》课程教学经验,利用通俗的语言,典型的实例,详实的介绍了多路输出程序的编程方法,重点介绍了如何利用栈指令和主控指令进行多路输出程序的编程问题。
   关键词:纵接输出;多路输出;栈指令;记号;主控指令;临时左母线。
  
   一、对梯形图进行适当变换,解决多路输出编程问题
  在进行编程学习时,经常遇到多路输出问题。
   如何对多路输出梯形图进行编程呢?下面通过一个具体的实例来说明,进行梯形图适当变换,利用基本指令解决多路输出问题。
   如图1所示,就是一个三路输出的梯形图程序,三路共用一组公共触点。对于多路输出梯形图,我们可以根据PLC中触点可以无限次使用的特点,将各路共用的公共触点,在每一路输出中分散开来,将多路输出变成独立的多个单路输出,从而使用简单的基本指令对多路输出进行编程。
   在图1所示梯形图中,第一路输出Y000的线圈由X000和X001串联驱动,第二路输出Y001的线圈由X000和X002串联驱动,第三路输出Y002的线圈由X000和X003串联驱动,所以图1所示梯形图的功能和图2所示梯形图的功能是一样的。
   对于图2所示梯形图,我们就可以使用简单的基本指令进行编程了,从而有效地解决了多路输出问题。
   对多路输出梯形图进行有效地等效变换,可以解决多路输出编程问题,但是当公共部分触点较多、较复杂,或者输出路数较多时,利用这种方法就较复杂了。这时我们可以使用栈指令或主控指令进行编程
   二、利用栈指令解决多路输出问题
   1.复习纵接输出梯形图的编程
  使用栈指令编程的梯形图程序和纵接输出梯形图在形式上有相似之处,这也是同学们在学习中容易引起混淆,经常出错的地方。为此在学习栈指令之前,可以进一步复习纵接输出梯形图的编程。如图3所示,指令语句表如下:
   0 LD X000
   1 OUT Y000
   2 OUT Y001
   3 ANI X001
   4 OUT Y002
   如图4所示纵接输出梯形图,指令语句表如下:
   0 LD X000
   1 OUT Y000
   2 AND X001
   3 OUT Y001
   4 ANI X002
   5 OUT Y002
   2.栈指令教学的引入
   在复习纵接输出编程之后,给出如图5所示梯形图,让同学们思考能否用纵接输出编程。
   这时同学们肯定能根据前面学习的内容对图5所示梯形图编程如下:
   0 LD X000
   1 OUT Y000
   2 AND X001
   3 OUT Y001
   4 ANI X002
   5 OUT Y002
   这时,引导同学们观察图4、图5所编写的指令语句表,发现指令语句表是一样的,从而产生疑惑,这是为什么呢?
   对于图5所示梯形图程序,Y000是由X000驱动输出的,Y001是由X000和X001相串联驱动输出的,而Y002是由X000和X002相串联驱动输出的。在以上指令语句表中,ANI X002语句之前,结果寄存器的内容已经是X000和X001相串联,在给出ANI X002语句之后,结果寄存器的内容已经变成是X000、X001和X002相串联,所以OUT Y002的结果就是用X000、X001和X002相串联的结果驱动Y002输出,而不是用X000和X002相串联驱动输出的。这时自然而然提出问题,这样的梯形图如何进行编程呢?
   3.栈指令教学
   用栈指令可以解决如图5所示多路输出问题。在FX2N系列PLC中,有11个存储运算中间结果的存储器,称为栈存储器。这个栈存储器将触点之间的逻辑运算结果存储后,可以用指令将这个结果读出,再参与其他触点之间的逻辑运算。
   (1)MPS指令:
   MPS指令称为“进栈指令”,功能是栈存储器中的数据依次向下推移,腾出1号单元,将结果寄存器中存储的触点的运算结果存储到栈存储器1号单元,可形象的称之为“做记号”。
   (2)MRD指令:
   MRD指令称为“读栈指令”,功能是将存储到栈存储器1号单元中的触点的逻辑运算结果读出来,存储到结果寄存器中,可形象的称之为“使用记号”。
   (3)MPP指令:
   MPP指令称为“出栈指令”,功能是将存储到栈存储器1号单元中的触点的逻辑运算结果读出来,存储到结果寄存器中,其他单元中的内容依次向上推移,可形象的称之为“使用并清除记号”。
   (4)栈指令使用注意事项:
   ■ MPS、MRD、MPP指令均没有操作元件;
   ■ MPS、MPP必须成对使用,即只要做了记号,必须使用记号,且记号可以多次使用,但在使用完记号后,必须清除记
   ■ 栈指令可以嵌套使用,即可以连续做记号。由于栈存储器共11层,所以最多连续做11个记号。
   下面通过图6所示梯形图,介绍栈指令的使用方法。
   对于图6所示梯形图,是一个三路输出梯形图,在图中三路输出共用X000触点。期中X000和X001串联,驱动Y000输出;X000和X002串联,驱动Y001输出;X000和X003串联,驱动Y002输出。按照从左到右、从上向下的编程原则,首先应是X000,指令语句为LD X000,这时如果对X001触点进行编程,对于第一路输出是没有影响的,但是却使得其余两路无法进行编程。为了便于对其余两路进行编程,应使用MPS指令在A点做一个记号后,再对X001触点进行编程,X002触点和X003触点都是从A点开始的。指令语句表如下:
   0 LD X000
   1 MPS
   2 AND X001
   3 OUT Y000
   第一路输出完成后,进行第二路输出的编程。此时,结果寄存器的内容为X000和X001相串联,如果直接使用AND X002对X002触点进行编程,会导致Y001的输出是由X000、X001和X002三个触点串联驱动的。这时我们可以使用MRD指令,使用我们所做的记号。使用MRD指令后,结果寄存器的内容将变成X000,这时再使用AND X002指令编程即可使Y001的输出由X000和X001的串联驱动。至此指令语句表如下:
   0 LD X000
   1 MPS
   2 AND X001
   3 OUT Y000
   4 MRD
   5 AND X002
   6 OUT Y001
   在对第三路进行编程时,也应使用之前做得记号,但是因第三路是最后一路,以后不再使用该记号,所以应使用MPP指令,之后再对第三路进行编程。使用栈指令编程的指令语句表如下
   0 LD X000
   1 MPS
   2 AND X001
   3 OUT Y000
   4 MRD
   5 AND X002
   6 OUT Y001
   7 MPP
   8 ANI X003
   9 OUT Y002
   下面再看一个例子,梯形图如图7所示:
   该梯形图为四路输出,等效为图8所示梯形图:
   根据学过的知识,指令语句表如下:
   根据栈指令的功能,使用栈指令对图7所示梯形图程序进行编程时,可在图8所示梯形图程序的指令语句表基础上进行改动:在第一次叙述完各路公共部分之后,使用MPS指令做一记号,然后将第二、第三次公共部分的指令语句用MRD替代,第四次也就是最后一次公共部分的指令语句用MPP替代即可。使用栈指令对图7所示梯形图程序进行编程的指令语句表如下:
   0 LD X000
   1 ORI X001
   2 MPS
   3 AND X002
   4 OUT Y000
   5 MRD
   6 ANI X003
   7 OUT Y001
   8 MRD
   9 OUT Y002
   10 MPP
   11 LDI X004
   12 OR X005
   13 ANB
   14 AND X006
   15 OUT Y003
   三、利用主控指令解决多路输出问题
   对于多路输出梯形图的编程,除了使用栈指令进行编程外,还可以使用主控指令进行编程。特别是当输出路数较多或者是公共触点之外每一路的开始为电路块时,如果使用栈指令会造成编程步数增多,程序复杂,在这种情况下,可以使用主控指令进行编程。主控指令包括主控指令MC和主控复位指令MCR。
   1.主控指令介绍
   (1)主控指令MC:
   MC指令的功能是:当多路输出的公共部分触点组合驱动主控指令时,通过MC指令的操作元件Y或M的常开触点,将左母线移到多路输出的公共部分触点组合之后,产生一个临时左母线,从而简化了后面程序的编程。
   (2)主控复位指令MCR:
   MCR指令的功能是:取消由MC指令产生的临时左母线,即将左母线返回到原来的位置,在多路输出编程结束后,必须使用MCR指令,以便多路输出之后后续程序的编程。
   (3)主控指令使用注意事项:
  ■ 在多路输出的公共部分触点组合之后使用MC指令;
  ■ MC指令的操作元件可以是输出继电器Y,也可以是辅助继电器M(特殊辅助继电器除外);
  ■ 执行MC指令后,因左母线移到多路输出的公共部分之后,所以在公共部分之后,各路输出必须用LD指令或LDI指令开始写指令语句表;
  ■ 在各路输出编程完毕,必须使用MCR指令,使左母线由临时位置返回到原来的位置,即主控指令MC和主控复位指令MCR必须配套使用,且嵌套级编号必须一致;
  ■ 主控指令可以嵌套使用,即MC指令内可以再使用MC指令,这时嵌套级编号从N0到N7按顺序增加,顺序不能颠倒。
   2.主控指令使用
   下面以图7所示梯形图为例,介绍利用栈指令编程的方法:
   在使用主控指令进行编程时,首先分清哪是多路输出的公共触点组合,哪是受公共触点组合控制的主控电路块,如图9所示。
   然后利用公共触点组合驱动主控指令MC,对梯形图进行变形。如图10所示:
   变形后的梯形图指令语句表如下:
   0 LD X000
   1 ORI X001
   2 MC N0 M100
   执行主控指令的结果是在A点产生一个临时左母线,即在多路输出的公共触点组合之后。这样各路输出在公共触点之后的部分,就相当于从左母线开始的。梯形图变形如图11所示:
   实际上,采用主控指令编程时,在原左母线和临时左母线之间将串联一个由主控指令MC指定的辅助继电器M100的常开触点,我们称之为主控触点。只有当驱动MC指令的多路输出的公共触点组合逻辑运算结果为1时,该主控触点才能闭合,各路输出才有可能被驱动,否则该主控触点断开,各路线圈均不能被驱动。主控触点由主控指令产生,无需对其进行编程。
   左母线移到临时位置A后,我们就可以使用我们比较熟悉的基本指令对其进行编程了。
   指令语句表如下:
   5 LD X002
   6 OUT Y000
   7 LDI X003
   8 OUT Y001
   9 OUT Y002
   10 LDI X004
   11 OR X005
   12 AND X006
   13 OUT Y003
   在各路输出结束后,应使用主控复位指令MCR,将左母线由临时位置A移到原来的位置,以便后续程序的编程,也就是说主控指令MC和主控复位指令MCR必须配套使用,且嵌套级编号必须一致。梯形图如图所示:
   指令语句表如下:
   14 MCR N0
   综上所述,图7所示梯形图,采用主控指令编程时,梯形图变形为如图13所示:
  相应梯形图程序的指令语句表如下:
   0 LD X000
   1 ORI X001
   2 MC N0 M100
   5 LD X002
   6 OUT Y000
   7 LDI X003
   8 OUT Y001
   9 OUT Y002
   10 LDI X004
   11 OR X005
   12 AND X006
   13 OUT Y003
   14 MCR N0
   总之,对于多路输出程序的编程问题,首先应明确什么是多路输出,多路输出与纵接输出有什么区别。其次在编程时应掌握什么情况下采用变换梯形图的办法,将多路输出变换为多个单路输出,然后进行编程;什么情况下采用栈指令解决多路输出问题;什么情况下采用主控指令进行编程。在此基础上,通过多加练习和实际上机操作,熟练掌握栈指令、主控指令的功能、使用方法、注意事项,一定能很好的掌握多路输出程序的编程问题。为进一步学习PLC打下坚实的基础。
  
   参考文献:
   [1]可编程序控制器及其应用(第二版)中国劳动出版社.
   [2]PLC应用技术项目教程(赵金学 性贵宁主编)科学出版社.

标签:浅谈 多路 输出 编程