第七章S7-200PLC的复杂功能指令-1机电一体化主讲:s7-200§7-12高速脉冲输出指令1.高速脉冲输出的几个概念1)高速脉冲输出的形式●高速脉冲串输出PTO:(PulseTrainOutput)输出指定数量,占空比为50%的方波脉冲串。●宽度可调脉冲输出PWM:(PulseWidthModulation)输出数量不限,占空比可调的脉冲串信号。2)高速脉冲输出端子每台CPU可以提供2个高速脉冲发生器●PTO/PWM发生器0的输出端子是Q0.0●PTO/PWM发生器1的输出端子是Q0.13)高速脉冲输出优先权有PTO/PWM输出时,CPU把输出端子Q0.0、Q0.1控制权交给PTO/PWM发生器,禁止普通逻辑输出。输出映像寄存器Q的状态会影响PTO/PWM波形的起始电平,高速脉冲输出前要先把Q0.0、Q0.1的状态清零。4)高速脉冲输出适用机型输出高频脉冲信号时,应选用晶体管输出型PLC。2.高速脉冲输出指令及特殊寄存器1)高速脉冲输出指令(Pulse)●指令功能:EN有一个上升沿时,激活PLS,控制PLC从Q0.0或Q0.1输出高速脉冲。XPLS指令可以输出:※高速脉冲串PTO※宽度可调的脉冲信号PWM●数据类型:※操作数Q0.X:X必须是常数0或1。※EN:只接通一个扫描周期的短信号。2)特殊寄存器每个PTO/PWM都有一组配套参数:●1个8位的控制字节●1个8位的状态字节●1个16位的周期值●1个16位的脉宽值●1个32位的脉冲数量对于多段PTO,还有●1个8位的段字节●1个16位包络表起始地址这些参数存放在系统指定的特殊标志寄存器中Q0.0的寄存器Q0.1的寄存器名称及功能描述SMB66SMB76状态字节,在PTO方式下,跟踪脉冲串的输出状态SMB67SMB77控制字节,控制PTO/PWM脉冲输出的基本功能SMW68SMW78PTO/PWM的周期值,字型,范围:2~65535,16位无符号数表7-17相关寄存器功能表Q0.0的寄存器Q0.1的寄存器名称及功能描述SMW70SMW80PWM的脉宽值,字型,范围0~65535,16位无符号数SMD72SMD82PTO的脉冲数,双字型,范围:1~4294967295,32位无符号数SMB166SMB176多段管线PTO进行中的段的编号,8位无符号数SMW168SMW178多段管线PTO包络表起始字节的地址▲状态字节PTO方式下运行时,系统根据运行状态使相应位置位。表7-18状态字节表状态位SM×6.0~SM×6.3SM×6.4SM×6.5SM×6.6SM×6.7功能描述不用PTO包络因增量计算错误终止0:无错,1:终止PTO包络因用户命令终止0:无错,1:终止PTO管线溢出0:无溢出1:溢出PTO空闲0:执行中1:空闲控制字节中各控制位的功能SMB77SMB67▲控制字节通过设置字节中各控制位,来定义高速脉冲输出的特性.3.高速脉冲串输出PTO特点:高速脉冲串输出(PTO)方式下,只能改变脉冲的周期值和脉冲数。1)周期和脉冲数●周期:单位:μs或ms。周期值为16位无符号整数。变化范围:50~65535μs或2~65535ms。●脉冲数:是一个32位的无符号整数,取值范围:1~4294967295。2)高速脉冲串输出中断PTO方式下,当输出完指定数量的脉冲后,产生高速脉冲串输出中断。●PTO/PWM0的中断事件号是19●PTO/PWM1的中断事件号是20高速脉冲串输出时,CPU自动将PTO空闲位SM66.7(或SM76.7)置1。3)PTO的种类PTO方式下,要输出多段脉冲串时,允许脉冲串排队。PTO输出多段脉冲的方式有两种:●单段PTO:定义一个脉冲串,输出一个脉冲串(特性参数通过特殊寄存器分别定义)。●多段PTO:集中定义多个脉冲串,按顺序输出多个脉冲串(特性参数通过包络表集中定义)。▲单段PTO实现的方法用指定的特殊标志寄存器定义脉冲串特性参数(每次定义一个脉冲串)。一个脉冲串输出完成后,产生中断。在中断服务程序中再为下一个脉冲串更新参数,输出下一个脉冲串。◎优点:各脉冲段可以采用不同的时间基准。◎缺点:单段PTO输出多段高速脉冲串时,编程复杂,且参数设置不当会造成脉冲串之间的不平滑转换。▲多段PTO操作多段PTO:集中定义多个脉冲串,并把各段脉冲串的特性参数按照规定的格式写入变量存储区用户指定的缓冲区中--称为包络表(见书表7-20)。包络表说明:●包络表由包络段数和各段构成。●第一个字节为需要输出的脉冲串总段数,范围:1~255;●定义一段脉冲串的特性参数需要8个字节※2个字节存放脉冲串的起始周期值※2个字节定义脉冲串的周期增量※4个字节存放该段脉冲串的脉冲数脉冲数周期增量起始终止TT●包络表中的周期单位可以为ms或μs,但表中所有周期单位必须一致。●周期增量的计算公式:脉冲数周期增量起始终止TT●多段PTO操作时,需把包络表的起始地址装入标志寄存器SMW168(或SMW178)中。●PTO指令执行时,当前输出段的段号由系统填入SMB166或SMB176中。脉冲数周期增量起始终止TT多段PTO的优点:编程简单,且在同一段脉冲串中其周期可以均匀改变。★多段PTO编程方法及步骤:A.初始化操作(以PTO/PWM0为例):a.将PTO的输出点Q0.0复位;b.调用初始化子程序SBR-0,完成下列任务:●将包络表的起始地址写入SMW168;●填写包络表中各段脉冲串的特性参数;●设置控制字节SMB67,按照控制要求按位填写:如使SMB67=16#A0。多段PTO下全为0PWM更新方式●建立中断连接:用ATCH指令建立脉冲输出完成中断事件与中断程序的联系。当PLS指令输出完指定数量的脉冲串时,产生中断。●用ENI全局开放中断;B.有启动信号时,执行高速脉冲输出指令PLS,按顺序输出多段脉冲串。C.有停止信号时,停止高速脉冲串输出。▲停止PTO输出的方法PLS指令一经激发,就能完成指定脉冲串的输出,故要停止PTO输出,必须先在控制字节中禁止PTO输出,且执行PLS指令。SMB67停止按钮【例7-11-2】多段PTO应用实例已知步进电机的起动频率为2kHz(A点),经过400个脉冲加速后频率上升到10kHz(B点和C点),恒速转动的脉冲数为4000个,减速过程脉冲数为200个,频率降为2kHz(D点),其频率特性如图所示。解:●确定脉冲发生器及工作模式要求PLC输出三段串脉冲。故采用多段PTO输出方式。选择输出端为Q0.0。●填写控制字节SMB67:使SMB67=16#A0●填写包络表。●将包络表首地址装入SMW168中。参数换算:fT1起始频率:2kHz,起始周期值:500μs,运行频率为10kHz,运行周期值:100μs。输出3段脉冲串,时基取μs,定义三段脉冲串特性参数的包络表为:2●中断连接:高速脉冲输出完成时,产生中断事件19,用ATCH指令将与中断事件与中断服务程序INT0连接起来,并全局开中断(ENI)。●执行PLS指令。本控制程序的结构:◎主程序◎初始化子程序◎中断服务程序初始化启动停止○G输出完成指示起动按钮○G停止按钮W○D○D○C○C采用多段PTO,脉冲串连续输出期间,按启动按钮I0.0不起作用,不会出现脉冲串重复排队输出的现象,脉冲串能够按照规定的顺序输出完后,停止输出。4.宽度可调的脉冲输出PWM特点:PWM方式下,用户可以改变脉冲的周期值和脉宽值,脉冲数不受限制。1)周期值和脉宽值周期值:是一个16位无符号数据,单位:μs或ms;变化范围:50~65535μs或2~65535ms。脉冲宽度:是一个16位无符号整数,单位:μs或ms;变化范围是0~65535μs或ms。即占空比在0%~100%之间变化。2)PWM更新方式●同步更新:在改变脉冲周期值和脉宽值时,不改变时间基准。特点:同步更新时,波形的变化发生在周期的边缘,输出波形进行平滑转换。●异步更新:在改变脉冲周期值和脉宽值时,改变时间基准。特点:采用异步更新会使高速脉冲输出功能被瞬时禁止,这时输出端交由输出映像寄存器Q控制,可能使PWM的波形不连续,引起被控制设备的振动。结论:改变PWM波形的特性时应尽量采用同步更新。3)PWM的编程方法及步骤A.确定脉冲发生器:※选择高速脉冲输出端(发生器);※选择工作模式为PWM。B.PWM的初始化a.将PWM的输出点(Q0.0或Q0.1)复位;b.调用初始化子程序SBR-0,它所完成的任务:●向SMW68写入第一个脉冲串的周期值;●向SMW70写入第一个脉冲串的脉宽值;●执行PLS指令,输出指定宽度的脉冲信号。●按位填写控制字节(如SMB67):SMB67=16#DB▲修改脉冲串宽度的方法●改写控制字节SMB67,将允许改脉宽值位置1,其它位不变。●向SMW70写入新的脉冲宽度值●执行PLS,输出指定宽度的脉冲信号。【例7-11-3】PWM输出举例要求PWM0的脉冲周期是T=10000ms,开始时输出占空比为10%的脉冲,当I0.0=1时,输出占空比为50%的脉冲,当I0.2=1时,停止输出脉冲。WW