可编程序控制器原理及应用第06章课件.ppt

上传人(卖家):三亚风情 文档编号:3503064 上传时间:2022-09-08 格式:PPT 页数:67 大小:911.50KB
下载 相关 举报
可编程序控制器原理及应用第06章课件.ppt_第1页
第1页 / 共67页
可编程序控制器原理及应用第06章课件.ppt_第2页
第2页 / 共67页
可编程序控制器原理及应用第06章课件.ppt_第3页
第3页 / 共67页
可编程序控制器原理及应用第06章课件.ppt_第4页
第4页 / 共67页
可编程序控制器原理及应用第06章课件.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、6.1 西门子PLC的程序结构6.2 程序控制指令与结构化编程6.3 S7-200的中断系统6.4 S7-300/400的中断与组织块6.5 S7-300/400的系统功能与系统功能块本章的主要内容本章的主要内容 1 2022-7-266.1.1 西门子西门子PLC的程序结构概述的程序结构概述 本章主要介绍本章主要介绍PLC的程序结构。这里的程序指的是用的程序结构。这里的程序指的是用户程序,即用户根据控制要求编写的控制程序。用户程户程序,即用户根据控制要求编写的控制程序。用户程序是在系统程序之上运行的。西门子序是在系统程序之上运行的。西门子PLC的用户程序都的用户程序都是编写在一定的程序块中的

2、。在西门子是编写在一定的程序块中的。在西门子PLC中,程序块中,程序块是存放程序的基本单元,所有的程序必定属于特定的程是存放程序的基本单元,所有的程序必定属于特定的程序块,所有指令编写的所有程序均可以根据需要放在任序块,所有指令编写的所有程序均可以根据需要放在任意的程序块中。意的程序块中。西门子西门子PLC的程序总体结构由主程序(组织块)和的程序总体结构由主程序(组织块)和子程序(功能块)等组成。西门子子程序(功能块)等组成。西门子S7-200和和S7-300/400 PLC程序结构相似,只是各部分的名称不一样。程序结构相似,只是各部分的名称不一样。2 2022-7-266.1.1 西门子西门

3、子PLC的程序结构概述(续)的程序结构概述(续)西门子西门子PLC中程序块的执行和调用是按一定规则进中程序块的执行和调用是按一定规则进行的。根据程序执行的调用机制不同,可以将程序块分行的。根据程序执行的调用机制不同,可以将程序块分为两类。一类是系统调用程序块,这一类程序块在系统为两类。一类是系统调用程序块,这一类程序块在系统事件或中断事件发生后由系统程序激发,从而得以执行。事件或中断事件发生后由系统程序激发,从而得以执行。如主程序块如主程序块OB1,由于,由于PLC的的“循环扫描循环扫描”的原理,每的原理,每个周期的开始是一个最重要的事件,系统会在该事件发个周期的开始是一个最重要的事件,系统会

4、在该事件发生后,调用主程序块生后,调用主程序块OB1;又如中断响应子程序(程序;又如中断响应子程序(程序块),当相应的中断事件发生后,系统会调用对应的中块),当相应的中断事件发生后,系统会调用对应的中断响应子程序(程序块)。另一类程序块是程序调用程断响应子程序(程序块)。另一类程序块是程序调用程序块,这一类程序块由其他程序调用后得以执行,如序块,这一类程序块由其他程序调用后得以执行,如S7-200中的子程序、中的子程序、S7-300/400中的功能(中的功能(FC)和功能)和功能块(块(FB)等。)等。3 2022-7-266.1.1 西门子西门子PLC的程序结构概述(续)的程序结构概述(续)

5、在控制任务简单时,经常将一个工程的全部控制任务在控制任务简单时,经常将一个工程的全部控制任务都按照工程控制的顺序写在一个程序中,如写在都按照工程控制的顺序写在一个程序中,如写在OB1中。中。程序执行过程中,程序执行过程中,CPU不断地扫描不断地扫描OB1,按照事先准备,按照事先准备好的顺序去执行工作。一般情况下,只要任务稍微复杂好的顺序去执行工作。一般情况下,只要任务稍微复杂一些,就要把一个复杂的过程分解成多个简单的过程,一些,就要把一个复杂的过程分解成多个简单的过程,从而写在不同的程序块中。分为多个不同程序块后,程从而写在不同的程序块中。分为多个不同程序块后,程序容易编写,容易调试,从总体上

