zhujianzhong
好人一生平安
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 300 点
下载积分: 700 分
在线时间: 71(小时)
注册时间: 2007-10-24
最后登录: 2020-07-11
查看zhujianzhong的 主题 / 回贴
楼主  发表于: 2008-11-21 11:39
版主及各位高手,怎么用一个增量式编码器测得它的脉冲总数和脉冲密度(频率)?谢谢
好人一生平安
zhujianzhong
好人一生平安
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 300 点
下载积分: 700 分
在线时间: 71(小时)
注册时间: 2007-10-24
最后登录: 2020-07-11
查看zhujianzhong的 主题 / 回贴
1楼  发表于: 2008-11-26 10:01
自己顶一个
好人一生平安
醉湮邃虞
醉湮邃虞话老黑
级别: 略有小成
精华主题: 0
发帖数量: 229 个
工控威望: 409 点
下载积分: 1577 分
在线时间: 209(小时)
注册时间: 2009-01-16
最后登录: 2015-03-18
查看醉湮邃虞的 主题 / 回贴
2楼  发表于: 2009-04-01 10:21
版主没来的急回答你,先让俺看到,俺就充当一回高手。
你说的增量编码器是否就是要做的计数器?
如果是外部计数器需要通过其他方式读取其值,这要看那计数器的说明书如何读取,应该不在讨论之列。
如果是要做的计数器,比如使用HSC1高速计数器,就需要把外部脉冲信号连接到I0.6
首先在
SM0.1的控制下,初始化HSC1工作于模式0(内部复位和改变方向),然后让其使能。
此时HC1已经开始工作,程序中任何时刻都可读取HSC1计数器的当前值,例如MOVD   HC1, VD0,即可得到当前值,是不是总脉冲数那需要你来判定什么时候读的是总脉冲数
获得频率就有点儿麻烦了,这要根据你的脉冲频率的大致数量级,而选择不同的方法和测试时间。
如果脉冲频率在1HZ以下下,就需要测试两个脉冲之间的时间长度来测试频率,不用使用高速计数器,应该也不在讨论之列 。
脉冲脉冲频率在10HZ以上,就需要用一定时间来获取脉冲数然后转换成频率,而这个一定时间是根据脉冲频率的大致数量级而定,这个时间内获得的脉冲数越多算出来的就越准确,比如一小时,而时间越长,系统的迟滞也越长,多长时间应该是你能够忍受的最大迟滞时间和这段时间能够获取相当数量的脉冲,
例如3秒内,脉冲数不低于10
.实现方法是:建立一个毫秒记时器使其反复工作在3秒,然后记录并计算,下面的程序,VD10是每一个3秒始时的累计脉冲总数,VD18中是3秒内获得的脉冲数,运行中观察VD18,如果数量很大则可缩短测试时间,如果很少,就需要加大测试时间,VD14中是脉冲频率
LD     SM0.0
LPS
AN     T37
LPS
EU
MOVD   HC1, VD10
LPP
TON    T37, 30
LPP
A      T37
EU
MOVD   HC1, VD18
-D     VD10, VD18
MOVD   VD18, VD14
/D     +3, VD14

程序实际使用中还要有HC1的清零指令,啥时清零是你来定的,如何清零参看HC1帮助。
[ 此帖被醉湮邃虞在2009-04-01 12:50重新编辑 ]
棋牌比赛免费得实物,闲暇好去处
http://www.jj.cn/indexTG.html?promoterid=108502812
liyongh8989
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看liyongh8989的 主题 / 回贴
3楼  发表于: 2009-04-02 12:21
学习了,谢谢