• 联系我们
  • 地址:湖北武汉三环科技园
  • 电话:159116031100
  • 传真:027-68834628
  • 邮箱:mmheng@foxmail.com
  • 当前所在位置:首页 - 交通常识
  • 用功能指令制作交通灯
  •   第九课题 使用功能指令完成 带时间显示的交通灯的程序设计与实现 ?实训设计题:带时间显示的交通灯电的控制 ◆要求学生按下面要求完成实训设计题: ?实训目的 ? 掌握常用功能指令的使用方法; ? 学会如何使用功能指令编程; ? 逐步积累调试程序的经验。 ?讲授内容的相关知识点 ◆功能指令及使用要素 ●功能指令的表示方法 采用计算机通用的助记符形式来表示功能指令。一 般用指令的英文名称或缩写作为助记符,大多数功能指令 在指定功能号的同时还需要指定操作元件。操作元件由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个程序步。 K100与C10的当 前值比较 比较结果送到 M0、M1、M2 当K100大于C10的当前值 当K100等于C10的当前值 当K100小于C10的当前值 可使用元 件 Y 、 M、 S ?区间比较指令 区间比较指令ZCP(Zone Compare),功能号FNC11。 16位占9个程序步,32位占17个程序步。 T3与K100,K150比 较 [S1.]中的值要 小于[S2.]中的值 比较结果送到 M3,M4,M5 当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。 ?加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 如何驱动数码管。 ? 进一步熟悉掌握功能指令的应用。 ?程序I/O分配见下表 输入信号 启动信号 停止信号 分配元件 X0 X1 输出信号 十位数显示数码管 个位数显示数码管 分配元件 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y10 Y11 Y12 Y13 Y14 Y15 Y16 ?PLC控制的接线见下图 ?程序设计方案 使用Y0-Y6输出控制十位数数码管的a,b,c,d,e,f,g。使用 Y10-Y16输出控制个位数数码管a,b,c,d,e,f,g。程序中使 用了数据传送MOV指令,数据减一DEC指令,7段码译码 SE指令,区间复位ZRST等功能指令。程序运行时将 不断变化的时间数据传给7段码译码SE指令,7段码译 码SE指令再驱动数码管,显示不断变化的时间。 ?程序的梯形图 ?通电测试 ? 加直流12V电源,调试程序。 ? 调试中主要关注十位数和个位数的变化是 否同步。 例题2 用PLC驱动广告牌边框饰灯,该广告牌有16个边框饰灯 L1—L16,当广告牌开始工作时,饰灯每隔0.1S从L1到 L16依次正序轮流点亮,重复进行;循环两周后,又从 L16到L1依次反序每隔0.1S轮流点亮,重复进行;循环两 周后,再按正序轮流点亮,重复上述过程。当按停止按钮 时,停止工作。 ?例题要实现的目的 ? 进一步熟悉掌握功能指令的应用。 ? 学会分析指令执行的过程以及程序运行调试的方法。训练 应用PLC实现对一般控制对象控制的能力。 ?程序I/O分配见下表 输入信号 启动信号 停止信号 分配元件 X0 X1 输出信号 L1—L7 L8—L16 分配元件 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Y17 ?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,循环停止。国民党八大金刚