《可编程控制器PID高数计数器课件.ppt》由会员分享,可在线阅读,更多相关《可编程控制器PID高数计数器课件.ppt(94页珍藏版)》请在三一办公上搜索。
1、可编程序控制器,主讲:,4.6 S7-200PID指令4.6.1 PID算法,理解PID算法PID控制器调节输出,保证偏差(e)为零,使系统达到稳定状态,偏差(e)是给定值(SP)和过程变量(PV)的差。PID控制的原理基于下面的算式;输出M(t)是比例项、积分项和微分项的函数。输出=比例项+积分项+微分项其中:M(t)是 PID回路的输出,是时间的函数 KC PID回路的增益 e PID回路的偏差(给定值与过程变量之差)Minitial PID回路输出的初始值,为了能让数字计算机处理这个控制算式,连续算式必须离散化为周期采样偏差算式,才能用来计算输出值。数字计算机处理的算式如下:其中:Mn在
2、第n个采样时刻,PID回路输出的计算值KC PID回路比例增益en 第n个采样时刻的回路偏差值en-1 上一个采样时刻杜回路偏差ei 第i个采样时刻的回路偏差值KI 积分项的比例常数Minitial 回路输出的初始值KD 微分项的比例常数从这个公式可以看出,积分项是从第1个采样周期到当前采样周期所有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。在数字计算机中,不保存所有的误差项,实际上也不必要。只需将上一次的误差值和上一次积分项的数值保存即可。,由于计算机从第一次采样开始,每有一个偏差采样值必须计算一次输出值,只需要保存偏差前值和积分项前值。作为数字计算机解决的重
3、复性的结果,可以得到在任何采样时刻必须计算的方程的一个简化算式。简化算式是:Mn=Kc*en+KI*en+MX+KD*(en-en-1)其中:Mn在第n个采样时刻,PID回路输出的计算值KC PID回路比例增益en 第n个采样时刻的回路偏差值en-1 上一个采样时刻杜回路偏差KI 积分项的比例常数MX积分项前值KD 微分项的比例常数,CPU实际使用以上简化算式的改进形式计算PID输出。这个改进型算式是:Mn=MPn+MIn+MDn 输出=比例项+积分项+微分项其中:Mn 第n采样时刻的计算值 MPn 第n采样时刻的比例项值 MIn 第n采样时刻的积分项值 MDn 第n采样时刻的微分项值,(1)
4、理解PID方程的比例项比例项MPn是增益(KC)和偏差(e)的乘积。其中KC决定输出对偏差的灵敏度,偏差(e)是给定值(SP)与过程变量值(PV)之差。S7-200解决的求比例项的算式是:MPn=KC*(SPn PVn)MPn第n个采样时刻比例项的值KC 回路增益SPn 第n采样时刻的给定值PVn 第n采样时刻的过程变量值,(2)理解PID方程的积分项积分项(MI)是正比于每次采样的误差的积累值。S7-200解决的求积分项的算式是:MIn=KC*TS/TI*(SPn-PVn)+MX其中:MIn 第n个采样时刻的积分项值KC 回路增益TS 采样周期TI 积分时间常数SPn 第n采样时刻的给定值P
5、Vn第n采样时刻的过程变量值MX 第n-1采样时刻的积分项(积分项前值)(也称积分和或偏置),(3)理解PID方程的微分项微分项(MD)正比于误差的变化。S7-200使用下列算式来求解微分项:MDn=KC*TD/TS*(SPn PVn)-(SPn-1-PVn-1)为了避免给定值变化的微分作用而引起的跳变,假定给定值不变(SPn=SPn-1)。这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:MDn=KC*TD/TS*(PVn-1-PVn)其中:MDn第n个采样时刻的微分项值KC 回路增益TS 采样周期TD 微分时间常数SPn 第n采样时刻的给定值SPn-1 第n-1采样时刻的给定值P
6、Vn 第n采样时刻的过程变量值PVn-1 第n-1采样时刻的过程变量值为了下一次计算微分项值,必须保存过程变量,而不是偏差。在第一采样时刻,初始化为PVn-1 PVn,4.6.5 PID指令,PID指令以回路表中的输入和组态信息进行PID运算。要执行该指令,必须使逻辑栈顶值置为1。指令中的TBL是PID控制回路的起始地址。LOOP为控制回路号(为常数,在07之间)使ENO=0的错误条件:SM1.1(溢出)H 0006(间接寻址)受影响特殊存储器位H SM1.1(溢出),在程序中最多可以用8条PID指令。如果两个或两个以上的PID指令用了同一个回路号,那么即使这些指令的回路表不同,这些PID运算
7、之间也会相互干涉,产生不可预料的结果。回路表包含9个参数,用来控制和监视PID运算。这些参数分别是过程变量当前值(PVn),过程变量前值(PVn-1),给定值(SPn),输出值(Mn),增益(Kc),采样时间(Ts),积分时间(TI),微分时间(TD)和积分项前值(MX)。为了让PID运算以预想的采样频率工作,PID指令必须用在定时发生的中断程序中,或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到PID运算中。,回路表,回路控制类型的选择通过设置常量参数,可以选择需要的回路控制类型。如果不想要积分动作(PID计算中没有“I”),可以把积分时间(复位)置为无穷大“INF
8、”。即使没有积分作用,积分项还是不为零,因为有初值MX。如果不想要微分回路,可以把微分时间置为零。如果不想要比例回路,但需要积分或积分微分回路,可把增益设为0.0,系统会在计算积分项和微分项时,把增益当作1.0看待。正作用回路和反作用回路如果增益为正,那么该回路为正作用回路。如果增益为负,那么是反作用回路。对于增益值为0.0的I或ID控制,如果指定积分时间、微分时间为正,就是正作用回路;如果指定为负值,就是反作用回路,控制方式S7-200的PID回路没有设置控制方式,只要PID块有效,就可以执行PID运算。即PID运算存在一种“自动“运行方式。当PID运算不被执行时,我们称之为“手动”模式。P
9、ID指令使能位检测到信号的正跳变(从0到1),PID指令执行一系列动作,使PID指令从手动方式无扰动地切换到自动方式。为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的Mn栏。PID指令对回路表中的值进行下列动作,以保证当使能位正跳变出现时,从手动方式无扰动切换到自动方式:置给定值(SPn)=过程变量(PVn)置过程变量前值(PVn-1)=过程变量现值(PVn)置积分项前值(MX)=输出值(Mn)PID使能位的默认值是1,在CPU启动或从STOP方式转到RUN方式时建立。CPU进入RUN方式后首次使PID块有效,没有检测到使能位的正跳变,那么就没有无扰动切换的动作
10、。,回路输入的转换及归一化处理每个PID回路具有两个输入量,给定值(SP)和过程变量(PV)。给定值通常是一个固定的值。过程变量是与PID回路输出有关,可以衡量输出对控制系统作用的大小。给定值和过程变量都可能是工程实际的值,它们的大小、范围和工程单位都可能不一样。在PID指令对这些工程实际的值进行运算之前,必须把它们转换成标准的浮点型表达形式。,转换的第一步是把16位整数值转成浮点型实数值。如:ITD AIW0,AC0/将输入值转换为双整数。DTR AC0,AC0/将32位双整数转换为实数。下一步是将工程实际的值的实数值表达形式转换成0.01.0之间的标准化值。下面的算式可以用于标准化给定值或
11、过程变量值:Rnorm=(Rraw/Span)+Offset其中:Rnorm 工程实际值的归一化值Rraw 工程实际值的实数值或原值,未归一化处理Span 最大允许值减去最小允许值,通常取32000(对于单极性)和64000(对于双极性)Offset 单极性为0.0,双极性为0.5,下面的指令把双极性实数标准化为0.01.0之间的实数。通常用在第一步转换之后:/R 64000.0,AC0/累加器中的标准化值+R 0.5,AC0/加上偏置,使其在0.01.0之间MOVR AC0,VD100/标准化的值存入回路表,回路输出值转换成整数值回路输出值一般是控制变量,比如,在汽车速度控制中,可以是油阀开
12、度的设置。回路输出是0.0和1.0之间的一个标准化了的实数值。在回路输出可以用于驱动模拟输出之前,回路输出必须转换成一个16位的标定整数值。这一过程,是给定值或过程变量的标准化转换的逆过程。第一步是使用下面给出的公式,将回路输出转换成一个标定的实数值:,Rscal=(Mn-Offset)*Span其中:RScal 回路输出的刻度实数值 Mn 回路输出的标准化实数值 Offset 单极性为0.0,双极性为0.5 Span 值域大小,可能的最大值减去可能的最小值 单极性为32,000(典型值)双极性为64,000(典型值)这一过程可以用下面的指令序列完成:MOVR VD108,AC0/把回路输出值
13、移入累加器-R 0.5,AC0/仅双极性有此句*R 64000.0,AC0/在累加器中得到刻度值下一步是把回路输出的刻度转换成16位整数:ROUND AC0,AC0/把实数转换为32位整数 DTI AC0,LW0/把32位整数转换为16位整数 MOVW LW0,AQW0/把16位整数写入模拟输出寄存器,出错条件如果指令指定的回路表起始地址或PID回路号操作数超出范围,那么在编译期间,CPU将产生编译错误(范围错误),从而编译失败。PID指令不检查回路表中的值是否在范围之内,所以必须小心操作以保证过程变量和设定值不超界。PID指令不检查回路表中的值是否超界,您必须保证过程变量和设定值(以及偏置和
14、前一次过程变量)必须在0.0到1.0之间。如果PID计算的算术运算发生错误,那么特殊存储器标志位SM1.1(溢出或非法值)会被置1,并且中止PID指令的执行。(要想消除这种错误,单靠改变回路表中的输出值是不够的,正确的方法是在下一次执行PID运算之前,改变引起算术运算错误的输入值,而不是更新输出值),PID指令编程举例 在本例中,有一水箱需要维持一定的水位,该水箱里的水以变化的速度流出。这就需要有一个水泵以不同的速度给水箱供水,以维持水位不变,这样才能使水箱不断水。本系统的给定值是水箱满水位的75%时的水位,过程变量由漂浮在水面的水位测量仪给出。输出值是水泵的速度,可以从允许最大值的0%变到1
15、00%。给定值可以预先设定后直接输入到回路表中,过程变量值是来自水位表的单极性模拟量,回路输出值也是一个单极性模拟量,用来控制进水泵的速度。这两个模拟量的范围是0.0到1.0,分辨率为1/32000(标准化)。在本系统中,只使用比例和积分控制,其回路增益和时间常数可以通过工程计算初步确定。但还需要进一步调整以达到最优控制效果。初步确定的增益和时间常数为:Kc是0.25,Ts是0.1秒,Tl是30分钟,系统启动时,关闭出水口,用手动控制进水泵的速度,使水位达到满水位的75%,然后打开出水口,同时水泵控制从手动方式切换到自动方式。这种切换由一个输入的数字量控制,描述如下:I0.0位控制手动到自动的
16、切换,0代表手动,1代表自动。当工作在手动控制方式下,可以把水泵速度(0.01.0之间的实数)写道VD108(VD108是回路表中保存输出的寄存器),4.7 S7-200其他操作指令,4.7.1 高速计数器操作指令 4.7.2 表功能指令 4.7.3 通信指令 4.7.4 中断指令,4.7.1 高速计数器操作指令,高速计数器用于对PLC扫描速率来不及处理的高速事件进行计数。S7-200PLC根据CPU不同型号有46个高速计数器。高速计数器的最高频率也随CPU型号不同而异。,1、高速计数指令高速计数指令包括定义高速计数器HDEF指令和高速计数器HSC指令。HDEF,定义高速计数器指令。使能输入有
17、效时,为指定的高速计数器分配一种工作模式,即用来建立高速计数器与工作模式之间的联系。梯形图指令盒中有两个数据输入端:HSC,高速计数器编号,为05的常数,字节型;MODE,工作模式,为011的常数,字节型。HSC指令是根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式设置高速计数器并开展其工作。,定义高速计数器指令(HDEF)为指定的高速计数器(HSCx)选择操作模式。高速计数器指令(HSC)在HSC特殊存储器位状态的基础上,配置和控制高速计数器。参数N指定高速计数器的标号。对于每一个高速计数器只能用一条定义高速计数器指令。每一个计数器都有时钟、方向控制、复位、启动的特定输入。
18、对于双相计数器,两个时钟都可以运行在最高频率。在正交模式下,您可以选择一倍速(1x)或者四倍速(4x)计数速率。,在使用高速计数器之前,应该用HDEF(高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1(该位仅在第一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序,2、工作模式4种工作模式内部方向控制的单脉冲增/减计数模式外部方向控制的单脉冲增/减计数模式增/减计数时钟输入的双脉冲计数模式A/B脉冲正交计数模式不论高速计数器以何种模式工作,他们的控制信号功能是相同的当复位输入I1.0有效时,高速计数器的当前值被清零并保持到复位无效。当启动信号I1.1有效时
19、,允许计数器开始计数;当启动信号无效时,计数值被保持,但不能对计数脉冲信号计数。当启动信号无效而复位信号有效时,复位信号不起作用,计数当前值不变。当复位保持有效则启动信号变为有效,当旗帜被清除。,输入控制S7-200PLC高速计数器HSC0-HSC5工作时需要输入端点的信号控制,下表给出了高速计数器HSC0-HSC5计数输入脉冲、方向控制复位输入和启动输入所使用的物理输入端点。由表可知,高速计数器用的物理输入端点存在一些重叠。同一个物理输入端点不能用于两个不同的功能,也不能同时被两个不同的高速计数器使用,但不使用的端点可用做其他用途。,每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速
20、计数功能。具体对应关系如表所示。,状态位及1X/4X模式选择有三个控制位用于配置复位和启动有效状态以及选择一倍速或者4倍计数模式(仅用于正交计数器)。这些位在各个计数器的控制字节中,只有在HDEF指令执行时才有效。在执行HDEF指令前,必须把这些控制位设定到希望的状态。否则,计数器对计数模式的选择取缺省设置。一旦HDEF指令被执行,您就不能再更改计数器的设置,除非先进入STOP模式。,状态字节每个高速计数器都有一个状态字节,程序运行时根据运行状况自动使某些位置位,可以通过程序来读相关位的状态,用以作为判断条件实现相应的操作。状态字节中各状态位的功能如表所示。,控制字节高速计数器中有一个控制字节
21、,其功能是允许或禁止计数器工作、计数方向控制或初始化计数方向、控制当前值和预置值装入等。执行HSC指令时,CPU检查控制字节和有关当前值和预置值。,当前值双字和预置值双字每个高速计数器有一个32位的初始值和一个32位的预置值。初始值和预置值都是符号整数。为了向高速计数器装入新的初始值和预置值,必须先设置控制字节,并且把初始值和预置值存入特殊存储器中,然后执行HSC指令,从而将新的值传送到高速计数器。,HSC中断高速计数器有3种中断:当前值等于预置值中断 外部复位有效中断 计数方向改变中断除模式0、1、2外,所有的计数器模式支持计数方向改变的中断,每个中断条件可分别地被允许或禁止。高速计数器的初
22、始化步骤以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7-200已经置成RUN模式。因此,首次扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速计数器的HDEF指令只能执行一次。对一个高速计数器第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF指令时对计数器的设置。,初始化模式0、1或2HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:1.用初次扫描存储器位(SM0.1=1)调用执行初始化操作子程序。2.初始化子程序中,根据所希望的控制操作对SMB47置数。例如:SMB47=16#F8 产生如下的结果:允
23、许计数 写入新的初始值 写入新的预置值 置计数方向为增 置启动和复位输入为高电平有效,3.执行HDEF指令时,HSC输入置1,MODE输入置0(无外部复位或启动)或置1(有外部复位和无启动)或置2(有外部复位和启动)。4.向SMD48(双字)写入所希望的初始值(若写入0,则清除)。5.向SMD52(双字)写入所希望的预置值。6.为了捕获当前值(CV)等于预置值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事件号13)调用该中断子程序。7.为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件号15)调用该中断子程序。8.执行全局中断允许指令(ENI)来允许HSC1中断
24、。9.执行HSC指令,使S7-200对HSC1编程。10.退出子程序。,所谓表是定义一组存储变量单元用于存储一组数据。表只对字型数据存储,有表存数、表取数、表查找指令。一个空表要定义其长度TL和实际能够填写的单元数EC。有FIFO、LIFO、ATT、FND、FILL指令。,4.7.2表功能指令,1、FIFO,先进先出指令当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。指令格式:FIFO TBL,DATA 例:FIFO VW10
25、0,AC0使ENO0的错误条件是:SM1.5(表空)SM4.3(运行时间)0006(间接寻址)0091(操作数超界)该指令影响特殊标志位:如果试图从空表中移走数据,那么SM1.5被置1。,2、LIFO,后进先出指令当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。LIFO表取数特点:取数时,移出的数据总是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1。指令格式:LIFO TBL,DATA例:LIFO VW100,AC0使ENO0的错误条件是:SM1.5(表空)SM4.3(运行时间)0006(间接寻址)0091
26、(操作数超界)该指令影响特殊标志位:如果试图从空表中移走数据,那么SM1.5被置1。,3、填表指令:ATT功能:向表(TBL)中增加一个数值(DATA)。表中第一个数是最大填表数(TL),第二个数是实际填表数(EC)。新的数据填加在表中上最后一个数据的后面。每向表中填加一个新的数据,EC会自动加1。ATT指令定义的表的最大长度为100(不含TL和EC这两个单元)指令格式:ATT DATA,TBL如果向一个满表中再添加数据,或实际要填入的数据个数大于表格本身所定义的长度,则表的溢出标志位SM1.4会置1,4、查表指令FND?,表查找指令。通过表查找指令可以从字型数表中找出符合条件的数据所在的表中
27、数据编号,编号范围为099。TBL表格的首地址,用以指明被访问的表格;PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它是一个14的数值,分别代表=、运算符;INDX用来指定表中符合查找条件的数据的地址。为了查找下一个符合条件的数据,在激活查表指令前,必须先对INDX加1。如果没有发现符合条件的数据,那么INDX等于EC。,用FND指令查找由指令ATT、LIFO和FIFO生成的表时,实际填表数(EC)和输入数据个数相符,且一一对应。FND指令的操作数SRC是一个字地址(指向EC),比相应的ATT、LIFO或FIFO指令的操作数TABLE要高2个字节。表能存入数据的个数
28、最大为100,不包括TL和EC两个单元。如执行程序出错,则ENO=0。(SM4.3=1、间接寻址出错、操作数超出定义范围),5、存储器填充指令 存储器填充指令(FILL)将输入值为IN的N个字的内容连续填充到从输出OUT开始的N个字的内容。N可取1255之间的整数。指令格式:FILL IN,OUT,N,用来完成系统信息和数据的传递。包括网络读(NETR)与写(NETW)指令、发送(XMT)与接受(RCV)指令、获取口地置(GPA)与设定口地址(SPA)指令。,4.7.3 通信指令,1、网络读、写指令功能:NETR先对通信操作进行初始化,再通过PORT指定的端口从远程设备上读取数据并形成TBL。
29、NETW从指定端口向远处设备写入数据。可一次性读或写16个字节的信息。指令格式:NETR TBL,PORT NETW TBL,PORT操作数如下:TBL:VB、MB、*AC、*VD、*LD PORT:常数(1或0)同一时间内NETR和NETW指令的总条数不能超过8条,多余则无效。,2、发送、接收命令 PLC工作于自由端口模式时通过通信端口发送和接收数据,一次可处理256个字节的信息。功能:XMT激活保存在发送数据缓冲区的数据并将其发送。RCV激活自由端口的初始化程序以接受数据。TBL中的第一个数据指明了要发送或接收的字节个数,PORT指明了发送或接收数据的端口。指令格式:XMT TBL,POR
30、T RCV TBL,PORT 操作数TBL:VB、MB、QB、IB、SB、SMB、*AC、*VD、*LD PORT:常数(CPU221、222、224为0,CPU226为0或1),3、获取口地址、设定口地址指令 功能:GPA读取PORT指定的CPU端口的站地址,并将其放入ADDR指定的地址单元。SPA将CPU端口的站地址PORT设置为ADDR指定的数值。指令格式:GPA ADDR,PORT SPA ADDR,PORT操作数:ADDR:VB、MB、QB、IB、SB、SMB、LB、*AC、*VD、*LD PORT:常数,几个概念,1、自由端口模式 由用户程序自行控制,SMB30(端口0)和SMB1
31、30(端口1)用于选择波特率和奇偶校验。CPU需处于RUN状态。进入自由端口模式通过SM0.7设置,为0对应于TERM位置,为1对应于RUN位置。2、数据接收 用接收指令(RCV)在接收到最后一个字符时产生中断,由SMB86或SMB186控制,为0表示接收,为1表不启动或接收结束。接收到的字符存在SMB2,奇偶状态存在SMB3,校验出错时SMB3.0置位。3、数据发送 可在发送完最后一个字符时产生中断,或监控SM4.5和SM4.6。把字符设置为0再执行XMT,则在线上产生一16位的BREAK条件,当其完成后产生一个XMT中断。,4.7.4 中断指令,1、中断的概念S7-200PLC执行程序时,
32、由于CPU内部事件或外部事件发出请求信号,引起CPU中断正在执行的程序,转而去执行由中断源指定的中断服务子程序,执行完中断子程序之后,再返回被终止的主程序继续执行,这一过程被称为中断响应。中断服务子程序入口由中断服务子程序标号来区别。中断服务子程序是由位于中断服务子程序标号和无条件中断返回指令之间的所有指令组成的一段程序。退出中断服务子程序,要用无条件中断返回指令RETI或条件中断返回指令CRETI来实现。,2、中断源(1)中断源及种类 中断事件发出中断请求的来源。S7-200具有最多可达34个中断源,每个中断源都分配一个编号用以识别,称为中断事件号。分为三大类:通信口中断、输入输出中断和定时
33、中断。(2)中断优先级 由高到低依次是:通信口中断、输入输出中断和定时中断。每种中断中的不同中断事件又有不同的优先权。通讯口中断:PLC工作于自由端口模式。用户可用程序定义波特率、每个字符位数、奇偶校验和通讯协议。利用接收和发送中断可简化程序对通讯的控制。,I/O中断:对I/O点状态的各种变化产生中断事件。这些事件可以 对高速计数器、脉冲输出或输入的上升或下降状态做出响应。包含了上升沿或下降沿中断、高速计数器中断和脉冲串输出(PTO)中断。S7 200 CPU可用输入I0.0至I0.3的上升沿或下降沿产生中断。定时中断:包括定时中断0、定时中断1和定时器T32/T96中断。定时中断0和定时中断
34、1以1ms为增量单位,周期时间可从1ms到255ms。对定时中断0,必须把周期时间写入SMB34;对定时中断1,必须把周期时间写入SMB35。每当定时器溢出时,定时中断事件把控制权交给相应的中断程序。通常可用定时中断以固定的时间间隔去控制模拟量输入的采样或者执行一个PID回路。,定时器T32/T96中断允许及时地响应一个给定的时间间隔。这些中断只支持1ms分辨率的延时接通定时器(TON)和延时断开定时器(TOF)T32和T96。T32和T96定时器在其它方面工作正常。一旦中断允许,当有效定时器的当前值等于预置值时,在CPU的正常1ms定时刷新中,执行被连接的中断程序。首先把一个中断程序连接到T
35、32/T96中断事件上,然后允许该中断。,3、中断优先级和中断队列 在指定的优先级之内,CPU按先来先服务的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中断程序开始执行,它要一直执行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。当另一个中断正在处理中,新出现的中断需要排队,等待处理。,有时,可能由多于所能保存数目的中断出现,因而,由系统维护的队列溢出存储器位表明丢失的中断事件的类型。中断队列溢出位如表所示。您应当只在中断程序中使用这些位,因为在队列变空或控制返回到主程序时,这些位会被复位。,4、中断指令 ATCH是中断连接指令,将中断事件EVNT与中断服务
36、程序号INT连接起来,即把中断源和为其服务的中断子程序对应起来,并允许这个中断事件开放。中断服务程序号INT是一个中断服务子程序的标识,说明它是哪一个中断服务子程序。中断事件编号EVNT是CPU规定的中断事件的编号,指出中断源是哪个。,DTCH中断分离指令,断开一个中断事件EVNT与一个中断服务子程序INT的连接。即使中断源没有相应的中断服务子程序与其对应。该指令同时使这个中断事件禁止。,对中断连接和分离指令的理解在激活一个中断程序前,必须在中断事件和该事件发生时希望执行的那段程序间建立一种联系。中断连接指令(ATCH)指定某中断事件(由中断事件号指定)所要调用的程序段(由中断程序号指定)。多
37、个中断事件可调用同一个中断程序,但一个中断事件不能同时指定调用多个中断程序。当把中断事件和中断程序连接时,自动允许中断。如果采用禁止全局中断指令不响应所有中断,每个中断事件进行排队,直到采用允许全局中断指令重新允许中断。可以用中断分离指令(DTCH)截断中断事件和中断程序之间的联系,以单独禁止中断事件。中断分离指令(DTCH)使中断回到不激活或无效状态。,ENI开中断指令,当CPU进入RUN状态时,系统是禁止中断的,但可以通过执行ENI指令全局开放中断,允许CPU响应中断请求,执行中断服务程序。DISI关中断指令,全局地禁止处理所有中断事件。当CPU执行关中断指令DISI后,中断排队仍然会产生
38、,但CPU不会响应中断请求,不去执行中断服务程序。CRETI条件中断返回指令,根据该指令前面的逻辑操作的条件,决定是否终止当前中断程序的执行,若满足条件,则终止中断服务子程序的执行而返回主程序原处。RETI无条件中断返回指令,在编程中没有中断服务子程序无条件返回指令,但它在执行中断服务程序时会自动将无条件返回指令加到每一个中断服务子程序的结尾。,限制:在中断程序中不能使用DISI、ENI、HDEF、LSCR、END指令。累加器值不能在主程序和中断服务子程序之间自由传递参数。系统对中断的支持:由于中断指令影响接点、线圈和累加器逻辑,所以系统保存和恢复逻辑堆栈,累加器以及指示累加器和指令操作状态的
39、特殊存储器标志位SM。这避免了由中断程序返回后对用户主程序执行现场所造成的破坏。在中断程序中调用子程序:从中断程序中可以调用一个嵌套子程序。累加器和逻辑堆栈在中断程序和被调用的子程序中是公用的。,4.7.5 USS协议指令,通过USS协议指令能使S7-200控制MicroMaster变频器和读/写变频器参数。包括USS_INIT、READ_PM、WRITE_PM和CTRL四种指令。,Diagram,Add your text,Diagram,特点,系统组合灵活,功能强大,抗干扰能力强,现场信号简单,维护方便,编程简单,基本、扩展、辅助,Diagram,Diagram,Diagram,Add Your Text,Add Your Text,Add Your Text,Diagram,Diagram,Cycle Diagram,Diagram,Diagram,Progress Diagram,Diagram,Map,3-D Pie Chart,Block Diagram,Add Your Text,Add Your Text,Concept,Concept,Thank You!,