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

외부 트리거를 이용한 analog input

해결 완료!
솔루션으로 이동

안녕하세요,

 

외부 트리거를 이용한 analog input에 문제가 있어서 찾아왔습니다.

NIDAQ를 이용하기 시작한지 얼마 되지 않아 엉뚱한 질문이 될 수도 있는 점 양해 부탁드립니다.

 

Python을 이용하여 해당 작업을 하려고 합니다. (USB-6212, windows 10, python 3.7.6, NI MAX 18.5)

function generator에서 나오는 sync 신호(TTL)로 트리거를 해 주려 하구요.

analog 신호는 같은 function generator를 사용하여 연습 삼아 적당히 sine wave(+-4V, 100Hz)를 만들어 ai0에 넣어줬습니다(BNC 케이블 이용).

 

코드는 아래와 같은 순서로 짜 보았습니다.

먼저 task를 만들고, AI voltage 채널 생성, sample clock timing 설정을 해 주었고,

이후에 task 시작하여 read 해 주면 입력해 준 sine wave를 볼 수 있었습니다. (이후 task close, clear)

 

하지만 task 시작 전에 아래와 같이 trigger를 넣어주면 analog input을 볼 수 없습니다.

nidaq.DAQmxCfgDigEdgeStartTrig(AItaskHandle,b"Dev%d/PFI0" %num,DAQmx_Val_Rising)
sync 신호는 BNC 케이블로 PFI0에 연결해 주었습니다.

 

TTL 신호는 analog channel에 넣어서 잘 나오는 것을 확인해 보았고, PFI0에서도 보고 싶었지만 (별도의 task 및 digital channel 생성, sample clock 설정, task 시작 후 read) PFI0에서는 신호를 넣어줘도 0만 읽히고 있습니다.

 

 

코드에서 뭔가 틀린 부분이 있는지, 혹은 PFI0 채널이 망가졌을 가능성은 있는지 궁금합니다.
 
추가적인 정보가 필요하시면 알려주세요.
 
감사합니다.
0 포인트
1/4 메시지
2,455 조회수

하나 잊고 쓰지 않은 것이 있어서 추가합니다.

C++ 등 다른 언어로 알려주시면 제가 python으로 번역할 수 있을 것 같으니 언어에 개의치 마시고 알려주세요 🙂

 

그리고 질문을 여기 요약하자면,

제가 하고 싶은 일은 TTL 신호의 하강엣지에서 트리거하여 data acquisition 시작(AI), TTL 신호의 상승엣지에서 data acquisition 끝내기 입니다.

 

감사합니다.

 

 

0 포인트
2/4 메시지
2,419 조회수

지금 사용하고 계신 트리거 기능은 Start Trigger를 사용하고 계시네요.

Start Trigger는 처음 trigger가 감지되면 태스크를 시작하도록 합니다.

말씀해주신 기능을 이용하려면 Pause Trigger를 사용하고, dig_lvl_when 파라미터를 high로 설정하면 될거같네요.

 

Pause Trigger의 기능 설명

http://zone.ni.com/reference/en-XX/help/370466AH-01/mxdevconsid/pausetriggereseries/#GUID-5A830D79-B...

 

Pause Trigger python 함수 설명

https://nidaqmx-python.readthedocs.io/en/latest/pause_trigger.html

0 포인트
3/4 메시지
2,411 조회수
솔루션
주제 작성자 Serenade이(가) 승인함

안녕하세요, 답변 감사합니다.

 

해당 문제는 우선 DAQmxCfgDigEdgeStartTrig에서 trigger source 설정 시 '/Dev1/PFI0' 같은 식으로 Dev# 앞에 슬래쉬를 붙여 해결하였습니다.(기존에는 슬래쉬 없이 'Dev1/PFI0'와 같이 설정함)

voltage 채널을 만들 때는 슬래쉬가 없어도 괜찮았었는데 이상하네요.

 

답변 주신 내용도 곧 확인해 보겠습니다. 제가 원하는 기능은 pause trigger를 사용하는 것이 맞을 것 같네요.

감사합니다. 🙂

0 포인트
4/4 메시지
2,402 조회수