模块四特殊功能指令的应用_第1页
模块四特殊功能指令的应用_第2页
模块四特殊功能指令的应用_第3页
模块四特殊功能指令的应用_第4页
模块四特殊功能指令的应用_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

4.1程序控制类指令模块四特殊功能指令的应用

4.2步进顺序控制指令4.3中断处理指令4.4高速处理指令4.5时钟指令及其应用4.1程序控制类指令

程序控制类指令用于程序运行状态的控制,主要包括有条件结束、暂停、监视计时复位、跳变、循环、子程序调用、顺序控制等指令。

4.1.1有条件结束(END)指令 所谓有条件结束(END)指令,就是执行条件成立时结束主程序,返回主程序起点。条件结束指令用在无条件结束(MEND)指令之前。用户程序必须以无条件结束指令结束主程序。西门子可编程系列编程软件自动在主程序结束时加上一个无条件结束(MEND)指令。条件结束指令不能在子程序或中断程序中使用。其指令格式如图4-1所示。LDM0.0END

图4-1END/MENDa)有条件结束指令

b)无条件结束指令指令格式

所谓暂停(STOP)指令,是指当条件符合时,能够引起CPU的工作方式发生变化,从运行方式(RUN)进入停止方式(STOP),立即终止程序执行的指令。如果STOP指令在中断程序中执行,那么该中断程序立即终止,并且忽略所有挂起的中断,继续扫描主程序的剩余部分。在本次扫描的最后,完成CPU从RUN到STOP方式的转换。其指令格式如图4-2所示。

LDSM5.0//SM5.0为检测到I/O错误时置1STOP//强制转换至STOP(停止)模式图4-2STOP指令格式注意:END和STOP是有区别的,见图图4-3所示,它实现CPU从RUN到STOP方式的转换,在这个程序中,当I0.0接通时,Q0.0有输出,若I0.1接通,终止用户程序,Q0.0仍保持接通,下面的程序不会执行,并返回主程序起始点。若I0.0断开,接通I0.2,则Q0.1有输出,若将I0.3接通则Q0.0和Q0.1均复位,CPU转为STOP方式。

LDI0.0=Q0.0LDI0.1ENDLDI0.2=Q0.0LDI0.3STOP图4-3END/STOP指令的区别4.1.3监视计时器复位(WDR)指令

监视计时器复位(WDR)指令(又称看门狗定时器复位指令),是指为了保证系统可靠运行,PLC内部设置了系统监视计时器WDT,用于监视扫描周期是否超时,每当扫描到WDT计时器时,WDT计时器将复位。

WDT计时器有一个设定值(100~300ms)。系统正常工作时,所需扫描时间小于WDT的设定值,WDT计时器被计时复位;系统故障情况下,扫描周期大于WDT计时器设定值,该计时器不能及时复位,则报警并停止CPU运行,同时复位输入、输出。这种故障称为WDT故障,以防止因系统故障或程序进入死循环而引起的扫描周期过长。系统正常工作时,有时会因为用户程序过长或使用中断指令、循环指令使扫描时间过长而超过WDT计时器的设定值,为防止这种情况下监视计时器动作,可使用监视计时器复位(WDR)指令,使WDT计时器复位。使用WDR计时器复位,在终止本次扫描之前,下列操作过程将被禁止:通信(自由端口方式除外)、I/O(立即I/O除外)、强制更新、SM位更新(SM0,SM5~SM29不能被更新)、运行时间诊断、在中断程序中的STOP指令。监视计时器复位(WDR)指令的用法如图4-4所示。LDM2.5//M2.5接通时WDR//重新触发WDR,允许扩展扫描时间

图4-4监视计时器复位用法举例4.1.4跳转(JMP)与标号(LBL)指令 跳转(JMP)指令,是指当指令执行后,可使程序流程转到同一程序中的具体标号(n)标号(LBL)指令,是指标记跳转目的地的位置(n)指令。指令操作数n为常数,通常为0~255。跳转指令和相应标号指令必须在同一程序段中使用。跳转与跳转标号指令的格式及功能见表4-1,跳转(JMP)指令与标号(LBL)的指令的用法如图4-5所示。 表4-1跳转与跳转标号指令的格式及功能梯形图LAD语句表STL功能JMPn条件满足时,跳转指令(JMP)可使程序转移到同一程序的具体标号(n)处

LBLn跳转标号指令(LBL)标记跳转目的地的位置(n)

图4-5所示的梯形图中,当JMP条件满足(即10.0为ON时)程序跳转指令LBL标号以后的指令,而在JMP和LBL之间的指令一概不执行,在这个过程中即使I0.1接通也不会有Q0.0输出。当JMP条件不满足时,则当I0.0接通QO.0有输出。图4-5跳转与标号指令用法举例I0.3得电,执行JMP指令,程序跳转到标号4处I0.3不得电时,运行起保停程序I0.3不得电时,运行起保停程I0.3不得电,执行JMP指令,程序跳转到标号5处I0.3得电,运行点动控制程序4.1.5循环指令(FOR、NEXT)

循环指令的功能是重复执行相同功能的计算和逻辑处理程序段,极大地优化了程序结构。该指令有两个,分别为循环开始指令(FOR)和循环结束指令(NEXT)。指令的格式及功能见表4-2,循环开始指令的功能是作为循环体的开始,其梯形图如图4-6所示。梯形图LAD语句表STL功能FORINDX,INIT,FINAL条件满足时,循环开始NEXT循环结束

循环开始指令有3个数据输入端,输入数据类型均为整数型。INDX为当前循环计数,INIT为循环初值,FINAL为循环终值。其中,当前循环计数INDX,其操作数为VW、IW、QW、MW、SW、SMW、LW、T、C、AC、*VD、*AC和*CD;循环初值INIT,循环终值FINAL,它们的操作数为:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、常数、*VD、*AC和*CD。循环结束指令的功能是结束循环体。 执行循环指令时,FOR和NEXT指令必须配合使用。循环指令可以嵌套使用,但最多不能超过8层,且循环体之间不可有交叉。使能有效时,循环指令各参数将自动复位。 循环指令的用法举例,如图4-7所示,该梯形图表示当I0.0的状态为ON时,①所示的外循环执行5次,由VW200累计循环次数;当I0.1的状态为ON时,外循环每执行一次,②所示的内循环执行4次,且由VW2l0累计循环次数。图4-7循环与标号指令用法举例4.1.6子程序指令

