首页 上一页 1 2 下一页 尾页

PCI9812连续采集的问题 点击:3824 | 回复:23



YangHB_1978

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2002年5月11日
发表于:2003-02-27 09:13:00
楼主
向各位大虾请教一个问题: 我用ADLink PCI9812进行连续数据,使用双缓存模式,就和PCIS-DASK中的例子一样,采样率为10Mhz,可采下的数据并不是连续的,有明显的中断,不知道原因。我把缓存加到20M以上也不行,我的机器为PII400,内存为128M,感觉应该够啦! 望各位大虾帮帮忙!



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-05-13 13:04:00
1楼
double buffer 方式涉及到内存频繁读写,所以速度快了以后,有可能发生数据丢失现象。我的经验是数据流量在20MB/s的时候,用PCIS-DASK使用double buffer DMA 可以保证不丢数据--即单路以10MHz连续采样不丢数据。 方法:将PCI-9812的设备缓存设定为64000KB(用PCIS-DASK的PCI设置工具设置),在AI_ContReadChannel的ReadCount中设置为64000KB----即环形Buffer大小为64000KB。 建议把内存扩大到256M,CPU速度最好是越快越好,我以前试过用P3 1G+1G RAM+SCSI硬盘用double buffer DMA方式连续以20MB/s存盘不丢失数据。

haixin

  • 精华:2帖
  • 求助:0帖
  • 帖子:62帖 | 121回
  • 年度积分:0
  • 历史总积分:315
  • 注册:2002年4月26日
发表于:2002-05-13 23:16:00
2楼
你是用PCI-OCX,还是用PCI-DASK,用什么语言开发的?

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-05-14 09:57:00
3楼
我用的是PCIS-DASK,PCI-DASK是PCI-9812动态连接库驱动,在高速数据采集的时候,PCIS-DASK的效率比PCI-OCX要好一点。 用VC6开发。

YangHB_1978

  • 精华:3帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2002年5月11日
发表于:2002-05-14 09:58:00
4楼
先感谢各位大虾百忙之中,抽出时间回复小弟的帖子。小弟水平实在很低,还有一些东西弄不清楚。 我使用的是PCI-DASK,用VC++写的界面,程序中直接用AI_CountReadChannelToFile函数写文件,设备缓存设为默认的1024kb,ReadCount为4000,连续采集300M数据,一般6M左右就会开始出现丢数据现象。 在我的机器上,将设备缓存定为64000kb,很容易出现死机的现象,是否是因为因为在内存中开辟的连续缓存太大,内存不够用?看来我是要换机器了。 另外,在AI_CountReadChannelToFile函数中,ReadCount参数为每次从缓存中读出并写入磁盘的数据量大小,写盘很费时间,将ReadCount开的过大不知是否会有影响。 如果用AI_CountReadChannel函数,数据是直接写入内存,可最终还是要写入磁盘,不知是如何实现连续大数据的采集,因为缓存终归有限。 还望各位大虾不吝赐教。

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-05-16 12:54:00
5楼
1.内存最好加大到256M以上 2.理论上说Readcount越大越好,具体数值还要根据机器的配置调整。其实连续存盘的瓶颈在于磁盘I/O速度较慢,所以建议用SCSI硬盘 3.如果你一次只要采300M内存的话,建议你先把这300M数据存到内存中(用double buffer 方式),然后再慢慢存盘。现在内存比较便宜,配一个1G内存吧。

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2002-05-19 21:29:00
6楼
直接写硬盘的问题,瓶径其实出在文件系统,而且大大受限于硬盘速度与硬盘的缓存。以我的经验用普通IDE硬盘大概做到6MB/Sec就差不多是极限了,现在有人用SCSI硬盘用文件系统可以到30MB/Sec左右的采样—存盘。用Adaptec的ASPI抛开文件系统可以到40MB/S左右,这时就受限于PCI总线了。 李兄的建议其实不错。我的确看到有人用很高的内存做这样的事。用Double Buffer方式配合memcpy其实效率很高的。

tfk

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 3回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2002年9月16日
发表于:2002-09-16 20:46:00
7楼
请教: 我想用9812实现40M/s的数据存储速率,怎样才可以达到一个比较好的系统配置?有什么比较好的方式?如果您有好的建议可以回复我,也可以发信到:wanily_622@163.com 本人十分感激

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-09-18 10:50:00
8楼
配一个SCSI硬盘(1万转以上),其它不关键。