6、看,分块程序的优势序容易编写,容易调试,从总体上看,分块程序的优势是十分明显的。是十分明显的。4 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构的程序结构 1.程序结构西门子西门子S7-200 PLC的程序在结构上是由的程序在结构上是由主程序主程序、子程序子程序和和中断子中断子程序程序组成的,如图组成的,如图6-1所示。主程序只有一个,每个循环扫描周所示。主程序只有一个,每个循环扫描周期,主程序会被执行一遍。主程序执行过程中可以调用子程序。期,主程序会被执行一遍。主程序执行过程中可以调用子程序。子程序在子程序在S7-200中最多可以有中最多可以有64个,名称为个,名称为

7、SBR0SBR63。子程。子程序可以由主程序、其它子程序或中断子程序调用。子程序调用后,序可以由主程序、其它子程序或中断子程序调用。子程序调用后,才能执行。中断子程序是一类特殊的子程序,在系统规定的中断才能执行。中断子程序是一类特殊的子程序,在系统规定的中断请求到来时,调用对应的中断子程序。中断子程序最多有请求到来时,调用对应的中断子程序。中断子程序最多有128个,个,名称为名称为INT0INT127。中断的内容在中断的内容在本章本章6.3节中讲解。节中讲解。图6-1西门子S7-200的PLC的程序结构 5 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构(续)的程序结构

8、(续)2.2.子程序子程序子程序调用有时不带参数,这时调用比较简单,如图子程序调用有时不带参数,这时调用比较简单,如图6-2所示。所示。在图示程序中,在图示程序中,SM0.0是一直接通的,这是无条件调用。若换成是一直接通的,这是无条件调用。若换成其它接点,则称为有条件调用。不带参数子程序的调用中,子程其它接点,则称为有条件调用。不带参数子程序的调用中,子程序和主程序也是可以通过全局变量交换数据的。序和主程序也是可以通过全局变量交换数据的。图6-2不带参数的子程序的调用 6 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构(续)的程序结构(续)子程序调用也可以带参数。每个子

9、程序调用的输入子程序调用也可以带参数。每个子程序调用的输入输出参数最多限制为输出参数最多限制为16个。在带参数的个。在带参数的“调用子程序调用子程序”指令中,参数必须与子程序局部变量表中定义的变量指令中,参数必须与子程序局部变量表中定义的变量完全匹配。参数顺序必须以输入参数开始,其次是输完全匹配。参数顺序必须以输入参数开始,其次是输入输出参数,然后是输出参数。子程序带参数调用入输出参数,然后是输出参数。子程序带参数调用可以充分利用局部变量的优势,使程序更具模块化。可以充分利用局部变量的优势,使程序更具模块化。图图6-3是一子程序符号表,图是一子程序符号表,图6-4为带参数子程序调用为带参数子程

10、序调用的举例。的举例。图6-3子程序符号表 7 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构(续)的程序结构(续)图6-4 为带参数子程序调用的举例 8 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构(续)的程序结构(续)3.数据块、符号表与状态图 S7-200 PLC可以定义数据块,数据块定义在V区,因此S7-200 PLC中定义数据块并没有新建变量,而是对已有的变量区域进行再定义,如图6-5所示。图6-5 S7-200 PLC数据块的定义9 2022-7-266.1.2西门子西门子S7-200 PLC的程序结构(续)的程序结构(续)S7-2

11、00 PLC的数据块定义完成后,这些数据有的数据块定义完成后,这些数据有了初始值,访问这些数据的时候,还使用了初始值,访问这些数据的时候,还使用V区的访问区的访问办法进行访问。可以对所有变量的名称和子程序块的办法进行访问。可以对所有变量的名称和子程序块的名称定义符号名称,在符号表中完成。符号表是给已名称定义符号名称,在符号表中完成。符号表是给已有的变量等另外取个更容易阅读和理解的名称,主要有的变量等另外取个更容易阅读和理解的名称,主要是注释的功能,不会下载到是注释的功能,不会下载到PLC中。中。S7-200 PLC中还有一个概念叫状态图,也是一中还有一个概念叫状态图,也是一个表格,用于在线监控

