LabVIEW에서 이벤트는 다음 소스로부터 생성됩니다:

  • 사용자 인터페이스—사용자 이벤트에는 마우스 클릭, 키보드 입력 등이 있습니다.
  • 외부 I/O—외부 I/O 이벤트에는 수집이 완료되거나 에러 조건이 발생했을 때 신호를 주는 하드웨어 타이머 또는 트리거가 있습니다.
노트 LabVIEW는 또한 프로그램식으로 생성할 수 있는 외부 I/O 이벤트인 ActiveX 및 .NET Framework 이벤트를 지원합니다.
  • 블록다이어그램—블록다이어그램 이벤트 또는 프로그램적으로 생성되는 이벤트에는 사용자 이벤트가 포함되며, 이는 사용자 정의 데이터로 이벤트를 생성하거나 블록다이어그램에서 발생한 다른 이벤트를 생성할 수 있게 합니다.

각 이벤트는 VI의 프런트패널에 있는 컨트롤, VI의 프런트패널 윈도우, VI의 구획 또는 LabVIEW 어플리케이션과 연계되어 있습니다.

노트 LabVIEW는 VI가 실행 중이거나 다른 실행 중인 VI가 해당 VI를 SubVI로 호출할 때에만 VI에 대한 이벤트를 생성합니다.

사용자 인터페이스 이벤트

사용자 인터페이스 이벤트를 사용하면, 사용자가 프런트패널에서 특정 작업을 수행할 때마다 LabVIEW에서 이벤트가 생성되는 어플리케이션을 설계할 수 있습니다. 프런트패널에 해당 이벤트가 발생할 때마다, 블록다이어그램은 해당 이벤트에 대해 작성된 코드에 따라 응답합니다. 루프에서 사용자 인터페이스를 폴링하여 상호작용하는 것과 달리, 사용자 인터페이스 이벤트는 프로그램의 CPU 요구사항을 줄이고, 블록다이어그램 코드를 단순화하며, 블록다이어그램이 작성된 모든 상호작용에 대해 응답할 수 있도록 합니다. LabVIEW는 사용자 인터페이스 이벤트를 두 개의 이벤트 타입으로 분류합니다.

프로그램적으로 생성된 이벤트

프로그램적으로 생성된 이벤트를 사용하면, 프런트패널에서의 사용자 작업이 없이도 블록다이어그램에서 이벤트를 생성할 수 있습니다. 프로그램적으로 생성된 이벤트는 데이터 흐름 의존성을 갖지 않는 프로그램의 다른 부분들과 통신합니다. 예를 들어 어플리케이션의 한 부분은 연속 루프를 실행하여 온도 센서를 모니터하고, 센서가 경고 레벨에 도달하면 사용자 이벤트를 생성합니다. 어플리케이션의 다른 부분에서는 이벤트 구조가 실행되어, 센서가 경고 레벨에 도달하여 생성된 사용자 이벤트와 사용자에게 경고 조건을 알리기 위해 이벤트 구조로 처리되어야 할 사용자 인터페이스 이벤트를 모두 처리합니다. 사용자 인터페이스 이벤트 및 프로그램적으로 생성된 이벤트를 하나의 이벤트 구조에서 처리하면, 이벤트를 사용한 큐된 상태 머신과 같은 고급 구조를 구현할 수 있습니다.

노트 일반적으로 LabVIEW는 사용자가 활성 프런트패널에서 직접 상호작용하는 것의 결과로만 사용자 인터페이스 이벤트를 생성합니다. 하지만 값(신호) 프로퍼티를 사용하여 프로그램적으로 값 변경 이벤트를 생성할 수 있습니다.