S7-200CPU的控制程序由主程序,子程序和中断程序组成。STEP7-Micio/WIN在程序编辑器窗口里为每个POU(ProgramorganizationalUnit程序组织单元)提供一个独立的页,主程序总是第1页,后面是子程序或中断程序。子程序常用于需要多次反复执行相同任务的地方,只需要写一次子程序,其他的程序在需要的时候调用它,而无须重写该程序。子程序的调用是有条件的,未调用它时不会执行子程序中的指令,因此使用子程序可以减少扫描时间。

使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护。如果子程序中只使用局部变量,因为与其他POU没有地址冲突,可以将子程序移植到其他项目。为了移植子程序,应避免使用全局符号和变量,例如V存储器中的绝对地址。 可以采用下列方法创建子程序:在“编辑”菜单中执行命令“插入(Insert)”“子程序(Subroutine)”;或在程序编辑器视窗中右击并从弹出的菜单中执行命令“插入(Insert)”“子程序(Subroutine)”,程序编辑器将从原采的POU显示进入新的子程序。用右击指令树中的子程序或中断程序的图标,在弹出的菜单中选择“重命名”,以达到修改它们的名称。

主程序可以用子程序调用(CALL)指令来调用一个子程序。子程序调用(CALL)指令把程序控制权交给子程序(n),子程序结束后,必须返回主程序。可以带参数或不带参数调用子程序,每个子程序必须以无条件返回(RET)指令作为结束,STEP7-Micio/WIN编程软件为每个子程序自动加入无条件返回(RET)指令。有条件子程序返回(CRET)指令,在控制条件有效时,终止子程序(n)。子程序执行完毕,控制程序回到主程序中子程序调用(CALL)指令的下一条指令。其指令的格式及功能见表4-3。1.子程序调用指令、子程序返回指令

表4-3子程序调用与子程序标号、子程序返回指令的格式及功能梯形图LAD语句表STL指令功能CALLSBR_n子程序调用与标号指令(CALL)把程序的控制权交给子程序(SBR_n)CRET有条件子程序返回指令(CRET)根据该指令前面的逻辑关系,决定是否终止子程序(SBR_n)无条件子程序返回指令(RET)立即终止子程序的执行

在中断程序、子程序中也可调用子程序,但在子程序中不能调用自己,子程序的嵌套深度为8层。调用不带参数子程序并从子程序返回的举例如图4-8所示。图4-8子程序指令的编程举例a)主程序

b)子程序0c)子程序1子程序被调用时,系统会保存当前的逻辑堆栈。保存后再置栈顶值为1,堆栈的其他值为零,把控制权交给被调用的子程序。子程序执行完毕,通过返回指令自动恢复逻辑堆栈原调用点的值,把控制权交还给调用程序。主程序和子程序共用累加器。调用子程序时无须对累加器作存储及重装操作。

(1)局部变量与全局变量在SIMATIC符号表或IEC的全局变量表中定义的变量为全局变量。程序中的每个程序POU均有自己的由64字节存储器组成的局部变量表。它们用来定义有范围限制的变量,局部变量只在它被创建的POU中有效。与之相反,全局符号在各POU中均有效,只能在符号表/全局变量表中定义。全局符号与局部变量名称相同时,在定义局部变量的POU中,该局部变量的定义优先,该全局定义则在其他POU中使用。局部变量有以下优点:①在于程序中只用局部变量,不用绝对地址或全局符号,子程序可以移植到别的项目去。

2.局部变量表②如果使用临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。局部变量还用来在子程序和调用它的程序之间传递输入参数和输出参数。在编程软件中,将水平分裂条拉至程序编辑器视窗的顶部,则不再显示局部变量表,但它仍然存在;将分裂条下拉,将再次显示局部变量表。

(2)局部变量的类型局部变量表中的变量类型区中定义的变量有:传入子程序参数(IN)、传入/传出子程序参数(IN/OUT)、传出子程序参数(OUT)和暂时变量(TEMP)4种类型。

