해결책
이벤트 구조는 직접적인 사용자 상호 작용에 의해 생성 된 이벤트만 프런트 패널에 나타냅니다. 이 문제에서는 인디케이터 값이 프로그래밍 방식으로 변경되므로 LabVIEW가 값 변경 이벤트를 캡처하지 않습니다. 또한 VI 서버, 글로벌 변수, 로컬 변수 등을 사용하여 VI 또는 프런트 패널 객체를 프로그래밍 방식으로 변경하는 경우 값 변경 이벤트가 발생하지 않습니다.
한 가지 예외가 있습니다. 컨트롤 및 인디케이터의 이벤트는 프로퍼티 노드를 사용하여 프로그래밍 방식으로 생성 될 수 있습니다.
(Value (Signaling)), (Val (Sgnl)) , 아래 그림을 참고해 주시면 됩니다. 이 쓰기 전용 프로퍼티는 작성 될 때마다 프런트 패널 값 변경과 같은 역할을하는 이벤트를 만듭니다. 그러나 루프의 반복마다 작성된 경우 값이 실제로 변경되었는지 여부에 관계없이 각 반복마다 값 변경 트리거가 생성되므로 루프에서 이 프로퍼티를 사용 할때 주의해야 합니다.
Val (Sgnl) 속성을 사용한 값 변경 이벤트에 대한 데모는 아래 그림을 참조하십시오.
이 VI는 Val (Sgnl) 속성을 사용하여 인디케이터를 업데이트하고 이벤트를 생성합니다. "A * B"표시기가 업데이트되면 이벤트 구조가 이벤트를 등록하고 "Last Updated" 인디케이터를 현재 시간으로 업데이트합니다.
반대로 Value 프로퍼티를 사용한 값 변경 이벤트에 대한 데모는 아래 그림을 참조하십시오.
이 VI는 값 변경 프로퍼티를 사용하여 인디케이터를 업데이트합니다. "A * B"인디케이터가 업데이트되면 등록 할 이벤트가 없기 때문에 이벤트 구조가 이벤트를 등록하지 않습니다.
위 VI 모두 인디케이터 "A * B"에 프로그래밍 방식으로 기록됩니다. 두 VI는 "A * B"인디케이터의 값 변경 이벤트를 캡처하기위한 이벤트 구조를 가지고 있습니다. Value (Signaling) 프로퍼티를 사용하는 VI 만 "A * B"인디케이터가 업데이트 될 때 이벤트를 등록합니다.