티스토리 뷰

 LabVIEW에는 로컬변수, 글로벌변수, 기능적 글로벌 변수, 네트워크 변수와 같이 총 4개의 변수로 이루어져 있습니다. 변수는 기본적으로 '변하는 수'죠. 사용자가 입력을 통해서 새로운 값을 저장하고, 그 값을 읽어오는데 사용하기 위한 메모리 할당 부분을 변수라고 합니다. 사용자는 이 메모리에 사용자가 원하는 값을 변경하고, 읽어올 수 있습니다.


일반적으로 텍스트 언어에서는 변수를 많이 사용합니다. 텍스트 언어에서 사용하는 변수는 크게 지역변수와 전역변수로 나뉩니다. 지역변수는 함수 혹은 특정 영역 내에서 사용이 가능한 변수이며, 전역 변수는 어느 코드상이든 접근할 수 있는 변수를 의미합니다.


전역변수는 일단 프로그램이 실행 중이면 할당받은 메모리가 해제되지 않습니다. 프로그램이 종료될 때 메모리가 해제가 되죠. 하지만 지역변수 같은 경우는 해당 함수에 진입하면 메모리가 할당되고, 해당 함수가 종료되면 메모리가 해제가 됩니다. 텍스트 언어에서는 코드상의 예상치 못한 버그를 해결하기 위해서 전역 변수보다는 지역변수 사용을 권장하고 있습니다.


하지만 LabVIEW에서는 변수의 사용을 권장하지 않습니다. 피치못할 상태에서만 변수 사용을 하는것이 좋다고 말합니다.  그 이유는 변수가 LabVIEW의 그래픽 기반 언어의 특성을 반하기 때문입니다. 데이터 흐름을 중요시 여기는 LabVIEW에서 변수를 사용하는 것은 데이터 흐름을 깨버리기 때문이죠.


따라서 LabVIEW에서는 변수를 최대한 적게 사용하는 것이 중요합니다.


하지만 어쩔 수 없는 경우 변수를 사용해야 합니다. LabVIEW는 기본적으로 4가지 개념의 변수를 제공하고 있습니다. 각 변수의 이름은 아래와 같습니다.


로컬 변수, 글로벌 변수, 공유 변수, 기능적 글로벌 변수


그럼 각 변수에 대해서 알아보도록 하겠습니다.


1. 로컬 변수


로컬 변수는 하나의 VI 내에서 객체에 대한 값을 가져오거나, 설정을 할 때 사용을 하는 변수입니다. 로컬 변수는 단일 VI에서만 사용이 가능하며 다른 VI에서 기존의 VI에 대한 변수를 사용할 수 없습니다.


로컬 변수를 생성하기 위해서는 프런트패널의 객체나 블록다이어그램의 터미널에서 마우스 오른쪽 버튼을 클릭하여 바로 가기 메뉴에서 생성≫로컬 변수를 선택하여 로컬 변수를 생성합니다. 


2. 글로벌 변수


로컬 변수의 단일 VI 에서만 사용이 가능한 변수입니다. 프로젝트 내 혹은 동시에 실행이 되는 다른 VI에서 객체에 접근하고, 데이터를 쓰고 받을 수 있습니다. LabVIEW 내장 객체로 구성이 되어 있는 이 변수는 생성시 자동적으로 프론트 패널에서 글로벌 VI에 대한 컨트롤과 인디케이터를 추가합니다. 


글로벌 변수를 추가하기 위해서는 함수 팔레트에서 글로벌 변수를 선택하여 블록다이어그램에 놓습니다.


3. 공유 변수


공유 변수는 네트워크 기반으로 자신의 PC 내의 다른 VI 혹은 다른 PC의 VI와 값을 송수신하기 위해서 사용되는 변수입니다. 공유변수는 네트워크 기반으로 이루어지기 때문에 반드시 네트워크 연결이 이루어져 있어야 공유가 가능합니다. 이 변수는 LabVIEW의 Shared Variable Engine(SVE)를 통해서 데이터를 공유합니다. 공유 변수 엔진은 LabVIEW를 설치할 때 사용자 컴퓨터에 서비스로 설치되며, NI Publish-Subscribe Protocol (NI-PSP)이라고 하는 독점 기술을 사용하여 공유 변수 업데이트를 관리합니다.


4. 기능적 글로벌 변수


기능적 글로벌 변수는 데이터 혹은 리소스에 접근 및 데이터 제어가 가능한 subVI입니다. 기능적 글로벌 변수는 NI LabVIEW에서 기본적으로 제공하는 다른 변수들과는 달리 사용자가 실질적으로 구현해야 하는 코드입니다. 기능적 글로벌 변수는 초기화 되지 않은 시프트 레지스터를 기반으로 데이터를 저장하여 사용자의 필요에따가 값을 업데이트하거나, 가져올 수 있습니다. 상세한 내용은 다음 블로그에서 추가적으로 설명을 드리도록 하겠습니다.


이 글에서는 LabVIEW에서 사용할 수 있는 변수에 대해서 알아보았습니다 


글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.



댓글