1 / 232

CPM1A 系列 PLC 的指令系统

第三章. CPM1A 系列 PLC 的指令系统. 回到 主目录. 熟练掌握 PLC 的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器 / 计数器指令;数据比较 CMP 指令;数据移位 SFT 指令;数据传送 MOV 等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。. §3-1 概 述. §3-2 基本指令. §3-3 常用的应用指令. §3-4 数据传送和数据比较指令. 目 录. §3-5 数据移位和数据转换指令. §3-6 数据运算指令. §3-7 子程序控制指令.

candid
Download Presentation

CPM1A 系列 PLC 的指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 CPM1A系列PLC的指令系统 回到主目录

  2. 熟练掌握PLC的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器/计数器指令;数据比较CMP指令;数据移位SFT指令;数据传送MOV等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。熟练掌握PLC的基本指令、编制梯形图的注意事项;熟练掌握分支程序的处理方法;熟练掌握定时器/计数器指令;数据比较CMP指令;数据移位SFT指令;数据传送MOV等指令。掌握其它应用指令的用法。能够读懂梯形图程序和语句表程序,并能够互相转换;能够编写简单的梯形图程序。

  3. §3-1概 述 §3-2基本指令 §3-3常用的应用指令 §3-4数据传送和数据比较指令 目 录 §3-5数据移位和数据转换指令 §3-6数据运算指令 §3-7子程序控制指令 §3-8高速计数器控制指令 §3-9脉冲输出控制指令 §3-10中断控制指令 §3-11步进指令 §3-12特殊指令

  4. §3-1 概述 1. CPM1A指令分类 基本指令 直接对输入、输出进行操作。 应用指令 进行数据处理、运算和程序控制等操作。 2. CPM1A指令格式 助记符(指令码) [操作数1] [操作数2] [操作数3] 助记符:表示指令的功能 指令码:是指令的代码 操作数:提供指令执行的对象或数据

  5. ★关于操作数的讨论 操作数可以是通道号、继电器号或常数。 操作数的个数,取决于各种指令的需要。 操作数设为常数时,在数据前面要加#号。 操作数采用哪种进制,取决于指令的需要。 间接寻址的操作数用*DM××××来表示。 间接寻址的操作数,是以DM××××中的数据为地址的另一个DM通道中的数据。 DM××××中 的 内容 必须是BCD码,且不得超出DM区的范围。

  6. 例如,计数器指令的格式为 CNT000 SV 000是计数器的编号 SV是操作数 若 SV = 200 表明000号计数器的设定值是200通道中的内容。 若SV= # 0200 表明000号计数器的设定值是常数200。

  7. 例如:计数器的指令格式为 CNT000 *DM1000 设DM1000的内容为0010 设DM0010的内容为2500 则 000号计数器的设定值是2500 如果设DM1000的内容为9990 超出DM范围 非BCD码 如果设DM1000的内容08FA

  8. 3. 执行指令对标志位的影响 SR区的25503~25507是指令执行结果的标志位。 某些指令的执行结果影响标志位25503~25507的状态。 标志位25503 ~25507的状态表示的意义要牢记。 ER(25503):出错标志位。 25503 ON时,表示当前执行的程序出错且停止执行。 CY(25504):进位标志位 GR(25505):大于标志 EQ(25506):等于标志 LE(25507):小于标志 当执行指令END(01)时,以上标志均置为OFF

  9. 4. 指令的微分、非微分形式 微分型:要在指令的助记符前加标记@。 两种指令的区别 非微分型指令: 只要其执行条件为ON,每个扫描周期都执行该指令。 微分型指令: 仅在指令的执行条件由OFF变为ON时才执行一次。 返 回

  10. 基本指令是最常用的指令 要牢记: 指令的功能、格式、符号和代码; 指令操作数的范围; 执行各指令对标志位的影响。 §3-2 基本指令

  11. N N §3-2-1常用的基本指令 • LD 和LD NOT 指令 功能 LD: 常开触点与母线相连 LD NOT:常闭触点与母线相连 LD、LD NOT只能以位为单位进行操作 不影响标志位

  12. N N 2. OUT 和OUT NOT 指令 功能 OUT:指令输出逻辑运算结果 OUT NOT:逻辑运算结果取反后输出 OUT、 OUT NOT只能以位为单位进行操作 不影响标志位

  13. 说明 (1). 若输出位为PLC的输出点,则运算结果输出到PLC外部 若输出位为PLC的内部继电器,则运算结果为中间结果, 不输出到PLC外部。 (2).IR区已用作输入通道的位,不能作为OUT、OUT NOT的输出位。 (3).OUT、OUT NOT指令常用于一条梯形图支路的最后,但有时也用于分支点(见TR)。 (4).线圈并联输出时,可以连续使用OUT、OUT NOT。

  14. 00000 01000 01001 00001 01002 例: LD 00000 OUT 01000 OUT NOT 01001 LD NOT 00001 OUT 01002

  15. N N N:继电器编号 IR,SR,HR,AR,LR,TC 3. AND 和AND NOT 指令 功能 AND:表示常开触点与前面的触点电路相串联,或者说AND后面的位与前面的状态进行逻辑“与”运算。 AND NOT:表示常闭触点与前面的触点电路相串联,或者说AND NOT后面的位取“反”后与前面的状态进行逻辑“与”运算。

  16. 00000 00001 01000 00000 01000 01001 例: LD 00000 AND 00001 OUT 01000 LD 00000 AND NOT 01000 OUT 01001 说明 (1). AND、AND NOT只能以位为单位进行操作,且不影响标志。 (2). 串联的触点数没有限制。

  17. 00000 00001 01000 00000 00001 00002 01001 00002 01001 01000 (b)连续输出次序颠倒 (a)连续输出 例:两种输出形式 以上两图逻辑功能相同,但是(b)图用语句表编程繁琐,应尽量避免。 (b)连续输出次序颠倒 LD 00000 AND 00001 AND 00002 OUT 01001 LD 00000 AND 00001 OUT 01000 (a)连续输出 LD 00000 AND 00001 OUT 01000 AND 00002 OUT 01001

  18. N N N:继电器编号 IR,SR,HR,AR,LR,TC 4. OR 和OR NOT 指令 功能 OR:表示常开触点与前面的触点电路相并联,或者说OR后面的位与前面的状态进行逻辑“或”运算。 OR NOT:表示常闭触点与前面的触点电路相并联,或者说OR NOT后面的位取“反”后与前面的状态进行逻辑“或”运算。 说明 (1). OR、OR NOT只能以位为单位进行操作,且不影响标志。 (2). 并联的触点数没有限制。

  19. 01000 00000 00001 01001 00000 00003 例: LD 00000 OR 00001 OUT 01000 LD 00000 OR NOT 00003 OUT 01001

  20. END(01) 无操作数 5. 结束指令END(01) 无执行条件 功 能 表示程序结束。是程序的最后一条指令。END(01)后面的指令一概不执行。 利用END指令插在各程序段之间,可以进行分段调试。 若程序中没有END指令,则PLC不执行程序,并显示出错信息:“NO END INST”。 执行END指令时,ER、CY、GR、EQ、LE标志置为OFF。

  21. 01000 00000 00001 01000 00000 6. 空操作指令NOP(00) 功能:用来取消某一步操作。常用于修改梯形图。 无梯形图符号、无操作数 例如: 改为: • LD 00000 • AND 00001 • OUT 01000 • LD 00000 • NOP(00) • OUT 01000 使步序号变更更少。

  22. §3-2-2 AND LD和OR LD 指令 1. AND LD指令 功能:用于逻辑块串联连接,即对逻辑块进行逻辑“与”的操作。 注 意 (1). 每个逻辑块都以LD或LD NOT 指令开始。 (2). AND LD指令单独使用,后面没有操作数。 (3).使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过8。

  23. 20000 00000 00001 00003 00005 00002 00004 00006 例: 方法1:分置法 方法2:后置法 LD 00000 AND 00001 OR NOT 00002 LD 00003 OR 00004 LD 00005 OR NOT 00006 AND LD AND LD OUT 20000 LD 00000 AND 00001 OR NOT 00002 LD 00003 OR 00004 AND LD LD 00005 OR NOT 00006 AND LD OUT 20000 对逻辑块多少无限制 AND LD前面的逻辑块数少于8

  24. 2. OR LD指令 功能:用于逻辑块并联连接,即对逻辑块进行逻辑“或”的操作。 注 意 (1). 每个逻辑块都以LD或LD NOT 指令开始。 (2). OR LD指令单独使用,后面没有操作数。 (3).使用这条指令有两种方法:分置法和后置法。两种方法可以得到相同的运算结果,但使用分置法时触点组数是没有限制的,而采用后置法时触点组数不能超过8。

  25. 01001 00000 00001 00002 00003 00004 00005 例: 方法1:分置法 方法2:后置法 LD 00000 AND NOT 00001 LD 00002 AND 00003 OR LD LD NOT 00004 AND NOT 00005 OR LD OUT 01001 LD 00000 AND NOT 00001 LD 00002 AND 00003 LD NOT 00004 AND NOT 00005 OR LD OR LD OUT 01001

  26. 01005 00002 00000 00003 00004 20002 00001 00005 00006 00007 00008 20000 20001 例:利用以上指令对复杂梯形图编程 先找出逻辑块 LD 00000 OR 00001 AND NOT 00002 LD 00005 AND NOT 00006 OR LD LD 00007 AND 00008 OR LD LD 00003 AND 00004 OR 20002 AND LD LD 20000 AND 20001 OR LD OUT 01005

  27. SET N RESET N N:继电器编号 IR,SR,HR,AR,LR, 00000 00000 SET 20000 00003 00003 RESET 20000 20000 §3-2-3置位(SET)和复位(RESET)指令 功 能 SET:当执行条件为ON时,使指定的继电器置位为ON。 当执行条件为OFF时,指定的继电器不改变原状态。 RESET:当执行条件为ON时,使指定的继电器复位为OFF。 当执行条件为OFF时,指定的继电器不改变原状态。 LD 00000 SET 20000 LD 00003 RESET 20000

  28. 置位输入 S KEEP(11) N 复位输入 R N:继电器编号 IR,SR,HR,AR,LR 00002 KEEP(11) HR0000 00003 00002 00003 HE0000 §3-2-4保持指令KEEP(11) 功 能 当 S=ON,R=OFF时,继电器N保持为ON状态,即使S由ON变为OFF,继电器N的ON状态也不变。 当 R=ON时,继电器N的状态为OFF LD 00002 LD 00003 KEEP(11) HR00000

  29. 00002 00002 00003 00003 HR0000 HR0000 HE0000 注 意 (1). KEEP(11)指令功能和SET、RESET指令的功能类似,但KEEP指令是一个整体,中间不允许插入任何指令。 (2). KEEP(11)指令完成一个起停保电路的功能。 (3). 当用KEEP(11)指令对保持继电器编程时,可实现断电保持的功能。

  30. DIFU(13) N N:继电器编号 IR,SR,HR,AR,LR DIFD(14) N §3-2-5上升沿微分指令DIFU(13) 下降沿微分指令DIFD(14) 功 能 DIFU(13):执行条件由OFF变为ON时 ,指定继电器N在一个扫描周期为ON。 DIFD(14):执行条件由ON变为OFF时,指定继电器N在一个扫描周期为ON。

  31. 00000 00000 DIFU(13) 20000 20000 DIFD(14) 20001 Ts 20001 Ts DIFU(13)和 DIFD(14)指令的接通时间只有一个扫描周期。 说 明 (1). IR区中已经用作输入通道的位不能作为微分指令的输出位,输出通道的位最好也不要用。 (2).输入条件在第n次扫描到为OFF,n+1次扫描到为ON时,DIFU指令执行,所以对于开机就为ON的执行条件,DIFU指令不执行。同样,对于开机就为OFF的执行条件DIFD指令不执行。

  32. 01000 00000 01000 00001 00000 00001 3-2-6基本编程规则和编程方法 一. 基本编程规则。 1. 梯形图的每一行都是从左侧母线开始,线圈和指令应放在最右边。 正确的 错误的 2. 除少数指令(如ILC、JME等)不允许有执行条件外,几乎所有指令都需要执行条件。 若一条指令在PLC上电后需要一直执行,不能直接连在母线上,可以将SR区的常ON标志25313或常OFF标志25314取反后作为执行条件。 若一条指令在PLC上电后只执行一次,则将SR区的25315作为执行条件。

  33. 00000 01000 20000 01000 00000 01000 01000 I/O刷新 01001 00001 01000 3. 尽量避免出现双线圈输出 在同程序中,同一元件线圈使用2次或多次,称为双线圈输出。这时前面的输出无效,最后一次输出才是有效输出。 双线圈输出易引起逻辑分析上的混乱 设:00000为ON,00001为OFF 第一支路:01000得电 01001得电 第二支路:01001得电 01000失电 第三支路:01000失电 从第二支路看,01001要想得电01000必须为ON,由此看出上图逻辑混乱。

  34. 01000 1 2 01000 5 4 1 2 5 3 4 5 2 3 4 1 2 3 2 3 1 01000 01000 1 2 2 1 3 3 01000 01000 4. 触点不能画在垂直路径上 5. 逻辑关系复杂的程序段,按先复杂后简单的原则编程

  35. 6. 梯形图以END指令结束,否则不执行。 二. 基本编程方法。 1. 指令和线圈可以并联输出。 2. 触点组与触点相并联时,将单个触点放在下面。(节省一个OR LD语句)图3.13 3. 并联触点组与几个触点相串联时,并联触点组放在左面。(节省一个AND LD语句)图3.14 4. 如果指令只需上电时执行一次,则用 SR区的25315作为执行条件。图3.15

  36. 5. 若有些梯形图难以用语句表编程,可以重新根据逻辑关系安排梯形图结构,使之能够用基本指令的语句表编程。 如图3.16 6. 当某梯级有两个分支时,若其中一条分支从分支点到输出线圈之间无触点,该分支应放在上方,这样可以使语句表更少(连续输出)。 7. 尽量使用操作数少,执行时间短的指令,以缩短扫描周期,提高I/O响应速度。 返 回

  37. IL(02) ILC(03) §3-3 常用的应用指令 §3-3-1 连锁/连锁解除指令(IL(02)/ILC(03)) 功能:用来处理梯形图中的分支电路,IL和ILC一起使用。 若IL的执行条件为 ON,位于IL和ILC之间的程序正常执行。 若IL的执行条件为OFF,位于IL和ILC之间的程序不执行。 IL和ILC之间的程序输出状态为: 所有输出位为:OFF 所有定时器:复位 所有计数器、移位寄存器、有保持功能指令的输出位:保持以前状态

  38. 说 明 (1). 不论IL前面的执行条件为OFF或ON,PLC都要对IL—ILC中间的程序进行处理,要占用扫描时间。 (2). IL和ILC可以成对使用,也可以多个IL指令配一个ILC指令,但不允许嵌套。 IL---IL…..ILC (允许) IL IL…ILC ILC(不允许)

  39. 00000 IL (02) 01000 00001 01001 00002 01000 00000 A 00001 01002 00003 00004 01001 00002 ILC(03) 01002 01003 00005 00003 00004 01003 00005 例1:分支电路如下: LD 00000 IL(02) LD 00001 OUT 01000 LD NOT 00002 OUT 01001 LD 00003 AND NOT 00004 OUT 01002 ILC(03) LD 00005 OUT 01003 从A点看,00000为后面3个分支的执行条件 注意区别并联输出、连续输出和复合输出的结构及其编程方法

  40. 例2:分支电路如下: LD 00000 IL(02) LD 00001 OUT 01000 LD 00002 IL(02) LD 00003 OUT 01001 LD 00004 OUT 01002 ILC(03) LD 00005 OUT 01003 A B 说明:连锁嵌套,多个IL公用一个ILC,在程序检查时会出现错误信息,但不影响程序执行。

  41. 01000 00000 01000 00000 01000 00000 00001 A A A 01001 01001 00001 00002 01001 01002 01002 01002 00002 00003 注意区别并联输出、连续输出和复合输出的结构及其编程方法 并联输出 连续输出 复合输出 上支路无触点; 下之路有触点。 输出线圈并联 分支点上下支路均有触点 输出为并列关系,执行条件均为00000 后一个触点支路与前一个触点为“与”关系 用连锁指令

  42. TR0 00000 01000 00000 TR0 00001 01000 00001 01001 01001 00002 TR0 00002 01002 01002 00003 TR0 00003 §3-3-2 暂存继电器TR (TR0~TR7) 处理梯形图的另一种方法。把一个TR置于一个分支点处,则当前结果就会存在指定TR中。 LD 00000 OUT TR0 AND 00001 OUT 01000 LD TR0 AND 00002 OUT 01001 LD TR0 AND 00003 OUT 01002 (1). 同一程序段中,同一个TR号不能重复使用;在不同程序段中, 同一个TR号可以重复使用。 (2).TR不是编程指令,只能和LD或OUT等指令一起使用。 说明

  43. JMP(04) N N:跳转号 00~49 JME(05) N §3-3-3 跳转/跳转结束指令(JMP(04)/JME(05)) • . 当 JMP N 的执行条件为OFF时,跳过JMP N 和JME N 之间的程序段,转去执行JME N 后面的程序。 JMP N 和JME N 之间的所有输出、定时器和计数器的状态保持不变,JMP 和JME之间的程序不执行,不占用扫描时间。 • . 当 JMP N 的执行条件为ON时,执行JMP N 和JME N 之间的程序段。

  44. 00000 JMP(04) 00 00001 01000 20000 01002 20001 TIM000 #0200 00003 CNT001 #0100 00004 TIM000 01002 JME(05) 00

  45. 说 明 跳转类型 N=00 可以在程序中使用多次 CPU占时多 N≠00 每个跳转号只能在程序中使用一次 CPU占时少 多个JMP N 可以公用一个JME N ,JMP—JMP—JME。 跳转指令可以使用嵌套,但必须是不同的跳转号的嵌套。 如:JMP 00—JMP 01----JME01---JME00.

  46. §3-3-4 定时器和计数器指令 使用定时器/计数器时应注意的问题: 1. 定时器和计数器在同一个TC区,它们共同使用编号000~127,所以在同一程序中它们的编号不能重复使用。 2. 当SV为通道时(通道内数据必须是BCD码),改变通道内的数据,其设定值即改变,从下一个扫描周期开始以新的设定值开始工作。 3. 间接寻址DM通道不存在,是指以DM的内容为地址的通道不存在。 4. 定时器没有掉电保持功能,计数器有掉电保持功能。 5. 当扫描时间TS>0.1s时,定时器TIM会不准确;当扫描时间TS>0.01s时,定时器TIMH会不准确。

  47. N:定时器TC号 TIM N SV 000~127 SV:定时器设定值(字,BCD码) IR,SR,HR,AR,LR,DM,*DM,# 1. 定时器指令--TIM 功能:通电延时型 当 定时器的执行条件为OFF时,定时器输出为OFF。 当定时器的执行条件为ON时,定时器开始定时,定时时间到,定时器输出为ON。当定时器的执行条件变为OFF时,定时器输出随之变为OFF。 定时器最小定时时间单位为0.1秒,定时范围0~999.9秒,SV取值范围为0000~9999

  48. 00000 TIM 000 #0150 TIM000 01000 00000 TIM 000 200 TIM000 01000 例1:定时器TIM000,SV=15秒,定时到01000得电。 LD 00000 TIM 000 #0150 LD TIM000 OUT 01000 例2:定时器TIM000,SV=IR200中数据,定时到01000得电。 LD 00000 TIM 000 200 LD TIM000 OUT 01000

  49. 例3:定时器定时时间的扩展。

  50. 例4:接通延时ON和接通延时OFF的控制。 接通延时ON 接通延时ON 接通延时OFF 接通延时OFF 注 意 (1).定时器没有断电保持功能,断电时,定时器复位。 25503置位为ON (2).出错标志25503:①.当SV不是BCD码时; ②.间接寻址DM通道不存在时

More Related