해결책
DAQmx 는 정지 트리거를 생성하는 직접적인 방법을 제공하지 않습니다; 그러나 참조 트리거를 사용하고 읽기 위치를 수정하여 LabVIEW 에서 정지 트리거와 동등한 것을 생성 할 수 있습니다.
이를 수행하려면 참조 트리거 전후에 N 개의 샘플을 수집하도록 구성된 유한 수집을 설정해야 합니다. 이는 참조 트리거에 대해 사전 트리거 샘플을 제공하기 위해 DAQmx 태스크가 참조 트리거를 기다리는 동안 계속해서 데이터를 수집하기 때문에 유용합니다. DAQmx Read 함수를 사용하여 계속 수집된 이 데이터는 명시적으로 구성된 데이터 수집 태스크의 일부가 아니더라도 읽을 수 있습니다.
참조 트리거를 정지 트리거로 구현하는 방법의 예는 아래 스니펫을 참조하십시오.
그림 1 : LabVIEW에서 시작 및 정지 트리거를 사용하는 DAQmx 어플리케이션
위의 예에서, DAQmx API 로 아날로그 입력 태스크를 생성하고 시작 디지털 에지 트리거와 기준 디지털 에지 트리거라는 두 가지 트리거를 사용하도록 구성했습니다.
시작 트리거는 태스크가 참조 트리거를 준비하기 위해 샘플 획득을 시작할 시기를 결정하고, 참조 트리거는 태스크가 태스크를 중지하기 전에 원래 요청된 유한한 사전 트리거 및 사후 트리거 샘플을 보낼 시기를 결정합니다.
참고 : DAQmx 드라이버는 시작 트리거가 발생할 때까지 참조 트리거를 기다리지 않기 때문에 원하는 경우 동일한 PFI 라인에 도착하도록 시작 및 참조 트리거를 설정할 수 있습니다.
참조 트리거 구성하기참조 트리거에는
채널 당 트리거 이전 샘플이라는 추가 입력 매개 변수가 필요합니다.
그림 2 : LabVIEW의 사전 트리거 샘플 파라미터
트리거 이전 샘플 수는 참조 트리거가 발생하기 전 유한 수집이 이루어지는 동안 얼마나 많은 총 샘플 수가 있는지 결정합니다. 수집 중 나머지 샘플은 트리거 이후 샘플로 간주됩니다. 암시적으로 사후 트리거 샘플의 수는 다음과 같습니다 :
포스트 트리거 샘플 =
채널 당 샘플 (DAQmx 타이밍 입력) -
채널 당 트리거 이전 샘플 (DAQmx 트리거 입력)
예를 들어 최소 트리거 전 샘플 (2), 트리거 후 샘플 40 개를 수집하는 작업을 구성하려면 채널당 샘플을 DAQmx 타이밍에 대한 입력으로 42 개를 사용하고 채널당 사전 트리거 샘플로 2 개를 사용합니다. 유한 수집의 최종 출력은 다음과 같이 보입니다.
그림 3 : 참조 트리거가있는 최종 DAQmx 판독 출력의 시각화
참고 : 작업의 타이밍을 설정할 때 참조 트리거에 대해 적어도 2 개의 사전 트리거 샘플과 2 개의 사후 트리거 샘플이 있어야합니다. 결과적으로 참조 트리거가 정지 트리거로 사용 되더라도 참조 트리거가 발생한 후에도 최소한 두 개의 샘플을 수신하게 되지만, 원하는 경우 수집 이후 처리 과정에서 제거될 수 있습니다.