我在NT下用DDK开发系统驱动程序,上层用C++做界面控制台,可以达到ms级;

解决方案 »

  1.   

    我还没在NT下作过工控软件,看来要学学DDK了,我要试一试
      

  2.   

    我想买一块带定时器和计数器的I/O卡,不知带不带设备驱动程序,如果没有,
    我就编个Vxd试一试,哪位朋友编过此类工控软件,介绍一些经验吧.
      

  3.   

    我买了研祥pcl720-3卡,32路数字输入,32路数字输出,3路定时计树器,
    定时计数器还要琢磨琢磨怎么用,有人用过吗?我打算写Vxd了.
      

  4.   

    我买了研祥pcl720-3卡,32路数字输入,32路数字输出,3路定时计树器,
    定时计数器还要琢磨琢磨怎么用,有人用过吗?我打算写Vxd了.
      

  5.   

    在100ms以上还可以,再往下就很难说了,这要求看你的采样周期是多少,win32很容易偷走你的时间,不妨中间加一台DOS机,保证数据的无误,
      

  6.   

    需要硬件支持,WIN API有两个很长的函数能达到很高的精度,是什么名字记不住了。
      

  7.   

    如果是20/S可以,要到1MS级不行,滴答数可精确到MS但,你的程序用的时间没法控制。这有程序执行优化的因数。
      

  8.   

    真正的工业控制方面,我觉得用单片机的比较流行,Windows系统不适合工业控制的需求,太复杂了,很多功能都是不需要的。你可以用单片机来采集数据,然后传输给台式机来处理。
      

  9.   

    我用华控的6070做过25毫秒的采样。
    采用API中的多媒体定时器,全部用软件实现。
      

  10.   

    ms及有什么难的,我前不久也做过用的室研华pci-1710板子,采样频率到了100kHz了,也就是10us
    采样一次哦!
    不过我用的是pci-1710上的中断做的!
      

  11.   

    用timeSetEvent()可实现毫秒级的定时
    具体请查msdn 里的 multimedia timer
      

  12.   

    可以用ddk写内核定时器,能实现最小十亿分之一秒的定时
      

  13.   

    我用过研华的PCL-818L,814B,812PG,816,开发过工控程序.能不能把你的要求详细说明一下,
    比如说:单独作A/D采集或单独作I/O采集,还是混合操作,对采集时间精度及长度有何要求,对实时I/O控制时间精度有和要求.
    我用的研华板子都有Win和DOS下的驱动程序,直接调用就可以,还是比较方便的.
      

  14.   

    我做的系统是一个测试设备,整个系统的动作,测试都由工控机完成,
    A/D D/A用的是中泰的6315,DI/DO是研祥PCL720-3,带3路定时计数器;
    操作系统为WINDOWS95/98;数据采集密度在20次/秒左右,测5秒左右;
    设备动作控制都在秒级;
    现在程序已经差不多了,包括AD/DA/IO/计数器,数据库,数据曲线
    分析,基本上可以连机调了;
    测试时用多媒体定时器,动作控制用WINDOWS定时器。
    我第一次独立的做一个系统,真的长进了不少啊。
    谢谢讨论,欢迎讨论相关技术问题。
      

  15.   

    我不太明白为什么你要用各种定时器,其实在采集板上都有计数器,你可以用频率最高的作为基准,这样可以达到较高的精度,而且占用系统资源很少,也就是说运行更稳定.
    我作的A/D采样最高频率为25KHz*16CH并行进行.I/O控制的时间精度在ms级.
      

  16.   

    VXD 有人做到每秒8000次采样
      

  17.   

    使用
    GetTickCount( )或者
    timeGetTime( )
    返回ms精度的时间。
      

  18.   

    程序是在WINDOWS下,用IO卡上的定时器可得用中断啊,那就要编VXD了,
    可是VXD我还不太熟悉啊,而且任务也很紧,才给我两个月时间啊,
    多媒体定时器应该能满足要求了,我会想办法试试编个VXD,哪位弟兄
    作过介绍一下经验啊,用VTOOLSD吗?
    实时采样数据保存时可以直接写数据库吗?写数据库速度我还没测过,
    不行就写到.INI里了
      

  19.   

    你的数据采集卡没有Windows9X的驱动程序码,如果有的话,你根本用不着写VXD!!
      

  20.   

    有示例,都是直接对端口查询,我都没它看了
    PCL-720,你有它的驱动程序吗,定时计数器的
      

  21.   

    到研华的Download Area    http://www.advantech.com.tw/
    里面有很多驱动程序,包括PCL-720,Dos,Win95,WinNT,还有example,你可以仔细的看一下.
      

  22.   

    我有厂家提供的例程,但PCL-720没有定时器的驱动程序啊,
    lin6194老兄,你用的什么卡啊,定时器带驱程吗? 
      

  23.   

    不是专门对定时器进行驱动,而是数据采集的驱动,有了数据采集的驱动,你可以用数据采集的量来进行时间计算呀.
    比如采集频率用1000Hz,你的Buf长度为100,那么每得到一个Buf满的消息就是100ms了,你的控制要求是在秒级,用这种方法应该没有问题.
    如果你要求数据采集频率为20Hz,你只要用50点取平均值或50点取一点即可实现.
      

  24.   

    啊,这一点我没想到,我看看如何实现它,谢谢lin6194(),
    我的 OICQ:22914050  有空我们好好聊聊,
    各位:有兴趣的 请留QQ吧
      

  25.   

    用多媒体控件的定时器吧。
    用VXD不合算;用Timer最简单,但只能达到1/18秒的采样率。
      

  26.   

    zhouwenjie(小周):
        这种方法应该没有问题,你的A/D、D/A都可以用这种用,你可以试一试。OICQ老板不让用,否则立即开除!!!!!!!!如果有兴趣我们可以用eMail。
      

  27.   

    我比你幸运,有一套PXI测试系统。
      

  28.   

    要工控的专用控件吗?
    www.eleauto.com
    上有个STimer
      

  29.   

    可以使用timegettime(),精度约1毫秒
    这两个函数可以达到更高的分辨率
    GetPerformanceCounter()和QueryPerformanceFrequency()
      

  30.   

    如果要得到更高精度的时间,可以使用汇编指令来用CPU cycle作为计时单位,不过要做定时器还是比较难,总不能用循环将时间都花费了呀。
      

  31.   

    lin6194()老兄,你的mail我看不到啊,
    我的mail: [email protected]
    用空联络啊
      

  32.   

    不知新方法你试的怎么样了?
    我的Mail:  [email protected]
      

  33.   


    lin6194(),你说的方法我想了一下,采集频率没法确定啊 ,还要用精确定时器,或定时中断吗?我现在用了数字滤波,采100次,去掉20个最高值和最低值,取中指,作为一个采集点,现在我 做的系统采集频率要求不高了,可以一秒测一个点,再用一个曲线拟合算法,拟合成一条曲线,作为结果输出,应该比较容易实现 ,
      

  34.   

    频率设定用驱动程序,如:
    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);
    ........
      

  35.   

    改变PC定时器的设置,达到ms级没有问题。或许有API提供这个功能,自己查查看吧。如果自己写,需要处理中断。采集卡的Timer当然更好,不过您居然不会用,奇怪!
      

  36.   

    我用的卡没带定时/计数器的驱程啊,PCL-720/3,用过吗?
    我到研华网站也找了,都是查询/写端口操作,我现在用计数器
    也是用查询,用多媒体定时器,1S查询一次,读计数值,也还可以啊,
    lin6194()你用的什么卡啊,有驱程,真不错今天我下了个LED的ACTIVEX,还不错
    http://www.iucf.indiana.edu/~graham/megled92.zip哪里有免费的仪表控件啊,大家共享一下吧
      

  37.   

    光盘上带有驱动程序,支持几十种卡,包括你的PCL-720,不过由于体积太大,不可能发给你,你可以到研华网站下载.
    我把关于驱动程序使用的文档发给你,你可以看一下.
      

  38.   

    感谢lin6194()老兄,我查了一下只有pcl-720驱程不支持计数器
    介绍几种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
      

  39.   

    hswqs(爱叮葡萄的蚊子) 老兄:你在做PXI系统啊,我可能要做VXI的,硬件很贵啊,你用了NI的LABVIEW,LABWINDOW吗,要多少钱啊,能不能COPY,