1、主程序调用指令CALL
在顺控程序中,对共同处理的程序进行调用的指令,可以减少程序的步数,更加有效地设计程序。此外,编写子程序时,还需要使用FEND指令和SRET指令。
指令格式及对象软
功能与动作说明
● 当指令输入为ON时,执行CALL/CALLP指令,向指针P标记的步跳转。然后执行标记的子程序。直到执行SERT后,返回到CALL/CALLP指令的下一步继续运行。
● 当指令从ON变为OFF时,子程序不再扫描,除定时器T以外软元件保持原状,定时器T会继续计时(最大到32767),当达到设定值后,输出触点会在下一次执行线圈指令时(下一次调用子程序时)动作,编程时要注意。
使用说明
1、一层使用
2、嵌套使用
子程序内的CALL指令嵌套使用最多允许7次,即包括本身为8层嵌套。
注意要点
● 指针P所指定的子程序请在FEND指令后编写。
● 不可与CJ指令指定相同的指针编号P。
● 子程序调用指令必须与对应的指针编号一一对应(即必须有对应的子程序),指针只能P0-P127, 否则会出现报警或
● 只使用CALL/CALLP指令时,可不限次数调用同一指针编号的子程序。
● 子程序中可使用CALL/CALLP指令调用其它子程序,包括本身最多8层(嵌套调用)。
● 子程序调用指令与跳转指令的区别在于:
✮CALL Pn 一旦执行,首先执行其指针编号Pn所指的下一步程序,直至遇到SRET,再返回子程序调用指令的下一步继续执行后面程序。
✮CJ Pn 一旦执行,直接执行其指针编号 Pn 所指的下一步程序,并不返回原调用处。
● 子程序使用软元件与主程序存在双线圈问题,要合理分配软元件。
2、循环指令【FOR-NEXT】
从FOR指令开始到NEXT指令之间的程序按指定次数重复运行。
指令格式及对应软元件
功能与动作说明
● FOR~NEXT指令的处理重复N次(源数据中指定的次数),重复N次数后,执行NEXT指令后面的程序。
● 使用范围循环指令,搭配软元件的变址使用,可有效处理数据区间的运算问题。简化编程的同时减少梯形图步数,但一般情况下不能缩短梯形图演算时间。
使用说明
1、一层使用
2、多层嵌套
A程序执行10次后再到对应的NEXT指令以后的程序继续执行。而A程序每执行一次B程序会执行5次,所以B程序合计共执行 10×5 =50次,B程序每执行一次C程序执行2次,所以C程序合计共执行10×5×2 =100次。
注意事项
● 由FOR指令指定FOR ~ NEXT循环执行N次后跳出FOR ~ NEXT循环往下继续执行。
● 指定次数范围N = K1 ~ K32767,当指定次数范围N≦K1时,都当作K1来处理。
● 当不需要执行FOR ~ NEXT循环时,可使用CJ指令来跳出循环,见CJ-P 指令说明。
● 下列使用情况会导致PLC报错:
1.NEXT指令在FOR指令之前。
2.有FOR指令没有NEXT指令。
3.FEND或END指令之后有NEXT指令时。
4.FOR 和 NEXT指令个数不同时。
● FOR ~ NEXT回路最多可嵌套使用5层。
3、跳转指令【CJ-P】
使CJ、CJP指令开始到指针(P)为止的程序不执行的指令。可以缩短循环时间(运算周期)和执行使用双线圈的程序。
指令格式及对应软元件
功能与动作要点
使用CJ或CJP指令使PLC程序中的某一部份不需要执行,以缩短扫描周期,以及适用双重输出问题,去下图所示:
注意要点
● Pn:条件转移目的指针,使用CJ跳转时,必须有对应的指针编号,否则报错或出现异常。
● 指针P所指的程序若在CJ指令之前,需注意会导致WDT逾时错误,PLC停止运转,请注意使用。
● 多个CJ指令可重复指定同一指针P,但CJ不可指向CALL指定的指针P,否则会产生错误。
● 使用CJ跳转要注意程序结构,不能随意跳转,以免引起程序复杂或者错误等问题,例如尽量不要在MC-MCR、FOR-NEXT、STL-RET、P-SRET、I-IRET等两两之间跳转。
● 指定的指针可以重复,但标记号不能重复。
4、步进顺控指令【STL-RET】
步进梯形图指令的程序,是以机械的动作为基础,对各工序分配状态S,作为连接在状态触点(STL触点)中的回路,对输入条件和输出控制的顺序进行编程。使用步进指令不仅可以简单、直观地表示顺序操作的流程图,而且可以非常容易地设计多流程顺序控制,并且能够减少程序指令数,程序易于理解。
指令格式及对应软元件
注意要点
● STL最前头的步进点称之为初始步进点,使用初始步进点做为流程的开始,以RET指令做结束构成一个完整的流程。
● 当STL指令完全不被使用时,步进点S可当成一般辅助继电器来使用,有STL指令使用时,要慎重使用。
● 当STL指令使用时,步进点S的号码不可重复使用。
● 一个分支流程所使用的分支步进(并行及选择性分支)最多8个。
● 流程中的某一步进点可指定跳到另一个流程的任
● 步序编程顺序:先进行驱动,再进行转移,不能颠倒,如下图所示。
楼主最近还看过