高速计数器及其应用
使用高速计数器
初始化高速计数器HSC0 (SMB37为HSC0控制字) (16#F8即11111000 指将HSC1的预设值和当前值设置为允许更新,方向允许更新,4倍频的向上计数,起始、复位现用高电平)
将HSC0的当前值(SMD38)更新为0
MAIN
将HSC0的预设值(SMD42)设置为1000
将HSC0的计数模式设置为0(,具有内部方向控制的单相计数器)
调用子程序0和1
在特殊存储字节SMB67中定义脉冲输出特性:〔16#8D即10001101〕脉冲串〔PT0单段〕, 1ms/tick即时基,可更新脉冲和周期,启用PTO
SMW68定义脉冲周期,其值为时基的倍数(周期值)1ms
在SMD72中指定需要产生的脉冲数〔PTO脉冲计值〕为30000〔SMD72位内存双字,即四个字节〕
"脉冲串输出"
SBR_0
脉冲周期
1ms
PTO脉冲数
SBR_1
把中断程序0分配给中断事件12〔HSC0的当前值CV等于设定值PV〕,只要脉冲计数值到达设定值,该事件就会发生
允许中断
启动HSC0
INT_0
SMB37给10100000,即启用HSC0,写入新预设值
为HSC0设置新的设定值1500〔第二设定值〕
用中断程序1取代中断程序0,分配给中断事件12〔HSC0的CV=PV〕
启动HSC0
INT_1
SMB37写入10110000,即启用HSC0,写入新设定值和计数方向,改成减计数
设置新的设定值1000〔第三设定值〕
用中断程序2取代中断程序1,分配给中断事件12〔HSC0的CV=PV〕
启动HSC0
INT_3
SMB37写入11011000,即写入新当前值和技术方向,改成加计数
将当前计数值置为0,而设定值PV保持不变〔1000〕
重新把中断程序0分配给中断事件12,程序再次起动HSC0运行
当脉冲数到达SMD72中规定的个数后,程序就终止
高速计数器及其应用 来自淘豆网m.daumloan.com转载请标明出处.