立即注册 找回密码
工控站 首页 基础学习 PLC编程 查看内容

西门子200PLC中断指令讲解和程序编写实例

2017-7-23 10:35| 发布者: admin| 查看: 12648| 评论: 0|原作者: 胡亚东|来自: 原创

摘要: 导读: 在西门子PLC200中,有中断指令供我们使用,中断和子程序而言,相对简单。因中断事件是PLC内部固定的无法更改,我们写好中断程序直接调用中断事件即可。接下来,PLC视频编程培训就来讲一下西门子200PLC的中断 ...
导读:
     在西门子PLC200中,有中断指令供我们使用,中断和子程序而言,相对简单。因中断事件是PLC内部固定的无法更改,我们写好中断程序直接调用中断事件即可。接下来,PLC视频编程培训就来讲一下西门子200PLC的中断指令和程序编写。

西门子200PLC中断指令讲解和程序编写实例

     上图中的INT_0就是编写中断程序的地方,双击可进行重命名,右键可再创建一个中断程序。中断程序调用一次即可,所以使能条件用“SM0.1”接通第一个扫描周期。如下图:

西门子200PLC中断指令讲解和程序编写实例

      图二在主程序中编写,图三在中断程序中书写。

 ① 使能条件使用:SM0.1

 ② INT输入中断程序编号,

 ③ EVNT输入中断事件号,

 ④ “0”号事件代表I0.0的上升沿。

 ⑤ ENI代表予许中断,这一条必须添加。


图二和图三程序分析如下:

     主程序执行时,SM0.1接通第一个扫描周期,中断命令执行,中断时间为0号,要执行的中断程序为INT_0,ENI予许中断执行,程序执行INT_0号中断命令。SM0.0始终接通,由于中断事件号为0,即当检测到外部I0.0的上升沿时,执行加法运算,将VW0中的数值加50后,传送到VW0程序执行结果就是,每按动I0.0一次,VW0的数值就加50中断的使能条件仅仅是一个扫描周期即可,中断是否执行取决于中断条件是否满足


西门子200PLC中断指令讲解和程序编写实例

      上图中,我们在中断程序中又添加了一条,不同的是,加了上升沿,得到的结果却是VW2中的数值并没有改变,因此,我们知道,中断仅接通第一个扫描周期,而上升沿需要两个扫描周期才能生效。


西门子200PLC中断指令讲解和程序编写实例


      上图中,我们在中断程序中添加了计数器,结果同样是不行的,因为中断仅接通一个扫描周期。


西门子200PLC中断指令讲解和程序编写实例


      上图中,我们在主程序中又添加了一条中断,事件号是2,要执行的中断程序是INT_1。我们将予许中断ENI写在了第一个中断程序上,得到的结果是两个中断都可以执行,也就是说,予许中断是没有时序要求的,只要添加ENI就可以执行。

      如果将主程序的中断程序转移到子程序中,在主程序中调用子程序也可以触发中断事件。中断程序也可以调用子程序,可以是多个子程序,但只能嵌套一层。

      中断程序一旦触发,不可打断,必须执行完成,如果其它的中断程序也已经触发,只能处于派队状态,必须把当前的中断程序执行完成之后再去执行派队的中断程序,处于派队的中断程序是有优先级的,通讯的中断程序优先级最高。


例如:

    主程序调用的中断程序,触发条件满足执行中断程序,如果在执行的过程中,新来个几个中断,这些中断只能派队等正在执行的中断执行完毕后才能按照优先级执行后来触发的中断。

    中断程序、主程序、子程序,其中优先级最高就是中断。在执行中断程序的过程中,如果触发中断,则立刻执行中断程序且不等打断,不论目前程序执行到什么地方。假设执行到了子程序,也必须停止执行子程序去执行中断,等中断执行完毕后再回来执行子程序,子程序执行完毕后,回来执行主程序。但是,如果正在执行的子程序是由中断程序调用的,则新触发的中断程序不能将该子程序打断。


西门子200PLC中断指令讲解和程序编写实例


     上图中的DTCH是将中断事件0和中断程序分开。也就是说,当使能条件满足,0号事件发生,相对应的中断程序不再执行。EVNI为事件号。


西门子200PLC中断指令讲解和程序编写实例


     DISI是禁止中断,当禁止中断使能条件满足,中断程序禁止执行。但是,如果在禁止中断的过程中,发生了中断事件,那么发生的中断事件都将被记录,禁止中断指令一旦解除,所记录的中断事件都被执行。


例如:

刚才使用的加法指令,按动I0.0,将VW0的数值加50后,载入到VW0,按几次I0.0,结果就加几次50. 如果触发禁止中断指令,按动I0.0,结果不变,但是按动的次数都将被记录,一旦禁止中断解除,假设按了6次,结果就一次性加了300。如果输出条件是Q0.0,中断解除后,Q0.0点亮,无论按动几次I0.0,Q0.0一直输出,不会闪烁。

西门子200PLC中断指令讲解和程序编写实例


     CLR_EVNT是清除中断事件,如果在禁止中断的过程出触发中断事件,中断程序处于排队状态,一旦开启中断就会执行,清除中断就是将排队中的中断清除,EVNT就是要清除的事件号。如果有多个中断事件,就多多编写几个清除中断并关联相应的中断事件号。



鲜花

握手

雷人

路过

鸡蛋

相关阅读

关于我们|Archiver|手机版|小黑屋|工控站 ( 鲁ICP备15044682号-2 )

返回顶部