12、时,把需要监控的变量以各种个表格,用于在线监控时,把需要监控的变量以各种格式集中在一起,方便变量的监控和程序的调试。状格式集中在一起,方便变量的监控和程序的调试。状态图既不会创建新的变量,也不会下载到态图既不会创建新的变量,也不会下载到PLC中。中。10 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构 1.1.程序结构程序结构 西门子西门子S7-300/400的的PLC的程序在结构上是由若干块的程序在结构上是由若干块组成的。根据块的特点不同,分为组成的。根据块的特点不同,分为组织块组织块(OB)、功能功能块(块(FB)、功能

13、功能(FC)、系统功能块(系统功能块(SFB)、系统系统功能(功能(SFC)和和数据块(数据块(DB),如图如图6-6所示。所示。图6-6西门子S7-300/400的块 11 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)组织块组织块(OB)是系统自动调用的程序块。根据组织块是系统自动调用的程序块。根据组织块的不同作用,系统会在相应的时候和条件下进行调用。的不同作用,系统会在相应的时候和条件下进行调用。例如,例如,组织块组织块OB1,系统会在每个循环扫描周期调用系统会在每个循环扫描周期调用一次,我们称为主程序。一次,

14、我们称为主程序。当程序不是很复杂时,我们当程序不是很复杂时,我们可以将程序全部写在可以将程序全部写在OB1中。中。组织块组织块OB100是初始化是初始化组织块组织块,系统会在上电后自动调用一次,系统会在上电后自动调用一次OB100,我们我们可以把初始化程序写在可以把初始化程序写在OB100中。如图中。如图6-6所示,除初所示,除初始化和循环扫描可以调用相应组织块外,定时和故障始化和循环扫描可以调用相应组织块外,定时和故障会激发相应的中断,从而调用相应的组织块,中断组会激发相应的中断,从而调用相应的组织块,中断组织块的内容在织块的内容在6.4中讲解中讲解。对对PLC来说,不同的组织来说,不同的组

15、织块是有特定功能的。用户不能定义组织块的调用规则,块是有特定功能的。用户不能定义组织块的调用规则,从而不能创建新名称的组织块,而只能将系统的组织从而不能创建新名称的组织块,而只能将系统的组织块插入程序中,然后编写组织块的程序。块插入程序中,然后编写组织块的程序。12 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)在在STEP中,可以在工程的程序中插入块。如图中,可以在工程的程序中插入块。如图6-7所示,在工所示,在工程程test的的S7 Program(1)的的Blocks中,可以插入中,可以插入OB块、块、FB块、

16、块、FC块和块和DB块。而块。而SFC和和SFB块,则通过程序调用,由系统自动插入。块,则通过程序调用,由系统自动插入。例如,在图例如,在图6-8中调用了中调用了SFC14(DPRD_DAT),则系统会把则系统会把SFC14自动加入程序中,如图自动加入程序中,如图6-7所示。所示。图图6-7 插入块的操作插入块的操作 13 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)2.2.功能功能(FC)和)和功能块(功能块(FB)功能块(功能块(FB)和功能和功能(FC)是用户定义的子程序)是用户定义的子程序。我们可以在程序中

17、任何地方通过程序调用我们可以在程序中任何地方通过程序调用功能块(功能块(FB)和功能和功能(FC)。)。FB和和FC是有区别的,是有区别的,FB是带有专用是带有专用的背景数据块的,的背景数据块的,FB可以访问自己的背景数据块,也可以访问自己的背景数据块,也可以访问共享数据块;可以访问共享数据块;FC不带有专用的背景数据块,不带有专用的背景数据块,可以访问共享数据块。可以访问共享数据块。除此之外,除此之外,FB和和FC的使用是一致的。块的调用的使用是一致的。块的调用程序如图程序如图6-8所示,第一行程序为条件调用,第二行程所示,第一行程序为条件调用,第二行程序为无条件调用。序为无条件调用。14

18、2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)图6-8 块的调用15 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)与与S7-200 PLCS7-200 PLC相似,在相似,在S7-300/400 PLCS7-300/400 PLC的块中,的块中,可以使用局部变量可以使用局部变量L L,从而支持带参数的调用。局部变量,从而支持带参数的调用。局部变量L L存储区的大小与存储区的大小与PLCPLC型号有关,一般大于型号有关,一般大于256B25

