공유 변수 노드를 사용하여 공유 변수를 읽기와 쓰기
- 업데이트 날짜:2025-08-27
- 5분 (읽기 시간)
(Real-Time, Windows) 공유 변수 노드는 대응하는 공유 변수를 가리키는 블록다이어그램 객체입니다. 공유 변수 노드를 사용하여 공유 변수의 값을 읽고 씁니다.
- 어플리케이션이 다수의 공유 변수에 접근하는 경우, 프로그램적으로 공유 변수에 접근하여 보다 깔끔하고 확장 가능한 블록다이어그램을 생성합니다.
- (Real-Time, Windows) 프로젝트에 공유 변수 노드가 있고 프로젝트 탐색기 윈도우에 대응하는 공유 변수가 없는 VI를 열면 공유 변수 노드가 깨집니다. 찾을 수 없는 공유 변수와 관련된 모든 프런트패널 컨트롤도 깨집니다. 이런 동작은 Windows에서만 나타나며 프로젝트의 VI를 열 때에만 발생합니다. VI를 주요 어플리케이션 인스턴스에서 여는 경우, LabVIEW는 찾을 수 없는 공유 변수에 대해 알려주지 않습니다.
블록다이어그램에 공유 변수 노드 추가하기
다음과 같은 방법으로 공유 변수 노드를 블록다이어그램에 추가할 수 있습니다:
- 프로젝트 탐색기 윈도우에서 같은 프로젝트에 있는 VI의 블록다이어그램으로 공유 변수를 끌어옵니다.
- 공유 변수 팔레트에서 공유 변수 노드를 선택, 블록다이어그램에 추가합니다. 그리고 나서 다음 단계를 따라 해당 공유 변수 노드가 프로젝트 탐색기 윈도우에서 대응하는 공유 변수를 가리키도록 해야 합니다.
- 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭하여 변수 탐색 대화 상자를 디스플레이합니다.
- 프로젝트/네트워크 트리 리스트에서 공유 변수를 탐색합니다.
- 확인 버튼을 클릭합니다.
- (Real-Time, FPGA, DSC Module) 컨트롤, 인디케이터 또는 상수에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 공유 변수 노드로 변경을 선택합니다. 또한, 출력 터미널에서 마우스 오른쪽 버튼을 클릭하면 바로 가기 메뉴에서 생성≫공유 변수 노드를 선택할 수 있습니다.
공유 변수 노드가 데이터를 읽을지 또는 쓸지 지정하기
다음 단계를 따라 공유 변수 노드가 프로젝트 탐색기 윈도우의 대응하는 공유 변수로 데이터를 읽을지 또는 쓸지 지정합니다.
- 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭합니다.
- 바로 가기 메뉴의 다음 옵션 중 하나를 선택합니다:
- 접근 모드≫읽기를 선택하여 공유 변수 노드로 공유 변수의 데이터를 읽습니다. 이 옵션을 선택하면, 다음 그림에서 보이는 것처럼, 출력이 공유 변수 노드의 오른쪽에 나타납니다.

- 접근 모드≫쓰기를 선택하여 공유 변수 노드로 공유 변수에 데이터를 씁니다. 이 옵션을 선택하면, 다음 그림에서 보이는 것처럼, 입력이 공유 변수 노드의 왼쪽에 나타납니다.


노트 공유 변수에 8 킬로바이트 미만의 데이터를 쓰는 경우, LabVIEW가 이 데이터를 네트워크를 통해 전송하는데 소요되는 시간은 최대 10밀리초입니다. 이러한 지연을 없애려면 [공유 변수 데이터 비우기] VI를 사용하여 공유 변수 데이터를 즉시 전송합니다.
- 접근 모드≫읽기를 선택하여 공유 변수 노드로 공유 변수의 데이터를 읽습니다. 이 옵션을 선택하면, 다음 그림에서 보이는 것처럼, 출력이 공유 변수 노드의 오른쪽에 나타납니다.
마지막 읽기 이후 공유 변수 값이 업데이트되었는지 확인하기
다음 단계를 따라 공유 변수 노드의 타임스탬프 인디케이터를 사용하여 공유 변수 값이 마지막 읽기 이후 업데이트되었는지 확인합니다.
| 노트
|
- 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 타임스탬프≫보이기를 선택합니다. 타임스탬프 출력이 다음 그림에서 보이는 것처럼 빨간색 모래시계로 공유 변수 노드의 오른쪽에 나타납니다.

- 타임스탬프 출력에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 생성≫인디케이터를 선택하여 타임스탬프 데이터를 디스플레이하는 프런트패널 인디케이터를 생성합니다.
공유 변수 노드가 타임아웃되었는지 확인하기
다음 단계를 따라 공유 변수 노드의 타임아웃 기간을 지정하고 공유 변수 노드가 타임아웃되었는지 확인합니다.
| 노트 데이터를 읽도록 설정된 공유 변수 노드에 대해서만 타임아웃 컨트롤을 활성화할 수 있습니다. |
- 블록다이어그램의 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 타임아웃≫보이기를 선택합니다.
- 다음 그림의 왼쪽에 파란색 시계로 보이는 ms 타임아웃 컨트롤을 사용하여 타임아웃을 밀리초 단위로 지정합니다. 다음 그림의 오른쪽에 빨간색 시계로 보이는 타임아웃? 인디케이터를 사용하여 공유 변수 노드가 지정된 기간에 새 데이터를 읽는지 아니면 타임아웃되었는지 확인합니다.

공유 변수 노드를 다른 타겟으로 옮길 때 공유 변수 노드가 깨질지 지정하기
(Real-Time, Windows) 공유 변수 노드를 공유 변수에 연결하는 방법을 지정하려면, 노드를 절대적 또는 특정 타겟으로 설정합니다.
절대 공유 변수 노드는 항상 공유 변수를 생성한 타겟의 공유 변수에 연결됩니다. 절대 공유 변수 노드가 기본입니다. VI에 절대 공유 변수 노드가 포함되어 있고 VI를 새 타겟에서 여는 경우, 노드는 공유 변수를 생성한 타겟의 공유 변수로 연결을 시도하기 때문에 VI가 깨집니다. VI와 변수를 다른 타겟으로 옮기지 않으려면, 절대 공유 변수 노드를 사용합니다.
특정 타겟 공유 변수 노드는 항상 공유 변수 노드가 포함된 VI가 실행되는 타겟의 공유 변수에 연결됩니다. 특정 타겟 공유 변수 노드가 포함된 VI를 새로운 타겟으로 옮기는 경우, 특정 타겟 공유 변수 노드는 로컬 호스트의 공유 변수에만 연결되기 때문에 공유 변수도 새로운 타겟으로 옮겨야 합니다. 로컬 호스트의 공유 변수에 접근 중이고 VI와 변수를 다른 타겟으로 옮기려면, 특정 타겟 공유 변수 노드를 사용합니다.
절대 공유 변수 노드를 특정 타겟으로 변경하려면, 블록다이어그램의 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 참조 모드≫특정 타겟을 선택합니다. 특정 타겟 공유 변수 노드는 노드에 .\ 문양이 나타납니다. 다음 이미지는 특정 타겟 공유 변수 노드를 나타냅니다.
특정 타겟 공유 변수 노드를 절대적으로 변경하려면, 공유 변수 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 참조 모드≫절대를 선택합니다. 다음 이미지는 절대 공유 변수 노드를 나타냅니다.