我要做一个数据采集系统,是实时采集切削力的,频率最高达1.6KHZ  采集到的数据还要 滤波进行谱分析, 存储,并且画曲线,而且此界面还要有串口通信功能能,我听说这要求多线编程(小弟刚学VC不太懂),请问要满足上面要求要开几个线程啊
我使用API编呢,还是用MFC呢?这个系统要求实时性很高,请给位大哥帮忙

解决方案 »

  1.   


    循环读数---一个线程,其实工控软件都是由另外的程序来实现读取数据
    串口通讯 一个线程
    界面,滤波分析、存储等待杂项  一个线程偶觉得至少要这3个线程,否则就会卡。
    另外,1.6KHz的采集,windows下怎么实现呢。
      

  2.   

    个人觉得线程多少并不是问题的关键,可能可以分为采集,分析,显示,主线程等,问题关键应该在各个线程的并发问题。
    另外API与MFC的问题,这二者对你要处理的问题个人觉得对你的系统的实时性并无太大的影响。
      

  3.   

    谢谢你们宝贵建议,那使用多线程的话;数据采集,显示,串口 能同时工作么,DLL和多线程哪个好呢                 
      

  4.   

    频率最高达1.6KHZ 采集到的数据  你不通过新增加硬件的话,无法保证精确的 1.6KHZ ,建议你搜一下相关的高速数据采集卡,否则,只能是...虚假的1.6KHZ
      

  5.   

    simoreg您好,你不通过新增加硬件的话,无法保证精确的 1.6KHZ 我不太明白什么意思,其实采样频率是根据机床主轴变化的,根据  f=(n/60)*120  120是采样点数 ,机床最高转速6000-7000转  在机床加工时不同阶段主轴转速不同,所以根据主轴转速调剂采样频率
      

  6.   

    因为windows的特点,无法实现精确的时间
    另外,Timer的最小间隔为10ms,也就是100Hz,虽然可以通过其它的方法,但不准确
    你知道WinCC吗,上面设定的周期最小为100ms,对于其通讯变量,以2倍的速率进行读取,也就是50ms,这可是西门子的东西
    另外,既然是机床主轴的切削力,那肯定是要精确的1.6KHZ,否则,其效果大打折扣你这个东西,严格来讲,是要讲究同步的,即每转一圈,取样一次,这需要在主轴上安装接近开关,然后送到你们专门做的板卡上,同步取样。太复杂了吧?不如稀里糊涂交工算了
      

  7.   

    我认为,1.6KHZ是关键,Windows做不到,除非你设计板卡,用板卡来实现1.6KHz,否则,全部都是假的,虽然你可以让它1秒钟执行1600次,但那并不是1.6KHz