Adlink PCI9114如何设定采样率? 点击:2614 | 回复:9



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-02-27 14:59:00
楼主
使用ADlink PCI9114 数据采集卡,使用VC++ 和OCX编程。现想对50Hz交流采样,使用16通道,每通道采样64点/周期,自动扫描,半满中断。采集卡初始化程序如下: m_pci9114.SetDeviceName("h1"); m_pci9114.SetAIRange(0); m_pci9114.SetAutoScan(TRUE); m_pci9114.SetCardType(1); m_pci9114.SetChannel(15); m_pci9114.SetClockSource(0); m_pci9114.SetDoubleBufferMode(TRUE); m_pci9114.SetOpenMode(1); m_pci9114.SetNumOfScan(64); //疑问1 m_pci9114.SetReturnType(0);//0 -> Scale Data m_pci9114.SetScanRate(64*50); //采样率 --疑问2 m_pci9114.SetStreamToFile(FALSE); 通过调试观察。发觉使用上述的初始化程序好像并不能在20ms内准时中断,往往要60ms左右。不知道怎么回事? 另外,对上述疑问1、疑问2处设定,看了OCX的pdf文件,还是没搞懂到底指的是什么? 不知道哪位知道如何解决?谢谢



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-04-16 18:05:00
1楼
1.因为在数据采集的开始和终止阶段,板卡的驱动函数都会要做一些动作,如:中断初始化动作,中断结束动作等等,这些动作都会需要一定时间。但这些时间不会需要40ms那么长,像:       m_pci9114.SetDeviceName("h1");    m_pci9114.SetAIRange(0);    m_pci9114.SetAutoScan(TRUE);    m_pci9114.SetCardType(1);    m_pci9114.SetChannel(15);    m_pci9114.SetClockSource(0);    m_pci9114.SetDoubleBufferMode(TRUE);    m_pci9114.SetOpenMode(1);    等方法在程序中只需要设置一次就可以了,不需要每次都操作。 2.PCI-OCX是ActiveX控件驱动,ActiveX控件驱动使用简单,但执行效率不如DLL方式快。如果您用PCI-9114的DLL驱动PCIS-DASK的话,我想一次周期可以控制在25ms以内。 3.VB的速度不如VC,可以试一试用VC做一下。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-04-16 18:53:00
2楼
谢谢你的回答。 1. 我把课题关于采集要求详细的说一下: 对50Hz交流实时采样,32通道,每通道32点(64点时超过100K了),要求每周期(20ms)循环对32通道采样,一周期采完后(1024个点)即发生中断,中断处理程序(OnAiHalfReadyPci9114())完成数据计算、处理(可以在20ms内完成)。这样,每周期都在采样新数据,每周期都在计算上一周期的数据。 2 采集卡初始化函数放在对话框初始化中的,所以只初始化了一次。 3 .我今天试了一整天,发觉问题还是那样:16通道×64点/通道×50Hz 两次半满(软件buffer)中断之间还是需要60ms左右;32通道×32点/通道*50Hz居然需要140ms。不知道是不是软件buffer太大??如果是,如何设置? 看样子只有用PCIS-DASK了,晚上我试试看、

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2002-05-19 21:43:00
3楼
嗯,好象是ACTIVEX效率的问题。建议在实时要求高时直接用DASK库,它的性能不错。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-05-23 22:57:00
4楼
是这个问题。我换了PCIS-DASK后,32通道×32点/周期勉强可以在一周期内采完算完(FFT和一些乘法计算)。比较来比较去,OCX没什么大的用处,只要能把数据取来,其它的事就简单了~~

春风化秋雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2003年11月11日
发表于:2004-02-19 17:02:00
5楼
使用两块pci9111,在两太机器上工作,可以做到同时开始采集吗?

TigerHot

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 2回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年2月19日
发表于:2004-02-20 09:14:00
6楼
我对此卡不了解,但我猜测你应该使用硬件中断编程。不要用软件中断。

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-02-24 17:23:00
7楼
911x系列板卡无法实现多卡同步,如果需要多卡同步工作,可以看一看凌华DAQ-22XX系列板卡。

wkbao

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2003年9月13日
发表于:2004-02-25 10:27:00
8楼
就是,凌华的DAQ、CPCI系列很不错的,要是有兴趣可以与我们联系,我们可以给您解决技术问题!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-02-27 14:59:00
9楼
关于板卡的同步可以选择 外部脉冲触发两块板卡的方式,实现起来应该没有什么问题。 您可以试一试!

热门招聘
相关主题

官方公众号

智造工程师