LabVIEW가 시리얼 포트를 지속적으로 폴링하지 못하도록 방지하기

업데이트 됨 Nov 6, 2018

해당 제품

Software

  • LabVIEW Full

Driver

  • NI-VISA

문의사항

시리얼 포트에서 읽을 때, LabVIEW는 포트에서 데이터를 사용할 수있을 때까지 데이터를 계속 폴링합니다. 이렇게하면 프로세서와 리소스 사용이 증가하고 프로그램의 다른 루프가 원활하게 실행되지 않습니다. 이 문제를 어떻게 방지 할 수 있습니까?

해결책

이 문제는 VISA 이벤트를 사용하여 해결할 수 있습니다. VISA 이벤트는 VISA 이벤트 활성화(VISA Enable Event)사용 하여 시리얼 문자가 포트에 도착할 때 생성 될 수 있습니다. 잠시 후 VISA 읽기(VISA Read)기능 전에 VISA 이벤트 기다림(VISA Wait on Event)기능을 배치 할 수 있습니다.

VISA 읽기(VISA Read)는 문자가 시리얼 포트에서 수신 된 경우에만 실행됩니다. 시리얼 포트에 데이터가 도착할 때까지 VISA 이벤트 기다림(VISA Wait on Event)기능이 포함 된 스레드가 일시 중단됩니다. 따라서 VISA 읽기(VISA Read) 기능은 포트에서 데이터를 사용할 수있을 때만 실행됩니다. 읽을 바이트 수를 1로 지정하여 데이터가 사용 가능한 경우에만 시리얼 포트가 폴링되도록합니다. 프로그램이 중지되기 전에 VISA 세션을 닫기 전에 VISA 이벤트 비활성화(VISA Disable Event) 기능을 사용하여 이벤트를 닫습니다.

이러한 기능은 LabVIEW에서 블록 다이어그램 함수 팔레트에서 다음과 같이 탐색하여 찾을 수 있습니다 : 인스트루먼트 I/O(Instrument I/O)»VISA»고급(Advanced)»이벤트 다루기(Event Handling) .

추가 정보

VISA 이벤트 대기(VISA Wait on Event) 함수에 대한 더 자세한 정보는 LabVIEW 도움말을 참조하십시오.

이 글이 도움이 되셨습니까?

도움 안됨