资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,S7-200PLC,的复杂功能指令,1,7-12,高速脉冲输出指令,1.高速脉冲输出的几个概念,1),高速脉冲输出的形式,高速脉冲串输出,PTO,:,(Pulse Train Output),输出,指定数量,占空比为,50%,的方波脉冲串。,2,宽度可调脉冲输出,PWM:,(Pulse Width Modulation),输出,数量不限,占空比可调,的脉冲串信号。,2)高速脉冲输出端子,每台,CPU可以提供 2 个,高速脉冲,发生器,PTO/PWM,发生器,0,的输出端子是,Q0.0,PTO/PWM,发生器,1,的输出端子是,Q0.1,3,3)高速脉冲输出优先权,有,PTO/PWM,输出时,,CPU 把输出端子Q0.0、Q0.1 控制权交给 PTO/PWM 发生器,禁止普通逻辑输出。,输出映像寄存器,Q 的状态会影响PTO/PWM波形的起始电平,高速脉冲输出前要先把,Q0.0、Q0.1的状态清零。,4,4)高速脉冲输出适用机型,输出,高频脉冲信号,时,应选用,晶体管输出型,PLC,。,2.高速脉冲输出指令及特殊寄存器,1)高速脉冲输出指令,(Pulse),指令,功能:,EN 有一个上升沿时,激活PLS,控制PLC,从,Q0.0 或 Q0.1,输出高速脉冲。,X,5,PLS指令可以输出:,高速脉冲串,PTO,宽度可调的脉冲信号,PWM,数据类型:,操作数Q0.X:,X,必须是,常数,0 或 1,。,EN:只接通一个扫描周期的,短信号,。,6,2)特殊寄存器,每个,PTO/PWM 都有一组配套参数:,1个 8位的,状态字节,(,SMB66,、,SMB76,),1个 8位的,控制字节,(,SMB67,、,SMB77,),1个,16位的,周期值,(,SMW68,、,SMW78,),1个,16位的,脉宽值,(,SMW70,、,SMW80,),1个,32位的,脉冲数量,(,SMD72,、,SMD82,),对于多段,PTO,还有,1个 8位的,段字节,(,SMW166,、,SMW176,),1个,16位,包络表起始地址,(,SMW168,、,SMW178,),7,这些参数存放在系统指定的特殊标志寄存器中,Q0.0的寄存器,Q0.1的寄存器,名称及功能描述,SMB66,SMB76,状态字节,在,PTO方式下,跟踪脉冲串的输出状态,SMB67,SMB77,控制字节,控制,PTO/PWM脉冲输出的基本功能,SMW68,SMW78,PTO/PWM的周期值,字型,范围:265535,16位无符号数,表,7-17 相关寄存器功能表,8,Q0.0的寄存器,Q0.1的寄存器,名称及功能描述,SMW70,SMW80,PWM的脉宽值,字型,范围065535,16位无符号数,SMD72,SMD82,PTO的脉冲数,双字型,,范围:14294967295,32位无符号数,SMB166,SMB176,多段管线,PTO进行中的段的编号,8位无符号数,SMW168,SMW178,多段管线,PTO包络表起始字节的地址,9,状态字节,PTO 方式,下运行时,系统根据运行状态使相应位置位。,表,7-18 状态字节表,状,态,位,SM6.0SM6.3,SM6.4,SM6.5,SM6.6,SM6.7,功,能,描,述,不用,PTO包络因增量,计算错误终止,0:无错,,1:终止,PTO 包络因用户命令终止,0:无错,,1:终止,PTO,管线溢出,0:无溢出1:溢出,PTO空闲0:执行中,1:空闲,10,控制字节中各控制位的功能,SMB77,SMB67,控制字节,通过设置字节中各控制位,来定义高速脉冲输出的特性.,11,3高速脉冲串输出PTO,特点:高速脉冲串输出(PTO)方式下,,只能改变脉冲的周期值和脉冲数。,1)周期和脉冲数,周期:,单位:,s或ms。,周期值为,16位无符号整数,。变化范围:,5065535 s或 265535 ms。,12,脉冲数:,是一个,32位的无符号整数,,取值范围:,14294967295。,2)高速脉冲串输出中断,PTO 方式下,当输出完指定数量的脉冲后,产生高速脉冲串输出中断。,PTO/PWM 0 的中断事件号是,19,PTO/PWM 1 的中断事件号是,20,高速脉冲串输出,完成时,,CPU自动将PTO空闲位SM66.7(或SM76.7)置1。,13,3)PTO的种类,PTO方式下,要输出多段脉冲串时,允许脉冲串排队。PTO输出多段脉冲的方式有两种:,单段,PTO:,定义一个,脉冲串,,输出一个,脉冲串,(特性参数通过特殊寄存器分别定义)。,多段,PTO:,集中定义,多个脉冲串,,按顺序输出,多个脉冲串,(特性参数通过包络表集中定义)。,14,单段,PTO 实现的方法,用指定的特殊标志寄存器定义脉冲串特性参数(每次定义一个脉冲串)。一个脉冲串输出完成后,产生中断。在中断服务程序中再为下一个脉冲串更新参数,输出下一个脉冲串。,优点:,各脉冲段可以采用不同的时间基准。,缺点:,单段,PTO输出多段高速脉冲串时,编程复杂,且参数设置不当会造成脉冲串之间的不平滑转换。,15,多段,PTO 操作,多段PTO:,集中定义多个脉冲串,,并,把各段脉冲串的特性参数按照规定的格式写入,变量存储区用户指定的缓冲区中,-称为,包络表,(见书表,5,-,19,),。,16,包络表说明:,包络表由包络段数和各段构成。,第一个字节,为需要输出的,脉冲串,总段数,,,范围:,1255,;,定义,一段脉冲串的特性参数需要,8个字节,2个字节,存放脉冲串的,起始周期值,2个字节,定义脉冲串的,周期增量,4个字节,存放该段脉冲串的,脉冲数,17,包络表中的周期单位可以为,ms 或 s,,但表中所有周期单位必须一致。,周期增量的计算公式:,多段PTO操作时,需把,包络表的起始地址,装入标志寄存器,SMW168(或SMW178),中。,PTO指令执行时,,当前输出段的段号,由系,统填入,SMB166 或 SMB176,中。,18,多段,PTO的优点:,编程简单,且在同一段脉冲串中其周期可以均匀改变。,多段,PTO 编程方法及步骤:,A.初始化操作(以PTO/PWM 0为例):,a.将 PTO 的输出点 Q0.0 复位;,b.调用初始化子程序SBR-0,完成下列任务:,19,将包络表的起始地址写入,SMW168;,填写包络表中各段脉冲串的特性参数;,设置控制字节,SMB67,按照控制要求按位填写:如使SMB67=16#A0。,多段,PTO下全为0,PWM更新方式,20,建立中断连接:用,ATCH指令建立脉冲输出完成中断事件与中断程序的联系。当PLS指令输出完指定数量的脉冲串时,产生中断。,用,ENI全局开放中断;,B.,有启动信号时,,执行高速脉冲输出指令,PLS,按顺序输出多段脉冲串。,C.,有停止信号时,,停止高速脉冲串输出。,21,停止,PTO 输出的方法,PLS指令一经激发,就能完成指定脉冲串的输出,故要停止PTO输出,必须先在,控制字节中,禁止,PTO输出,,且,执行,PLS指令,。,SMB67,停止按钮,22,【例】多段PTO应用实例,已知步进电机的起动频率为2 kHz(A点),经过400个脉冲加速后频率上升到10 kHz(B点和C点),恒速转动的脉冲数为4000个,减速过程脉冲数为200个,频率降为2 kHz(D点),其频率特性如图所示。,23,解:,确定脉冲发生器及工作模式,要求PLC输出三段串脉冲。故采用多段PTO输出方式。选择输出端为 Q0.0。,填写控制字节SMB67:使SMB67=16#A0,填写包络表。,将包络表首地址装入SMW168中。,24,参数换算,:,起始频率:,2 kHz,,起始周期值:,500s,,,运行频率为,10 kHz,,运行周期值:,100s,。,输出3段脉冲串,时基取s,定义三段脉冲串特性参数的包络表为:,25,2,26,中断连接:高速脉冲输出完成时,产生中断事件,19,用ATCH指令将与中断事件与中断服务程序INT0连接起来,并全局开中断(ENI)。,执行,PLS指令。,本控制程序的结构:,主程序,初始化子程序,中断服务程序,初始化,启动,停止,27,G,输出完成指示,起动按钮,28,G,停止按钮,29,W,D,30,D,31,C,32,C,33,采用多段PTO,脉冲串连续输出期间,按启动按钮I0.0不起作用,不会出现脉冲串重复排队输出的现象,脉冲串能够按照规定的顺序输出完后,停止输出。,34,4宽度可调的脉冲输出PWM,特点,:,PWM方式下,用户,可以改变,脉冲的,周期值,和,脉宽值,,,脉冲数不受限制。,1)周期值和脉宽值,周期值:,是一个,16位无符号数据,单位:s或ms;变化范围:5065535s或265535 ms。,35,脉冲宽度:,是一个,16位无符号整数,单位:s或ms;变化范围是065535 s或ms。即,占空比在,0100之间,变化。,2)PWM 更新方式,同步更新:,在改变脉冲周期值和脉宽值时,,不改变时间基准,。,特点:,同步更新时,波形的变化发生在周期的边缘,输出波形进行平滑转换。,36,异步更新:,在改变脉冲周期值和脉宽值时,,改变时间基准,。,特点:,采用异步更新会使高速脉冲输出功能被瞬时禁止,这时输出端交由输出映像寄存器,Q控制,可能使 PWM 的波形不连续,引起被控制设备的振动。,结论:,改变,PWM 波形的特性时应尽量采用,同步更新。,37,3)PWM的编程方法及步骤,A.确定脉冲发生器:,选择高速脉冲输出端(发生器);,选择工作模式为,PWM。,B.PWM的初始化,a.将PWM的输出点(Q0.0或Q0.1)复位;,b.调用初始化子程序SBR-0,它所完成的任务:,38,向,SMW68写入第一个脉冲串的周期值;,向,SMW70写入第一个脉冲串的脉宽值;,执行,PLS指令,输出指定宽度的脉冲信号。,按位填写控制字节,(如SMB67):SMB67=16#DB,39,修改脉冲串宽度的方法,改写控制字节,SMB67,将允许改脉宽值位,置1,其它位不变。,向,SMW70写入新的脉冲宽度值,执行,PLS,输出指定宽度的脉冲信号。,40,【例】PWM 输出举例,要求 PWM0的脉冲周期是 T=10000ms,开始时输出占空比为 10%的脉冲,当 I0.0=1时,输出占空比为 50%的脉冲,当 I0.2=1时,停止输出脉冲。,41,42,W,43,W,44,
展开阅读全文