高速计数器及其应用_第1页
高速计数器及其应用_第2页
高速计数器及其应用_第3页
高速计数器及其应用_第4页
高速计数器及其应用_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、高速计数器及其应用使用高速计数器Q0.0置0初始化高速计数器HSC0 (SMB37为HSC0控制字) (16#F8即11111000 指将HSC1的预设值和当前值设置为允许更新,方向允许更新,4倍频的向上计数,起始、复位现用高电平)将HSC0的当前值(SMD38)更新为0MAIN将HSC0的预设值(SMD42)设置为1000将HSC0的计数模式设置为0(仅仅I0.0输入时钟脉冲,具有内部方向控制的单相计数器)调用子程序0和1在特殊存储字节SMB67中定义脉冲输出特性:(16#8D即10001101)脉冲串(PT0单段), 1ms/tick即时基,可更新脉冲和周期,启用PTOSMW68定义脉冲周

2、期,其值为时基的倍数(周期值)1ms在SMD72中指定需要产生的脉冲数(PTO脉冲计值)为30000(SMD72位内存双字,即四个字节)启动PLS用I0.0在高速输入中提供给HSC0的脉冲串输出SBR_0脉冲周期1msPTO脉冲数SBR_1把中断程序0分配给中断事件12(HSC0的当前值CV等于设定值PV),只要脉冲计数值达到设定值,该事件就会发生允许中断启动HSC0INT_0Q0.1置位SMB37给10100000,即启用HSC0,写入新预设值为HSC0设置新的设定值1500(第二设定值)用中断程序1取代中断程序0,分配给中断事件12(HSC0的CV=PV)启动HSC0INT_1Q0.2置位

3、SMB37写入10110000,即启用HSC0,写入新设定值和计数方向,改成减计数设置新的设定值1000(第三设定值)用中断程序2取代中断程序1,分配给中断事件12(HSC0的CV=PV)启动HSC0INT_3Q0.1和Q0.2复位SMB37写入11011000,即写入新当前值和技术方向,改成加计数将当前计数值置为0,而设定值PV保持不变(1000)重新把中断程序0分配给中断事件12,程序再次起动HSC0运行当脉冲数达到SMD72中规定的个数后,程序就终止使用高速计数器累计脉冲来模拟电压值MAIN第一个扫描周期调用子程序SBR_0把高速计数器HSC1的控制字节SMB47置为16进制数FC,(1

4、1111100)含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1;用指令HDEF把高速计数器HSC1置成工作模式0,即没有复位或起始输入,也没有外部的方向选择;当前值SMD48复位为0,预置值SMD52置为FFFF(十六进制)SBR_0定时中断0间隔时间SMB34置为100ms;中断程序0分配给定时中断0(中断事件10),并允许中断,用指令HSC1启动高速计数器HSC1的计数值存入VD100;HSC1当前值复位;重新设置HSC1控制字节(11000000):上升沿复位,上升沿起动,4*计数速率,反向计数,不改变方向不更新PV,可更新CV,激活HSC1;启动高速计数器HSC1INT_0SC1的计数值除以2(即VD100右移1位);在输出端Q0.0至Q0.7显示10倍被测电压值(0-100V) 每100ms调用一次中断程序0,读出高速计数器的数值后将其置零。通过HSC1计数值及变换关系(0-2kHz对应于0-10V,200V/Hz)来求被测的模拟电压值。本例中,计数值仅除以2,然后置入输出字节QB0,以便通过LED来显示被测的电压值。显示值与10倍真实电压值相对应。 中断间隔时间可在5-255ms

温馨提示

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

评论

0/150

提交评论