《PLC中断指令及其在喷泉控制系统中的应用.docx》由会员分享,可在线阅读,更多相关《PLC中断指令及其在喷泉控制系统中的应用.docx(6页珍藏版)》请在优知文库上搜索。
1、摘要:首先介绍了S7-200P1.C中断及相关概念,然后对相关中断指令进行了简要阐述,最后以喷泉控制系统为例,分析了中断指令在编程中的具体应用,这对于优化程序结构,解决相似工程问题具有借鉴意义。关键词:S7-200P1.C;中断指令;喷泉控制系统O引言S7-200P1.C设置了中断功能,用于实时控制、高速处理、通信和网络等特殊和复杂的控制任务。中断功能的合理使用,既可以使一些突发事件得到即时响应和处理,又可以使程序条理清晰,结构合理。本文以喷泉的控制系统为例,阐述S7-200P1.C中断指令及其应用情况。1P1.C中断及相关概念P1.C在执行程序时,如果有一些急需处理的事件发生,且中断允许时,
2、P1.C会中止当前正在执行的程序,转去执行中断程序,执行完中断程序,再返回中断处接着执行后续程序。下面介绍几个和P1.C中断有关的概念。1.1中断源中断源是指引发中断的事件。系统给每个中断源分配了一个编号,称为中断事件号。S7-200系列P1.C最多有34个中断源,分为三大类,即通信中断、I/O中断、时基中断。其中,时基中断又分为定时中断和定时器中断;定时中断分为定时中断O和定时中断1。本例用的是定时中断0,中断事件号为10。1.2 中断优先级在P1.C运行期间,多个中断源同时向P1.C申请中断,需要将中断源按中断性质和紧急程度进行中断排序,并按优先级高低进行逐项处理。S7-200P1.C中断
3、优先权从高到低依次是通信中断、I/O中断和时基中断,每类中断中又有不同的优先级。1.3 定时中断定时中断用于周期性的定时活动,每隔一段时间,当定时中断允许时,计时开始,时间到,执行一次中断程序。定时中断包括定时中断0和定时中断1,其中定时中断0的时间间隔由SMB34中的数值决定,数值范围为1255,时间单位是毫秒。1.4 中段服务程序中段服务程序简称中断程序,是中断事件发生时要执行的程序。中断服务程序不需要调用,当中断事件发生时,系统会自动跳到中断服务程序去执行。中断服务程序在执行过程中不能被另一个程序打断,即使是更高一级的中断,也必须按中断优先级排序依次执行。2 中断指令介绍中断指令包括中断
4、允许ENI、中断禁止DISI、中断连接ATCH、中断分离DTCH等指令。2.1中断允许指令ENI中断允许指令ENI,允许所有被连接的事件产生中断,按优先级进行中断排序,并依次执行中断程序。2.1 中断禁止指令DISI中断禁止指令DISI,全局禁止处理所有中断事件。2.2 中断连接指令ATCH中断连接指令ATCH,将一个中断事件与一个中断服务程序连接起来,并允许这一中断事件有效。2.3 中断分离指令DTCH中断分离指令DTCH,使能输入有效时,把一个中断事件EVENT和一个中断程序INT分离,禁止该中断事件有效。对于上述中断指令补充说明如下:(1)经过中断优先级判断后,将优先级最高的中断请求发送
5、给CPU,CPU响应中断后自动保存累加器和某些特殊标志寄存器位,即保护现场;中断处理完成后,自动恢复中断时保存的数据,即恢复现场。(2)当进入运行模式时,CPU禁止所有中断。当执行中断允许指令ENl后,允许所有中断有效。(3)多个中断事件可以调用同一个中断程序,但同一个事件不能调用多个中断程序。(4)中断分离指令DTeH禁止中断事件和中断服务程序之间的联系,它只禁止某一中断事件,而DlSl禁止所有中断。3 中断指令的应用举例本文以喷泉控制为例,阐述S7-200P1.C中断指令的具体应用。喷泉常用电磁阀控制喷头的喷水动作,电磁阀由其自身的线圈控制,P1.C控制电磁阀线圈。其控制线路如图1所示。图
6、1喷泉控制线路图图中P1.C采用CPU224,YV1YV8为电磁阀线圈,G为24V直流电源,SBI为启动按钮,SB2为停止按钮。控制要求:按下启动按钮SBl,电磁阀线圈YVI到YV8依次得电,间隔0.5s,且后一个电磁阀线圈得电时,前一个电磁阀线圈断电,循环运行;按下停止按钮SB2,喷泉停止工作。4 系统程序5 .1编程思路定时中断0的定时时间由SMB34中的数值决定,数值范围为1255,时间单位为毫秒,所以定时时间最多为255msO本例SMB34赋值100,即每隔100ms执行一次中断程序,5次定时中断的时间和为500ms。在中断程序中用VBO来累计中断的次数,计够5次耗时0.5s,之后用循
7、环左移指令将QBO左移一位,对应电磁阀得电顺序为YV1YV8.这里需要说明一下为什么要用循环左移指令,QBO的位排列顺序从右到左为Q0.0-Q0.7,从图1线路图上看,其对应的电磁阀线圈得电顺序为YV1YV8,所以用循环左移指令。4. 2程序喷泉控制系统程序由主程序、中断程序组成。主程序中初始化定时中断0,开启中断,中断服务程序中的中断计数计够5次,执行循环左移指令。4.2. 1主程序1.DIO.0按下启动按钮SBl,10.0常开触点闭合;MOVB1,QBo给QBO赋初值1,使Q0.0对应指示灯H1.I亮;MOVB0,VBO清零VBO;VBO存放中断次数;MOVB100,SMB34设置定时中断
8、0的时间间隔为100ms;ATCHINT_0,10将中断程序INT_0和定时中断0(编号为10)连接起来,这样当定时中断0定时时间至h系统就会自动调用中断程序0;ENI/开中断,启动定时中断0,每隔100ms执行一次中断程序;1.DlO.1按下停止按钮SBl,10.1常开触点闭合;DTCH1解除中断连接关系,不再执行中断程序,指示灯不再右移;MOVB0,QBo输出清零,指示灯全灭。4.2.2中断服务程序1.DSM0.0/P1.C运行时SMO.0常开触点接通;INCBVBO将VBo中的数值加1,相当于中断次数计数器;1.DB=VBO,5当VB0=5时,比较触点接通,累积时间是500ms,即0.5s;R1.BQBO,1循环左移指令将QBO对应的8位二进制数值循环左移1位,对应的得电电磁阀右移1位;MOVB0,VBO将VBo清零,为下一次计数作准备。5结语定时中断是指每隔一段时间就去执行一次中断服务程序,在中断服务程序中累积定时中断的次数,以此作为定时方式。定时时间到,执行循环左移指令,对应的喷泉也依次循环动作,使用中断指令编程,能够使程序结构更加清晰合理。