IN:传入子程序参数,由调用它的POU提供的输入参数。传入子程序参数可以是直接寻址数据(如:VBl0)、间接寻址数据(如:*ACl)、常数(如:16#1234)或地址(&VBl00)。

IN/OUT:传入/传出子程序参数。调用子程序时,将指定参数位置的值传到子程序,子程序返回时,从子程序得到的结果值被返回到指定参数的地址。参数可采用直接寻址和间接寻址,但常数和地址不允许作为输入/输出参数。

OUT:传出子程序参数。将从子程序来的结果值返回到指定参数的位置。输出参数可以采用直接寻址和间接寻址,但不可以是常数或地址。

TEMP:暂时变量。只能在子程序内部暂时存储数据,不能用来传递参数。在带参数调用子程序指令中,参数必须按照一定顺序排列,输入参数(IN)在最前面,其次是输入/输出参数(IN/OUT),最后是输出参数(OUT)。

(3)局部变量的赋值局部变量表使用局部变量存储器,在局部变量表中加入一个参数时,系统自动给该参数分配局部变量存储空间。当给子程序传递值时,参数放在子程序的局部变量存储器中。在局部变量表中赋值时,只需指定局部变量的类型(TEMP、IN、IN_OUT或OUT)和数据类型,不用指定存储器地址,程序编辑器按照子程序指令的调用顺序。将参数值分配给局部变量存储器,起始地址是L0.0;8个连续位的参数值分配一个字节,从LX.0到LX.7。字节、字和双字值按照字节顺序分配在局部变量存储器中(LBx,LWx或LDx)。

(4)在局部变量表中增加新的变量对于主程序与中断程序,局部变量表显示一组已被预先定义为TEMP变量的行。要在表中增加行,只需右击表中的某一行,在弹出的菜单中执行“插入”“行”命令,在所选行的上部插入新的行。执行菜单命令“插入”“下一行”在所选行的下部插入新的行。对于子程序,局部变量表显示数据类型被预先定义为IN、IN_OUT、OUT和TEMP的一系列行,不能改变它们的顺序。如果要增加新的局部变量,必须右击已有的行,并用弹出菜单在所击行的上面或下面插入相同类型的另一局部变量。

(5)局部变量数据类型检查局部变量作为参数向子程序传递时,在该子程序的局部变量表中指定的数据类型必须与调用它的POU中的数据类型值匹配。例如在主程序OBl中调用于程序SBR0,使用名为INPUTl的,全局符号作为子程序的输入参数,在SBR0的局部变量表中,已经定义了一个名为FIRST的局部变量作为该输人参数。当OBl调用SBR0时,INPUTl的数值被传入FIRST,INPUTl和FIRST的数据类型必须匹配。

3.带参数调用子程序调用“带参数调用子程序”时需要设置调用的参数,带参数调用的子程序指令如图4-9所示。参数在子程序的局部变量表中定义(见表4-4)。参数由地址、参数名称(最多8个字符)、变量类型和数据类型描述。子程序最多可以传递16个参数;局部变量表的最左列(见表4-4)是每个被传递的参数的局部变量存储器地址。当子程序调用时,输人参数值被复制到子程序的局部变量存储器。当子程序完成时,从局部变量存储器区复制输出参数值到指定的输出参数地址。图4-9带参数调用的子程序指令

表4-4STEP7-Micro/WIN局部变量L地址参数名称Name变量类型VarType数据类型DataType注释CommentENINBOOLL0.0IN1INBOOLLB1IN2INBYTEL2.0IN3INBOOLLD3IN4INDWORDLW7IN/OUTIN/OUTWORDLD9OUTlOUTDWORD名为“模拟量计算”的子程序如图4-10所示。在该子程序的局部变量表中,定义了名为“转换值”、“系数1”和“系数2”的输入(IN)变量,名为“模拟值”的输出(OUT)变量,和名为“暂存”的临时(TEMP)变量。局部变量表最左边的一列是每个参数在局部存储器(L)中的地址。图4-10局部变量表与模拟量计算子程序创建子程序后,可以在主程序、其他子程序或中断程序中调用该子程序,调用子程序时将执行子程序的全部指令,直至子程序结束,然后返回调用程序中该子程序调用指令的下一条指令之处。一个项目中最多可以创建64个子程序,CPU226型PLC支持128个子程序。子程序可以嵌套调用,最大嵌套深度为8。在中断服务程序中调用的子程序中不能再调用子程序。不禁止递归调用(子程序调用自己),但使用时应谨慎。如上例中,建立子程序后,STEP7-Micro/WIN在指令树最下面的“调用子例行程序”文件夹下面自动生成刚创建的子程序“模拟量计算”对应的图标。对于梯形图程序,在子程序局部变量表中为该子程序定义参数后,将生成客户化调用指令块(见图4-10),指令块中自动包含了子程序的输入参数和输出参数。

在梯形图程序中插入子程序调用指令时,首先打开程序编辑器视窗中需要调用子程序的POU,找到需要调用子程序的地方。双击打开指令树最下面的子程序文件夹,将需要调用的子程序图标从指令树“拖”到程序编辑器中的正确位置,放开左键,子程序块便被放置在该图4-11在主程序中调用子程序位置。也可以将矩形光标置于程序编辑器视窗中需要放置该子程序的地方,然后双击指令树中要调用的子程序,子程序图标会自动出现在光标所在的位置。如果用语句表编程,子程序调用指令的格式为:

CALL子程序号,参数1,参数2,….参数n(参数n=0~16)。子程序的语句表见图4-11。在语句表中调用带参数的子程序时,参数必须按一定的顺序排列,输入参数在最前面,其次是输入/输出参数,最后是输出参数。子程序调用指令中的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能指定被调用子程序中的局部变量。若在使用子程序调用指令后修改该子程序中的局部变量表,调用指令将变为无效。必须删除无效调用。用能反映正确参数的新的调用指令代替。

在运用PLC进行顺序控制时常采用顺序控制指令,这是一种由顺序功能图设计梯形图的步进型指令。首先用顺序功能图描述程序的设计思想,然后再用指令编写出符合程序设计思想的程序。顺序控制指令可以将顺序功能图转换成梯形图程序,顺序功能图是设计梯形图程序的基础。4.2步进顺序控制指令

功能流程图是按照顺序控制的思想,根据工艺过程,根据输出量的状态变化,将一个工作周期划分为若干顺序相连的步,在任何一步内,各输出量的ON/OFF状态不变,但是相邻两步输出量的状态是不同的。所以,可以将程序的执行分成各个程序步,通常用顺序控制继电器的位S0.0~S31.7代表程序的状态步。4.2.1功能流程图简介

使系统由当前步进入下一步的信号称为转换条件,又称步进条件。转换条件可以是外部的输入信号,如按钮、指令开关、限位开关的接通/断开等;也可以是程序运行中产生的信号,如定时器、计数器的常开触点的接通等;转换条件还可能是若干个信号的逻辑运算的组合。一个三步循环步进的功能流程图如图4-12所示,功能流程图中的每个方框代表一个状态步,如图中1、2、3分别代表程序3步状态。与控制过程的初始状态相对应的步称为初始步,用双线框表示,初始步可以没有步动作或者在初始步进行手动复位的操作。可以分别用S0.0、S0.1、S0.2表示上述的三个状态步,程序执行到某步时,该步状态位置1,其余为0。例如执行第一步时,S0.0=1,而S0.1、S0.2全为0。每步所驱动的负载,称为步动作,用方框中的文字或符号表示,并用线将该方框和相应的步相连。状态步之间用有向连线连接,表示状态步转移的方向,有向连线上没有箭头标注时,方向为自上而下、自左而右。有向连线上的短线表示状态步的转换条件。顺序控制用3条指令描述程序的顺序控制步进状态,指令格式如表4-5所示。

1.顺序步开始指令(LSCR-LoadSequenceControlRelay)顺序控制继电器位SX.Y=1时,该程序步执行。

2.顺序步结束指令(SCRE-SequenceControlRelayEnd)顺序步结束由SCR(LSCR)开始到SCRE之间顺序控制程序段的工作。

3.顺序步转移指令(SCRT-SequenceControlRelayTransition)使能输入有效时,将本顺序步的顺序控制继电器位清零,下一步顺序控制继电器位置1。4.2.2顺序控制指令

在使用顺序控制指令时应注意:(1)步进控制指令SCR只对状态元件S有效。为了保证程序的可靠运行,驱动状态元件S的信号应采用短脉冲。(2)当输出需要保持时,可使用S/R指令。(3)不能把同一编号的状态元件用在不同的程序中。例如,如果在主程序中使用S0.1,则不能在子程序中再使用。(4)在SCR段中不能使用JMP和LBL指令。即不允许跳人或跳出SCR段,也不允许在SCR段内跳转。可以使用跳转和标号指令在SCR段周围跳转。(5)不能在SCR段中使用FOR、NEXT和END指令。 表4-5顺序控制指令格式LADSTL功能说明LSCRn步开始指令,为步开始的标志,该步的状态元件的位置1时,执行该步SCRTn步转移指令,使能有效时,关断本步,进入下一步。该指令由转换条件的接点起动,n为下一步的顺序控制状态元件SCRE步结束指令,为步结束的标志

1.单序列:功能流程图的单流程结构形式简单,如图4-13(a)所示,其特点是:每一步后面只有一个转换,每个转换后面只有一步。各个工步按顺序执行,上一工步执行结束,转换条件成立,立即开通下一工步,同时关断上一工步。(2)并列序列:如图4-12(b)所示,步3为活动步,转换条件e=1,则发生步4和步6同时转换为活动步;步3变为非活动步,步4和步6被同时激活后,每个序列中活动步的进展是独立的。(3)选择序列:如图4-12(c)所示,步5为活动步,转换条件h=1,则发生步5→步8的转换;若步5为活动步,转换条件k=1,则发生步5→步10的转换,一般只容许同时选择一个序列。

4.2.3.顺序功能图的基本结构

图4-14为小车运动的示意图、顺序功能图和梯形图。设小车在初始位置时停在左边,限位开关I0.2为1状态。当按下起动按钮I0.0后,小车向右运行,运动到位压下限位开关I0.1后,停在该处,3

s后开始左行,左行到位压下限位开关I0.2后返回初始步,停止运行。根据Q0.0和Q0.1状态的变化可知,一个工作周期可以分为左行、暂停和右行三步,另外还应设置等待起动的初始步,并分别用S0.0~S0.3来代表这四步。起动按钮I0.0和限位开关的常开触点、T37延时接通的常开触点是各步之间的转换条件。

4.2.4顺序控制系统的编程方法

1.单序列的编程方法图4-13

单序列、选择序列与并行序列流程图

根据Q0.0和Q0.1状态的变化可知,一个工作周期可以分为左行、暂停和右行三步,另外还应设置等待起动的初始步,并分别用S0.0~S0.3来代表这四步。起动按钮I0.0和限位开关的常开触点、T37延时接通的常开触点是各步之间的转换条件。 在设计梯形图时,用LSCR和SCRE指令作为SCR段的开始和结束指令。在SCR段中用SM0.0的常开触点来驱动在该步中应为1状态的输出点的线圈,并用转换条件对应的触点或电路来驱动转到后续步的SCRT指令。

图4-14小车运动示意图、顺序功能图和梯形图

(2)并行序列的编程方法

1)并行序列的分支的编程方法 图4-15(a)中步S0.3之后有一个并行序列的分支,当步S0.3是活动步,转换条件I0.4满足,步S0.4与步S0.6应同时变为活动步。这是用S0.3对应的SCR段中I0.4的常开触点同时驱动指令SCRTS0.4和SCRTS0.6对应的线圈来实现的。与此同时,S0.3被自动复位,步S0.3变为不活动步。