19、6B。局部变。局部变量量L L在块被调用时才分配存储空间,当调用结束后,释放在块被调用时才分配存储空间,当调用结束后,释放存储空间。存储空间。图图6-96-9为一带参数程序块的程序。需要首先定义为一带参数程序块的程序。需要首先定义该程序块的输入和输出参数,当然这些参数是局部变量,该程序块的输入和输出参数,当然这些参数是局部变量,在调用时,用实际参数代替局部变量。该图中,定义了在调用时,用实际参数代替局部变量。该图中,定义了输入参数输入参数x1x1和和x2x2,输出参数,输出参数y y,临时的中间变量,临时的中间变量Temp1Temp1。程序中,计算程序中,计算x1x1和和x2x2的平均值,保存

20、在的平均值,保存在y y中。中。16 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)图6-9 带参数程序块的编写17 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)带参数程序块的调用如图带参数程序块的调用如图6-10所示。所示。FC1为已经定义好为已经定义好的带参数的功能(子程序)在主程序或其他程序中,可的带参数的功能(子程序)在主程序或其他程序中,可以多次调用以多次调用FC1,调用时需要赋值给,调用时需要赋值给x1和和x2,计算结果,计算

21、结果也要指定实际的存储空间。用计算机的术语来讲,也要指定实际的存储空间。用计算机的术语来讲,x1、x2和和y是形式参数,而是形式参数,而MW0和和MW2等是实际参数。等是实际参数。图6-10 带参数程序块的调用18 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)系统功能块(系统功能块(SFB)和系统功能(和系统功能(SFC)是系统定是系统定义的子程序义的子程序,是,是PLC生产厂家将具有特定功能的子程生产厂家将具有特定功能的子程序编好后,提供给用户使用,用户可以直接调用。比序编好后,提供给用户使用,用户可以直接调用。

22、比如如SFC14/15是是PROFIBUS数据发送数据发送/接收功能。接收功能。SFB带带有背景数据块,而有背景数据块,而SFC不带。不带。SFB和和SFC调用方法与调用方法与FC的调用一样。了解和掌握系统功能对程序的编写会的调用一样。了解和掌握系统功能对程序的编写会带来很大的便利带来很大的便利 数据块(数据块(DB)分为共享数据块和背景数据块。数分为共享数据块和背景数据块。数据块创建后,就是给据块创建后,就是给PLC定义了新的变量,程序可以定义了新的变量,程序可以访问这些变量。访问这些变量。19 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC

23、的程序结构的程序结构(续续)3.数据块 数据块(数据块(DB)分为共享数据块和背景数据块。)分为共享数据块和背景数据块。数据块的创建,就是给数据块的创建,就是给PLC定义了新的变量,程序可定义了新的变量,程序可以访问这些变量。数据块的名称是按数字进行编号的,以访问这些变量。数据块的名称是按数字进行编号的,如如DB1、DB2等。等。在如图在如图6-7所示的界面中,插入数据块。然后所示的界面中,插入数据块。然后对数据块进行定义,如图对数据块进行定义,如图6-11所示。数据块的创建就所示。数据块的创建就是填一张表格,一行一行去填写。是填一张表格,一行一行去填写。“地址地址”是数据块是数据块中的物理地

24、址,由系统自动依次生成;中的物理地址,由系统自动依次生成;“名称名称”是数是数据块中变量的符号名;据块中变量的符号名;“类型类型”是变量的数据类型;是变量的数据类型;在数据块中还可以设定数据的初始值和注释。在数据块中还可以设定数据的初始值和注释。20 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)图6-11 数据块DB1的创建21 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)用户可以在程序中访问数据块中的数据,变量的表达有规定的形式。访问

25、某一位,用DB1.DBXx.y表示,如DB1.DBX0.0和DB1.DBX0.1表示DB1的第1个字节的第1位和第2位,当然也可以用DB1.b0和DB1.b1来表示。访问某一字节,用DB1.DBBx表示,如DB1.DBB1表示DB1的第2个字节,也可以用DB1.x0表示。访问某一个字,用DB1.DBWx表示,如DB1.DBW2表示以DB1的第3个字节开始的一个字,也可以用DB1.x1表示。访问某个双字,用DB1.DBDx表示。以上“x”表示数据块中的字节单元地址。22 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)创

26、建数据块时,可以创建一些位、字节和字等,而使用时可以把数据块看成一定字节长度的空间,用任意格式访问数据块,不受定义的限制。图6-12中,程序段3的后半段,DBW0表示DB1的前两个字节。因此,有时直接定义成“ARRAY0.9 BYTE”,表示10个字节的数组。23 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)图6-12 数据块的访问24 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)4.变量表与符号表 在如图6-7所示的界面中,可以插入变

