PCMCIA DAQCards로 NI-DAQmx를 사용하여 데이터를 수집할 때, 낮은 샘플링 속도에서 데이터를 매우 낮은 속도로 업데이트합니다.



주요한 소프트웨어:
주요한 소프트웨어 버전: 7.2
문제가 해결된 소프트웨어 버전:
부차적인 소프트웨어: N/A
하드웨어: Multifunction DAQ (MIO)>>E Series>>DAQCard-6062E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6036E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6023E, Multifunction DAQ (MIO)>>E Series>>DAQCard-AI-16E-4, Multifunction DAQ (MIO)>>E Series>>DAQCard-6034E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6035E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6024E, Multifunction DAQ (MIO)>>E Series>>DAQCard-AI-16XE-50

문제점: PCMCIA DAQCard에서 데이터를 수집할 때, 그래프가 매우 낮은 속도로 업데이트되는 것으로 보입니다. NI-DAQmx를 사용하여 연속적인 데이터 수집을 수행할 때, 그래프의 업데이트 속도는 sample rate과 number of samples to read를 통해 결정되는 것으로 알고 있습니다.
예를 들어, 초당 500 샘플로 샘플링을 하고 한번에 100개의 샘플을 읽는 경우, 초당 5번씩 그래프가 업데이트될 것으로 예상할 수 있습니다. 그러나 낮은 샘플링 속도에서 위의 예와 틀리게 늦은 속도로 그래프가 업데이트되고, 실제 속도는 smaple rate에 의존적인 것으로 보입니다. 한번에 얼마의 포인트를 읽어드리도록 설정하는 것과 관계없이, sample rate를 느리게 하면 할수록 그래프가 업데이트되는 속도가 늦게됩니다.
그래프의 업데이트 속도록 높히려면 어떻게 해야 합니까?

솔루션: Data Transfer Request Condition 프로퍼티를 On Board Memory Not Empty로 설정하시기 바랍니다. LabVIEW에서 아래의 단계를 통하여 설정할 수 있습니다:
  1. 아날로그 입력 태스크를 실행하기 전에 블록다이어그램에 DAQmx Channel Property Node를 놓습니다.

  2. 프로퍼티의 리스트를 엽니다.

  3. Analog Input»General Properties»Advanced»Data Transfer and Memory»Data Transfer Request Condition을 탐색하여 선택합니다.

  4. 프로퍼티를 쓰기로 변경하고 프로퍼티 노드에서 상수 또는 컨트롤을 생성합니다.

  5. On Board Memory Not Empty를 선택합니다.

PCMCIA 버스가 DMA를 지원하지 않기 때문에, 이러한 현상은 모든 PCMCIA DAQCard를 NI-DAQmx와 사용할 때 기본으로 나타납니다. DAQCard가 컴퓨터에 데이터를 보내주기 위해서, 이것은 반드시 인터럽트를 발생시켜야 합니다. Data Transfer Request Condition 프로퍼티가 기본으로 On Board Memory More than Half Full로 설정되어 있어서, sample rate과 상관없이 기본적으로 온보드 FIFO가 반이상 찼을 때 인터럽트를 발생시킵니다.
DAQCard-6062e는 8킬로 샘플의 큰 FIFO를 가지고 있습니다. 그러므로 초당 100 샘플을 수집하는 경우, FIFO의 반을 채우는데 약 40초가 걸리고 그 뒤에 어플리케이션에 데이터를 반환합니다.
노트: DAQCard-6062e의 전송 속도를 높히기 위해서 On Board Memory More than Half Full의 기능이 NI-DAQ 7.2에서 수정되었습니다. 드라이버는 FIFO 크기의 반(4킬로 샘플)이 채워진 뒤에 데이터를 반환하고 현재 수집이 정질될 때까지 매번 512 샘플을 반환하게 됩니다.

데이터 전송 요청 상태 프로퍼티를 On Board Memory Not Empty로 바꿈에 따라, 데이터가 버퍼에 위치할 때마다 인터럽트를 발생시키도록 설정할 수 있습니다. 이러한 인터럽트 발생은 FIFO에 들어오는 값을 어플리케이션에 바로 반환하도록 합니다. NI는 이러한 방법을 낮은 샘플 속도에서 사용하도록 권장합니다. 높은 샘플 속도에서는 종종 최대 샘플 속도를 제한할 수 있습니다.

관련 링크:

첨부:





리포트 날짜: 10/30/2003
마지막 업데이트: 12/01/2005
문서 번호: 32TESA2G