2)并行序列的分支合并的编程方法 步S1.0之前有一个并行序列的合并,I0.7对应的转换条件是所有的前级步(即步S0.5和S0.7)都是活动步和转换条件I0.7满足,就可以使下级步S1.0置位。由此可知,应使用以转换条件为中心的编程方法,将S0.5、S0.7和I0.7的常开触点串联,来控制S1.0的置位和S0.5、S0.7的复位,从而使步S1.0变为活动步,步S0.5和S0.7变为不活动步。其梯形图如图4-15(b)所示。图4-15选择序列与并行序列的功能图和梯形图3.应用举例 编写十字路口交通灯循环显示控制的程序。控制要求:设置一个启动按钮SB1、循环开关SB2。当按下SB1后,交通灯控制系统开始工作。首先南北红灯亮,东西绿灯亮。按下循环开关SB2后,信号控制系统循环工作;否则信号系统停止,所有的信号灯灭。工作情况见示意图4-16。(也可按并列序列进行设计,大家自己思考)

图4-16十字路口交通灯循环显示控制的示意图及时序图(a)交通灯示意图

(b)时序图

1)I/O端口分配

根据控制要求,十字路口交通灯循环显示控制的PLCI/O端子分配如表4-6所示。

输入信号输出信号PLC地址电气符号功能说明PLC地址电气符号功能说明I0.0SB1启动按钮,常开Q0.0HL1南北绿灯I0.1SB2循环开关,常开Q0.1HL2南北黄灯Q0.2HL3南北红灯Q0.3HL4东西绿灯Q0.4HL5东西黄灯Q0.5HL6东西红灯表4-6I/O端口分配表(2)十字路口交通灯循环显示控制系统的PLC外部接线图如图4-17所示。图4-17彩灯依次点亮的PLC外部接线

(3)程序设计。

根据控制要求,画出交通灯控制的程序流程图如图4-18所示,根据程序流程图设计顺序梯形图程序如图4-19所示图4-19交通灯顺序梯形图程序

某专用钻床用来加工圆盘状零件上均匀分布的6个孔如图4-20(a)所示。开始自动运行时两个钻头在最上面的位置,限位开关I0.3和I0.5为ON。操作人员放好工件后,按下起动按钮I0.0,Q0.0变为ON,工件被夹紧,夹紧后压力继电器I0.1为ON,Q0.1和Q0.3使两只钻头同时开始工作,分别钻到由限位开关I0.2和I0.4设定的深度时,Q0.2和Q0.4使两只钻头分别上行,升到由限位开关I0.3和I0.5设定的起始位置时,分别停止上行,设定值为3的计数器C0的当前值加1。两只钻头都上升到位后,若没有钻完3个孔,C0的常闭触点闭合,Q0.5使工件旋转120°,旋转到位时限位开关I0.6为ON,旋转结束后又开始钻第2对孔。3对孔都钻完后,计数器的当前值等于设定值3,C0的常开触点闭合,Q0.6使工件松开,松开到位时,限位开关I0.7为ON,系统返回到初始状态。任务1.1:专用钻床的PLC控制系统图4-20专用钻床结构示意图、功能流程图

(1)I/O端口分配

根据控制要求,专用钻床控制系统的PLCI/O端子分配如表4-7所示。

输入信号输出信号PLC地址电气符号功能说明PLC地址电气符号功能说明I0.0SB1启动按钮,常开Q0.0YV1工件夹紧电磁阀I0.1SP压力继电器Q0.1KM1大钻头下降接触器线圈I0.2SQ1大钻头下限位Q0.2KM2大钻头上升接触器线圈I0.3SQ2大钻头上限位Q0.3KM3小钻头下降接触器线圈I0.4SQ3小钻头下限位Q0.4KM4小钻头上升接触器线圈表4-7I/O端口分配表(2)专用钻床的PLC控制系统的PLC外部接线图如图4-21所示。图4-21专用钻床的PLC外部接线3)程序设计。根据以上控制要求设计出的顺序功能图如图4-20(b)所示,其对应得梯形图程序如图4-22所示。图4-22专用钻床的PLC控制系统的梯形图任务1.2:传送机分检大小球的控制系统 控制要求:传送机分检大小球示意图如图4-23所示。传送机分检大小球装置可分别检出大、小铁球。如果传送机底下的电磁铁吸住小的铁球,则将小球放入装小球的箱子里;如果传送机底下的电磁铁吸住大的铁球,则将大球放入装大球的箱子里。 传送机电磁铁的上升和下降运动由一台电动机带动,传送机的左、右运动则由另外一台电动机带动。

