PLC原理及其在电力系统中的应用课件 子程序与中断程序_第1页
PLC原理及其在电力系统中的应用课件 子程序与中断程序_第2页
PLC原理及其在电力系统中的应用课件 子程序与中断程序_第3页
PLC原理及其在电力系统中的应用课件 子程序与中断程序_第4页
PLC原理及其在电力系统中的应用课件 子程序与中断程序_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

S7-200PLC

功能指令(3)《PLC原理与电气控制技术》学习内容1子程序指令2中断程序指令1.子程序及其指令子程序的作用:使用相同的代码处理类似的任务,无需重复编写代码;子程序将程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护;子程序调用是有条件的,可以多次调用,使用子程序可以减少扫描时间。1.子程序及其指令1.局部变量表(1)局部变量与全局变量程序中的每个程序组织单元POU(ProgramOrganizationalUnit)均有由64字节L存储器组成的局部变量表。局部变量只在它被创建的POU中有效,全局符号在各POU中均有效。

局部变量表用来为子程序和中断服务程序分别指定变量,局部变量也可用于子程序传递参数,能增强子程序的可移植性和再利用性。局部变量表1.子程序及其指令1.局部变量表局部变量有以下优点:①尽量使用局部变量的子程序易于移植到别的项目。②如果使用临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。1.子程序及其指令(2)局部变量的类型

TEMP(临时变量):暂时保存在局部数据区中的变量。主程序或中断程序的局部变量表只有TEMP变量。

IN(输入变量):由调用它的POU提供的传入子程序的输入参数。

OUT(输出变量):子程序返回给调用它的POU的输出参数。

IN_OUT(输入_输出变量):其初始值由调用它的POU提供,并用同一变量将子程序的执行结果返回给调用它的POU。1.子程序及其指令(3)局部变量的地址分配

在局部变量表中赋值时,只需指定局部变量的类型和数据类型,不用指定存储器地址。编辑器自动为所有局部变量指定地址。起始地址是LB0。字节、字、双字值在存储器中按字节顺序分配。如,LBX,LWX,LDX。1.子程序及其指令(4)局部变量的数据类型检查

局部变量作为参数向子程序传递时,在该子程序的局部变量表中的数据类型必须与调用它的POU中的数据类型匹配。1.子程序及其指令2.子程序的编写与调用①子程序的创建“编辑”->“插入”->“子程序”。程序编辑视窗中点击右键->“插入”->“子程序”。

子程序调用指令(CALL)将程序控制权交给子程序SBR_N。调用子程序时可以带参数也可以不带参数。子程序执行完成后,控制权返回到调用子程序的指令的下一条指令。1.子程序及其指令②子程序的编写//将温度1的值转换成实数;//除以系数1,加上偏移量,得到输出结果;1.子程序及其指令③子程序的调用与指令一样直接拖拽语句表格式1.中断的基本概念

中断处理提供对待殊内部事件或外部事件的快速响应。中断由事件驱动。中断事件发生时,系统进入中断服务程序,执行具体任务,一旦中断服务程序的最后一条指令被执行,返回至主程序。

中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。因为不能预知系统何时调用中断程序,它不能改写其他程序使用的存储器,为此应在中断程序中使用局部变量。2.中断程序

在启动中断服务程序之前,必须使中断事件与发生该事件时执行的程序段建立联系。使用"中断连接"指令(ATCH)建立中断事件(由中断事件号码指定)与程序段(由中断服务程序号码指定)之间的联系。将中断事件连接于中断服务程序时,该中断自动被启用。

如果使用全局禁止中断指令禁止所有的中断,中断事件的每次出现均被排队等候,直至使用全局启用中断指令重新启用中断。2.中断程序使用"中断分离"指令(DTCH)可中断分离事件与中断服务程序之间的联系,从而禁止单个中断事件。"分离"指令使中断返回未激活或被忽略状态。

可以从中断服务程序调用一个子程序嵌套级别。在被调用的中断服务程序和子程序之间共享累加器和逻辑堆栈。