27、量表,用于在线监控。变量表把需要监控的变量以各种格式集中在一起,方便变量的监控和程序的调试,如图6-13所示。变量表既不创建新的变量,也不必下载到PLC中。S7-300 PLC中,可以对所有变量的名称和程序块的名称定义符号名称,在符号表中完成。符号表是为了方便程序的阅读和理解,主要是注释的功能,不下载到PLC中。25 2022-7-266.1.3西门子西门子S7-300/400S7-300/400的的PLCPLC的程序结构的程序结构(续续)图6-13 S7-300/400 PLC的变量表26 2022-7-266.1 西门子PLC的程序结构6.2 程序控制指令与结构化编程6.3 S7-200的

28、中断系统6.4 S7-300/400的中断与组织块6.5 S7-300/400的系统功能与系统功能块本章的主要内容本章的主要内容 27 2022-7-266.2.1 程序控制概述程序控制概述 在具体的程序块内,编写在具体的程序块内,编写PLC控制程序也要对程序的控制程序也要对程序的流程进行控制。用计算机编程的观点看待流程进行控制。用计算机编程的观点看待PLC程序的编程序的编写,写,PLC的程序属于结构化编程的模型。的程序属于结构化编程的模型。PLC的程序控的程序控制是通过程序控制指令完成的。制是通过程序控制指令完成的。PLC最基本的结构是顺序结构,即执行完上一行程最基本的结构是顺序结构,即执行

29、完上一行程序再执行下一行。除此之外,分支结构、循环结构和子序再执行下一行。除此之外,分支结构、循环结构和子程序结构也是常见的程序结构。需要注意的是,这里所程序结构也是常见的程序结构。需要注意的是,这里所讲的结构是相对于一个讲的结构是相对于一个PLC扫描周期而言的。扫描周期而言的。28 2022-7-266.2.2程序控制指令程序控制指令 29 2022-7-266.2.2程序控制指令(续)程序控制指令(续)跳转指令跳转指令是程序控制常用指令。当逻辑条件满足是程序控制常用指令。当逻辑条件满足时,使用该指令可以有选择地执行程序中的某些部分,时,使用该指令可以有选择地执行程序中的某些部分,完成某些特

30、定的功能,这样可以使程序结构更加灵活,完成某些特定的功能,这样可以使程序结构更加灵活,减少扫描时间,加快系统的响应速度。减少扫描时间,加快系统的响应速度。跳转指令由两条指令组成:跳转指令由两条指令组成:JMP和和LBL,这两条,这两条指令必须配合使用,且必须使用在同一个程序块中,指令必须配合使用,且必须使用在同一个程序块中,例如可以在主程序中使用,也可以在子程序中使用,例如可以在主程序中使用,也可以在子程序中使用,或者在中断程序中使用,但不允许从主程序跳转到子或者在中断程序中使用,但不允许从主程序跳转到子程序或中断程序中,当然也不允许从一个子程序跳到程序或中断程序中,当然也不允许从一个子程序跳

31、到另一个子程序中或者中断程序、主程序里。另一个子程序中或者中断程序、主程序里。程序控制指令如表程序控制指令如表6-1所示。所示。30 2022-7-266.2.3 分支结构分支结构 分支结构分支结构又称为选择分支结构。如果在不同条件下,又称为选择分支结构。如果在不同条件下,需要执行不同的程序段时,就需要用分支结构。例如,需要执行不同的程序段时,就需要用分支结构。例如,机电设备控制中,经常存在手动和自动两种模式,在机电设备控制中,经常存在手动和自动两种模式,在两种模式下的控制程序是不同的,这时就可以用分支两种模式下的控制程序是不同的,这时就可以用分支结构实现有选择的控制。结构实现有选择的控制。分