图4-23

传送机分检大小球示意图

初始状态时,传送机停在原位。当按下传送机的启动按钮后,电磁铁在传送机的带动下下降到混合球箱中。如果传送机在下降过程中压合行程开关SQ2,电磁铁的电磁线圈通电后将吸住小球,然后上升右行至行程开关SQ4的位置,电磁铁下降,将小球放入小球箱中。如果电磁铁由原位下降后未压合行程开关SQ2,则电磁铁的电磁线圈通电后将吸住大球,然后右行至行程开关SQ5位置,电磁铁下降,将大球放入大球箱中。左行回到SQ1处重复以上过程。(1)I/O端口分配

根据控制要求,传送机分检大小球的PLC输入输出端子分配如图所示

图4-25传送机分拣大小球控制状态流程图在PLC控制系统中,对于那些不定期产生的急需处理事件,常常通过采用中断处理技术来完成。中断程序不是由程序调用,而是在中断事件发生时由系统调用。当CPU响应中断请求后,会暂时停止当前正在执行的程序,进行现场保护,在将累加器、逻辑堆栈、寄存器及特殊继电器的状态和数据保存起来后,转到相应的中断服务程序中去处理。一旦处理结束,立即恢复现场,将保存起来的现场数据和状态重新装入,返回到原程序继续执行。在S7-200中,中断服务程序的调用和处理由中断指令来完成。4.3中断处理功能指令

在PLC中,很多的信息和事件都能够引起中断,如系统内部中断和用户操作引起的中断。系统的内部中断是由系统来处理的,如编程器、数据处理器和某些智能单元等,可能随时会向CPU发出中断请求,而对这种中断请求的处理,PLC是自动完成的。而由用户引起的一方面是来自控制过程的中断;常常称为过程中断,另一方面是来自PLC内部的定时功能,这种中断常常称为时基中断。应用中多以用户引起中断为主,以下分别介绍。1.过程中断在S7-200中,过程中断可分为通信口中断和I/O中断。通信口中断包括通信口0和通信口1产生的中断;I/O中断包括外部输入中断、高速计数器中断和高速脉冲串输出中断。

(1)通信口中断:S7-200的串行通信口可以由用户程序来控制。用户可以通过编程的方法来设置波特率、奇偶校验和通信协议等参数。对通信口的这种操作方式,又称为自由通信。利用接收和发送中断可简化程序对通信的控制。(2)外部输入中断:中断的信息可以通过I0.0,I0.1,I0.2,I0.3的上升沿或下降沿输入到PLC中,系统将对此中断信息进行快速响应。4.3.1中断事件

(3)高速计数器中断:在应用高速计数器时场合下,允许响应高速计数器的当前值等于设定值,或者计数方向发生改变,或者高速计数器外部复位等事件使高速计数器向CPU提出的中断请求。

(4)高速脉冲串输出中断:允许PLC响应完成输出给定数量的高速脉冲串时引起的中断。

2.时基中断在S7-200中,时基中断可以分为定时中断和定时器中断。

(1)定时中断:定时中断响应周期性的事件,按指定的周期时间循环执行。周期时间以1ms为计量单位,周期时间可从1~255ms。定时中断有两种类型:定时中断0和定时中断1,它们分别把周期时间写入特殊寄存器SMB34和特殊寄存器SMB35。对模拟量信号运算控制时,利用定时中断可以设定采样周期,实现对模拟量的数据采样。(2)定时器中断:定时器中断是利用指定的定时器设定的时间产生中断。在S7-200中,指定的定时器为1ms的定时器T32和定时器T96。中断允许后,定时器T32和T96的当前值等于预置值时就发生中断。在S7-200的CPU22X中,可以响应最多34个中断事件,每个中断事件分配不同的编号,中断事件号如表4-10所列。中断指令包括中断允许ENI、中断禁止DISI、中断连接指令ATCH、中断分离DTCH、中断返回RETI和CRETI、中断服务程序标号。其指令格式见表4-11所示。 4.3.2中断指令

说明:(1)操作数INT及n用来指定中断服务程序标号,取值为0~127;(2)EVNT用于指定被连接或被分离的中断事件,其编号对22X系列PLC为0~33;(3)在STEP7-Micro/WIN编程软件中无INT指令,中断服务程序的区分由不同的中断程序窗口来辨识;(4)无条件返回指令RETI是每一个中断程序所必须有的,在STEP7-Micro/WIN编程软件中可自动在中断服务程序后加入该指令。

在PLC中,CPU一般在指定的优先级内按照先来先服务的原则响应中断事件的中断请求,在任何时刻,CPU只执行一个中断程序。当CPU按照中断优先级响应并执行一个中断程序时,就不会响应其他中断事件的中断请求(尽管此时可能会有更高级别的中断事件发出中断请求),直到将当前的中断程序执行结束。在CPU执行中断程序期间,对新出现的中断事件仍然按照中断性质和优先级的顺序分别进行排队,形成中断队列。CPU22X系列的中断队列的长度如表4-12所列。如果超过规定的中断队列长度,则产生溢出,使特殊继电器置位。4.3.3中断程序的调用原则1.中断优先级

在S7-200的中断系统中,将全部中断事件按中断性质和轻重缓急分配不同的优先级,使得当多个中断事件同时发出中断请求时,按照优先级从高到低进行排队。优先级的顺序按照中断性质分,依次是通信中断、高速脉冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中断。各个中断事件的优先级如表4-10所列。2.中断队列 表4-12中断队列的长度及溢出位在S7-200中,无中断嵌套功能,但在中断程序中可以调用一个嵌套子程序,因为累加器和逻辑堆栈在中断程序和被调用的子程序中是公用的。多个中断事件可以调用同一个中断服务程序,但是同一个中断事件不能同时指定调用多个中断服务程序,否则,当某个中断事件发生时,CPU只调用为该事件指定的最后一个中断服务程序。4.3.4应用举例【例4-1】编程完成采样工作,要求每10ms采样一次 分析:完成每10ms采样一次,需用定时中断,查表4-10可知,定时中断0的中断事件号为10。因此在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT-0连接,全局开中断。在中断程序0中,将模拟量输入信号读入,程序如图4-32所示。图4-32定时中断举例LDI0.0MOVB10,SMB34//将采样周期设为10毫秒ATCHINT_0,10//将事件10连接INT_0ENI//全局开中断LDSM0.0MOVWAIW0,VW100//读入模拟量AIW0【例4-2】利用定时器中断功能编制一个程序,实现如下功能:当I0.0由OFF→ON,Q0.0亮1s,灭1s,如此循环反复直至I0.0由ON→OFF,Q0.0变为OFF。程序如图4-33所示主程序:网络1

