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

while 루프 주기

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

 

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

 

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

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

 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 메시지
237 조회수

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

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

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

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

파일을 첨부하였습니다. 

확인 부탁 드립니다.

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