LabVIEW에서 네트워크 공유 변수 사용 시 발생하는 문제 해결

업데이트 됨 Nov 8, 2023

해당 제품

하드웨어

  • FP-2000
  • FP-2010
  • FP-2015

소프트웨어

  • LabVIEW Real-Time Module
  • LabVIEW

드라이버

  • NI-RIO

문의사항

  • 네트워크를 통해 공유된 네트워크-공개 공유 변수와 통신하는 데 문제가 있습니다. 공유 변수가 개발 환경에서는 작동하지만 실행 파일에 포함된 경우에는 작동하지 않습니다.
  • 네트워크 공유 변수가 예상대로 작동하지 않습니다. 변수에 쓰여지는 값과 읽혀지는 값이 불일치합니다. 
  • 코드에서 공유 변수에 액세스 하려고 하면 오류가 발생합니다. 에러 -1950679034: 공유 변수가 값을 가지고 있지 않습니다.
  • 코드에서 변수 연결 열기 함수를 사용하여 공유 변수에 액세스 하려고 하면 에러 -1950678943가 발생합니다.
  • 공유 변수가 공유 변수 엔진에 배포된 상태를 유지하지 않습니다.
  • 공유 변수는 5번째 설정에 사용할 수 있지만 6번째에는 사용할 수 없습니다.
  • 공유 변수가 호스트 VI에서 업데이트하는 것과 CompactRIO에서 정보를 가져오는 것을 중지했습니다.

해결책

네트워크 공유 변수가 다른 네트워크 컴퓨터에서 업데이트되지 않을 수 있는 몇 가지 사항이 있습니다. 시스템(일반 또는 RT)에 따라 아래 문제 해결 단계 중 하나를 수행할 수 있습니다.   

일반적인 문제 해결
  1. 공유 변수가 네트워크 공개 활성화(Network-Published)로 설정되었는지 확인하십시오. 이 변수를 마우스 오른쪽 단추로 클릭하고 프로퍼티를 선택하십시오.
  2. 공유 변수가 바인딩된 경우 경로가 맞는지 확인하십시오. 이 경로를 확인하려면 변수를 마우스 오른쪽 버튼으로 클릭하여 프로퍼티를 선택하고 Bind to 섹션을 선택합니다.rtaImage.jfif
  3. 공유 변수가 병렬이 아닌 순차적으로 초기화되었는지 확인하십시오. 
  4. 공유 변수를 포함하는 라이브러리가 배포되었는지 확인하십시오. 이를 확인하려면 공유 변수를 호스팅하는 라이브러리를 마우스 오른쪽 단추로 클릭하고 배포 옵션 중 하나를 선택하십시오. 배포된 시스템 관리자를 사용하여 도구»배포된 시스템 관리자로 이동하여 변수가 배포되었는지 확인할 수 있습니다. LabVIEW 8.5 또는 이전 버전을 사용하는 경우 도구»공유 변수»변수 관리자를 선택하여 액세스 할 수 있는 변수 관리자를 사용할 수 있습니다.
    • 배포된 시스템 관리자에서 공유 변수의 상태를 확인할 수 있습니다. 또한 시간 타임스탬프를 점검하여 변수가 올바른 시간에 기록되는지 여부를 판별할 수 있습니다. 이것은 쓰기가 실패했는지 또는 예상보다 자주 쓰여지는지 여부를 판별하는 데 도움이 됩니다.
    • 배열 및 클러스터 데이터 유형을 사용하는 변수는 개별 구성 요소의 값을 표시하지 않습니다.
  5. NI-PSP 패킷을 차단할 수있는 컴퓨터에 방화벽이 설정되어 있지 않은지 확인하십시오. 제어판의 관리 센터 로 이동하여 방화벽의 상태를 확인할 수 있습니다. 잠재적인 방화벽 문제에 대한 자세한 내용은 NI 제품을 지원하도록 소프트웨어 및 하드웨어 방화벽 설정을 참조하십시오. 방화벽 문제로 인해 에러 -1950679034: 공유 변수가 값을 가지고 있지 않습니다.가 발생 합니다. 
  6. 바이러스 백신 소프트웨어에 방화벽이 있는 경우 방화벽을 해제 하거나 예외를 포함시켜야합니다.
  7. LabVIEW 프로젝트에서 변수를 배포할 타겟의 IP 주소가 맞는지 확인합니다. 예를 들면 네트워크 인터페이스가 여러 개인 경우 내 컴퓨터»속성을 마우스 오른쪽 버튼으로 클릭하고 해당 속성의 IP 주소가 사용할 네트워크 인터페이스의 IP 주소인지 확인하십시오. 그렇지 않으면 맞는 IP 주소로 바꾸십시오.
  8. 동일한 IP 서브넷에 있는 컴퓨터에서 공유 변수가 호스팅되는지 확인하십시오. 그렇지 않은 경우 도구»공유 변수»컴퓨터 등록... 으로 이동하여 원격 컴퓨터를 등록 할 수 있습니다.
  9. PC에 공유 변수에 액세스하려는 네트워크 카드가 여러 개인 경우 사용하지 않는 네트워크 카드를 비활성화하십시오. 또한 호스트에 여러 네트워크 카드가 있는 이더넷 타겟에 연결하려면 어떻게 해야 합니까? 문서를 참조하여 적절한 네트워크 카드가 기본 네트워크로 설정되어 있는지 확인하십시오.
  10. 공유 변수 엔진이 실행 중인지 확인하십시오. Windows Services로 이동하여 NI Variable Engine 프로세스가 존재하고 실행 중인지 확인하십시오. 존재하지 않으면, LabVIEW Run-Time을 설치하십시오. 설치가 되어 있으나 실행 중이 아니면 프로세스를 마우스 오른쪽 단추로 클릭하고 시작하십시오. 서비스가 자동으로 시작 되도록 하려면, 서비스의 등록 정보를 입력하고 시작 유형자동 으로 설정되어 있는지 확인하십시오. 공유 변수 엔진을 시작하지 못하면 서비스 등록 정보의 복구 탭에서 변수 엔진이 첫째, 둘째 및 후속 시도에서 다시 시도하도록 설정할 수 있습니다.
  11. NI 서비스를 다시 시작하고 NI MAX 데이터베이스를 리셋 하십시오.
  12. LabVIEW 예제를 사용하여 다른 방법을 통해 클라이언트와 서버의 연결을 테스트하십시오. NSV 관련 예제는 도움말»예제 찾기...»네트워킹»공유 변수에서 찾을 수 있습니다. 예제를 사용하여 문제의 범위를 좁히고 코드 또는 다른 설정과 관련된 문제인지 식별하는 데 도움이 될 수 있습니다.
  13. 변수 값이 업데이트되지 않거나 잘못된 값을 표시하거나 명령 없이 값을 변경하는 경우 네트워크 공유 변수를 다른 이름으로 다시 만들고 원래 변수를 새 변수로 교체하십시오.
  14. 프로젝트에서 공유 변수를 활용하는 VI를 제거하고 LabVIEW를 다시 시작합니다. 그런 다음 프로젝트를 열고 VI를 다시 추가하십시오.
  15. 소프트웨어를 업데이트한 후 LabVIEW를 사용할 때 문제가 발생하면 다음 문서의 단계에 따라 LabVIEW를 복구하십시오: NI 패키지 관리자 (NIPM)에서 소프트웨어 복구