LDI0.0EUATCHINT_0,21ENI网络2LDNM0.0AI0.0TONT32,

+1000网络3LDT32=M0.0网络4LDI0.0EDDTCH21DISI图4-33定时器中断举例PLC的普通计数器的计数过程与扫描工作方式有关,CPU通过每一扫描周期读取一次被测信号的方法来捕捉被测信号的上升沿,被测信号的频率较高时,会丢失计数脉冲,因此普通计数器的工作频率很低,一投仅有几十赫兹。高速计数器可以对普通计数器无能为力的事件进行计数,计数频率取决寸CPU的类型,CPU22x系列最高计数频率为30kHz,用于捕捉比CPU扫描速度更快的事件,并产生中断,执行中断程序,完成预定的操作。高速计数器在现代自动控制的精确定位控制领域有重要的应用价值。

S7-200系列PLC还设有高速脉冲输出,输出频率可达20kHz,用于PTO(输出一个频率可调、占空比为50%的脉冲)和PWM(输出一个周期一定、占空比可调的脉冲),高速脉冲输出的功能可用于对电动机进行速度控制及位置控制。4.4高速处理指令

S7-200系列PLC中有6个高速计数器,它们分别是HSC0、HSCl、HSC2、HSC3、HSC4和HSC5。这些高速计数器可用于处理比PLC扫描周期还要短的高速事件。当高速计数器的当前值等于预置值、外部复位信号有效(HSC0不支持)、计数方向改变(HSC0不支持)时将产生中断,通过中断服务程序实现对控制目标的控制。其占用的输入端子见表4-13,各高速计数器不同的输入端有专用的功能,如:时钟脉冲端、方向控制端、复位端、起动端。4.4.1占用输入/输出端子1.高速计数器占用输入端子高速计数器使用的输入端子高速计数器使用的输入端子HSC0I0.0,I0.1,I0.2HSC3I0.1HSC1I0.6,I0.7,I1.0,I1.1HSC4I0.3,I0.4,I0.5HSC2I1.2,I1.3,I1.4,I1.5HSC5I0.4表4-13占用的输入端子

在表4-13中所用到的输入点,如10.0~10.3,既可以作为普通输入点使用,又可以作为边沿中断输入点,还可以在使用高速计数器时作为指定的专用输入点使用,但对于同一个输入点同时只能作为上述其一功能使用。如果不使用高速计数器,这些输入点可作为一般的数字量输入点,或者作为输入/输出中断的输入点。只要在使用高速计数器,相应输人点就分配给相应的高速计数器,实现由高速计数器产生的中断。也就是说,在PLC的实际应用中,每个输入点的作用是唯一的,不能对某一个输入点分配多个用途,因此要合理分配每一个输入点的用途。

S7-200晶体管输出型的PLC(如CPU224DC/DC/DC)有PTO、PWM两台高速脉冲发生器。PTO脉冲串功能可输出指定个数、指定周期得方波脉冲(占空比为50%),PWM的功能是输出脉宽可变化的脉冲信号,用户可以指定脉冲的周期和脉冲的宽带。若一台发生器指定给数字输出点Q0.0,另一台发生器则指定数字输出点Q0.1,当PTO、PWM脉冲发生器输出时,将禁止输出点Q0.0、Q0.1的正常使用;当不使用PTO、PWM脉冲发生器时,输出点Q0.0、Q0.1恢复正常使用。

2.高速计数器占用输出端子1.高速计数器的计数方式

(1)单路脉冲输入的内部方向控制加/减计数。只有一个脉冲输入端,通过高速计数器控制字节(见表4-16)的第3位来控制加计数或者减计数。该位=1,加计数;该位=0,减计数。内部方向控制的单路加/减计数方式如图4-34所示。图4-34内部方向控制的单路加/减计数方式4.4.2.高速计数器的工作方式(2)单路脉冲输入的外部方向控制加/减计数。有一个脉冲输入端,有一个方向控制端。方向输入信号等于1时,加计数,方向输入信号等于0时,减计数。外部方向控制的单路加/减计数方式如图4-35所示。图4-35外部方向控制的单路加/减计数方式(3)两路脉冲输入的单相加/减计数。有两个脉冲输入端,一个是加计数脉冲,一个是减计数脉冲,计数值为两个输入端脉冲的代数和。两路脉冲输入的加/减计数方式如图4-36所示。图4-36两路脉冲输入的加/减计数方式(4)两路脉冲输入的双相正交计数。有两个脉冲输人端,输入的两路脉冲A相、B相,相位互差90°(正交)。A相超前B相90°时,加计数;A相滞后B相90°时,减计数。在这种计数方式下,可选择1x模式(单倍频,一个脉冲周期计—个数,见图4-37)和4x模式(四倍频,一个脉冲周期计四个数,见图4-38)。图4-37两路脉冲输入的双相正交计数1x模式图4-38两路脉冲输入的双相正交计数4x模式高速计数器依据计数脉冲、复位脉冲、起动脉冲端子的不同接法可组成12种工作模式,不同的高速计数器有多种功能不相同的工作模式。每个高速计数器所拥有的工作模式和其占有的输入端子有关,如表4-14所示。2.高速计数器的工作模式高速计数器HSC的工作模式功能及说明占用的输入端子及其功能高速计数器编号HSC0I0.0I0.1I0.2×HSC4I0.3I0.4I0.5×HSC1I0.6I0.7I1.0I1.1HSC2I1.2I1.3I1.4I1.5HSC3I0.1×××HSC5I0.4×××0单路脉冲输入的内部方向控制加/减计数控制字第三位为0,减计数;控制字第三位为1,加计数。脉冲输入端×××1×复位端×2×复位端起动3单路脉冲输入的外部方向控制加/减计数方向控制端=0,减计数;方向控制端=1,加计数。脉冲输入端方向控制端××4复位端×5复位端起动6两路脉冲输入的单相加/减计数加计数有脉冲输入,加计数;减计数端脉冲输入,减计数。加计数脉冲输入端减计数脉冲输入端××7复位端×8复位端起动 由表4-14可知,高速计数器的工作模式确定以后,高速计数器所使用的输入端子便被指定。如选择HSCl在模式11下工作,则必须用I0.6作为A相脉冲输入端,I0.7作为B相脉冲输入端,I0.0作为复位端,I1.1作为启动端。

