에러 56 : 네트워크 작업이 사용자가 지정한 시간이나 시스템 시간 제한을 초과했습니다

업데이트 됨 Jun 7, 2024

해당 제품

소프트웨어

  • LabVIEW
  • VeriStand

운영 체제

  • NI Linux Real-Time
  • Windows

문의사항

  • LabVIEW에서 TCP / IP 기반 네트워킹 API를 사용하여 네트워크 장치간에 통신을 시도하고 있지만 VI가 다음과 같은 에러와 함께 타임아웃 되었습니다. 에러 56 - LabVIEW: 네트워크 작업이 사용자가 지정한 시간이나 시스템 시간 제한을 초과했습니다(Error 56 – LabVIEW: The network operation exceeded the user-specified or system time limit). 이 문제를 해결하려면 어떻게 해야합니까?
  • 내 컴퓨터를 사용하여 최종 네트워크 장치와 통신하려고하지만 에러 56이 발생합니다. 그러나 다른 컴퓨터에서 동일한 코드를 성공적으로 실행할 수 있습니다. 왜 이런 일이 발생합니까?
  • VeriStand 프로젝트를 배포하기 위해 이야기하려고하는데 오류 메시지가 나타납니다.
시스템 정의 파일을 배포하는 동안 VeriStand 게이트웨이에서 오류가 발생했습니다
(The VeriStand Gateway encountered an error while deploying the System Definition file.)
세부:
Window.lvlib : Project Window.vi >> Project Window.lvlib : Command Loop.vi >> NI_VS Workspace ExecutionAPI.lvlib : NI VeriStand - Connect to System.vi에서 에러 56 발생
가능한 이유 :
LabVIEW : 네트워크 작업이 사용자가 지정한 시간이나 시스템 시간 제한을 초과했습니다.
(LabVIEW:  The network operation exceeded the user-specified or system time limit.)

해결책

이 시간 초과 에러는 TCP/IP 기능을 잘못 구성하여 발생할 수 있으며 데이터가 수신되는 동안 손실없이 지워질 수 있습니다. 데이터가 수신되지 않는 경우이 에러를 완화하기 위한 몇 가지 문제 해결 단계가 있습니다.

특정 LabVIEW 어플리케이션을 사용하는 경우

  • 에러를 생성하는 VI가 올바르게 설정된 시간 초과 값을 가지고 있는지 확인하십시오. 예: HTTP 클라이언트 가져 오기 VI를 사용하여 느린 서버에서 큰 문자열을 수신하는 경우, 기본 10 초 제한 시간으로는 충분하지 않을 수 있습니다.
  • TCP/IP를 사용하는 Reentrant VI를 사용하는 경우 재진입을 해제하십시오. 경쟁 상태가 발생하여 네트워크가 사용 중이거나 쓰기 또는 읽기 작업 중에 시간 초과 될 수 있습니다
  • 응용 프로그램의 시간 초과 에러가 예상되는 동작 일 수 있습니다. TCP Read Standard에서 데이터를 수신 할 때 TCP 기능은 제한 시간 동안 지정된 바이트 수를 기다립니다. 함수가 전체 번호를 받지 못하면 에러 56과 함께 받은 데이터를 반환합니다. 오류 지우기에 대한 정보는 오Clearing a Specific Error From the Error Cluster를 참조하십시오.
  • 네트워크 케이블이 각 시스템에 제대로 연결되어 있는지 또는 무선 네트워크가 제대로 연결되어 있는지 확인하십시오.
  • 도메인 이름 서버 (DNS)와 관련된 문제를 확인하기 위해 연결을 열 때 도메인 이름 대신 IP 주소를 사용하십시오.
    • 예 : 'http://www.google.com'대신 'http://74.125.224.72/'를 사용하십시오.
  • 도구 » 옵션 » VI 서버 로 이동하여 하단의 추가를 선택하고, Machine name/access 필드에 *를 입력하고, 액세스 허용(Allow access)이 선택되어 있는지 확인하여 Machine Access List에 *를 추가해보십시오. 그러나 이렇게 하면 모든 시스템이 대상 시스템에 액세스 할 수 있습니다.
  • 장치가 여전히 연결되어 있고 통신 중인지 확인하려면 ping 명령을 사용하여 해당 네트워크 장치에 연결하십시오.
  • 포트가 차단되지 않도록 컴퓨터에 설치된 모든 방화벽 및 바이러스 백신 소프트웨어 패키지를 해제하십시오.
  • 두 장치가 동일한 서브넷에 있고 서브넷 마스크가 동일한지 확인하십시오. NI 네트워크 장비 설정에 대한 더 자세한 정보는 "Inconsistent IP Settings" When Connecting to Real-Time Target을 참조하십시오.
  • 과도한 로컬 네트워크 트래픽으로 인해 네트워크 통신 속도가 느려지 고 전송이 예상보다 오래 걸리는지 확인하십시오.
  • FTP VI를 사용하는 경우, 사용중인 비밀번호에 인쇄 할 수 없는 문자나 공백이 없는지 확인하십시오.
  • 정보를 보내는 VI가 실행 중인지 확인하십시오.
  • 통신 부분이 SubVI에있는 경우 SubVI에서 꺼내어 SubVI 외부에서 작동하는지 확인하십시오.
  • LabVIEW Example Finder의 예제에서 "Simple TCP.lvproj"를 사용해보십시오.
  • 루프를 반복적으로 읽고 쓰는 경우 약 200ms 정도의 루프에 Wait (ms) Function를 삽입 해보십시오.