32、支结构中是由判定条件来控制程序运行方向的,分支结构中是由判定条件来控制程序运行方向的,如图如图6-146-14所示。当条件成立时,执行程序段所示。当条件成立时,执行程序段2 2;当条件;当条件不成立时,执行程序段不成立时,执行程序段1 1。分支结构一般通过跳转指令。分支结构一般通过跳转指令实现,在图实现,在图6-156-15中,根据中,根据I0.0I0.0的状态决定执行程序段的状态决定执行程序段1 1还是程序段还是程序段2 2。当。当I0.0I0.0有输入,则执行程序段有输入,则执行程序段2 2,否则,否则执行程序段执行程序段1 1。31 2022-7-266.2.3 分支结构分支结构(续)(

33、续)图6-14 分支结构 图6-15用JMP指令实现分支结构 32 2022-7-266.2.4 循环结构循环结构 循环循环是计算机程序的基本结构。但在是计算机程序的基本结构。但在PLCPLC中,需要注中,需要注意意PLCPLC程序本身也是循环的程序本身也是循环的。所谓循环结构是指。所谓循环结构是指PLCPLC大大循环中间的一段循环程序,在应用时特别需要注意。循环中间的一段循环程序,在应用时特别需要注意。循环结构如图循环结构如图6-166-16所示,循环变量是循环的控制变所示,循环变量是循环的控制变量,每次循环中循环变量的值都会改变。循环结构中量,每次循环中循环变量的值都会改变。循环结构中有一

34、个分支结构,用于判断是否结束循环。图有一个分支结构,用于判断是否结束循环。图6-176-17是是用用FORFOR指令实现循环结构的例子,当指令实现循环结构的例子,当I2.0=1I2.0=1时,外循环时,外循环执行执行100100次;当次;当I2.1=1I2.1=1时,外循环每执行时,外循环每执行1 1次,内循环次,内循环执行执行2 2次。次。西门子西门子S7-300/400S7-300/400的基本指令中没有的基本指令中没有FORFOR指令,这时指令,这时也可以用也可以用JMPJMP等指令实现循环结构。在实际应用中,循等指令实现循环结构。在实际应用中,循环结构的应用是比较少的。环结构的应用是比

35、较少的。33 2022-7-266.2.4 循环结构循环结构(续)(续)图6-16循环结构 图6-17 用FOR指令实现循环结构 34 2022-7-266.2.5 子程序结构子程序结构 子程序子程序的使用有两种情况。一是程序比较长,为了的使用有两种情况。一是程序比较长,为了使其结构清楚,将其分成若干段,每一段写出一个子使其结构清楚,将其分成若干段,每一段写出一个子程序;第二种情况是某些程序段需要反复执行,这时程序;第二种情况是某些程序段需要反复执行,这时将其写成子程序形式,可以减少代码长度,降低系统将其写成子程序形式,可以减少代码长度,降低系统内存资源的占用,提高程序的效率和结构化程度。内存

36、资源的占用,提高程序的效率和结构化程度。子程序结构如图子程序结构如图6-186-18所示。子程序分为一般子程序所示。子程序分为一般子程序和中断子程序,两者从程序的角度看是一致的,只是和中断子程序,两者从程序的角度看是一致的,只是调用的方法不同。一般子程序用程序调用,而中断子调用的方法不同。一般子程序用程序调用,而中断子程序是由中断调用的,所以又称为中断服务子程序。程序是由中断调用的,所以又称为中断服务子程序。35 2022-7-265.2.5 子程序结构(续)子程序结构(续)图6-18 子程序结构 36 2022-7-266.1 西门子PLC的程序结构6.2 程序控制指令与结构化编程6.3 S

37、7-200的中断系统6.4 S7-300/400的中断与组织块6.5 S7-300/400的系统功能与系统功能块本章的主要内容本章的主要内容 37 2022-7-266.3.16.3.1中断程序类型与优先级中断程序类型与优先级S7-200支持以下中断程序类型:支持以下中断程序类型:(1)通信端口中断通信端口中断:S7-200生成允许程序控制通信端生成允许程序控制通信端口的事件。口的事件。(2)I/O中断中断:S7-200生成用于各种生成用于各种I/O状态不同变化状态不同变化的事件。这些事件允许程序对高速计数器、脉冲输出的事件。这些事件允许程序对高速计数器、脉冲输出或输入的升高或降低状态作出应答

38、。或输入的升高或降低状态作出应答。(3)时基中断时基中断:S7-200生成允许程序按照具体间隔作生成允许程序按照具体间隔作出应答的事件。出应答的事件。38 2022-7-266.3.16.3.1西门子西门子S7-200S7-200的中断的中断 (续续)39 2022-7-265.3.15.3.1西门子西门子S7-200S7-200的中断的中断 (续续)40 2022-7-266.3.16.3.1西门子西门子S7-200S7-200的中断的中断 (续续)41 2022-7-266.3.2 6.3.2 中断指令与中断设置中断指令与中断设置 中断指令如表中断指令如表6-3所示。要使用中断,所示。要使

