:《如何用PCI-9111卡实现10K数据的采集 点击:1413 | 回复:5



晚香玉

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 0回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2002年7月30日
发表于:2002-08-12 17:15:00
楼主
在VB6下如何实现用PCI-9111卡进行10K以上的连续采集,VB6中控件“Timer”延时只能做到“1ms”,如何实现更高频率的数据采样?



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-08-09 12:35:00
1楼
要实现10K以上的采样方式,必须使用中断采数方式。即用PCI-9111的驱动PCIS-DASK 中的AI_ContRead()函数。可以参考PCIS-DASK中PCI-9111的VB例子VB9111int和VB9111scan。 你用VB的Timer功能只能准确定时到约55ms。

Neo

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 9回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2002年7月20日
发表于:2002-08-10 22:51:00
2楼
是可以用中断或者DMA方式,但这两种方式都是读取一块数据后才触发中断或传输数据,这样是实行也不能很好的保证。你说可以不可以,来一个数据就中断或DMA传输,进而可以实时的来一个处理一个。 谢谢!

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-08-12 17:15:00
3楼
1.进来一个数就产生一个中断是可以的.但是在Windows环境下会引起系统不稳定---windows不是实时操作系统. 2.来一个数就进行DMA传送不可以,应为DMA在传输之前和之后会进行一些准备工作.一次DMA一个数的效率很低. 3.建议方式:配一块定时器卡PCI-8554用来定时消息.用windows下消息机制可以实现10K左右的采样速率.

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-04-24 09:08:00
4楼
求助: 我用PCI-9111采集一个模拟电压信号(50Hz,+/-5v),单通道采集,我运行自带的vb程序vb9111int和vb9111scan,可是有很大的失真, 请问为什么?是程序不够完善?

erevyday

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2005年10月23日
发表于:2005-10-23 17:05:00
5楼
9111怎么实现外部触发?我编了下面一段程序,一运行据死机,及时给了外部触发信号也不行,请问是怎么回事? result = AI_9111_Config(card, TRIG_ENT_STROBE, 0, 1024) result = AI_ContScanChannels(card, gnADChn, range_value(cobRange.ListIndex), gnBuffer(0), gnCount, CLKSRC_EXT_SampRate, SYNCH_OP)

热门招聘
相关主题

官方公众号

智造工程师