第六章S7-200PLC功能指令二课件.ppt
《第六章S7-200PLC功能指令二课件.ppt》由会员分享,可在线阅读,更多相关《第六章S7-200PLC功能指令二课件.ppt(160页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章S7-200PLCS7-200PLC功能指令功能指令主讲:李宏伟主讲:李宏伟4 4:子程序及应用子程序及应用5 5:中断程序及应用中断程序及应用6 6:高速计数器功能及应用高速计数器功能及应用7 7:高速脉冲输出功能及应用高速脉冲输出功能及应用第四节第四节 子程序及应用子程序及应用一、子程序简介一、子程序简介 子程序可以对程序子程序可以对程序 进行分块,使用子程序将进行分块,使用子程序将程序分成容易管理的小块,使程序结构简单清晰,程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护。易于查错和维护。子程序常用于需要多次反复执行相同任务的子程序常用于需要多次反复执行相同任务的地
2、方,只需要写一次子程序,别的程序在需要的时地方,只需要写一次子程序,别的程序在需要的时候调用它,而无需重写该程序。候调用它,而无需重写该程序。子程序的调用是有条件的,未调用它时不会子程序的调用是有条件的,未调用它时不会执行子程序中的指令,因此使用子程序可以减少执行子程序中的指令,因此使用子程序可以减少扫描时间。扫描时间。S7-200 CPU的控制程序由主程序、子程序和的控制程序由主程序、子程序和中断程序组成。中断程序组成。STEP7-Micro/WIN在程序编辑器在程序编辑器窗口里为每个窗口里为每个POU(程序组织单元)提供一个独(程序组织单元)提供一个独立的页。主程序总是第立的页。主程序总是
3、第1页,后面是子程序和中断页,后面是子程序和中断程序。程序。各个程序在编辑器窗口里被分开,编译时在各个程序在编辑器窗口里被分开,编译时在程序结束的地方自动加上无条件结束程序结束的地方自动加上无条件结束/返回指令,返回指令,用户程序可使用有条件结束用户程序可使用有条件结束/返回指令。返回指令。二、局部变量表二、局部变量表1、局部变量与全局变量局部变量与全局变量 在在SIMATIC符符号号表表或或IEC的的全全局局变变量量表表中中定定义义的的变变量量为为全全局局变变量量。程程序序中中的的每每个个POU(Program Organizational Unit,程程序序组组织织单单元元)均均有有自自己
4、己的的由由64B L存存储储器器组组成成的的局局部部变变量量表表。它它们们用用来来定定义义有有范范围围限限制制的的变变量量,局局部部变变量量只只在在它它被被创创建建的的POU中中有有效效。与与之之相相反反,全全局局符符号号在在各各POU中中均均有有效效,只只能能在在符符号号表表/全全局局变变量量表表中中定定义义。全全局局符符号号与与局局部部变变量量名名称称相相同同时时,在在定定义义局局部部变变量量的的POU中中,该该局局部部变变量量的的定定义义优优先,该全局定义则在其它先,该全局定义则在其它POU中使用。中使用。局部变量优点:局部变量优点:在在子子程程序序中中只只用用局局部部变变量量,不不用用
5、绝绝对对地地址址或或全全局符号,子程序可以移植到别的项目去。局符号,子程序可以移植到别的项目去。如如果果使使用用临临时时变变量量(TEMP),同同一一片片物物理理存存储器可以在不同的程序中重复使用。储器可以在不同的程序中重复使用。局局部部变变量量还还用用来来在在子子程程序序和和调调用用它它的的程程序序之之间间传传递输入参数和输出参数。递输入参数和输出参数。2、局部变量的类型局部变量的类型 局部变量表中的变量类型区定义的变量有:局部变量表中的变量类型区定义的变量有:IN:传传入入子子程程序序参参数数,由由调调用用它它的的POU提提供供的的输入参数。输入参数。OUT:传传出出子子程程序序参参数数,
6、将将从从子子程程序序来来的的结结果果值返回到指定参数的位置。值返回到指定参数的位置。IN/OUT:传入:传入/传出子程序参数。传出子程序参数。TEMP:暂暂时时变变量量,只只能能在在子子程程序序内内部部暂暂时时存存储储数据。不能用来传递参数。数据。不能用来传递参数。注意:注意:只只有有在在执执行行该该POU时时,定定义义的的临临时时变变量量才才被被使使用用,POU执执行行完完后后,不不再再使使用用临临时时变变量量的的数数值值。在在主主程序或中断程序中,局部变量表只包含程序或中断程序中,局部变量表只包含TEMP变量。变量。3、局部变量的赋值局部变量的赋值 在在局局部部变变量量表表中中赋赋值值时时
7、,只只需需指指定定局局部部变变量量的的类类型型(TEMP、IN、IN_OUT或或OUT)和和数数据据类类型型,不不用用指指定定存存储储器器地地址址,程程序序编编辑辑器器按按照照子子程程序序指指令令的的调调用用顺顺序序,将将参参数数值值分分配配给给局局部部变变量量存存储储器器,起起始始地地址址是是L0.0;8个个连连续续位位的的参参数数值值分分配配一一个个字字节节,从从LX.0到到LX.7。4、在、在局部变量表中增加新的变量局部变量表中增加新的变量 对对于于主主程程序序与与中中断断程程序序,局局部部变变量量表表显显示示一一组组已已被被预预先先定定义义为为TEMP变变量量的的行行。要要在在表表中中
8、增增加加行行,只只需需用用右右键键单单击击表表中中的的某某一一行行,在在弹弹出出的的菜菜单单中中执执行行“插插入入”“行行”命命令令,在在所所选选行行的的上上部部插插入入新新的的行行。执执行行菜菜单单命命令令“插插入入”“下下一一行行”在在所所选行的下部插入新的行。选行的下部插入新的行。对对于于子子程程序序,局局部部变变量量表表显显示示数数据据类类型型被被预预先先定定义义为为IN、IN_OUT、OUT和和TEMP的的一一系系列列行行,不不能能改改变变它它们们的的顺顺序序。如如果果要要增增加加新新的的局局部部变变量量,必必须须用用鼠鼠标标右右键键单单击击已已有有的的行行,并并用用弹弹出出菜菜单单
9、在在所所击行的上面或下面插入相同类型的另一局部变量。击行的上面或下面插入相同类型的另一局部变量。5、局部变量数据类型检查局部变量数据类型检查 局局部部变变量量作作为为参参数数向向子子程程序序传传递递时时,在在该该子子程程序序的的局局部部变变量量表表中中指指定定的的数数据据类类型型必必须须与与调调用用它它的的POU中的数据类型值匹配。中的数据类型值匹配。例例如如:在在主主程程序序OB1中中调调用用子子程程序序SBR0,使使用用名名为为INPUT1的的全全局局符符号号作作为为子子程程序序的的输输入入参参数数。在在SBR0的的局局部部变变量量表表中中,已已经经定定义义了了一一个个名名为为FIRST的
10、的局局部部变变量量作作为为该该输输入入参参数数。当当OB1调调用用SBR0时时,INPUT1的的数数值值被被传传入入FIRST,INPUT1和和FIRST的数据类型必须完全匹配。的数据类型必须完全匹配。三、建立子程序三、建立子程序在在“编辑编辑”菜单中执行命令菜单中执行命令“插入插入”“子程序子程序”;在在程程序序编编辑辑器器视视窗窗中中点点击击鼠鼠标标右右键键,从从弹弹出出的的菜菜单单中中执行命令执行命令“插入插入”“子程序子程序”;新新建建的的子子程程序序,默默认认的的程程序序名名是是SBR_n,编编号号n从从0(063)开开始始按按递递增增顺顺序序生生成成。用用鼠鼠标标右右键键点点击击指
11、指令令树树中中的的子子程程序序的的图图标标,在在弹弹出出的的菜菜单单中中选选择择“重重新新命命名名”,可可以以修修改改它它们们的的名名称称。注注意意:CPU226的项目中最多可以创建的项目中最多可以创建128个子程序个子程序。四、子程序的调用(四、子程序的调用(CALLCALL指令)指令)可可以以带带参参数数或或不不带带参参数数调调用用子子程程序序。每每个个子子程程序序必必须须以以无无条条件件返返回回(RET)指指令令作作结结束束,STEP7-Micio/WIN编编程程软软件件为为每每个个子子程程序序自自动动加加入入无无条条件件返返回回(RET)指指令令。有有条条件件子子程程序序返返回回(CR
12、ET)指指令令,在在控控制制条条件件有有效效时时,终终止止子子程程序序(n)。子子程程序序执执行行完完毕毕,控控制制程程序序回回到到主主程程序序中中子程序调用(子程序调用(CALL)指令的下一条指令。)指令的下一条指令。主程序可以用子程序调用(主程序可以用子程序调用(CALL)指令来)指令来调用一个子程序。子程序调用(调用一个子程序。子程序调用(CALL)指令把)指令把程序控制权交给子程序(程序控制权交给子程序(n)。子程序结束后,)。子程序结束后,必须返回主程序。必须返回主程序。子程序被调用时,系统会保存当前的逻辑堆栈。子程序被调用时,系统会保存当前的逻辑堆栈。保存后再置栈顶值为保存后再置栈
13、顶值为1,堆栈的其他值为零,把控制,堆栈的其他值为零,把控制权交给被调用的子程序。子程序执行完毕,通过返权交给被调用的子程序。子程序执行完毕,通过返回指令自动恢复逻辑堆栈原调用点的值,把控制权回指令自动恢复逻辑堆栈原调用点的值,把控制权交还给调用程序。交还给调用程序。因因为为累累加加器器可可在在调调用用程程序序和和被被调调用用程程序序之之间间自自由由传传递递数数据据,所所以以累累加加器器的的值值在在子子程程序序调调用用开开始始时时不不需要另外保存,在子程序调用结束时也不用恢复。需要另外保存,在子程序调用结束时也不用恢复。说明:说明:在中断程序、子程序中也可调用子程序;主程序在中断程序、子程序中
14、也可调用子程序;主程序中可以嵌套调用子程序,嵌套深度为中可以嵌套调用子程序,嵌套深度为8层。中断程层。中断程序中,不能嵌套调用子程序。序中,不能嵌套调用子程序。五、带参数子程序的调用五、带参数子程序的调用1、子程序参数、子程序参数 由不超过由不超过23个字符的字母和数字组成,但第一个字符的字母和数字组成,但第一个字符必须是字母。个字符必须是字母。2、变量名、变量名 在子程序带参数调用时可以使用在子程序带参数调用时可以使用4种变量类型。种变量类型。3、变量类型、变量类型ININ类型(传入子程序)类型(传入子程序)IN/OUTIN/OUT类型(传入传出子程序)类型(传入传出子程序)OUTOUT类型
15、(传出子程序)类型(传出子程序)TEMPTEMP类型(暂时型)类型(暂时型)子程序在带参数调用时,最多可以带子程序在带参数调用时,最多可以带16个参数,个参数,每个参数包含变量名、变量类型和数据类型。这些每个参数包含变量名、变量类型和数据类型。这些参数在子程序的局部变量表中进行定义。参数在子程序的局部变量表中进行定义。4、使用局部变量表、使用局部变量表 当给子程序传递数据时,这些参数被存放在子当给子程序传递数据时,这些参数被存放在子程序的局部变量存储器中,当调用子程序时,输入程序的局部变量存储器中,当调用子程序时,输入参数被拷贝到子程序的局部变量存储器中,当子程参数被拷贝到子程序的局部变量存储
16、器中,当子程序完成时,从局部变量存储器拷贝输出参数到指定序完成时,从局部变量存储器拷贝输出参数到指定的输出参数地址。的输出参数地址。局部变量表使用局部变量存储器局部变量表使用局部变量存储器L L,CPUCPU在执行在执行子程序时,自动分配给每个子程序子程序时,自动分配给每个子程序6464个局部变量存个局部变量存储器单元,在进行子程序参数调用时,将调用参数储器单元,在进行子程序参数调用时,将调用参数按照变量类型按照变量类型ININ,IN/OUTIN/OUT,0UT0UT和和TEMPTEMP的顺序依次的顺序依次存入局部变量表中。存入局部变量表中。5、将参数值指定给子程序中的局部内存时应、将参数值指
17、定给子程序中的局部内存时应遵守下列规则:遵守下列规则:字节、字和双字数值被指定给局部内存,位于字节、字和双字数值被指定给局部内存,位于字节边界(字节边界(LBx、LWx或或LDx)位置。在带参数的)位置。在带参数的“调用子程序调用子程序”指令中,参数必须与子程序局部变量表指令中,参数必须与子程序局部变量表中定义的变量完全匹配。参数顺序必须以输入参数开中定义的变量完全匹配。参数顺序必须以输入参数开始,其次是输入输出参数,然后是输出参数。始,其次是输入输出参数,然后是输出参数。一至八个连续位参数值被指定给从一至八个连续位参数值被指定给从Lx.0开始开始持续至持续至Lx.7的单字节。的单字节。参数值
18、指定给局部内存的顺序由参数值指定给局部内存的顺序由CALL指定,指定,参数从参数从L0.0开始。开始。例:带参数的子程序调用如下所示。例:带参数的子程序调用如下所示。注释:注释:Micro/WIN保留保留L内存的最上方的内存的最上方的4个字节个字节(LB60-LB63),用于调用参数数据。),用于调用参数数据。/L内存被用于保存布尔输入参数状态,内存被用于保存布尔输入参数状态,/此类参数在此类参数在LAD和和FBD中被显示为使能位输入。中被显示为使能位输入。/从而允许本网络在从而允许本网络在LAD、FBD和和STL编辑器中显示。编辑器中显示。名为名为“模拟量计算模拟量计算”的子程序如下图所示,
19、在该子的子程序如下图所示,在该子程序的局部变量表中,定义了名为程序的局部变量表中,定义了名为“转换值转换值”、“系数系数1 1”和和“系数系数”的输入(的输入(ININ)变量,名为)变量,名为“模拟值模拟值”的的输出(输出(OUTOUT)变量,和名为)变量,和名为“暂存暂存”的临时(的临时(TEMPTEMP)变量。)变量。局部变量表最左边的一列是每个参数在局部存储器(局部变量表最左边的一列是每个参数在局部存储器(L L)中的地址。中的地址。#表示局部变量,软件自动添加表示局部变量,软件自动添加。如果用语句表编程,子程序调用指令的格式为:如果用语句表编程,子程序调用指令的格式为:CALL 子程序
20、号,参数子程序号,参数1,参数,参数2,参数参数n,n=116。上梯形图对应的语句表程序为:上梯形图对应的语句表程序为:LD I0.1CALL 模拟量计算,模拟量计算,AIW2,VW20,+2356,VD40六、子程序中定时器的使用六、子程序中定时器的使用 调用子程序时,子程序中的定时器正常计时;调用子程序时,子程序中的定时器正常计时;停止调用子程序时,线圈在子程序内的位元件的停止调用子程序时,线圈在子程序内的位元件的ON/OFF状态保持不变。如果在停止调用时子程序状态保持不变。如果在停止调用时子程序中的定时器正在定时,中的定时器正在定时,100ms定时器将停止定时,定时器将停止定时,当前值保
21、持不变,重新调用时继续定时;但当前值保持不变,重新调用时继续定时;但1ms和和10ms定时器将继续定时,定时时间到时,它们的定时器将继续定时,定时时间到时,它们的定时器位变为定时器位变为1状态,且可以在子程序之外起作用。状态,且可以在子程序之外起作用。七、子程序应用举例七、子程序应用举例例例1:用两个子程序分别控制两台电动机的启停,:用两个子程序分别控制两台电动机的启停,主程序中调用子程序实现控制。主程序中调用子程序实现控制。OB1SBR0SBR1方案一:无参数传递方案一:无参数传递OB1方案二:带参数传递方案二:带参数传递LD I0.0=L60.0LD I0.1=L63.7LD I0.2=L
22、63.6LD L60.0CALL SBR_0:SBR0,L63.7,L63.6,Q0.0LD I1.0=L60.0LD I1.1=L63.7LD I1.2=L63.6LD L60.0CALL SBR_0:SBR0,L63.7,L63.6,Q1.0SBR0方案二:带参数传递方案二:带参数传递LD#启动启动:L0.0O#电机电机:L0.2AN#停止停止:L0.1=#电机电机:L0.2例例2:设计一记录设备运行时间的子程序,符号名:设计一记录设备运行时间的子程序,符号名为为“运行时间运行时间”。设备运行时。设备运行时I0.0为为ON,用,用I0.0的的常开触点调用子程序。常开触点调用子程序。OB1S
23、BR0第五节第五节 中断程序及应用中断程序及应用一、中断程序简介一、中断程序简介 中断程序可以为中断程序可以为PLC内部或外部的特殊事件内部或外部的特殊事件提供快速反应,在提供快速反应,在PLC控制系统中,对于不定期产控制系统中,对于不定期产生的继续处理事件,常通过采用中断处理技术来完生的继续处理事件,常通过采用中断处理技术来完成。成。中断程序不是由程序调用,而是在中断事件中断程序不是由程序调用,而是在中断事件发生时由系统调用。发生时由系统调用。当当CPU响应中断请求后,会暂时停止当前正响应中断请求后,会暂时停止当前正在执行的程序,进行现场保护,然后转到相应的在执行的程序,进行现场保护,然后转
24、到相应的中断服务程序中去处理。中断服务程序中去处理。一旦中断程序处理结束,立即恢复现场,将一旦中断程序处理结束,立即恢复现场,将保存起来的现场数据和状态重新装入,返回到源程保存起来的现场数据和状态重新装入,返回到源程序继续执行。序继续执行。在在S7-200中,中断服务程序的调用和处理由中,中断服务程序的调用和处理由中断指令来完成。一般中断程序都较为短小和简明中断指令来完成。一般中断程序都较为短小和简明扼要,这样可以加快中断程序执行的速度,使其他扼要,这样可以加快中断程序执行的速度,使其他程序不会受到长时间的延误。程序不会受到长时间的延误。二、中断源及中断事件二、中断源及中断事件1、中断源及种类
25、、中断源及种类 中断源中断源,即中断事件发出中断请求的来源。,即中断事件发出中断请求的来源。S7-200PLC具有最多可达具有最多可达34个中断源,每个中断源都分个中断源,每个中断源都分配一个编号用以识别,称为配一个编号用以识别,称为中断事件号中断事件号。这些中断源。这些中断源大致分为三大类:大致分为三大类:通信中断通信中断、输入输出中断输入输出中断和和时基中时基中断断。S7-200中,过程中断分为通信中断和输入输出中,过程中断分为通信中断和输入输出中断。通信中断包括通信口中断。通信中断包括通信口0和通信口和通信口1产生的中断;产生的中断;输入输出中断包括外部输入中断、高速计数器中断输入输出中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 S7 200 PLC 功能 指令 课件
限制150内