f(KHz)ABCD4000个脉冲200200210【例】。步进电机的控制要求如图所示。从A点到B点为加速过程,从B到C为恒速运行,从C到D为减速过程。步进电机的控制要求Q0.0和Q0.1对PTO/PWM输出的控制字节Q0.0Q0.1说明SM67.0SM77.0PTO/PWM刷新周期值0:不刷新;1:刷新SM67.1SM77.1PWM刷新脉冲宽度值0:不刷新;1:刷新SM67.2SM77.2PTO刷新脉冲计数值0:不刷新;1:刷新SM67.3SM77.3PTO/PWM时基选择0:1µs;1:1msSM67.4SM77.4PWM更新方法0:异步更新;1:同步更新SM67.5SM77.5PTO操作0:单段操作;1:多段操作SM67.6SM77.6PTO/PWM模式选择0:选择PTO1:选择PWMSM67.7SM77.7PTO/PWM允许0:禁止;1:允许Q0.0和Q0.1对PTO/PWM输出的周期值Q0.0Q0.1说明SMW68SMW78PTO/PWM周期时间值(范围:2至65535)Q0.0和Q0.1对PTO/PWM输出的脉宽值Q0.0Q0.1说明SMW70SMW80PWM脉冲宽度值(范围:0至65535)Q0.0和Q0.1对PTO脉冲输出的计数值Q0.0Q0.1说明SMD72SMD82PTO脉冲计数值(范围:1至4294967295)Q0.0和Q0.1对PTO脉冲输出的多段操作Q0.0Q0.1说明SMB166SMB176段号(仅用于多段PTO操作),多段流水线PTO运行中的段的编号SMW168SMW178包络表起始位置,用距离V0的字节偏移量表示(仅用于多段PTO操作)Q0.0和Q0.1的状态位Q0.0Q0.1说明SM66.4SM76.4PTO包络由于增量计算错误异常终止0:无错;1:异常终止SM66.5SM76.5PTO包络由于用户命令异常终止0:无错;1:异常终止SM66.6SM76.6PTO流水线溢出0:无溢出;1:溢出SM66.7SM76.7PTO空闲0:运行中;1:PTO空闲分析:编程前(1)发生器的选择:选择高速脉冲发生器为Q0.0,并确定PTO为3段流水线。(2)控制字节设置SMB67为16#A0表示允许PTO功能、选择PTO操作选择多段操作、以及选择时基为微秒,不允许更新周期和脉冲数。(3)3段的包络表的建立,并将包络表的首地址装入SMW168。(4)PTO完成中断程序的调用,使Q1.0接通。PTO完成的中断事件号为19。用中断调用指令ATCH将中断事件19与中断程序INT-0连接,并全局开中断。执行PLS指令,退出子程序。本例题的主程序,初始化子程序,和中断程序如图所示V变量存储器地址段号参数值说明VB2003段数VB201段1500µs初始周期VB203-2µs每个脉冲的周期增量ΔVB205200脉冲数VB209段2100µs初始周期VB2110每个脉冲的周期增量ΔVB2133600脉冲数VB217段3100µs初始周期VB2192µs每个脉冲的周期增量ΔVB221200脉冲数包络表主程序LDSM0.1//首次扫描时,将Q0.0复位RQ0.01CALLSBR_0//调用子程序0子程序0//写入PTO包络表LDSM0.0MOVB3VB200//将包络表段数设为3//段1:MOVW+500VW201//段1的初始循环时间设为500usMOVW-2VW203//段1的Δ设为-2usMOVD+200VD205//段1的脉冲数设为200//段2:MOVW+100VW209//段2的初始周期设为100usMOVW+0VW211//段2的Δ设为0usMOVD+3600VD213//段2中的脉冲数设为3600//段3:MOVW+100VW217//段3的初始周期设为100usMOVW+1VW219//段3的Δ设为1usMOVD+200VD221//段3中的脉冲数设为200LDSM0.0MOVB16#A0,SMB67//设置控制字节:MOVW+200,SMW168//将包络表起始地址指定为VB200。ATCHINT_0,19//设置中断ENI//全局开中断PLS0//起动PTO,由Q0.0输出LDSM0.0//PTO完成时,输出Q1.0=Q1.0中断程序0练习:复位输入、启动输入分3类共12种模式,不同高速计数器能选的模式不同,如HSC0和4只能选用8种,HSC3和5只能选模式0,HSC1和2可选12种