4.4.3高速计数器指令表4-15高速计数器指令格式及功能1.指令格式及功能(见表4-15)梯形图LAD语句表STL功能HDEFHSC,MODE当使能输入有效时,根据高速计数器特殊存储器位的状态及HDEF指令指定的工作模式,设置高速计数器并控制其工作HSCN当使能输入有效时,为高速计数器分配一种工作模式

说明:

1)高速计数器定义指令HDEF中,操作数HSC指定高速计数器号(0~5),MODE指定高速计数器的工作模式(0~11)。每个高速计数器只能用一条HDEF指令。

2)高速计数器指令HSC中,操作数N指定高速计数器号(0~5)。2.高速计数的控制字节

高速计数器的控制字节用于设置计数器的计数允许、计数方向等,各高速计数器的控制字节含义如表4-16所示。

HSC0HSC1HSC2HSC3HSC4HSC5含

义SM37.0SM47.0SM57.0SM137.0SM147.0SM157.0复位信号有效电平:0=高电平有效;1=低电平有效SM37.1SM47.1SM57.1SM137.1SM147.1SM157.1启动信号有效电平:0=高电平有效;1=低电平有效SM37.2SM47.2SM57.2SM1372SM147.2SM157.2正交计数器的倍率选择:0=4倍率;1=1倍率SM37.3SM47.3SM57.3SM137.3SM147.3SM157.3计数方向控制位:0=减计数;1=加计数SM37.4SM47.4SM57.4SM137.4SM147.4SM157.4向HSC写入计数方向:0=不更新;1=更新表4-16高速计数器的控制字节含义每个高速计数器都有一个32位当前值和一个32位预置值寄存器,当前值和预设值均为带符号的整数值.高速计数器的值可以通过高速计数器标识符HC加计数器号码(0、1、2、3、4或5)寻址来读取。要改变高速计数器的当前值和预置值,必须使控制字节(见表4-16)的第5位和第6位为1,在允许更新预置值和当前值的前提下,新当前值和新预置值才能写入当前值及预置值寄存器;当前值和预置值占用的特殊内部寄存器如表4-17所示。表4-17高速计数器当前值和预置值寄存器3.高速计数器的当前值及预置值寄存器寄存器名称HSC0HSC1HSC2HSC3HSC4HSC5当前值寄存器SMD38SMD48SMD58SMD138SMD148SMD158预置值寄存器SMD42SMD52SMD62SMD142SMD152SMD162高速计数器的状态字节位存储当前的计数方向、当前值是否等于预置值、当前值是否大于预置值。PLC通过监控高速计数器状态字节,可产生中斯事件,以便用以完成用户希望的重要操作。各高速计数器的状态字节描述如表4-18所示。4.高速计数器的状态字节表4-18高速计数器的状态字节HSC0HSC1HSC2HSC3HSC4HSC5含

义SM36.0SM46.0SM56.0SM136.0SM146.0SM156.0未用SM36.1SM46.1SM56.1SM136.1SM146.1SM156.1SM36.2SM46.2SM56.2SM136.2SM146.2SM156.2SM36.3SM46.3SM56.3SM136.3SM146.3SM156.3SM36.4SM46.4SM56.4SM136.4SM146.4SM156.4SM36.5SM46.5SM56.5SM136.5SM146.5SM156.5当前计数方向状态位:0=减计数;1=加计数SM36.6SM46.6SM56.6SM136.6SM146.6SM156.6当前值等于预置值状态位:0=不等;1=相等

