앞선 글들에서 사용한 데이터는 모두 숫자형 데이터였다. 하지만 실제로 랩뷰에서는 다양한 형태의 데이터를 다룬다. 이번 글 부터는 랩뷰에서 다룰수 있는 데이터 형식들을 하나씩 소개한다.

 

우선 프론트 패널로 이동해서 컨트롤 팔레트를 열어보자.

 

 

컨트롤 팔레트의 '숫자형 팔레트'를 열면 다양한 숫자형의 컨트롤과 인디케이터들을 볼 수 있다. 앞선 글에서 사용했던 가장 기본적인 형태부터, 시간을 넣거나 게이지바, 다이얼, 스크롤 형식까지 다양한 형태의 터미널들을 이용하여 프론트패널을 구성할 수 있다.

 

프론트 패널에서 각 터미널들을 불러내어 생성해보면, 블록다이어그램에서 아래와 같은 아이콘을 확인할 수 있다.

 

 

화살표가 우측에 있는 터미널이 컨트롤, 좌측에 있는 터미널이 인디케이터다. 터미널 아이콘을 좀더 자세히 살펴보면, 색과 문자로 무엇인가를 구분하고 있다는 것을 추측할 수 있는데, 각각의 색과 문자들은 터미널이 허용하는 숫자의 종류나 크기, 특성들을 정의한다.

 

우선 색. 숫자형 터미널의 색상은 주황색과 파란색의 두가지 이다. 각각은 실수(주황), 정수(파랑)을 의미한다.

 

다음은 문자. 숫자형 터미널의 문자는 변수의 데이터 크기나 특성을 표현하는 것으로, 터미널의 바로가기 메뉴에서 '형'을 선택하여 원하는 형으로 변경할 수 있다.

 

 

 

각각의 문자들이 의미하는 바를 간단히 살펴보면, 아래와 같다.

 

가장 윗줄은 실수형, 둘째줄은 정수형, 셋째줄은 부호없는 정수형(양의 정수), 마지막은 복소수형 변수를 의미한다. 정수형과 부호없는 정수형의 각각의 숫자는 bit수를 의미하며, 복소수형은 실수부와 허부수의 데이터를 각각 따로 입력한다.

실수형 변수의 각 아이콘은 아래와 같은 의미를 가진다.

- EXT(EXTended double precision floating point number) : 확장형 배정도 부동소수점형 변수

- DBL(DouBLe precision floating point number) : 64비트 배정도 부동소수점형 변수

- SGL(SinGLe precision floating point number) :32비트 단정도 부동소수점형 변수

- FXP(FiXed Ponit number) : 고정소수점형 변수

 

.....?

무슨 말인지 알아 들을 수가 없으므로, 좀더 자세히 찾아보았다.

먼저 '부동'소수점형과 '고정'소수점형의 차이를 알아보자. '부동'소수점형이란 소수점의 위치가 상황에 따라 자동으로 분배되어진다는 의미이다. 대신 이 형태는 단정도(32bit) 또는 배정도(64bit)처럼 변수의 자릿수(데이터 크기)가 고정되어 있다. 반대로 '고정'소수점형은, 소수점의 위치가 변화하지 않고 고정되어 있다는 의미이다.

단정도는 각 컴퓨터의 연산의 기본이 되는 워드 글이(word length)로 연산하는 것, 배정도는 단정도의 2배 길이로 연산하는 것이라고 하는데, (.....)복잡하므로 여기서는 그냥 단정도는 32bit, 배정도는 64bit로 이해하고 넘어가면 될 것 같다.

 

 

 

 

**강제변환점

 

숫자형 데이터를 가지고 놀다보면, 위의 그림처럼 빨간색 점이 나타나는 경우가 있다. 이것을 강제변환점이라고 부르는데, 데이터의 타입이 맞지 않아 프로그램에서 자체적으로 데이터의 타입을 변경시켜 오류를 수정했다는 의미를 갖는다.

위 그림을 살펴보면 실수형의 데이터와 정수형의 데이터가 같은 노드로 들어가고 있는 것을 확인할 수 있다. 즉, 두 데이터의 타입이 다르다. 이런 경우 계산을 실행하기 위해 크기가 작은 타입의 데이터를 큰 타입의 데이터로 강제변환시켜, 그림에서 보이는 것처럼 실수형(큰 타입의 데이터)의 데이터로 결과를 내어놓게 된다.

따라서 강제변환이 생기는 경우, 데이터 처리속도는 다소 느려질 수 있으나 데이터 손실의 걱정은 없다. 하지만 그렇다고 해서 강제변환점을 수정하지 않고 방치하는 것은 좋지않은데, 그 이유는, 입출력의 타입이 다른 경우 계산자체에 치명적인 문제가 발생할 수 있기 때문이다. 예를 들어 정수형을 부호없는 정수형으로 받게되면, 가장 앞의 bit의 의미가 달라지면서 예상치 못한 값을 얻을 수 있다. 따라서 강제변환점이 생긴다면 수정을 통해 제거를 해주는 것이 좋다.

 

 

 

'LebView' 카테고리의 다른 글

랩뷰 배열  (0) 2016.03.20
랩뷰 불리언 데이터, 기계적 동작  (0) 2016.03.19
랩뷰 문자열 데이터  (0) 2016.03.19
랩뷰 데이터 흐름 디버깅  (0) 2016.03.18
Labview 용어정리  (0) 2016.03.18
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기