首页 理论教育 程序控制指令:建立和调用子程序、中断事件指定

程序控制指令:建立和调用子程序、中断事件指定

时间:2023-06-26 理论教育 版权反馈
【摘要】:图3-18 跳转指令子程序指令包括3个指令:建立子程序、子程序调用和子程序返回。子程序返回分为无条件返回和有条件返回,无条件返回指令是编程软件给子程序自动添加的,当子程序执行结束时,自动返回;有条件返回是指在子程序中用触点控制RET指令,触点电路接通时,子程序被终止。为某个中断事件指定中断程序后,该中断事件被自动地允许。

程序控制指令:建立和调用子程序、中断事件指定

1.跳转指令

跳转指令的功能是使程序可以根据条件转到同一程序中的具体标号处,该指令包括两个指令:跳转指令(JMP)和标号指令(LBL)。跳转指令(JMP)必须和标号指令(LBL)配合使用,当跳转指令(JMP)的条件为真时,程序从当前位置直接跳转到标号指令(LBL)所指向的位置继续执行,标号指令是跳转指令的目标标号。

如图3-18所示,当I0.0为ON时,程序跳离对Q0.2的控制,转而去执行标号下面的程序,Q0.2保持跳转前的状态,即跳转后Q0.2与I0.1的状态无关。

2.子程序指令

S7-200的控制程序由主程序、子程序和中断程序组成。使用子程序可以更好地组织程序结构,如将程序分成若干个功能的小块,便于程序的查错、维护和阅读。

978-7-111-51420-6-Chapter03-19.jpg

图3-18 跳转指令

子程序指令包括3个指令:建立子程序、子程序调用和子程序返回。建立子程序是通过软件实现的。子程序调用指令的功能是将主程序的执行权转移到子程序SBR_0中去。子程序返回分为无条件返回和有条件返回,无条件返回指令是编程软件给子程序自动添加的,当子程序执行结束时,自动返回;有条件返回是指在子程序中用触点控制RET指令,触点电路接通时,子程序被终止。

如图3-19所示,当I0.0闭合时,主程序调用子程序SBR_0,当I0.1闭合时子程序有条件返回;若I0.0断开,则子程序中各个元件状态将保持退出子程序之前的状态。

978-7-111-51420-6-Chapter03-20.jpg

图3-19 子程序指令

a)子程序的调用 b)子程序的返回

3.中断指令

中断程序不是由主程序调用,而是在中断事件发生时由操作系统调用。在执行主程序时,如果有中断信号进来,则停止执行主程序,转而去执行中断程序,执行完中断程序之后,再返回执行主程序。中断技术主要应用于信号采集、实时处理和通信等方面。

在S7-200系列中,最多可以有34个中断源,每个中断源都分配了一个中断号加以识别。这些中断源大致可以分成三种类型:通信中断、输入/输出中断和时基中断。通信中断是指PLC的通信工作在自由通信口模式,在这种模式下可以通过程序来控制通信口;输入/输出中断包括外部输入中断、高速计数器中断和脉冲输出中断;时基中断包括定时中断和定时器中断。

在中断系统中,不同中断源产生的中断有不同的顺序,即优先级。在S7-200系列中,优先级最高的是通信中断,其次是输入/输出中断,最后是时基中断。一旦中断被响应之后,中断程序将一直被执行到结束为止,就算有更高级别的中断产生也不会终止正在执行的中断程序。具体的中断优先级及中断事件号见表3-2。(www.xing528.com)

表3-2 中断事件及优先级

978-7-111-51420-6-Chapter03-21.jpg

(续)

978-7-111-51420-6-Chapter03-22.jpg

中断指令主要有以下几条指令:

中断允许指令(ENI):全局性地允许所有被连接的中断事件。

中断禁止指令(DISI):全局性地禁止处理所有中断事件。

中断程序有条件返回指令(CRETI):在控制它的逻辑条件满足时,从中断程序返回。编程软件会自动地为各中断程序添加无条件返回。

中断连接指令(ATCH):用来建立中断事件(EVNT)和处理此事件的中断程序(INT)之间的联系。中断事件由中断事件号指定(见表3-2),中断程序由中断程序号指定。为某个中断事件指定中断程序后,该中断事件被自动地允许。

中断分离指令(DTCH):用来断开事件(EVNT)和中断程序(INT)之间的联系,从而禁止单个中断事件。

如图3-20所示,这是一个采样模拟输入信号的程序。当I0.0为ON时,首先给SMB34(特殊寄存器,用于存储定时中断的时间间隔)写入定时间隔100ms,连接10号定时中断执行10号中断程序,并允许全局中断。中断程序10执行的功能是读入模拟量通道AIW0的数据,并将其存放在VW20变量中。EN为使能输入端,ENO为使能输出端,当EN有效时,指令才被执行,当指令执行后ENO为1,“→|”表示一个可使用的能流,可用可不用。

978-7-111-51420-6-Chapter03-23.jpg

图3-20 中断指令

a)主程序 b)中断程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