VeriStand 사용 :

  • 컨트롤러 설정만 지정하여 빈 시스템 정의를 배치하십시오.
  • 올바른 IP 주소 및 컨트롤러 OS가 시스템 정의에 지정되어 있는지 확인하십시오.
  • 네트워크 케이블이 각 시스템에 제대로 연결되어 있는지 또는 무선 네트워크가 제대로 연결되어 있는지 확인하십시오.
  • 가능한 경우 호스트 PC와 RT 목표 사이에 직접 이더넷 연결을 시도하십시오
  • 장치가 여전히 연결되어 있고 통신 중인지 확인하려면 ping 명령을 사용하여 해당 네트워크 장치에 연결하십시오.
    • VeriStand가 사용자 지정 장치와 같은 필수 종속성을 배포하는데 충분한 시간을 가지도록 하려면 응답 시간을 최소화 해야합니다.
  • 포트가 차단되지 않도록 호스트 컴퓨터에 설치된 모든 방화벽 및 바이러스 백신 소프트웨어 패키지를 해제하십시오.
  • 두 장치가 동일한 서브넷에 있고 서브넷 마스크가 동일한지 확인하십시오. NI 네트워크 장비 설정에 대한 더 자세한 정보는 "Inconsistent IP Settings" When Connecting to Real-Time Target을 참조하십시오.
  • 과도한 로컬 네트워크 트래픽으로 인해 네트워크 통신 속도가 느려지고 전송이 예상보다 오래 걸리는지 확인하십시오.

RT 컨트롤러 VI 사용하기 :

  • VI에 연결하는 MAC 주소가 정확하고 올바르게 포맷되었는지 확인하십시오. 문자열 제어 또는 상수 ID가 16 진수 형식으로 데이터를 표시하는지 확인하십시오. 예: 0080 2F0A 14FF. 문자열 컨트롤이 16 진수 형식이 아니면 마우스 오른쪽 버튼으로 클릭하고 16 진수 표시 선택하십시오.

Linux 용 LabVIEW와 Open Suse 11.1에서 File Put 또는 TCP Wait On Listener VI 사용하기 :

  • FTP 전송을 위해 패시브 모드를 사용하려면 File Put File VI를 구성하십시오.

패킷 스니핑 사용 문제 해결 :

위의 단계가 도움이되지 않으면 패킷 스니핑 프로그램을 사용하여 데이터가 네트워크를 통해 전송되는지 확인하십시오. Wireshark라는 타사 도구를 사용하면 데이터가 도착하는지 확인할 수 있습니다. 데이터가 도착하지 않고 이 오류가 표시되면 데이터를 보내는 장치 또는 네트워크에 문제가 있는 것입니다. 데이터가 Wireshark에 도착했지만 여전히 이 오류가 표시되면 방화벽 문제 또는 잘못된 TCP 기능이 있을 가능성이 큽니다. Wireshark는 Wireshark에서 확인할 수 있습니다. Wireshark와 함께 CaptureFilters를 사용하여 특정 IP 주소로부터 나가는 패킷만 분리할 수 ​​있습니다.

또한 패킷이 네트워크로 성공적으로 전송되었지만 최종 장치가 응답하지 않으면 최종 장치의 네트워크 어댑터에 결함이 발생할 수 있습니다.

추가 정보

에러 56은 LabVIEW 코드가 사용자 정의 제한 시간 내에 네트워크 응답을 수신하지 못하기 때문에 발생합니다. 이 에러는 일반적인 타임아웃 에러이며 많은 다른 요인의 결과 일 수 있습니다. 에러 56은 종종 VI가 서버가 타임 아웃 한도에 도달 할 때까지 오지 않아서 VI가 응답을 기다리도록하는 에러 66 - LabVIEW: 피어가 네트워크 연결을 닫았습니다. (Error 66 - LabVIEW: The network connection was closed by the peer​)이고, 결과적으로 연결을 닫습니다.