第三章 小型整体式PLC(2).ppt

返回 相似 举报
第三章 小型整体式PLC(2).ppt_第1页
第1页 / 共70页
第三章 小型整体式PLC(2).ppt_第2页
第2页 / 共70页
第三章 小型整体式PLC(2).ppt_第3页
第3页 / 共70页
第三章 小型整体式PLC(2).ppt_第4页
第4页 / 共70页
第三章 小型整体式PLC(2).ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述:
PLC原理及应用,第三章小型整体式PLC,第三章小型整体式PLC,CPM系列小型机系统的特点CPM系列机的构成CPM系列机的继电器区和数据区CPM系列机的指令系统,,PLC是在继电器线路和计算机原理的基础上发展起来的,PLC的梯形图语言借鉴了继电器线路原理。例3-1展示了PLC梯形图和继电器线路间的联系。,【例3-1】图a为电机启停保控制电路,试用PLC实现之。,,分析对于这样一个任务来说,有两个输入SB1和SB2,一个输出KM。至于KM的自保触点,可用PLC内部的位实现,因此KM的自保触点不作为输入。SB1和SB2均可选用带一对常开触点的按钮。假定该任务在CPM1ACPU主机上实现,可对输入输出点分配如下输入停止按钮SB100000启动按钮SB200001输出电机转动KM01000,【例3-1】,输入输出定好后,便可画出与PLC硬件连接图,,,图3-24a和图3-24b程序所实现的逻辑是相同的,但图3-24b程序占用的程序空间较小,其扫描时间较短。通过该例可以发现,PLC的梯形图程序与继电器线路图非常接近,编制梯形图程序时可借鉴继电器线路图,但不可照搬。合理地安排梯形图逻辑顺序,可以节省程序存储空间,缩短扫描时间。,【例3-1】,接下来,编写PLC程序,(1)任何一个输出(或定时器、计数器、传送指令等),都不能直接连到母线,其前面至少应该有一个触点。,,2.利用最基本指令编程时应注意的问题,,(2)同一个位,作为输出只能使用一次,但作为触点可以无限制地重复使用。,,在图3-26a的程序中,01000作为输出使用了二次,是错误的。对于程序中有多处需改变同一个位的状态(即输出)时,可把这些地方的条件综合到一起,然后输出,2.利用最基本指令编程时应注意的问题,,(3)由于桥式电路在PLC中无法用指令编程,所以,在设计梯形图程序时不应出现桥式电路。对于确实需要桥式电路的地方,可按逻辑关系等效成非桥式电路,,2.利用最基本指令编程时应注意的问题,(4)编程时,对于有复杂逻辑关系的程序段,应按照先复杂后简单的原则编程。这样,可以节省程序存储空间,减小扫描时间。,,0LD000001LDNOT000012ANDHR00013LD000024LD000035AND000046ORLD7ANDLD8ORLD9OUT01000,0LD000031AND000042OR000023ANDNOT000014ANDHR00015OR000006OUT01000,2.利用最基本指令编程时应注意的问题,,几个程序优化的例子,很显然这个程序行不是最优的,我们可以对它做如下优化,程序优化举例1,,,程序优化举例1,,程序优化举例1,,程序优化举例1,,上面梯形图先需要一个“ORLD”操作,紧接着是一个“ANDLD”操作,这样对顶部三个逻辑块编写,然后再用另两个“ORLD”操作来完成助记符编程。,尽管程序可以按上面编写程序执行,但该程序并不是最优的。可做如下改写,以简化程序并节省内存空间。,程序优化举例2,,程序优化举例2,,改写为这种形式后,省去了第一条“ORLD”和“ANDLD”指令,简化了程序并节省了内存空间。,程序优化举例2,,程序优化举例2,,上面梯形图需要五个逻辑块,这里先按顺序对五个逻辑块编写,然后利用“ORLD”和“ANDLD”指令从最后两个块开始往前将它们连接起来。程序中地址00008的“ORLD”指令把块d和e连接起来,随后的“ANDLD”指令将上述过程产生的执行条件和块c的执行条件连接起来,等等。,程序优化举例3,,程序优化举例3,,改画为如上形式后,即简化了编程又节省了内存空间。,程序优化举例3,,程序优化举例3,(5)编程时,注意指令的数据区如在CMP1A中,OUT指令使用IR区时,就不能使用000通道中的位作输出位。这是因为在CPM1A中000通道是输入通道。,2.利用最基本指令编程时应注意的问题,,IL(02)、ILC(03)为联锁指令。括号中的号码为指令功能码。IL为联锁条件,表示联锁程序段的开始;ILC为联锁清除,表示联锁程序段的结束。使用联锁指令可以解决在分支点上存储执行条件的问题。,3.联锁指令,联锁指令的执行过程和使用方法(1)IL前面的状态为OFF时,IL与ILC之间的程序不执行。当IL前面的状态为ON时,IL与ILC之间的程序照样执行,与没有IL和ILC时一样。(2)IL前面的状态为OFF时,IL与ILC之间程序段中各输出状态如下,3.联锁指令,,(3)IL前面必须具有条件,即其前面至少有一个位。不论IL前面的状态是ON还是OFF,PLC都对IL-ILC之间的程序段进行处理。所以,无论IL-ILC之间的程序是否执行,都要占用程序扫描时间。(4)联锁不允许嵌套(即不允许出现IL-IL-ILC-ILC形式),但允许不成对出现(IL-IL-ILC)。联锁指令在程序中没有使用次数限制。在程序中使用IL-IL-ILC后,进行程序检查时认为出错,但不影响执行。在程序中使用IL-IL-ILC-ILC后,进行程序检查时认为出错,程序不执行。,3.联锁指令,,对于图3-33所示的程序,当00000为OFF时,00000后ILC前的程序不执行,01000~01003均为OFF。当00000为ON,00001为OFF时,00000后00001前的程序执行,00001后ILC前的程序不执行。当00000、00001均为ON时,程序执行,相当于没有IL-IL-ILC。编程时,IL后的程序相当于重新从母线开始。所以,图3-33程序等价于图3-34程序。,,LD00000ILLD00002OUT01000LD00003OUT01001LD00001ILLD00004OUT01002LD00005OUT01003ILC,联锁指令举例,3.联锁指令,注意事项,一个或多个IL02后面必须跟一个ILC03。,无论何时执行ILC03,都会清除所有有效的ILC03与之前的IL02之间的联锁。所以,ILC03指令不能在没有一个IL02的情况下连续使用。也就是说,不能嵌套。,当多个IL02和单个ILC03一起使用时,在完成程序检查时,将发生出错信息,但程序仍可正常执行。,这些指令不影响任何标志位。,暂存继电器TR0~TR7用于暂存中间结果,记录程序分支点的状态。在同一个程序段中,TR0~TR7不可重复使用。但在不同的程序段中,同一个暂存继电器可重复使用。暂存指令TR不影响标志位。,4.暂存指令,,,,TR0,TR1,LD00000OUTTR0LDTR0AND00002OUT01000LDTR0AND00003OUT01001LDTR0AND00001OUTTR1LDTR1AND00004OUT01002LDTR1AND00005OUT01003,4.暂存指令,,暂存指令的应用场合指令行分支,如梯形图A所示,如果在分支点上存在的执行条件在返回分支行前不会改变(即最右侧的指令不改变该执行条件),那么将正确地执行分支行而不需要作任何特殊的编程处理。如梯形图B所示,如果在分支点和最上面指令行的最后一条指令之间有一个条件,那么分支点上的执行条件和完成上面指令行之后的执行条件有时可能是不同的,因此,不能确保该分支行正确地执行。,4.暂存指令,结论当一个指令行分成两行或更多行时,它有时必须使用互锁或TR位来保存分支点上存在的执行条件。这是因为指令行在返回分支点执行一个分支行上的指令之前执行了右侧指令。如果在分支点后的任意指令行上存在一个条件,这时执行条件可能发生改变而不能完成本来的操作。,4.暂存指令,暂存指令的应用场合,TR位TR区共提供8个位TR0~TR7可用于暂时储存执行条件,如果一个TR位被设置在分支点处,则当前的执行条件就会存储在指定的TR位中。当程序返回到分支点时,TR位释放出执行状态,而该状态正是在程序第一次执行到该分支点处时被保存下来的状态。前面的梯形图B可写为如下形式,4.暂存指令,使用两个TR位的例子,在这个例子中,TR0和TR1用来存储两个分支点的执行条件。在执行指令1后,TR1内的执行条件被调出和IR00003的状态进行“AND”操作。而存在TR0中的执行条件会被两次调用,第一次调出来和IR00004的状态进行“AND”操作,而第二次是与IR00005的状态“非”进行“AND”操作。,4.暂存指令,当画梯形图时,除非必须,一般不用TR位。画梯形图时不使用TR位可以减少程序的指令数,并使程序更易于理解。,优化程序例1,4.暂存指令,,只有在使用助记符编程时才使用TR位。当直接输入梯形图时,不必使用TR位。但仍要注意在分支点所需要TR位的最大数目的限制(8个),也要注意采用适当的方法减少程序所用的指令数。,优化程序例2,4.暂存指令,虽然简化程序总是一个令人关心的问题,但指令的执行顺序有时也是很重要的。例如,在一个二进制加法指令执行之前,需要一条传送MOVE指令把适当的数据放入所需的操作数字中。在考虑简化程序之前,必须要确认执行顺序全部正确。,程序优化时的注意事项,除了用TR位可以保存指令行分支点上的执行条件外,利用联锁指令也可以起到同样的效果,把程序中分支点的执行条件放在联锁IL指令行上,把所有原来从分支点分出的行都重写成独立的指令行,并且在最后再加入一条解除联锁ILC指令。,4.暂存指令,,根据一个指定的执行条件,可以跳过程序中某一指定段。JMP总是与JME连用来形成跳转,也就是说,从梯形图的一点跳转到另一点。JMP定义开始跳转的点;JME定义了结束跳转的点。n为跳转号,范围为00~49。,5.跳转指令JMPn、JMEn,跳转指令的工作过程和使用方法(1)JMPn前的状态为OFF时,JMPn与JMEn之间的程序不执行。当JMPn前面的状态为ON时,不发生跳转,JMPn与JMEn之间的程序正常执行。(2)JMPn前的状态为OFF时,JMPn与JMEn之间的程序保持JMPn前的状态为ON时的状态不变。由于此时PLC对JMPn与JMEn之间的程序不处理,所以此时JMPn与JMEn之间的程序不占用扫描时间。,5.跳转指令,,(3)有两种类型的跳转跳转号n0和跳转号n≠0(在01~49之间取值)当n在01~49之间取值时,每个跳转号只能使用一次,即对同一个n,JMPn-JMEn只能在程序中使用一次。程序执行立即跳转到具有相同跳转编号的JME05处,而不执行它们中间的任何指令。当n取00值时,JMP00-JME00可以在程序中多次使用。以00作为JMP的跳转号时,因为CPU必须通过搜索程序来寻找下一个JME00指令,所以它的执行时间比跳转号不为00的跳转指令的执行时间要稍长一些。,5.跳转指令,,(4)多个JMPn可以共用一个JMEn,如JMP01-JMP01-JME01。这样使用后,在进行程序检查时会出现出错信息,但程序仍会正常执行。(5)跳转指令可以嵌套使用,但必须是不同的跳转号,如JMP00-JMP01-JME01-JME00。也可以交叉使用,如JMP01-JMP02-JME01-JME02。,5.跳转指令,,(6)跳转指令编程,LD00000JMP00LD00002OUT01000LD00003OUT01001LD00001JMP00LD00004OUT01002LD00005OUT01003JME00,当00000为OFF时,输出01000~01003保持00000为ON时的状态。当00000为ON,00001为OFF时,00000后00001前的程序正常执行,输出01002、01003保持00001为ON时的状态。当00000、00001均为ON时,程序正常执行,相当于没有JMP00-JMP00-JME00。编程时,JMP后的程序相当于重新从母线开始,相同点JMPn前面的状态为ON时,JMPn与JMEn之间的程序正常执行;IL前面的状态为ON时,IL与ILC之间的程序正常执行。JMPn前的状态为OFF时,JMPn与JMEn之间的程序不执行。IL前面的状态为OFF时,IL与ILC之间的程序不执行。,跳转指令和联锁指令的异同,5.跳转指令,不同点JMPn前的状态为OFF时,PLC对JMPn与JMEn之间的程序不处理,JMPn与JMEn之间的程序不占用扫描时间。JMPn与JMEn之间的程序状态保持以前的状态不变。IL前面的状态为OFF时,PLC都对IL-ILC之间的程序段进行处理,IL-ILC之间的程序占用程序扫描时间。IL与ILC之间程序段中各输出状态有固定模式(1)输出OUTOFF(2)定时器复位(2)计数器、移位寄存器保持指令输出状态不变。,跳转指令和联锁指令的异同,5.跳转指令,SET用于使指定的继电器为ON,RESET用于使指定的继电器为OFF。B为要置位或复位的继电器,6.置位和复位指令,功能当SET指令的执行条件为ON时,使指定继电器置位为ON,当执行条件为OFF时,SET指令不改变指定继电器的状态。当RESET指令的执行条件为ON时,使指定继电器复位为OFF,当执行条件为OFF时,RESET指令不改变指定继电器的状态。SET和RESET指令的数据区为IR、SR、HR、AR、LR,6.置位和复位指令,实例,,当00000由OFF变为ON后,20000被置位为ON,并保持为ON,即使00000变为OFF。当00003由OFF变为ON后,20000被复位为OFF,并保持OFF,即使00003变为0FF。,注意SET指令和OUT的不同当执行条件为OFF时,OUT指令置操作数为OFF,而SET不变同样,RSET指令的执行和OUTNOT不同,执行条件为OFF时,OUTNOT指令置操作数位为ON,而REST操作数不变,6.置位和复位指令,NOP(00)功能空操作指令用来取消某一步操作。该指令无操作数,无梯形图符号。,7.空操作指令,图a中梯形图对应的语句表如右侧所示,若将第二条指令(AND00001)改为NOP,对应的梯形图变为图b,相当于将00001短接,当执行到该条指令时,PLC进行空操作。,作用修改程序时,使用NOP指令,可使步序号不变,便于调试程序。如上例中,若用删除键将第二条指令删除,则第3步变为第2步,用NOP指令则步序号不变。,7.空操作指令,0LD000031AND000042OR000023ANDNOT000014ANDHR00015OR000006OUT01000,如由于某种原因不需要串联触点0004了,若直接去掉步号被打乱,可插入NOP,节省程序修改时间,0LD000031NOP2OR000023ANDNOT000014ANDHR00015OR000006OUT01000,,NOP00不影响任何标志位,,KEEP(11)功能用于改变一个位的状态。KEEP指令有一个置位端,一个复位端。置位端和复位端既可以是一个位,也可以是用最基本指令构成的逻辑块。KEEP指令只能以位为单位操作。对KEEP指令编程时,先编置位端,后编复位端,然后编KEEP指令。,8.保持指令,,,作用使用保持指令来保持基于两个执行条件的操作位的状态。这样做,将保持指令连接到两条指令线上。当第一个指令行末端的执行条件为ON时,保持指令的操作位置ON。当第二个指令行末端的执行条件为ON时,保持指令的操作位置OFF。即使位于在程序的连锁内部部分,保持指令的操作位将保存它的ON或OFF状态。,8.保持指令,,语句表LD00002LD00003KEEPHR0000,KEEP11运算就象一个由S置位和R复位的锁存继电器。,8.保持指令,KEEP指令的数据区为IR、SR、HR、AR、LR当KEEP指令使用HR数据区时,断电后KEEP位可保持断电前的状态使用IR数据区时,断电后KEEP位的状态变为OFFKEEP指令的位和OUT指令的位都是输出,因此同一个位不能同时用于KEEP和OUT指令。同时,和OUT指令一样,对同一个位,用于KEEP指令时,只能使用一次。IR区中用作输入通道的位不能使用。,注意,8.保持指令,,,,比较如下两种保持方式的异同,KEEP指令相当于输出带自保的OUT,图3-42程序与图a程序是等价的。但当在ILILC程序段中时,情况略有不同。当IL前面的状态为OFF时,图a程序中的HR0000保持原状态不变,图3-42程序中的HR0000的状态变为OFF。,8.保持指令,9.微分指令,作用用于取一个位的上升沿或下降沿。,DIFU(13)为上升沿微分,当其前面的状态由OFF变为ON时,DIFU后的位ON一个扫描周期。,DIFD(14)为下降沿微分,当其前面的状态由ON变为OFF时,DIFD后的位ON一个扫描周期。,编程实例,,当00002由OFF变为ON时,01000为ON一个扫描周期的时间;当00002由ON变为OFF时,01001为ON一个扫描周期时间,01001变为OFF后01002为ON一个扫描周期时间。,如果某条指令要求在00002为ON时只执行一次,则可用00002的上升沿微分01000作为该指令的执行条件。如果用00002作为该指令的执行条件,则只要00002为ON,每个扫描周期执行一次,执行的次数取决于00002为ON的时间。,9.微分指令,注意事项,微分指令的数据区为IR、SR、HR、AR、LR。,在程序中微分指令最多可使用48个。,微分指令也是输出,使用IR区时用作输入通道的位不能使用,用作外部输出的位最好也不要使用。,当指令编程在IL02和ILC03之间,JMP和JME之间或子程序中时,DIFU13和DIFD14的执行结果会不确定,9.微分指令,9.微分指令,如果DIFU或DIFD在一个联锁部分中并且IL的执行条件为OFF,则不记录DIFU或DIFD的执行条件的变化。当IL的执行条件为ON后立即执行联锁部分中的DIFU或DIFD时,在联锁有效之前(即IL的联锁条件变为OFF之前),DIFU或DIFD的执行条件将与现存的执行条件相比较。它的梯形图和位状态如图所示。当000000是OFF时,联锁有效。注意即使00001已是OFF然后变为ON,20000将不会在标为A的点上置ON。,执行结果不确定的例子,至此,我们学习了LD指令、OUT指令、AND指令、OR指令、NOT指令、ANDLD指令、ORLD指令、END指令、联锁指令、暂存指令、跳转指令、置位和复位指令、空操作指令、保持指令、微分指令等基本指令。这其中的OUT,OUTNOT,DIFU13,DIFD14,SET,RSET,和KEEP11指令,由于通常可以用他们来控制单独的位状态,因此这些指令又可统称为位控制令。这些指令可以用不同的方法来控制位的ON和OFF状态。由于他们在程序编制中经常用到,所以我们对位控指令做一下复习。,基本指令小结,输出和输出非-OUT和OUTNOT,OUT和OUTNOT用于根据执行条件控制指定位的状态。,对于执行条件为ON,OUT指令将指定位置ON,对于执行条件为OFF,OUT指令将指定位置OFF。在一个TR位中,OUT出现在分支点上,而不是一个指令行的末端。,对于执行条件为OFF,OUTNOT指令将指定位置ON,对于执行条件为ON,OUTNOT指令将指定位置OFF。,基本指令小结,,通过梯形图中指定条件位置ON和OFF,可控制OUT和OUTNOT的执行,而这些位决定其他指令的执行条件。允许一组复杂条件控制单个工作位状态,接着这个工作位用于控制其他指令,这对编程是非常有帮助的。,一个位ON和OFF的时间长短可以通过将OUT或OUTNOT与TIM指令结合来完成控制。,输出和输出非-OUT和OUTNOT,基本指令小结,,置位和复位-SET和RSET,当SET的执行条件为ON,SET置操作数位为ON,当其执行条件为OFF时,操作数位的状态不受影响。当RSET的执行条件为ON,RSET置操作数位为OFF,当其执行条件为OFF时,操作数位的状态不受影响。,基本指令小结,注意事项,SET指令的执行和OUT不同,因为当执行条件为OFF时,OUT指令置操作数位为OFF。同样,RSET指令的执行和OUTNOT不同,因为当执行条件为OFF时,OUTNOT指令置操作数位为ON。,当遇到联锁和跳转条件时(即当IL02和JMP04在一个OFF执行条件执行下),在IL02和ILC03或JMP04和JME05之间的SET和RSET的操作数位的状态不发生变化。,这些指令不影响标志位。,置位和复位-SET和RSET,基本指令小结,举例,置位和复位-SET和RSET,在图A中,无论00000变为ON还是OFF,20000也相应变为ON或OFF。,在图B中,当00001变为ON时,20000也变为ON,并且不管00001是否变为OFF一直保持ON直到IR00002也变为ON为止。,基本指令小结,,保持–KEEP11,KEEP11用来保持基于两个执行条件指定位的状态。这些执行条件用S和R标出。S是置位输出,R是复位输出。KEEP11运算就象一个由S置位和R复位的锁存继电器。,基本指令小结,,保持–KEEP11,当S为ON时,其指定位也会置ON,并保持ON直到复位为止,在此期间不管S是否保持ON还是变为OFF。当R置ON时,其指定位也会置OFF,并保持OFF直到置位为止,在此期间不管R是否保持ON还是变为OFF。,基本指令小结,在联锁指令中KEEP使用的位不能复位。,这些指令不影响标志位。,注意事项,保持–KEEP11,基本指令小结,上升沿微分和下降沿微分-DIFU13和DIFD14,当不能用指令微分形式(在前面加入一个),但又希望特殊指令在一个单周期内执行时需要使用这些指令,无论何时执行,DIFU13都将其当前执行条件与先前的执行条件相比较。如果先前的执行条件是OFF,且当前的执行条件为ON,则DIFU13的指定位将变为ON。如果先前的执行条件是ON并且当前执行条件是ON或OFF,则DIFU13将置指定位为OFF或保持OFF状态,DIFD14和DIFU13相反,基本指令小结,DIFU13和DIFD14仅在一个周期中使指定位置ON。,注意事项,上升沿微分和下降沿微分,这些指令不影响标志位。,当指令编程在IL02和ILC03之间,JMP和JME之间或子程序中时,DIFU13和DIFD14的执行结果会不确定,基本指令小结,当IR00000从OFF变为ON时,IR20014将在一个周期里变为ON;当IR00000从ON变为OFF时,IR20015将在一个周期里变为ON。,上升沿微分和下降沿微分,举例,基本指令小结,
展开阅读全文

资源标签

最新标签

长按识别或保存二维码,关注学链未来公众号

copyright@ 2019-2020“矿业文库”网

矿业文库合伙人QQ群 30735420