(1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(见表4-16),令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。 (2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4×模式。执行HDEF指令后,就不能再改变计数器的设置,除非CPU进入停止模式。 (3)执行HSC指令时,CPU检查控制字节和有关的当前值和预置值。 (4)高速计数器指令的初始化步骤:5.高速计数器指令的使用

①用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。因为采用了子程序,在随后的扫描中,不必再调用这个子程序,以减少扫描时间,使程序结构更好。 ②在初始化的子程序中,根据希望的控制设置控制字(SMB37、SMB47、SMB57、SMB137、SMB147、SMB157),如设置SMB47=16#F8,则为:允许计数,写入新当前值,写入新预置值,更新计数方向为加计数,若为正交计数则设为4×模式,复位和起动设置为高电平有效。 ③执行HDEF指令,设置HSC的编号(0~5),设置工作模式(0~11)。如HSC的编号设置为1,工作模式输入设置为11,则为既有复位又有起动的正交计数工作模式。④用新的当前值写入32位当前值寄存器(SMD38,SMD48,SMD58,SMD138,SMD148,SMD158)。如写入0,则清除当前值,用指令MOVD0,SMD48实现。 ⑤用新的预置值写入32位预置值寄存器(SMD42,SMD52,MD62,SMD142,SMD152,SMD162)。如执行指令MOVD1000,SMD52,则设置预置值为1000。若写入预置值为16#00,则高速计数器处于不工作状态。 ⑥为了捕捉当前值等于预置值的事件,将条件CV=PV中断事件(事件13)与一个中断程序相联系。 ⑦为了捕捉计数方向的改变,将方向改变的中断事件(事件14)与一个中断程序相联系。 ⑧为了捕捉外部复位,将外部复位中断事件(事件15)与一个中断程序相联系。 ⑨执行全局中断允许指令(ENI)允许HSC中断。 ⑩执行HSC指令使S7-200对高速计数器进行编程。然后结束子程序。高速计数器程序可以通过STEP7-Micro/WIN编程软件的指令向导自动生成,指令向导编程的步骤如下:

(1)打开STEP7-Micro/WIN软件,选择主菜单“工具”“指令向导”进入向导编程页面。如图4-39所示。

6.高速计数器指令向导的应用

(2)选择“HSC”点击“下一步”,出现对话框如图4-40所示。只能在符号地址的编程方式下使用指令向导,点击“是”进行确认。图4-40符号地址确认对话框(3)确认符号地址后,出现图4-41计数器编号和计数模式选择页面,可以选择计数器的编号和计数模式。在例4-3中选择“HSC1”和计数模式“11”,选择后点击“下一步”。图4-41计数器编号和计数模式选择页面

(4)在图4-42高速计数器初始化设定页面中分别输入高速计数器初始化子程序的符号名(默认的符号名为“HSC-INIT”);高速计数器的预置值(例4-3输入为10000);计数器当前值的初始值(例4-3输入“0”);初始计数方向(例4-3中选择“向上”);重设输入(即复位信号)的极性(例4-3选择高电平有效);起始输入(即启动信号)的极性(例4-3选择高电平有效);计数器的倍率选择(例4-3选择4倍频“4X”)。完成后点击“下一步”。(5)在完成高速计数器的初始化设定后,出现高速计数器中断设置的页面如图4-43所示。本例中为当前值等于预置值时产生中断,并输入中断程序的符号名(默认的为COUNT-EQ)。在“您希望为HC1编程多少个步骤?”栏,输入需要中断的步数,例4-3只有当前值清零1步,选择“1”。完成后点击“下一步”。图4-43高速计数器中断设置的页面(6)高速计数器中断处理方式设定页面如图4-44所示。在例4-3中当CV=PV时需要将当前值清理,所以选择“更新当前值”选项,并在“新CV”栏内输入新的当前值“0”。完成后点击“下一步”。图4-44高速计数器中断处理方式设定页面(7)高速计数器中断处理方式设定完成后,出现高速计数器编程确认页面,如图4-45所示。该页面显示了由向导编程完成的而程序及使用说明,选择“完成”结束编程。图4-45高速计数器编程确认页面(8)向导使用完成后在程序编辑器页面内自动增加了名称为“HSC-INIT”子程序和“COUNT-EQ”中断程序。分别点击“HSC-INIT”子程序和“COUNT-EQ”中断程序标签,可见其程序,见图4-46所示。图4-46在程序编辑页面中增加了“HSC-INIT”子程序和“COUNT-EQ”中断程序标签

【例4-3】某设备采用位置编码器作为检测元件,需要高速计数器进行位置值的计数,其要求如下:计数信号为A、B两相相位差90°的脉冲输入;使用外部计数器复位与启动信号,高电平有效;编码器每转的脉冲数为2500,在PLC内部进行4倍频,计数开始值为“0”,当转动1转后,需要清除计数值进行重新计数。(1)主程序。如图4-47所示,用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。LDSM0.1CALLSBR_0图4-47主程序(2)初始化的子程序。如图4-48所示,定义HSC1的工作模式为模式11(两路脉冲输入的双相正交计数,具有复位和起动输入功能),设置SMB47=16#F8(允许计数,更新新当前值,更新新预置值,更新计数方向为加计数,若为正交计数设为4×模式,复位和起动设置为高电平有效)。HSC1的当前值SMD48清零,预置值SMD52=10000,当前值=预设值,产生中断(中断事件13),中断事件13连接中断程序INT-0。(3)中断程序INT-0,如图4-49所示。子程序0(配置HSC1)LDSM0.1//首次扫描时MOVB16#F8,SMB47//设置HSC1控制字

HDEF

1,11//将HSC1设置为模式11MOVD

+0,SMD48//HSC1的当前值清0MOVD

+50,SMD52//将HSC1预设值设为50ATCH

INT_0,

13//CV=PV(中断事件13),

调用中断程序INT_0

ENI//允许全局中断HSC1//执行HSC1指令图4-48高速计数器初始化的子程序LDSM0.0MOVD+0,

SMD48//HSC1的当前值清0MOVB16#C0,SMB47//只写入一个新当前值,

预置值不变,计数方向不变,HSC1允许计数

HSC1//执行HSC1指令图4-49高速计数器中断子程序

高速脉冲输出功能在S7-200系列PLC的Q0.0或Q0.1输出端产生高速脉冲,用来驱动诸如步进电机一类的负载,实现速度和位置控制。1.高速脉冲输出方式高速脉冲输出有脉冲串输出PTO和脉宽调制输出PWM两种形式。每个CPU有两个PTO/PWM发生器,一个发生器分配给输出端Q0.0,另一个分配给Q0.1。当Q0.0或Q0.1设定为PTO或PWM功能时,其他操作均失效。不使用PTO/PWM发生器时,Q0.0或Q0.1作为普通输出端子使用。通常在启动PTO或PWM操作之前,用复位R指令将Q0.0或Q0.1清0。4.4.4高速输出指令及应用

PWM功能可输出周期一定占空比可调的高速脉冲串,其时间基准可以是µs或ms,周期的变化范围为10~65535µs或2~65535ms,脉宽的变化范围为0~65535µs或0~65535ms。当指定的脉冲宽度大于周期值时,占空比为100%,输出连续接通。当脉冲宽度为0时,占空比为0%,输出断开。如果指定的周期小于两个时间单位,周期被默认为两个时间单位。可以用以下两种办法改变PWM波形的特性。(1)脉宽调制输出(PWM)(1)同步更新如果不要求改变时间基准,即可以进行同步更新。同步更新时,波形的变化发生在两个周期的交界处,可以实现平滑过渡。

(2)异步更新如果需要改变时间基准,则应使用异步更新。异步更新瞬时关闭PTO/PWM发生器,与PWM的输出波形不同步,可能引起被控设备的抖动。为此通常不使用异步更新,而是选择一个适用于所有局期时间的时间基准,使用同步PWM更新。

PWM输出的更新方式由表4-20控制字节中的SM67.4或SM77.4位来指定,执行高速脉冲输出PLS指令使改变生效。如果改变了时间基准,不管PWM更新方式位的状态如何,都会产生一个异步更新。(2)脉冲串输出(PTO)

PTO功能可输出一定脉冲个数和占空比为50%的方波脉冲。输出脉冲的个数在1~4294967295范围内可调;输出脉冲的周期以µs或ms为增量单位,变化范围分别是10~65535µs或2~65535ms。如果周期小于两个时间单位,周期被默认为两个时间单位。如果指定的脉冲数为0,则脉冲数默认为1。

PTO功能允许多个脉冲串排队输出,从而形成流水线。流水线分为两种:单段流水线和多段流水线。

单段流水线是指流水线中每次只能存储一个脉冲串的控制参数,初始PTO段一旦起动,必须按照对第二个波形的要求立即刷新特殊存储器,并再次执行PLS指令,在第一个脉冲串完成后,第二个脉冲串输出立即开始,重复这一步骤可以实现多个脉冲串的输出。单段流水线中的各段脉冲串可以采用不同的时间基准,但有可能造成脉冲串之间的不平稳过渡。输出多段高速脉冲时,编程复杂。多段流水线是指在变量存储区V建立一个包络表(包络表Profile是一个预先定义的横坐标为位置、纵坐标为速度的曲线,是运动的图形描述)。包络表存放每个脉冲串的参数,执行PLS指令时,S7–200PLC自动按包络表中的顺序及参数进行脉冲串输出。包络表中每段脉冲串的参数占用8个字节,由一个16位周期值(2字节)、一个16位周期增量

温馨提示

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

评论

0/150

提交评论