NI-DAQmx 다중 태스크 또는 터미널 경로를 사용할 때 에러 -89137 발생

업데이트 됨 Apr 28, 2023

해당 제품

하드웨어

  • Multifunction I/O Device

소프트웨어

  • LabVIEW

드라이버

  • NI-DAQmx

문의사항

NI-DAQmx 디바이스에서 다중 태스크를 프로그래밍하거나 여러 터미널 경로를 연결하면 다음과 같은 에러가 발생합니다:

에러 -89137 : 지정된 경로는 현재 다른 경로에서 사용중인 리소스가 필요하므로 충족될 수 없습니다.
(Error -89137: Specified route cannot be satisfied, because it requires resources that are currently in use by another route.)

이 에러를 어떻게 해결할 수 있습니까?

해결책

이 에러는 지정된 모든 DAQmx 태스크 또는 경로에 참조 클럭을 라우팅 할 수 없기 때문에 발생합니다. DAQmx Connect Terminals (VI)를 사용하는 경우 프로그램의 다른 DAQmx 태스크 또는 섹션에서 동일한 하드웨어 리소스에 액세스할 때 이 오류를 방지하려면 연결된 터미널에 대해 DAQmx Disconnect Terminals (VI)를 사용해야 합니다. NI MAX에서 디바이스를 리셋하여 모든 경로의 연결을 수동으로 해제할 수도 있습니다.

이 에러는 별도의 태스크가 공유 리소스에 액세스해야 할 때마다 발생할 수 있습니다. 따라서 VI를 실행 또는 디버깅하는 동안 예기치 않은 LabVIEW 또는 DAQmx 태스크를 실행하지 않도록 확인하는 것이 중요합니다.

AI, AO, DIO 또는 카운터와 같은 여러 하위 시스템을 동시에 사용하려는 경우 NI-DAQmx 타이밍 프로퍼티인 참조 클럭 속도(Reference Clock Rate)참조 클럭 소스(Reference Clock Source)를 사용하여 다른 채널 구성(예: 트리거 및 타이밍)보다 먼저 설정해야 하는 모든 작업에 대해 동일한 참조 클럭을 설정해야 합니다.

이러한 프로퍼티를 설정하려면 개발 환경에 따라 적절한 API를 호출해야 합니다.
 
  • LabVIEW로 프로그래밍하는 경우:
  1. 채널 생성 후 DAQmx Timing Property Node (VI) 추가합니다.
  2. 프로퍼티 노드를 마우스 오른쪽 버튼으로 클릭하고 원소 추가(Add element)를 선택합니다.
  3. 아래 그림과 같이 More:Reference Clock:Rate Property 및 More:Reference Clock:Source Property를 선택하십시오. (아래 그림 참고)
  1. RefClk.Src(More:Reference Clock:Source Property) 입력을 오류 메시지에 표시된 소스 터미널 값으로 설정(예: PXIe_Clk100) 하십시오. (위 경우는 RefClk Rate 입력을 100MHz로 설정해야 합니다.)
  • LabWindows ™/CVI에서 프로그래밍하는 경우: 
채널 생성 후 태스크 타이밍을 구성하기 전에 코드에 다음 기능을 추가합니다.
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle,DAQmx_RefClk_Src,"PXIe_Clk100")); 
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle,DAQmx_RefClk_Rate,100000000.0)); 

 
 

추가 정보

참조 클럭은 암시적 또는 명시적으로 설정할 수 있습니다. NI-DAQmx 디바이스에서 참조 클럭을 사용할 때 해당 디바이스의 모든 태스크에 대해 동일한 참조 클럭을 설정해야 합니다. 참조 클럭이 명시적으로 설정되지 않은 경우 첫 번째 작업은 암시적으로 전체 카드에 대한 참조 클럭을 정의합니다. 따라서 다른 태스크가 나중에 다른 참조 클럭을 명시적으로 설정하려고 시도하면 해당 클럭은 이미 첫 번째 태스크에서 사용 중인 참조 클럭 회로를 사용하려고 시도합니다.

이는 채널 확장을 사용하는 특정 DSA, S Series 모듈이나 동시 샘플링 가능한 X Series 카드를 사용할 때 나타날 수 있습니다. (채널 확장에 관한 내용은 다음 링크를 참고하십시오: Easily Synchronize and Trigger NI-DAQmx with Channel Expansion)
이는 채널 확장 동기화가 섀시의 참조 클럭을 사용하여 완료되기 때문입니다.