一个程序中总共可有128个中断。2.中断程序注意:

1)由于触点、线圈和累加器逻辑可能受中断的影响,系统保存和重新载入说明累加器和指令操作状态的逻辑堆栈、累加器寄存器和特殊内存位(SM)。这样可避免因分支至中断服务程序和从中断服务程序分支而导致的主程序中断。

2)可以在主程序和一个或多个中断服务程序之间共享数据。因为无法预测S7-200何时可能生成中断,最好限制中断服务程序和程序中其他位置使用的变量数目。由于主程序中指令执行被中断事件中断时中断服务程序采取的措施,会导致共享数据一致性故障。使用中断服务程序局部变量表,以确保中断服务程序仅使用临时内存,并且不覆盖程序其他位置使用的数据。2.中断程序注意:

3)应优化中断程序,执行完某项特定任务后立即返回主程序;应使中断程序尽量短小,以减少小断程序的执行时间,减少对其他处理的延迟,否则可能引起主程序控制的设备操作异常。设计中断程序时应遵循“越短越好”的格言。2.中断程序①通讯端口中断:生成允许程序控制通讯端口的事件。②I/O中断:生成用于各种I/O状态不同变化的事件。这些事件允许程序对高速计数器、脉冲输出或输入的升高或降低状态作出应答。③时间基准中断:生成允许程序按照具体间隔作出应答的事件。2.中断的类型通讯端口中断、I/O中断、时间基准中断2.中断程序2.中断程序(2)I/O中断

I/O中断包括上升/下降边缘中断、高速计数器中断和脉冲输出中断。

输入上升和/或下降边缘中断(I0.0、I0.1、I0.2或I0.3)可为每个此类输入点捕获上升边缘和下降边缘事件。这些上升/下降边缘事件可用于表示在事件发生时必须立即处理的状况。(1)通讯端口中断可用程序控制S7-200的串行通讯端口。此种操作通讯端口的模式被称作自由端口模式。在自由端口模式中,程序定义波特率、每个字符的位、校验和协议。可提供"接收"和"传送"中断进行程序控制的通讯。2.中断程序(2)I/O中断

高速计数器中断允许对以下条件作出应答:当前值达到预设值,可能与转轴旋转方向逆转对应的计数方向的改变或计数器外部复原。每种此类高速计数器事件均允许针对按照PLC扫描速度控制的高速事件采取实时措施。

脉冲输出中断发出输出预定数目脉冲完成的立即通知。脉冲输出的最常见用法是步进电机控制。(3)时间基准中断

时间基准中断包括定时中断和定时器T32/T96中断。

定时中断可以用于控制模拟输入取样或定期执行PID环路。2.中断程序

SMB34和SMB35控制定时中断0和中断1的时间间隔。可以指定从1毫秒至255毫秒的时间间隔(以1毫秒为增量)。相应的定时中断事件附加在中断例行程序中时,CPU捕获时间间隔数值。每次定时时间到时,定时中断事件将控制传输给适当的中断服务程序。当把中断服务程序连接在定时中断事件上时,启用定时中断,且计时开始。在连接的过程中,系统捕获循环时间数值,因此其后对SMB34和SMB35所作的改动不会影响循环时间。欲改动循环时间,必须修改循环时间数值,然后将中断服务程序重新连接在定时中断事件上。重新连接时,定时中断功能从以前的附件中清除所有的累计时间,并开始用新数值计时。可以用分离事件的方法终止定时中断事件。2.中断程序

