2017-04-14 3 views
0

디지털 에지를 카운트하고 n 번째 에지마다 TTL 신호를 출력하는 PyDAQmx로 프로그램을 작성하려고합니다. PyDAQmx의 수집 모드를 LabVIEW를 사용하면서 설정 한 "1 샘플 (요청시)"으로 설정하는 데 문제가 있습니다. NI USB6210 DAQ 디바이스를 사용하고 있습니다.PyDAQmx 수집 모드를 온 디맨드로 설정

이 그래서 난 파이썬으로 C 프로그램을 번역하는 방법을 보여줍니다 PyDAQmx 페이지의 예에 기반 등/PyDAQMX/NIDAQ 내 처음으로 코딩이며, 코드의 관련 부분은 다음과 같습니다

read = int32() 
data = numpy.zeros((1000,), dtype=numpy.uint32) 
try: 
    DAQmxCreateTask("",byref(taskHandle)) 
    DAQmxCreateCICountEdgesChan(taskHandle,"Dev6/ctr0","",DAQmx_Val_Rising,0,DAQmx_Val_CountUp) 
    #Somehow set acquisition mode here 
    DAQmxStartTask(taskHandle) 

while True: 

    DAQmxReadCounterScalarU32 (taskHandle, 1000, None, read) 
    print "Acquired %d samples"%read.value 
    print "result is %s " %result 

답변

0

내 예상이 카운터 입력 작업의 기본 타이밍 모드, 그리고 당신이 DAQmx에 C API의 Sample Timing Type 매개 변수를 통해 드라이버를 요청하여 다음 사항을 확인 할 수 있다는 것입니다 : 값을 가지고

DAQmxCreateTask("",byref(taskHandle)) 
DAQmxCreateCICountEdgesChan(taskHandle,"Dev6/ctr0","",DAQmx_Val_Rising,0,DAQmx_Val_CountUp) 

timingType = int32() 
DAQmxGetSampTimingType(taskHandle, byref(timingType)) 
print(timingType) 

timingType 경우 10390이면 주문형 샘플링이 가능합니다.

일반적으로 function이 없으면 (이 경우 DAQmxCfgOnDemandTiming() 기능이 없음) 기본 설정이라고 간주 할 수 있습니다. 또한 DAQmx 기능은 모든 장치 설정을 노출시키지 않으므로 매우 특수한 동작의 경우 사용자가 명시 적으로 요구하는 properties을 가져와 설정해야합니다.

+0

감사합니다. 코드를 사용하여 기본값은 10390이므로 주문형 샘플링 인 것으로 나타났습니다. –