网站大量收购独家精品文档,联系QQ:2885784924

高速计数器及其应用.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高速计数器及其应用 使用高速计数器 Q0.0置0 初始化高速计数器HSC0 (SMB37为HSC0控制字) (16#F8 指将HSC1的预设值和当前值设置为允许更新,方向允许更新,4倍频的向上计数,起始、复位现用高电平) 将HSC0的当前值(SMD38)更新为0 MAIN 将HSC0的预设值(SMD42)设置为1000 将HSC0的计数模式设置为0(仅仅I0.0输入时钟脉冲,具有内部方向控制的单相计数器) 调用子程序0和1 在特殊存储字节SMB67中定义脉冲输出特性:(16#8D脉冲串(PT0单段), 1ms/tick即时基,可更新脉冲和周期,启用PTO SMW68定义脉冲周期,其值为时基的倍数(周期值)1ms 在SMD72中指定需要产生的脉冲数(PTO脉冲计值)为30000(SMD72位内存双字,即四个字节) 启动PLS用I0.0在高速输入中提供给HSC0的脉冲串输出 SBR_0 脉冲周期 1ms PTO脉冲数 SBR_1 把中断程序0分配给中断事件12(HSC0的当前值CV等于设定值PV),只要脉冲计数值达到设定值,该事件就会发生 允许中断 启动HSC0 INT_0 Q0.1置位 SMB37即启用HSC0,写入新预设值 为HSC0设置新的设定值1500(第二设定值) 用中断程序1取代中断程序0,分配给中断事件12(HSC0的CV=PV) 启动HSC0 INT_1 Q0.2置位 SMB37写即启用HSC0,写入新设定值和计数方向,改成减计数 设置新的设定值1000(第三设定值) 用中断程序2取代中断程序1,分配给中断事件12(HSC0的CV=PV) 启动HSC0 INT_3 Q0.1和Q0.2复位 SMB37写即写入新当前值和技术方向,改成加计数 将当前计数值置为0,而设定值PV保持不变(1000) 重新把中断程序0分配给中断事件12,程序再次起动HSC0运行 当脉冲数达到SMD72中规定的个数后,程序就终止 使用高速计数器累计脉冲来模拟电压值 MAIN 第一个扫描周期调用子程序SBR_0 把高速计数器HSC1的控制字节SMB47置为16进制数FC,含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1;用指令HDEF把高速计数器HSC1置成工作模式0,即没有复位或起始输入,也没有外部的方向选择;当前值SMD48复位为0,预置值SMD52置为FFFF(十六进制) SBR_0 定时中断0间隔时间SMB34置为100ms;中断程序0分配给定时中断0(中断事件10),并允许中断,用指令HSC1启动高速计数器 HSC1的计数值存入VD100;HSC1当前值复位;重新设置HSC1控制字节:上升沿复位,上升沿起动,4*计数速率,反向计数,不改变方向不更新PV,可更新CV,激活HSC1;启动高速计数器HSC1 INT_0 SC1的计数值除以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的范围内变化,然而通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高精确度,同时也会带来更长的更新时间。 高速计数器及其应用教材 谢谢

文档评论(0)

676200 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档