350 likes | 567 Views
第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现. 实训设计题:带时间显示的交通灯电路的控制. ◆ 要求学生按下面要求完成实训设计题:. 实训目的. 掌握常用功能指令的使用方法; 学会如何使用功能指令编程; 逐步积累调试程序的经验。. 讲授内容的相关知识点. ◆ 功能指令及使用要素 ● 功能指令的表示方法
E N D
第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现
实训设计题:带时间显示的交通灯电路的控制 ◆要求学生按下面要求完成实训设计题:
实训目的 • 掌握常用功能指令的使用方法; • 学会如何使用功能指令编程; • 逐步积累调试程序的经验。
讲授内容的相关知识点 ◆功能指令及使用要素 ●功能指令的表示方法 采用计算机通用的助记符形式来表示功能指令。一般用指令的英文名称或缩写作为助记符,大多数功能指令在指定功能号的同时还需要指定操作元件。操作元件由1到4个操柞数组成, [S]表示源(Source)操作数,[D]表示目标(Destnation)操作数。如果可以使用变址功能.则表示为[S·]和[D·]。源或目标不止一个,可表示为[S1·]、[D1·]、[S2·]、[D2·]等表示。用m或n表示其他操作数时,它们常用来表示常数,或作为源操作数和目标操作数的补充说明。需注释的项目较多,可以采用m1,m2等方式。
◆功能指令及使用要素 源操作数 目标操作数 助记符 其它操作数 32位数据 脉冲执行
变址寄存器V、Z 在传送、比较指令中,变址寄存器V,Z用来修改操作对象的元件号,循环程序中常使用变址寄存器。对32位指令,V为高I6位、Z为低16位。32位指令中使用变址指令只需指定 Z,这时Z就能代表 V和Z。在32位指令中,V、Z自动组对使用。
变址寄存器V、Z 常数K10送到V0 常数K20送到Z1 ADD指令完成运算(D5V0)+(D15Z1) → (D40Zl), 即(D15)+(D35)→(D60)
功能指令的应用 • 传送和比较指令 比较与传送指令的编号为FNC10-FNC19。 比较指令包括CMP(比较)和ZCP(区间比较)两条指令; 传送指令包括MOV(传送)、SMOV(BCD码移位传送)、CLM(取反传送)、BMOV(数据块传送)、FMOV(多点传送)、XCH(数据交换)、BCD(二进制数转换成BCD码并传送)和BIN(BCD码转换为二进制数并传送)指令。
比较指令 比较指令CMP(Compare)的功能号为FNC10,16位运算占7个程序步,32位运算占13个程序步。 比较结果送到M0、M1、M2 K100与C10的当前值比较 可使用元件Y、M、S 当K100大于C10的当前值 当K100等于C10的当前值 当K100小于C10的当前值
区间比较指令 区间比较指令ZCP(Zone Compare),功能号FNC11。16位占9个程序步,32位占17个程序步。 [S1.]中的值要 小于[S2.]中的值 比较结果送到M3,M4,M5 T3与K100,K150比较 当K100> T3时 当K100< T3<K150时 当T3>K150时
传送指令 传送指令MOV(Move)的功能号为FNC12,16位运算占5个程厅步,32位运算占9个程序步。 数值K100传给D10 [D.]中的元为: KnY(MS),T,C,D. [S.]中的元为:K,H, KnY(XMS),T,C,D.
移位传送指令 移位传送指令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位不受移位传送值令的影响。
循环移位指令 右、左循环移位指令的指令助记符分别为 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。
执行这两条指今时,各位的数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中。若在目标元件中指定位元件组的组数,只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。执行这两条指今时,各位的数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中。若在目标元件中指定位元件组的组数,只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。
加1和减1指令 加1和减1指令的助记符分别为INC(Increment)和DEC(Decrment),功能指令编号分别为FNC24和FNC25。它们的操作数均可取KnY、KnM、KnS、T、C、D、V和Z。 16位运算占3个程序步,32位运算占5个程序步。
加1和减1指令 图中的X4每次由OFF变为ON时,由[D·]指定的元件中 的数增加l。如果不用脉冲指令,每一个扫描周期都要加1。
小例题讲解 程序将计数器C0~C9的当前值转换为BCD码后输出到K4Y0。Z0被复位输人X0清0。每次X11 ON时,C0~C9的当前值依次输出到K4Y0。(Z0)=10时M1变为ON,将Z0清零。
区间复位指令 区间复位指令ZRST(Zone Reset)将[D1·]、[D2·]指定的元件号范围内的同类元件成批复位,它的功能号为FNC40,目标操作数可取T、C和D(字元件)或Y、M、S(位元件)。该指令只有16位运算,占5个程序步。
功能指令例题讲解 例题1 用PLC驱动数码管显示一个两位数的时间53秒,然后按秒递减至零,循环不断。 • 例题要实现的目的 • 用 PLC 如何驱动数码管。 • 进一步熟悉掌握功能指令的应用。
程序设计方案 使用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指令再驱动数码管,显示不断变化的时间。
通电测试 • 加直流12V电源,调试程序。 • 调试中主要关注十位数和个位数的变化是否同步。
例题2 用PLC驱动广告牌边框饰灯,该广告牌有16个边框饰灯L1—L16,当广告牌开始工作时,饰灯每隔0.1S从L1到L16依次正序轮流点亮,重复进行;循环两周后,又从L16到L1依次反序每隔0.1S轮流点亮,重复进行;循环两周后,再按正序轮流点亮,重复上述过程。当按停止按钮时,停止工作。
例题要实现的目的 • 进一步熟悉掌握功能指令的应用。 • 学会分析指令执行的过程以及程序运行调试的方法。训练应用PLC实现对一般控制对象控制的能力。
程序讲解 • 当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,计数器复位,饰灯全部熄灭。程序梯形图见上图。
通电测试 • 按接线图连接好PLC的外部设备及电源,调试程序。 • 当X000为ON时,输出从Y000—Y017每隔0.1S依次轮流点亮饰灯,重复进行;当X001为ON时,K4Y0为0,循环停止。