p9118数据采集问题!请各位老师帮忙! 点击:695 | 回复:2



吴新荣

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2005年10月25日
发表于:2005-12-08 14:46:00
楼主
有一下这段程序,可以实现数据采集功能,也可以实现数据的波形显示,但是只能采集一段数据
(未达到设定的采集量,如采集50000个数据)
请各位老师帮忙!谢谢了!郁闷了好几天了。
(示例程序是SDK9118DBLPostTrig)

说明:设定9118的缓冲区大小为1024KB
      
      示例程序在我的工控机上运行的很好!
void C***Dlg::collectData()
{
    //BOOLEAN fStop, HalfReady;
    F64 dataInput;        // 每次传输半块缓冲区的数据(相当于示例程序中的data_size
    m_i9118Mem = 512;    // 每次传输半块缓冲区的数据
    m_uAcquiedDataCount = 0; // 相当于示例程序中的count
    CString str;
    
    if (m_bDblBuffer) // 双缓冲区模式
    {
        do
        {
            do
            {
                AI_AsyncDblBufferHalfReady(m_iCardID, &m_bHalfReady, &m_bStop);
                m_uAcquiedDataCount ++;
            } while(!m_bHalfReady && !m_bStop);// do
            
            if(!m_bStop)
            {
                AI_AsyncDblBufferTransfer(m_iCardID, m_pDataArray);
                m_pVoltageArray = new F64[m_uAcquiedDataCount];
                // 将信号转换成电压
                AI_ContVScale(m_iCardID, AD_B_0_5_V, m_pDataArray, m_pVoltageArray, m_uAcquiedDataCount);
                            
                for (int i = 0; i < m_i9118Mem; i ++)
                {
                    dataInput = (U16)m_pVoltageArray[i];
                    // 向示波器加入一个信号点
                    m_OscilloGraph.AppendNewSingalPoint((float)dataInput);
                }
                
            }    

        } while(!m_bClearOP && !m_bStop);  // do
        
        AI_AsyncDblBufferHalfReady(m_iCardID, &m_bHalfReady,&



吴新荣

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2005年10月25日
发表于:2005-12-08 14:47:00
1楼
请各位老师帮忙了!
小弟在做导师的一个项目,刚刚接触数据采集这个问题!
为了这个问题,已经郁闷了好几天了。

xiaoliu00123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-05-17 10:01:05
2楼
麻烦问一下,那个采集通道在程序中如何实现,你能不能发一下你的有关采集的程序啊 !!!!xiaoliu00123@sina.com

热门招聘
相关主题

官方公众号

智造工程师