ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

while 루프 주기

하드웨어 스펙 뿐만 아니라, 기본 코드에도 문제가 있습니다.

 

DAQ 와 저장 코드가 한 루프에 있고, 타이밍 코드까지 있으니 당연히 제 속도가 안날 겁니다.

 

생산자 소비자 루프 같이 Queue 기반의 구조로 가져가야 제대로 된 속도가 날 겁니다.

0 포인트
11/15 메시지
680 조회수

 13107200 / 256 / n  (n=....31)   로 지정되어 있습니다.  n=31 일 때 1652Hz 입니다. 다음은 1,706.67Hz, n=1이면 51.2kHz 입니다

 

이 때,  13.1072Mhz 는 제품에 장착되어 있습니다. 

 

이런 류의 제품은 일반적으로 FFT 를 하기 위해서(FFT 조건이 샘플 개수가  2^n 개가 필요)  51.2kS/s 와 같은 샘플속도로 설정되어 있습니다.

 

1초 간격으로 수집하여 FFT 로 분석하면(1초는 1Hz 분석 해상도를 위해서 필요한 최소 데이터 개수) 그래서 지정된 샘플 속도로 사용하셔야 합니다.

 

 

만약 0.001 을 원하신다면, 외부에서 클럭을 넣어줘야 하는데 2가지 방법이 있습니다.

 

(1) 샘플클럭 넣어주기

 - 외부에서 1kHz 짜리 샘플클럭을 넣어주면 됩니다.

파형발생기 등을 사용하여도 되고, 다른 DAQ 카드 (NI 9205 등과 같은)의 샘플클럭을 공유해도 되고, NI DAQ 카운터로 생성해도 됩니다.

 

(2) 샘플클럭 타임베이스 넣어주기

 - 외부에서 클럭을 계산해서 타임베이스를 넣어주면 됩니다.

예를 들어, 7,936,000 Hz 를 넣어주면 1000를 사용할 수 있습니다.

 

그런데....

지금 사용하시는 cDAQ 가 1 solt 짜리 (9181?) 로 보입니다. 그래서 외부 클럭을 넣어줄 수 있는 핀이 없습니다.

따라서 최소한, cDAQ-9185 샤시가 필요합니다.

이 샤시는 PFI0 핀이 1개가 있어서 여기에 타임베이스를 넣거나 샘플클럭을 넣을 수 있습니다(펑션 제너레이터 사용)

_1-1723081988408.png

 

 

이후에 아래 그림과 같이 바꿔주시면 됩니다.

 

_0-1723081919408.png

 

 

0 포인트
12/15 메시지
680 조회수

안녕하세요. 본 제품은 9181이 맞습니다. 따라서 샘플링 속도를 1000으로 맞추기로는 힘들 것 같다고 판단하여 dt의 값이 0.000508로 나타나는 1969로 맞추었습니다. 측정 파일에 쓰기 함수를 사용하여 1초간 1969개의 샘플을 취득한 결과 dt의 값으로 인해 엑셀에서는 00:00:00.001부터 각 두 개의 값이 측정될 뿐만 아니라 (이것은 소숫점 표기 개수의 문제 같습니다.) 엑셀에서의 1열 (시간)은 제대로 뜨지만 클릭해 보면 모두 12:00:00 AM으로 뜨는 문제가 발생합니다. 도움 주시면 감사하겠습니다!

0 포인트
13/15 메시지
669 조회수

저는 단지 데이터를 측정하고 이를 엑셀 파일에 저장하기만 하면 되기 때문에 새로운 코드를 짜서 엑셀 파일 1열엔 시간, 2,3,4열엔 X Y Z 데이터를 기록하고 싶습니다. 아래에 말한 것과 같은 문제점이 생겨 정확한 측정을 하지 못하고 있는데 도움을 주시면 감사하겠습니다. 답변 감사합니다!

0 포인트
14/15 메시지
661 조회수

파일을 첨부하였습니다. 

확인 부탁 드립니다.

0 포인트
15/15 메시지
560 조회수