- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08章_高速计数和高速脉冲
高速计数器指令;高速计数器指令;使用高速计数器;高速计数器输入线的连接;HSC0操作模式;HSC1操作模式;HSC2操作模式;HSC3操作模式;HSC4操作模式;HSC5操作模式;模式0,1或2内部方向控制模式时序图;模式3,4或5外部方向控制模式时序图;模式6,7或8增/减双脉冲模式时序图;模式9,10或11正交1X模式时序图;模式9,10或11正交4X模式时序图;访问高速计数器(HC) ;设定当前值和预置值;HSC控制字节;HSC状态字节;HSC使用举例;;中断子程序;程序演示;HSC编程步骤;用S7-200 的高速计数器HSC累计来自模拟量/频率转换器(A/F)的脉冲来模拟电压值;主程序在第一个扫描周期调用初始化程序SBR0,仅在第一个扫描周期标志位SM0.1=1由子程序实现初始化。首先,把高速计数器HSC1的控制字节SMB47置为16进制数‘FC’。其含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1然后,用指令‘HDEF’把高速计数器HSC1置成工作模式0,即没有复位或起始输入,也没有外部的方向选择。
当前值SMD48复位为0预置值SMD52置为FFFF(十六进制)。
定时中断0间隔时间SMB34置为100ms,中断程序0分配给定时中断0(中断事件10),并允许中断。
用指令HSC1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后将其置零。通过HSC1计数值及变换关系(0-2kHz对应于0-10V)来求被测的模拟电压值。本例中,计数值仅除以2,然后置入输出字节QB0,以便通过LED来显示被测的电压值。显示值与10倍真实电压值相对应。;例如,计数值为200除以2是100,那么被测的模拟电压值就是10.0V。因为计数器100ms内共有200个计数脉冲,这正与2000Hz-10V相对应, 假设计数值为104,则实际电压值应为5.2V注意:定时中断间隔时间可在5-255ms的范围内变化,然而通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高精确度,同时也会带来更长的更新时间。例如,定时中断设为100ms,每调用一次,标志增加1,仅当标志满10时,才对高速计数器求值和复位。也就是说,10V电压可接收的最大脉冲为2000,这样,求值精确到5/1000V,即精确度是上例的10倍,但同时速度也减慢了10倍。;Network 1 // ***主程序***
LD SM0.1 // 仅首次扫描时,SM0.1=1
CALL SBR0 // 调用子程序0;***子程序0*** SBR 0
Network 1
LD SM0.0
MOVB 16#FC, SMB47 // 设置HSC1控制字节:上升沿复位,
//上升沿起动, 1*计数速率,正向计数,可改变方向,
// 可更新PV, 可更新CV(当前值),激活HSC1
HDEF 1, 0 // HSC1工作于模式0
MOVD +0, SMD48 // HSC1当前值复位
MOVD 16#FFFF, SMD52 // 设置HSC1预置值,(本例未用)
MOVB 100, SMB34 // 设置定时中断0间隔时间为100ms
ATCH INT0, 10 // 指定定时中断事件10 调用中断程序0
ENI // 允许所有中断
HSC 1 // 起动高速计数器 HSC1.;***中断程序0***
Network 1
LD SM0.0 // SM0.0总是1.
MOVD HC1, VD100 // HSC1的计数值存入VD100
MOVD +0, SMD48 // HSC1当前值复位,
MOVB 16#C0, SMB47 // 重新设置HSC1控制字节:
//上升沿复位,上升沿起动,4*计数速率,
文档评论(0)