时间中断被启用后,则持续运行,每当指定的时间间隔到达时,执行中断连接服务程序。如果退出RUN(运行)模式或分离定时中断,定时中断被禁止。如果全局禁止中断指令被执行,定时中断继续进行。每次定时中断出现均排队等候(直至中断被启用或队列已满)。定时器T32/T96中断对指定时间间隔完成及时作出应答。仅在1毫秒分辨率接通延时(TON)和断开延时(TOF)定时器T32和T96中支持此类中断。否则T32和T96按照正常情况作业。一旦中断被启用,在S7-200中执行的正常1毫秒定时器更新的过程中,当现用定时器的当前值等于预设时间数值时,即执行中断连接服务程序。可以用将中断服务程序连接至T32/T96中断事件的方法,启用此类中断。2.中断程序3.中断队列和中断优先级S7-200中断按以下固定的优先级顺序执行:通讯中断(最高优先级)、I/O中断和定时中断(最低优先级)。CPU在中断各自的优先级别群组内按照先来先服务的原则为中断提供服务。在任何时刻,只能执行一个用户中断服务程序。一旦一个中断服务程序开始执行,则一直执行至完成。即使是更高优先级别的服务程序,也不能停止另一个中断服务程序。正在处理另一个中断时发生的中断入队等待处理。队列CPU221/222/224CPU224XP/226通讯队列48I/O中断队列1616定时中断队列88中断队列的最大中断数:2.中断程序中断队列溢出位SM位通讯队列SM4.0I/O中断队列SM4.1定时中断队列SM4.2说明(0=无溢出,1=溢出)

一般而言,出现的中断数目会超出队列能够容纳的数目。因此,队列溢出内存位(识别已经丢失的中断事件类型)由系统保持。

如果发生中断过于频繁,使中断发生的速率比可以处理的速率快,或者中断被DISI指令禁止,中断队列溢出状态位置1(见下表)。应当仅在中断服务程序中使用这些位,因为当队列排空时这些位会被复原,控制被返回主程序。2.中断程序

中断允许(ENI)指令全局性启用所有连接中断事件进程。

中断禁止(DISI)指令全局性禁止所有中断事件进程。转换至RUN(运行)模式时,中断开始时被禁止。一旦进入RUN(运行)模式,可以通过执行全局中断允许指令,启用所有中断进程。执行中断禁止指令会禁止处理中断;但是现用中断事件将继续入队等候。(1)中断允许和中断禁止指令4.中断指令指令格式:ENIENI(

)DISIDISI(

)CRETICRETI(

)2.中断程序(2)中断连接和中断分离指令

中断连接(ATCH)指令将中断事件(EVNT)与中断服务程序号码(INT)相联系,并启用中断事件。

中断分离(DTCH)指令取消中断事件(EVNT)与所有中断服务程序之间的关联,并禁用中断事件。

中断清除(CEVNT)指令用于删除中断队列中所有类型为EVNT的中断事件。此指令用于清除不必要的中断,后者可能由假传感器输出暂态造成。2.中断程序(2)中断连接和中断分离指令

注意:

在激活中断例行程序之前,必须在中断事件和希望在事件发生时执行的程序段之间建立关联。使用“中断连接”指令将中断事件(由中断事件号码指定)与程序段(由中断例行程序号码指定)联系在一起。可以将多个中断事件附加在一个中断例行程序上,但一个事件不能同时附加在多个中断例行程序上。当将一个中断事件附加在一个中断例行程序上时,会自动启用中断。如果用全局禁用中断指令禁用所有的中断,则每次出现的中断事件均入队等候,直至使用全局启用中断指令或中断队列溢出重新启用中断。可以使用"中断分离"指令断开中断事件与中断例行程序之间的关联,从而禁用单个中断事件。2.中断程序指令格式:ATCHINT,EVNTDTCHEVNTINT:中断服务程序名CEVNTEVNTEVNT:中断事件号EVNT:中断事件号2.中断程序网络1//将INT_0定为I0.0下降沿中断,并全局启用中断LD SM0.1ATCH INT_0,1ENI网络2//检测到I/O错误,禁止I0.0下降沿中断LD SM5.0DTCH 1网络3//当M5.0打开时,禁用所有的中断LD M5.0DISI网络1//I0.0下降沿中断服务程序//根据I/O错误执行的有条件返回LD SM5.0CRETI举例1:中断服务程序主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论