第三章PLC指令系统2.ppt
文本预览下载声明
电路变换简化程序(减少指令的条数) (2)几个并联回路的串联,应将并联支路数多的安排在左面。 (1)几个串联支路相并联,应将触点多的支路安排在梯级的上面; 为了减少用户程序步数、缩短程序扫描时间: 不符合左大右小的电路,共5步 符合左大右小的电路,共4步 1 LD I0.3 2 LD I0.4 3 O I0.5 4 ALD 5 = Q0.0 1 LD I0.4 2 O I0.5 3 A I0.3 4 = Q0.0 非桥式复杂电路必须修改后才能画出梯形图 桥式电路必须修改后才能画出梯形 5.“上重下轻”、“左重右轻”的编程规则 图3-47 符合“上重下轻”编程规则 图3-48 不符合“上重下轻”编程规则 图3-49 符合“左重右轻”编程规则 图3-50 不符合“左重右轻”编程规则 * * 在使用时必须给FOR指令指定当前循环计数(INDX)、初值(INIT)和终值(FINAL)。 指令格式: FOR INDX, INIT, FINAL … NEXT 项 目 FOR指令 NEXT指令 梯形图 指令表 FOR INDX,INIT,FINAL NEXT 表中FOR用来标记循环体的开始,NEXT用来标记循环体的结束。 参数INDX为当前循环次数计数器,用来记录循环次数的当前值,循环体程序每执行一次INDX值加1。参数INIT及FINAL用来规定循环次数的初值及终值,当循环次数当前值大于终值时,循环结束。可以用改写参数值的方法控制循环体的实际循环次数。 循环指令FOR和NEXT ①FOR、NEXT指令必须成对使用; ②FOR和NEXT可以循环嵌套,嵌套最多为8层,但各个嵌套之间不可有交叉现象; ③每次使能输入(EN)重新有效时,指令将自动复位各参数; ④初值大于终值时,循环体不被执行。 ⑤程序执行次数为FINAL-INIT+1 循环指令的举例 【例题】 求0+1+2+3+…+100 的和,并将计算结果存入VW0。 【解】 用循环指令编写的程序如图5-32所示,VW2作为循环增量。 如果在循环体内又包含了另外一个循环,称为循环嵌套,循环指令最多允许8级循环嵌套。 【例题】 应用循环嵌套求0+1+2+3+…+100 的和,并将计算结果存入VW0。 【解】 在图5-33所示的程序中,使用了2级循环嵌套,外循环的次数为2次,内循环的次数为50次,总循环的次数为2×50 = 100次。循环结束后,VW0中存储的数据为5 050。 五、子程序调用指令及其应用 图3-46 子程序调用与返回结构 CALL、CRET指令格式 项 目 子程序调用指令 条件返回指令 梯形图 指令表 CALL SBR_N CRET ①子程序结束要加上无条件返回指令RET。CRET指令只能用于子程序中; ②如果在子程序的内部又对另一个程序执行调用指令,则这种调用称为子程序的嵌套。子程序嵌套的深度最多为8级; ③当一个子程序被调用时,系统自动保存当前的逻辑堆栈数据,并把栈顶置1,堆栈中的其它位置设为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权; ④累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。 CRET,子程序条件返回指令。在使能输入有效时,结束子程序的执行,返回主程序中(指向子程序调用的下一条指令)。梯形图中以线圈的形式编程,指令不带参数; RET,子程序无条件返回指令。 指令格式: CRET (条件返回) RET (无条件返回) 与子程序有关的操作有:建立子程序、子程序的调用和返回。 (1)建立子程序 (2)子程序调用 可用编程软件“编辑”菜单中的“插入”选项,选择“子程序”,以建立或插入一个新的子程序,同时,在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_N,编号N从0开始按递增顺序生成,也可以在图标上直接更改子程序的程序名,把它变为更能描述该子程序功能的名字。在指令树窗口双击子程序的图标就可以进入子程序,并对它进行编辑。 CALL,子程序调用指令。在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程。 指令格式:CALL SBR_0 相关知识 五、子程序调用及返回指令 (3)子程序返回 CRET,子程序条件返回指令。在使能输入有效时,结束子程序的执行,返回主程序中(指向
显示全部