你的位置: 首页 > 工业控制 > 工业控制

详解PLC编程跳转指令的使用方法

2024-04-29 02:33:43 | 人围观 | 评论:

条件跳转指令:

指令名称,助记符,指令代码,程序步如下表:

ff9644a2-ec79-11ed-90ce-dac502259ad0.jpg

程序步可以是连续执行或者是脉冲执行,CJ执行的为3步,CJ(P)为1步。

指令格式:

ffa2164c-ec79-11ed-90ce-dac502259ad0.jpg

当我们按下X000后,程序跳转指令开始运行,程序所跳转的位置为程序指针所在的位置,也就是标号10,在这里我们要注意程序指针写在左母线的左边。当我们启动跳转指令后,X001这段程序就会被跳过不执行。

当X0为ON时,被跳转CJ命令到标号之间的程序不子执行。在跳转过程中如果Y、M,S被OUT、SET. RST指令驱动使输入发生变化则仍保持跳转前的状态。例如,通过X1驱动输出Y10后发生跳转,在跳转过程中即使X0变为ON,但输出Y10仍有效。

注意:
1、对于T、C,如果跳转时定时器或计数器正发生动作,则此时立即中断计数或停止计时,直到跳转结束后继续进行计时或计数。但是,正在动作的定时器T192~T199与高速计数器C235~ C255. 不管有无跳转仍旧维续工作。

2、功能指令在跳转时不执行,但PLSY、 PLSR、PWW指令除外。

子程序调用与返回指令:

指令名称,助记符,指令代码,程序步如下表:

ffa8ea1c-ec79-11ed-90ce-dac502259ad0.jpg

指令格式:

ffb1acd8-ec79-11ed-90ce-dac502259ad0.jpg

图中FEND表示主程序结束,在FEND前面的我们称为主程序,在FEND后面的我们称为子程序。SRET表示子程序结束,或者叫子程序返回。我们要注意,在FEND与SRET之间的程序,我们称为第一个子程序,在第二个SRET之前的我们称为第二个子程序。

当我们按下X001的时候,指针调用到P11,程序开始从P11这个地方从上往下开始执行,当碰到第一个SRET的时候,程序又返回到主程序中,但是在这个程序中如果X002被接通,那么程序指针则调用到P12,程序开始从上到下运行,当碰到第二个SRET的时候,程序返回到P12这个地方,然后在碰到第一个SRET的时候,返回到主程序。因为P12这个程序是嵌套在P11这个程序中的,所以我们要注意,在PLC中这种程序嵌套最多只能使用5级。

中断指令:

中断指令总共有3条,我们用一个表格来详细说明:

ffba4fa0-ec79-11ed-90ce-dac502259ad0.jpg

在这里FEND前面的为主程序,FEND后面的为中断子程序,中断子程序能否进行与中断条件与中断指针有关,所以在这里我们得给大家说说中断指针的格式:

中断指针:

ffc6ecf6-ec79-11ed-90ce-dac502259ad0.jpg

定时中断:

ffd636de-ec79-11ed-90ce-dac502259ad0.jpg

程序示例:

ffe18f16-ec79-11ed-90ce-dac502259ad0.jpg

我们先给大家介绍一下这个程序:FEND前面的程序表示主程序,后面的表示中断子程序,EI表示允许中断,IRET表示中断返回指令,I610指针表示,中断时间为10mm,6表示最高中断级别。

当我们按下X000后K1的数据被传送到D1里面去,K255的数据被传送D2里面去,M1被置位接通,中断子程序运行。RAMP 表示斜坡指令,表示产生一个数据D3,而D3的变化范围是从D1到D2也就是从1到255,由于这是一个定时中断程序,当M1接通的时候,每隔10ms中断一次程序,K1000表示1000个扫描周期,因为D3的范围是从1变到255,而它所需要的时间为1000个10ms,也就是说从X0接通到D3变成255的时间为1000X10ms=10秒,当D3等于255的时候M8029接通,M1被复位断开,然后中断指令与斜坡指令被断开,然后碰到IRET指令程序返回。





审核编辑:刘清





标签:[db:tags]