多通道采集时采样频率问题 点击:3043 | 回复:20



林海孤叶

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-21 10:30:00
楼主
我用的是NI的PCI6110数据采集卡,多通道采集时,有两个频率:samprate和 scanrate,请问这两个频率之间存不存在关系,如希望两通道采集,samprate为10K,那么scanrate是不是应该为5k,还是小于等于5K?



yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-21 10:53:00
1楼
scaninterval=sampleinterval×channelcount,所以 scanrate=samprate/channelcount

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-21 19:59:00
2楼
但PCI6110是块同步采集卡,应该每个通道都一样的吧,scanrate对其没什么意义吧,是不是这样的?

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-22 09:27:00
3楼
对于同步采集卡,scaninterval和sampleinterval应为同一个数值。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-22 09:56:00
4楼
对于NI的PCI6110数据采集卡,它提供两种Data Acquisition Function ,一种是high level 的,是同步采集,另一种是low level 的,其中SCAN_Start()函数是多通道采集,MANUAL中说到Initiates a multiple-channel scanned data acquisition operation, with or without interval scanning,既然有without 那应当是对同步采集卡的吧,但DAQ_Start()确是Initiates an asynchronous, single-channel DAQ operation and stores its input in an array.对于同步采集卡,单通道采集有异步采集之说吗?

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-22 11:20:00
5楼
其实对于NI的S系列同步采集卡来说,应该是不管samprate是多少,其实际的采样频率应该市 scanrate,不知我理解的对不对。

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-22 13:55:00
6楼
“不管samprate是多少,其实际的采样频率应该是scanrate”,同步板卡应该是这样的;DAQ_Start()里面的异步指的是软件流程上的异步,与硬件上的同步异步无关,指在软件流程上可以不必一直停在采集函数而向下执行另外的操作,然后,在后面调用异步检测函数来判断采集是否完成。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-23 10:26:00
7楼
谢谢!

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-23 10:35:00
8楼
我在VC环境下编程,现在我想实现数据采集与信号输出,且希望信号输出与采集能尽可能的同步,我先将采集与输出的准备工作做好,然后调用SCAN_Start()启动采集,调用WFM_Group_Control()启动信号输出,同时启动两线程分别调用DAQ_Check()和WFM_Check()监视数据采集与信号输出的状态,发现结束了就结束线程,我将输出的信号直接接到采集端,发现采集的信号比输出的信号滞后大约0.002S,即采集了大约0.002S的数据为0(上次输出停止之前的最后一个值),这对于希望采集和输出同步来说,是很不理想的,请问有没有什么办法解决!谢谢!是不是因为在线程中使用轮循的方式检查状态会独占资源,不能实现最大意义上的同步。小弟甚急,望赐教!!

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-23 11:09:00
9楼
应该是这种循环方式的的查询判断在占用系统资源判断,看看这块卡的动态库支不支持Call Back回调函数,它的机制是采用消息机制,在底层判断采集与输出的完成与否,资源占用率相对于用循环去检测小的多,关于这一点,可以直接咨询NI的技术支持。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-04-23 11:59:00
10楼
你说的是不是指就象研华的采用事件查询,即如函数DRV_CheckEvent ()这样的?NI的函数也有,但不支持我使用的PCI6110这款板卡,不知如使用线程同步的方法是否能够实现,即我数据采集已开启但被信号输出线程锁定了,信号开始输出马上解除对数据采集线程的锁定,不知这样能否实现,由于我所要应用的对象对时间要求精度很高,如我输出的信号可能达到100K,输出1个波形,那也只有10US的时间,即我同步的时间也至少达到微妙及,不知有没有好的办法?

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-28 12:11:00
11楼
看看6110的A/D和D/A支不支持外触发,可以的话,可以用同一个触发信号控制A/D和D/A,以达到同步。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-07 11:33:00
12楼
谢谢yoyo1101!7、6110支持外触发,那我如何使用同一个触发信号来控制A/D和D/A呢?给什么样的信号合适呢?

TOMip

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 27回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2002年9月14日
发表于:2004-05-07 16:43:00
13楼
能否发一份A/D采集板卡VB6.0编程的有关资料,特别是安装、驱动程序、使用介绍方面的资料 另外如有OMRON PLC的CX-Programmer2.1编程光盘也寄一份在此先表示感谢!   可发到 motiontop@yahoo.com.cn TEL:0938-3397901 ADDRESS:甘肃省天水市秦城区胜利巷26号四楼一号信箱 ZIP:741000

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-07 19:52:00
14楼
望yoyo1101赐教!

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-08 11:36:00
15楼
通常比较高端的板卡支持模拟、数字量触发,即通过一个正向或负向的穿越(模拟量)或者脉冲的上升沿或下降沿(数字量)来触发A/D采集或者D/A输出,可以将这样一个信号直接同时接到A/D、D/A的外触发相应引脚来触发其同步工作;同时,板卡还会提供外部时钟,控制板卡以外部信号的频率分频后作为A/D或D/A的转换时钟,详细的介绍说明书上应该可以查到。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-12 09:33:00
16楼
谢谢!我希望软件运行后一点开始采集按纽,激励信号输出与采集同时进行,那我如何控制外触发信号呢或给什么样的触发信号合适呢?我对输出与采集的同步要求比较高,达到微妙级!使用外触发能实现的同步精度有多少?我对外触发一头雾水,望赐教!

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-13 09:50:00
17楼
可不可以直接将输出信号接到外部触发引脚上作为触发信号,比如我想输出一个5V正弦信号,那选个值如0.2,超过0.2就开始采集,即使用输出信号控制采集,这样是否行的通?我是希望将输出信号作为激励信号激发我的驱动器动作,然后采集传感器信号,采集与输出之间的时间差只要小于信号传输的时间即可,但信号在我的实验件中传输速度很快,达到微妙级。望高手赐教,小弟甚急啊!

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-13 16:56:00
18楼
将D/A输出信号作为A/D输入的触发信号,你的方法可以试一下。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-27 11:50:00
19楼
谢谢yoyo1101,在您的帮助下,我已解决了采集与输出的同步问题,我是使用输出的刷新信号来触发采集来实现的。

林海孤叶

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 53回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2004年2月19日
发表于:2004-05-27 12:01:00
20楼
不过同步时还有一个小小的错误,那就是不管采集的是什么信号,采集到的第一个点是0,即如我想采集100个点,其实真正采集的有用点只有99点,不知这是怎么回事?

热门招聘
相关主题

官方公众号

智造工程师