39、用中断,首先必须启动首先必须启动中断,并且将中断事件和中断服务子程序相关联。中断,并且将中断事件和中断服务子程序相关联。可以可以将多个中断和一个中断服务子程序相关联。将多个中断和一个中断服务子程序相关联。42 2022-7-266.3.26.3.2西门子西门子S7-200S7-200的中断的中断 (续续)中断的应用是很方便的。如图中断的应用是很方便的。如图5-19所示,在完成启所示,在完成启动中断(动中断(ENI指令)后,将中断事件(指令)后,将中断事件(0号中断,号中断,I0.0上升沿)和中断响应子程序建立关联。当上升沿)和中断响应子程序建立关联。当I0.0有上升有上升沿,沿,0号中断事件出

40、现,系统会自动调用中断子程序号中断事件出现,系统会自动调用中断子程序INT_0。中断子程序在中断启动的条件下,在中断事。中断子程序在中断启动的条件下,在中断事件发生时被调用。注意,用户不能在程序中通过子程件发生时被调用。注意,用户不能在程序中通过子程序调用指令调用中断子程序。序调用指令调用中断子程序。图6-19 启动中断和附加中断程序 43 2022-7-266.3.26.3.2西门子西门子S7-200S7-200的中断的中断 (续续)中断的应用很多。例如,我们经常通过定时中断来中断的应用很多。例如,我们经常通过定时中断来读取模拟转换的数值,程序如图读取模拟转换的数值,程序如图6-20所示。所

41、示。图6-20 通过定时中断读取模拟转换的数值 44 2022-7-266.3.3 6.3.3 共享数据共享数据 用户可以在主程序和一个或多个中断程序之间共用户可以在主程序和一个或多个中断程序之间共享数据。因为无法预测享数据。因为无法预测S7-200何时可能生成中断,最何时可能生成中断,最好限制中断程序和程序中其他位置使用的变量数目。好限制中断程序和程序中其他位置使用的变量数目。由于主程序中指令执行被中断事件中断时中断程序采由于主程序中指令执行被中断事件中断时中断程序采取的措施,会导致共享数据一致性故障。使用中断例取的措施,会导致共享数据一致性故障。使用中断例行程序局部变量表,以确保中断例行程

42、序仅使用临时行程序局部变量表,以确保中断例行程序仅使用临时内存,并且不改写程序其他位置使用的数据。内存,并且不改写程序其他位置使用的数据。45 2022-7-266.1 西门子PLC的程序结构6.2 程序控制指令与结构化编程6.3 S7-200的中断系统6.4 S7-300/400的中断与组织块6.5 S7-300/400的系统功能与系统功能块本章的主要内容本章的主要内容 46 2022-7-266.4.1 S7-300/4006.4.1 S7-300/400的中断与组织块概述的中断与组织块概述 在在S7-300/400中,将所有的中断服务子程中,将所有的中断服务子程序称为组织块,用序称为组织

43、块,用OB表示。组织块是系统程表示。组织块是系统程序和用户程序之间的接口。序和用户程序之间的接口。组织块是系统调用程序块,在系统事件或组织块是系统调用程序块,在系统事件或中断事件发生后由系统程序调用,从而得以执中断事件发生后由系统程序调用,从而得以执行。常见的事件或时刻有:在行。常见的事件或时刻有:在CPU启动时、在启动时、在一个循环或时钟执行时、当发生故障时以及当一个循环或时钟执行时、当发生故障时以及当发生硬件中断时。发生硬件中断时。不同组织块具有不同的优先级,组织块根不同组织块具有不同的优先级,组织块根据其优先级执行。据其优先级执行。47 2022-7-266.4.26.4.2西门子西门子

44、S7-300/400S7-300/400的组织块的组织块 S7-300/400中的组织块全部都是中断服务子程序,中的组织块全部都是中断服务子程序,如表如表6-4所示。所示。OB1是主程序循环中断、是主程序循环中断、OB100(OB101、OB102)是启动中断,也是启动中断服务)是启动中断,也是启动中断服务程序。除此之外,还有时间中断、延时中断、定时中程序。除此之外,还有时间中断、延时中断、定时中断、硬件中断和错误中断等。断、硬件中断和错误中断等。48 2022-7-266.4.26.4.2西门子西门子S7-300/400S7-300/400的组织块的组织块49 2022-7-266.4.26