RT 시스템 문제 해결
  1. 딥 스위치가 실시간 타겟에 올바르게 설정되어 있는지 확인하십시오. 개발 환경에서 실행할 때 공유 변수가 작동하지만 시작 실행 파일을 설정할 때 공유 변수가 작동하지 않으면 시작 프로그램 없음에 대한 딥 스위치가 꺼져 있는지 확인하십시오.
  2. 라이브러리를 마우스 오른쪽 버튼을 클릭하고 모두 배포를 선택하여 변수가 RT 시스템에 배포되었는지 확인하십시오. 
  3. RT 대상에서 DNS IP를 확인하십시오. 이 IP가 유효한 DNS 서버가 아닌 것으로 설정되면 공유 변수는 발생하는 DNS 시간 초과 때문에 느리게 업데이트 됩니다. 이 항목을 0.0.0.0으로 변경하면 공유 변수가 적절한 비율로 업데이트됩니다.
  4. 타이밍을 조정하거나 공유 변수에 쓰는 Timed 루프에 대기를 추가하십시오. Timed 루프가 높은 빈도로 실행되어 다른 프로세스를 멈추게 하면 변수가 매우 느리게 업데이트 되거나 전혀 업데이트 되지 않는 것처럼 보입니다.
  5. Real-time 실행 파일과 공유 변수를 사용하는 경우 프런트 패널 객체가 공유 변수에 바인드되지 않았는지 확인하십시오. 프런트 패널 객체는 실시간 실행 파일을 빌드 할 때 제거되어 공유 변수가 업데이트 되지 않습니다. 응용 프로그램을 실행 파일로 배포하려는 경우 블록 다이어그램에서 공유 변수 노드를 사용하십시오.
  6. 실시간으로 대상에서 공유 변수를 읽으려는 경우 대상에 변수 클라이언트 지원가 설치되어 있는지 확인하십시오. 이는 MAX에서 원격 시스템 아래의 실시간 타겟 옆에 있는 [+]를 확장하고 소프트웨어 옆에 있는 [+]를 확장하여 확인할 수 있습니다. 공유 변수가 실시간 타겟에 의해 호스팅 되는 경우 동일한 방법을 사용하여 네트워크 변수 엔진이 설치되었는지 확인하십시오. 네트워크 변수 엔진은 FieldPoint 2000, 2010 및 2015 컨트롤러에서 충분한 메모리가 없기 때문에 올바르게 작동하지 않습니다.
  7. 공유 변수가 RT 타겟에 있지만 호스트 VI 또는 분산 시스템 관리자(Distributed System Manager)를 사용하여 변수의 업데이트된 값을 볼 수 없는 경우 공유 변수를 RT타겟에서 호스트로 이동해 보십시오. 분산 시스템 관리자를 실행할 때 배포된 호스트 변수에 변수가 표시되지 않고 값이 'No known value'가 될 수 있습니다. 
  8. 변수 값이 업데이트되지 않거나 잘못된 값이 표시되거나 명령 없이 변수 값을 변경하는 경우 다른 이름으로 변수를 다시 만들고 원래 변수를 새 변수로 교체하십시오.