Snail_HQ

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2002年12月05日
发表于:2002-12-05 13:17:00
9楼
请教: 我用ADLink PCI9812进行连续数据采集,采样率为4MHz,使用PCIS-DASK双缓存模式,直接写入硬盘。用VC编程,操作系统是Win2000。机器配置为:PIII 750, 内存为512M,硬盘是IDE和SCSI各一。PCI-9812的设备缓存设定为64,000KB;在AI_ContReadChannelToFile 的ReadCount中设置为 32,000,000 (Samples, =64,000KB)。 将采集数据写入IDE硬盘时,工作正常,但会丢失部分数据;写入SCSI硬盘时,系统死机,必须重新启动。(用fread、fwrite等读写SCSI硬盘正常,只是在用PCIS-DASK时,调用AI_AsyncDblBufferTransfer(nCard, NULL)写SCSI硬盘会导致系统死机)。我发现SCSI控制卡和9812的中断号均为11,且不能修改。我想,会不会是因为在数据传输过程中,因共用同一PCI中断而导致死机? 是不是要对SCSI控制卡进行设置? 如何才能正确使用SCSI硬盘(使用PCIS-DASK)? 还望各位高手不吝赐教! 本人非常感激! E-mail: snail_HQ@yahoo.com.cn

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-12-05 16:26:00
10楼
将SCSI卡和PCI-9812换换槽位试试。

jutcgf

  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 50回
  • 年度积分:0
  • 历史总积分:199
  • 注册:2003年10月29日
发表于:2002-12-05 19:12:00
11楼
丢失部分数据是指什么?

Snail_HQ

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2002年12月05日
发表于:2002-12-07 12:42:00
12楼
感谢诸位高手的回复! 更换槽位不能排除故障。 数据丢失是指存盘数据不连续,两次存盘数据之间有中断。但每个数据块内部都是连续的。

YangHB_1978

  • 精华:3帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2002年5月11日
发表于:2002-12-11 22:45:00
13楼
我使用SCSI卡和PCI9812可以同时正常使用,不过有时可以正常高速采集,有时速度会慢很多,不知是什么原因。不知你用的是什么SCSI卡。 我发现每次DMA方式一块数据和下一块数据间会有几字节的数据丢失。

Snail_HQ

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2002年12月05日
发表于:2002-12-16 18:26:00
14楼
感谢诸位高手的回复!    我的故障已排除。是SCSI驱动的问题!谢谢各位!希望今后多多指教!

caisir

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 13回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2002年12月10日
发表于:2002-12-24 11:23:00
15楼
---------------- 李侃:  我用的是PCIS-DASK,PCI-DASK是PCI-9812动态连接库驱动,在高速数据采集的时候,PCIS-DASK的效率比PCI-OCX要好一点。   用VC6开发。 ---------------- 我就是不明白PCI-9812动态连接库在哪能找到,我以前是用的win95的vxd驱动,现在发现pci9812-dask的驱动好像没有dll???

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-12-24 12:41:00
16楼
在windir/system32/下面有PCI-DASK.dll 在windir/system32/drivers/下面有PCI-9812.sys文件。 PCI-DASK不是基于VXD方式。

小猴

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 4回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2002年12月25日
发表于:2002-12-25 19:59:00
17楼
我用9812采集数据大概的数据量是一个小时10G的数据,我的机器是p3(1G)256内存,7200转的硬盘,我发现在提高主频对是否有遗漏已经没有影响,应该是windows系统的瓶颈了,存取数据需要进行的时间是一定的,在单纯的提高某个部件的性能已经没有什么影响了!!我听说在dos下,做和我同样的工作只需要主频是233的cup就可以了,哈哈!!!!

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-12-26 09:49:00
18楼
是啊,对于支持总线主控DMA的采集卡来说,如果不涉及的显示,CPU参与的事情很少。我最早用PCI-9812的时候是Pentium100+24M EDO RAM+win97,用的也很爽。

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2002-12-27 11:12:00
19楼
侃哥的回复让我想起了从前... 那时的机器现在看看真的是... 还记得你的第一台座机吗?它现在在哪里? :-)

苦恼

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2003年1月26日
发表于:2003-01-26 22:30:00
20楼
小弟机器为P4 2.53G,512M,IDE7200硬盘、xp。用PCIS-DASK在C++Builder下编程,但无论我怎样调整双Buffer的大小,还是不能完成5MSample/s的连续采集记录,出现问题为采集实验用正弦波时,总是发现在几百兆数据中,有几个不连续点,出现位置不在Buffer连接处,怎么回事呢,跟xp有关吗?苦恼啊!望各位赐教,多谢!

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页