45、.4.2西门子西门子S7-300/400S7-300/400的组织块的组织块 1.主程序循环组织块(OB1)PLC的系统程序周期性地执行组织块的系统程序周期性地执行组织块OB1程序。程序。CPU启动后,启动后,OB1循环执行,每个扫描周期执行一次。用户可循环执行,每个扫描周期执行一次。用户可以在以在OB1中调用其他功能块(中调用其他功能块(FB,SFB)或功能()或功能(FC,SFC)。)。OB1执行完后,系统程序发送全局数据。再次启动执行完后,系统程序发送全局数据。再次启动OB1之前,系统程序会将输出映像区数据写入输出接口,之前,系统程序会将输出映像区数据写入输出接口,然后进行输入采样,刷新

46、输入映像区并接收全局数据。然后进行输入采样,刷新输入映像区并接收全局数据。PLC的系统程序会监视最长的循环周期时间,保证最长的的系统程序会监视最长的循环周期时间,保证最长的响应时间。最长循环时间默认设置为响应时间。最长循环时间默认设置为150ms。除除OB90OB90以外,以外,OB1OB1的优先级最低,其他所有的优先级最低,其他所有OBOB均可中断均可中断OB1OB1的执行。的执行。由于由于OB1OB1在每个扫描周期中均会被执行一次,因此称在每个扫描周期中均会被执行一次,因此称为主程序。为主程序。50 2022-7-266.4.26.4.2西门子西门子S7-300/400S7-300/400

47、的中断的中断 (续续)2.日期时间中断组织块(日期时间中断组织块(OB10OB17)在硬件组态在硬件组态CPUCPU属性设置中,可以在属性设置中,可以在 Time of Day Time of Day InterruptsInterrupts卡片中设置日期时间中断。当设置了卡片中设置日期时间中断。当设置了OB10OB10后,后,OB10OB10必须在必须在PLCPLC中存在,否则中存在,否则CPUCPU调用不到调用不到OB10OB10将将转为转为STOPSTOP状态。状态。OB10OB10到到OB17OB17都是日期时间中断,都是日期时间中断,S7-S7-300300只支持只支持OB10OB1

48、0,S7-400S7-400支持的日期时间中断会多一些。支持的日期时间中断会多一些。3.延时中断组织块(延时中断组织块(OB20OB23)通过调用通过调用SFC32SFC32,可以使,可以使CPUCPU在某外部条件发生后,延在某外部条件发生后,延时指定的时间后,调用延时中断时指定的时间后,调用延时中断OB20OB20。其中的外部条。其中的外部条件调用件调用SFC32SFC32,而延时时间是在调用的,而延时时间是在调用的SFC32SFC32中定义的。中定义的。S7-300S7-300只支持只支持OB20OB20,S7-400S7-400支持支持OB20OB20OB23OB23共共4 4个。个。5

49、1 2022-7-266.4.26.4.2西门子西门子S7-300/400S7-300/400的中断的中断 (续续)4.循环中断组织块(循环中断组织块(OB30OB38)在硬件组态在硬件组态CPUCPU属性设置中,可以在属性设置中,可以在Cyclic Cyclic InterruptInterrupt卡片中设置定时中断。缺省的卡片中设置定时中断。缺省的OB35OB35调用时间调用时间间隔为间隔为100ms100ms,用户可以设置的范围为,用户可以设置的范围为1 160000ms60000ms。需。需要注意的是要注意的是OB35OB35的执行时间必须小于设置的时间间隔,的执行时间必须小于设置的时

50、间间隔,否则会激发否则会激发OB80OB80(定时中断错误)。(定时中断错误)。5.硬件中断组织块(硬件中断组织块(OB40OB47)通过组态,可以使通过组态,可以使CPU响应外部模块的硬件中断响应外部模块的硬件中断请求,调用硬件中断请求,调用硬件中断OB40。S7-300只支持只支持OB40,S7-400支持支持OB40OB47共共8个。个。52 2022-7-266.4.26.4.2西门子西门子S7-300/400S7-300/400的中断的中断 (续续)6.状态中断组织块(OB55)一个状态中断组织块一个状态中断组织块OBOB(OB55OB55)只在有)只在有DPV1DPV1能力的能力的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(可编程序控制器原理及应用第06章课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|