에러 -1073807339 VISA 읽기 또는 쓰기 타임아웃

업데이트 됨 Feb 20, 2024

해당 제품

소프트웨어

  • LabVIEW
  • LabWindows/CVI

드라이버

  • NI-VISA
  • NI-Serial
  • NI-488.2

문의사항

  • VISA 쓰기 또는 VISA 읽기 작업을 수행 할 때 에러 -1073807339가 발생합니다 .

VISA 읽기 또는 VISA 쓰기에서 -1073807339 에러가 발생했습니다.

가능한 이유 :

VISA: (Hex 0xBFFF0015) 동작이 완료되기 전에 타임아웃이 만료되었습니다.

  • VISA 테스트 패널에서는 인스트루먼트와 통신이 가능하나 LabVIEW에서 VISA 쓰기 및 읽기를 사용할 때, 타임아웃 에러 -1073807339가 발생합니다.

해결책

이 에러 메시지가 나타날 수 있는 이유는 몇 가지가 있으며 그 중 가장 일반적인 에러 메시지는 다음과 같습니다.

A) 올바른 드라이버를 설치하지 않았을 수 있습니다. 하드웨어에 적합한 드라이버가 있는지 확인하십시오. 일반적인 드라이버는 다음과 같습니다.

  • NI-VISA (시리얼 또는 GPIB 통신을 사용하는 계측기 용)
  • NI-Serial (RS232, RS422, RS485 등과 같은 시리얼 통신을 사용하는 계측기 용)
  • NI-488.2 (GPIB 통신을 사용하는 계측기 용)
참고: 새로운 NI GPIB 하드웨어 장치를 설치하기 전에 NI-488.2 드라이버 소프트웨어를 설치해야만 Windows가 이를 감지할 수 있습니다.

또한 NI 드라이버 다운로드 에서 최신 버전의 드라이버가 설치되어 있는지 확인하십시오. 호환성 정보는 드라이버의 readme 파일에서 찾을 수 있습니다.


B) 포트가 연결되지 않았거나 잘못된 포트를 선택하여 데이터를 송수신 할 수 없습니다. 계측기가 사용중인 포트에 제대로 연결되어 있는지 확인하십시오.

C) 같은 드라이버로 다른 시스템을 사용해보십시오. COM 포트가 손상되었거나 원래 컴퓨터에서 작동하지 않을 수 있습니다.

D) 잘못된 명령어로 인해 타임아웃 에러가 발생할 수도 있습니다. VISA ReadVISA Write 호출로 전송 된 명령어를 점검하고 해당 명령이 사용자 계측기에 올바른 명령어로 작성되었는지 확인하십시오.


참고: 명령의 끝에서 종종 새로운 행 또는 캐리지 리턴이 필요합니다. LabVIEW에서 테스트하는 방법은 프런트 패널에서 명령어 문자열 컨트롤을 마우스 오른쪽 버튼으로 클릭하고 디스플레이를 '\'코드 디스플레이 모드로 변경하는 것입니다. 이 모드에서 캐리지 리턴은 \r , 줄 넘김은 \n , 줄 끝은 \r\n 입니다. 제품 설명서를 참조하고 적절한 옵션을 지속적으로 사용하십시오.
 

E) 포트의 통신 설정이 올바르게 구성되지 않았을 수 있습니다. 보드 속도, 데이터 비트, 패리티, 정지 비트 및 흐름 제어가 하드웨어 요구 사항에 맞게 올바르게 설정되어 있는지 확인하십시오. VISA VI 또는 NI-MAX를 사용하여 런타임 중에 프로그래밍 방식으로 이 설정을 변경할 수 있습니다.


참고: 이 에러는 RS-485 시리얼 포트가 있는 2선 계측기를 사용하려고 시도했을 때 발생할 수 있습니다. RS-485 시리얼 포트로 작동하도록 RS-485 시리얼 포트로 2-Wire 장치 연결 및 구성을 참조하여 장비를 올바르게 구성 해야합니다.


F) 시리얼 포트에서 사용할 수있는 것보다 많은 비트를 읽으려고 시도하면 에러가 발생할 수 있습니다.

F.1) VISA 에서 읽은 데이터가 사용 가능한 데이터의 양과 정확히 일치하도록하기 위해 VISA 프로퍼티 노드Bytes At Port  포트가 명확하게 구현되어야한다.

F.2) 한 번에 1 Byte만 읽음으로써 너무 많은 바이트를 읽으려고 하는지 확인할 수 있습니다. 1 Byte만 읽을 떄 오류가 발생하지 않으면 타임아웃 에러가 다시 나타날 때까지 읽은 Byte 수를 늘리십시오. 이것은 명령이 보낸 몇 Byte를 알려줍니다.


참고 : 1 Byte 만 읽는 동안 계속 에러가 발생하면 명령이 올바르게 기록되었는지 확인하고 명령 문자열을 올바르게 종료했는지 확인하십시오 (솔루션 C에서 가져온 것과 동일).

G) 구형 계측기는 명령어에 빠르게 반응하지 않아서 VISA Write 명령과 VISA Read 명령 사이에 큰 지연을 초래할 수 있습니다. 이러한 유형의 계측기와 인터페이스 하도록 설계된 응용 프로그램은 이러한 지연을 예상해야 하며 잠재적인 타임아웃 에러를 효과적으로 피하기 위해 VISA 쓰기 및 읽기 사이의 대기 기능을 구현해야 합니다.

H) 대용량 데이터 세트는 시리얼 포트를 통해 전송할 때 기본 시간 초과 기간이 2000 밀리 초보다 오래 걸리기 때문에 많은 양의 데이터를 읽거나 쓰면 타임아웃이 발생할 수도 있습니다. 개발 시스템에 따라 VISA Session Timeout 을 수동으로 여러 가지 방법으로 지정할 수 있습니다. VISA Timeout 설정에 대한 지침은 아래를 참조하십시오 :

LabVIEW: 함수 팔레트에 위치한 인스트루먼트 I/O»VISA»VISA 고급에서 VISA 타임아웃 설정을 사용할 수 있습니다. Configuring Timeout for VISA Sessions 을 참조하십시오.


LabWindows/CVI: Attribute_Name 의 파라메터를 VI_ATTR_TMO_VALUE로 설정하여 viSetAttribute 함수를 사용할 수 있습니다.


참고 : VISA 세션의 타임아웃 값을 변경하면 세션의 모든 VISA 쓰기 및 읽기에 영향을 미칩니다. 그러나 세션 중에 언제든지 프로퍼티/속성을 설정할 수 있으므로 필요에 따라 구성 할 수 있습니다.

추가 정보

필요한 소프트웨어와 시스템의 일반적인 에러나 장애를 해결하는 기술에 대한 자세한 내용은 인스트루먼트 드라이버 문제 해결 시스템 문서를 참조하십시오.