我在NT下用DDK开发系统驱动程序,上层用C++做界面控制台,可以达到ms级;
解决方案 »
- tinyxml怎么找到第二个子节点(有名字一样的节点)
- 有用过ReadDirectoryChangesW 的大大吗,进来哈子
- 急救,这段代码错在哪里。。。。大虾们帮帮菜鸟!!!
- 如何用SendInput模拟键盘的组合键使用?
- 将自定义资源(比如GIF)加到工程里,URL该如何写?????
- 问个困扰很久的问题,写telnet服务器端程序时,怎么处理backspace键。我试了下面的程序,只有第一个backspace有作用?如能解答,百分奉送
- 请教。。。
- CreateThread函数中如何使用security_attriute 参数
- model window 与 common window 到底有什么区别?
- 关于CTreeView和Splitter Wnd的问题,蛮急得
- 各位仁兄,有办法读到ACAD14文件的存储格式吗
- 为什么我的机子不能调试MFC源码?
我就编个Vxd试一试,哪位朋友编过此类工控软件,介绍一些经验吧.
定时计数器还要琢磨琢磨怎么用,有人用过吗?我打算写Vxd了.
定时计数器还要琢磨琢磨怎么用,有人用过吗?我打算写Vxd了.
采用API中的多媒体定时器,全部用软件实现。
采样一次哦!
不过我用的是pci-1710上的中断做的!
具体请查msdn 里的 multimedia timer
比如说:单独作A/D采集或单独作I/O采集,还是混合操作,对采集时间精度及长度有何要求,对实时I/O控制时间精度有和要求.
我用的研华板子都有Win和DOS下的驱动程序,直接调用就可以,还是比较方便的.
A/D D/A用的是中泰的6315,DI/DO是研祥PCL720-3,带3路定时计数器;
操作系统为WINDOWS95/98;数据采集密度在20次/秒左右,测5秒左右;
设备动作控制都在秒级;
现在程序已经差不多了,包括AD/DA/IO/计数器,数据库,数据曲线
分析,基本上可以连机调了;
测试时用多媒体定时器,动作控制用WINDOWS定时器。
我第一次独立的做一个系统,真的长进了不少啊。
谢谢讨论,欢迎讨论相关技术问题。
我作的A/D采样最高频率为25KHz*16CH并行进行.I/O控制的时间精度在ms级.
GetTickCount( )或者
timeGetTime( )
返回ms精度的时间。
可是VXD我还不太熟悉啊,而且任务也很紧,才给我两个月时间啊,
多媒体定时器应该能满足要求了,我会想办法试试编个VXD,哪位弟兄
作过介绍一下经验啊,用VTOOLSD吗?
实时采样数据保存时可以直接写数据库吗?写数据库速度我还没测过,
不行就写到.INI里了
PCL-720,你有它的驱动程序吗,定时计数器的
里面有很多驱动程序,包括PCL-720,Dos,Win95,WinNT,还有example,你可以仔细的看一下.
lin6194老兄,你用的什么卡啊,定时器带驱程吗?
比如采集频率用1000Hz,你的Buf长度为100,那么每得到一个Buf满的消息就是100ms了,你的控制要求是在秒级,用这种方法应该没有问题.
如果你要求数据采集频率为20Hz,你只要用50点取平均值或50点取一点即可实现.
我的 OICQ:22914050 有空我们好好聊聊,
各位:有兴趣的 请留QQ吧
用VXD不合算;用Timer最简单,但只能达到1/18秒的采样率。
这种方法应该没有问题,你的A/D、D/A都可以用这种用,你可以试一试。OICQ老板不让用,否则立即开除!!!!!!!!如果有兴趣我们可以用eMail。
www.eleauto.com
上有个STimer
这两个函数可以达到更高的分辨率
GetPerformanceCounter()和QueryPerformanceFrequency()
我的mail: [email protected]
用空联络啊
我的Mail: [email protected]
lin6194(),你说的方法我想了一下,采集频率没法确定啊 ,还要用精确定时器,或定时中断吗?我现在用了数字滤波,采100次,去掉20个最高值和最低值,取中指,作为一个采集点,现在我 做的系统采集频率要求不高了,可以一秒测一个点,再用一个曲线拟合算法,拟合成一条曲线,作为结果输出,应该比较容易实现 ,
CACQ MyAcq; //CAcq 在驱动程序的SDK的头中定义了;MyAcq.Init(0x200,?,?,?);
MyAcq.SetFreq(1000);
MyAcq.SetTime(100);
MyAcq.SetChannel(0,16);
MyAcq.Start();
MyAcq.Stop();
MyAcq.Close();
MyAcq.GetData(Buf);
........
我到研华网站也找了,都是查询/写端口操作,我现在用计数器
也是用查询,用多媒体定时器,1S查询一次,读计数值,也还可以啊,
lin6194()你用的什么卡啊,有驱程,真不错今天我下了个LED的ACTIVEX,还不错
http://www.iucf.indiana.edu/~graham/megled92.zip哪里有免费的仪表控件啊,大家共享一下吧
我把关于驱动程序使用的文档发给你,你可以看一下.
介绍几种i/o卡,供大家参考
--------------------------------------------------------------------------------
TABLE 1: Advantech DLL Driver Software Support Hardware Driver A/D D/A DIO TEMP COUNTER ALARM
PCI-1710 ads1710.dll YES YES YES NO YES NO
PCI-1710HG ads1710.dll YES YES YES NO YES NO
--------------------------------------------------------------------------------
TABLE 1: Advantech DLL Driver Software Support Hardware Driver A/D D/A DIO TEMP COUNTER ALARM
PCI-1720 ads1720.dll NO YES NO NO NO NOA/D=Analog Input, D/A=Analog Output, DIO=Digital I/O,
TEMP=Temperature Measurement
--------------------------------------------------------------------------------
TABLE 1: Advantech DLL Driver Software Support
Hardware Driver A/D D/A DIO TEMP COUNTER ALARM
PCI-1750 ads1750.dll NO NO YES NO YES NO--------------------------------------------------------------------------------
TABLE 1: Advantech DLL Driver Software SupportHardware Driver A/D D/A DIO TEMP COUNTER ALARM
PCI-1751 ads1751.dll NO NO YES NO YES NOA/D=ANALOG INPUT, D/A=ANALOG OUTPUT, DIO=DIGITAL I/O,
TEMP=TEMPERATURE MEASUREMENT