1 / 35

第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现

第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现. 实训设计题:带时间显示的交通灯电路的控制. ◆ 要求学生按下面要求完成实训设计题:. 实训目的. 掌握常用功能指令的使用方法; 学会如何使用功能指令编程; 逐步积累调试程序的经验。. 讲授内容的相关知识点. ◆ 功能指令及使用要素 ● 功能指令的表示方法

olympe
Download Presentation

第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现

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. 第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现

  2. 实训设计题:带时间显示的交通灯电路的控制 ◆要求学生按下面要求完成实训设计题:

  3. 实训目的 • 掌握常用功能指令的使用方法; • 学会如何使用功能指令编程; • 逐步积累调试程序的经验。

  4. 讲授内容的相关知识点 ◆功能指令及使用要素 ●功能指令的表示方法 采用计算机通用的助记符形式来表示功能指令。一般用指令的英文名称或缩写作为助记符,大多数功能指令在指定功能号的同时还需要指定操作元件。操作元件由1到4个操柞数组成, [S]表示源(Source)操作数,[D]表示目标(Destnation)操作数。如果可以使用变址功能.则表示为[S·]和[D·]。源或目标不止一个,可表示为[S1·]、[D1·]、[S2·]、[D2·]等表示。用m或n表示其他操作数时,它们常用来表示常数,或作为源操作数和目标操作数的补充说明。需注释的项目较多,可以采用m1,m2等方式。

  5. ◆功能指令及使用要素 源操作数 目标操作数 助记符 其它操作数 32位数据 脉冲执行

  6. 变址寄存器V、Z 在传送、比较指令中,变址寄存器V,Z用来修改操作对象的元件号,循环程序中常使用变址寄存器。对32位指令,V为高I6位、Z为低16位。32位指令中使用变址指令只需指定 Z,这时Z就能代表 V和Z。在32位指令中,V、Z自动组对使用。

  7. 变址寄存器V、Z 常数K10送到V0 常数K20送到Z1 ADD指令完成运算(D5V0)+(D15Z1) → (D40Zl), 即(D15)+(D35)→(D60)

  8. 功能指令的应用 • 传送和比较指令 比较与传送指令的编号为FNC10-FNC19。 比较指令包括CMP(比较)和ZCP(区间比较)两条指令; 传送指令包括MOV(传送)、SMOV(BCD码移位传送)、CLM(取反传送)、BMOV(数据块传送)、FMOV(多点传送)、XCH(数据交换)、BCD(二进制数转换成BCD码并传送)和BIN(BCD码转换为二进制数并传送)指令。

  9. 比较指令 比较指令CMP(Compare)的功能号为FNC10,16位运算占7个程序步,32位运算占13个程序步。 比较结果送到M0、M1、M2 K100与C10的当前值比较 可使用元件Y、M、S 当K100大于C10的当前值 当K100等于C10的当前值 当K100小于C10的当前值

  10. 区间比较指令 区间比较指令ZCP(Zone Compare),功能号FNC11。16位占9个程序步,32位占17个程序步。 [S1.]中的值要 小于[S2.]中的值 比较结果送到M3,M4,M5 T3与K100,K150比较 当K100> T3时 当K100< T3<K150时 当T3>K150时

  11. 传送指令 传送指令MOV(Move)的功能号为FNC12,16位运算占5个程厅步,32位运算占9个程序步。 数值K100传给D10 [D.]中的元为: KnY(MS),T,C,D. [S.]中的元为:K,H, KnY(XMS),T,C,D.

  12. 移位传送指令 移位传送指令SMOV(Shift Move)的功能号为FNC13,只有16位运算,占11个程序步。 源数据(二进制数)被转换成4位BCD码然后将它移位传送。图中的X0为ON时,将DI中右起第4位(ml=4)开始的2位〔m2=2)BCD码移到目标操作数(D2)的右起第3位(n=3)和第2位,然后D2中的BCD码自动转换为二进制码,D2中的第1位和第4位不受移位传送值令的影响。

  13. 移位传送指令

  14. 循环移位指令 右、左循环移位指令的指令助记符分别为 ROR(Rotaion Right)和 ROL(Rotation Left),功能号分别为FNC30和FNC31。它们只有目标操作数,可取KnY、KnM、KnS、T、C、D、V和Z。l6位指令占5个程序步,32位指令占9个程序步。16位指令和32位指令中n应分别小于16和32。

  15. 执行这两条指今时,各位的数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中。若在目标元件中指定位元件组的组数,只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。执行这两条指今时,各位的数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中。若在目标元件中指定位元件组的组数,只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。

  16. 加1和减1指令 加1和减1指令的助记符分别为INC(Increment)和DEC(Decrment),功能指令编号分别为FNC24和FNC25。它们的操作数均可取KnY、KnM、KnS、T、C、D、V和Z。 16位运算占3个程序步,32位运算占5个程序步。

  17. 加1和减1指令 图中的X4每次由OFF变为ON时,由[D·]指定的元件中 的数增加l。如果不用脉冲指令,每一个扫描周期都要加1。

  18. 小例题讲解 程序将计数器C0~C9的当前值转换为BCD码后输出到K4Y0。Z0被复位输人X0清0。每次X11 ON时,C0~C9的当前值依次输出到K4Y0。(Z0)=10时M1变为ON,将Z0清零。

  19. 区间复位指令 区间复位指令ZRST(Zone Reset)将[D1·]、[D2·]指定的元件号范围内的同类元件成批复位,它的功能号为FNC40,目标操作数可取T、C和D(字元件)或Y、M、S(位元件)。该指令只有16位运算,占5个程序步。

  20. 功能指令例题讲解 例题1 用PLC驱动数码管显示一个两位数的时间53秒,然后按秒递减至零,循环不断。 • 例题要实现的目的 • 用 PLC 如何驱动数码管。 • 进一步熟悉掌握功能指令的应用。

  21. 程序I/O分配见下表

  22. PLC控制的接线见下图

  23. 程序设计方案 使用Y0-Y6输出控制十位数数码管的a,b,c,d,e,f,g。使用Y10-Y16输出控制个位数数码管a,b,c,d,e,f,g。程序中使用了数据传送MOV指令,数据减一DEC指令,7段码译码SEGD指令,区间复位ZRST等功能指令。程序运行时将不断变化的时间数据传给7段码译码SEGD指令,7段码译码SEGD指令再驱动数码管,显示不断变化的时间。

  24. 程序的梯形图

  25. 通电测试 • 加直流12V电源,调试程序。 • 调试中主要关注十位数和个位数的变化是否同步。

  26. 例题2 用PLC驱动广告牌边框饰灯,该广告牌有16个边框饰灯L1—L16,当广告牌开始工作时,饰灯每隔0.1S从L1到L16依次正序轮流点亮,重复进行;循环两周后,又从L16到L1依次反序每隔0.1S轮流点亮,重复进行;循环两周后,再按正序轮流点亮,重复上述过程。当按停止按钮时,停止工作。

  27. 例题要实现的目的 • 进一步熟悉掌握功能指令的应用。 • 学会分析指令执行的过程以及程序运行调试的方法。训练应用PLC实现对一般控制对象控制的能力。

  28. 程序I/O分配见下表

  29. PLC控制的接线图见下图

  30. 程序设计

  31. 程序讲解 • 当X000为ON时,先置正序初值(使Y000为ON ),然后执行子程序调用程序,进入子程序1,执行循环左移指令,输出继电器依次每隔0.1S正序左移一位,左移一周结束,即Y017为ON时,C0计数一次,重新左移;当C0计数两次后,停止左循环,返回主程序。 • 再置反序初值(Y017为ON),然后进入子程序2,执行循环右移指令,输出继电器依次每隔0.1S反序右移一位,右移一周结束,即Y000为ON时,C1计数一次,重新右移;当C1计数两次后,停止右循环,返回主程序。同时使M0重新为ON,进入子程序1,重复上述过程。 • 当X001为ON时,使输出继电器全为OFF,计数器复位,饰灯全部熄灭。程序梯形图见上图。

  32. 通电测试 • 按接线图连接好PLC的外部设备及电源,调试程序。 • 当X000为ON时,输出从Y000—Y017每隔0.1S依次轮流点亮饰灯,重复进行;当X001为ON时,K4Y0为0,循环停止。

More Related