티스토리 뷰

[LabVIEW] 랩뷰에서 HEX <-> ASC 코드로 변경하기


랩뷰에서는 일반적으로 상대방 디바이스와 통신(RS232, TCP, UDP, GPIB) 통신을 할때 송수신하는 데이터의 타입은 문자열입니다. 하지만 C언어나 다른 텍스트 기반 언어에서는 Byte 기반의 통신을 하게 됩니다.


다른 언어와의 통합을 하는 경우 사용자는 많은 혼란을 느낄 수가 있습니다.

문자열과 바이트 간의 데이터를 변환하기 위해서는 어떠한 방법을 사용해야 할까요?


문자열의 타입을 바이트 타입으로, 혹은 반대로 타입 캐스팅을 해줘야 합니다. 랩뷰에서는 이러한 기능을 하기 위해서 타입 캐스트라는 함수를 지원하고 있습니다.


아래는 타입 캐스트 함수에 대한 설명입니다. 

  • X : 실제 값
  • 타입 : 변환하고자는 데이터 형
  • Result : 타입 형에 대한 변환 값


아래의 코드는 타입 캐스트를 활용한 예제 입니다. 먼저 1-9(0x01~0x09)의 값을 ASC로 변환합니다. 그리고 나서 변환된 값을 다시정수형으로 변환합니다. 여기서 참고해야 할 부분은 정수형의 크기에 따라서 변환되는 문자열의 크기가 달라진다는 점입니다. 



결과를 통해서 확인을 해보겠습니다. HexToASC(I8)을 보시면, 문자열의 길이가 1인것을 확인할 수 있습니다. 반대로 HexToASC2(I32)에 대한 길이 Length(I32)를 보시면4가 나오는것을 확인할 수 있습니다.


즉, 타입 캐스트 함수는 8비트를 기준으로 데이터형의 전체를 변환하여 결과값으로 만드는 것입니다. 



실제로 RS232 통신을 할때, 많은 분들이 통신할 대상인 장비의 메뉴얼에서 byte 기반으로 만들어진 것을 보고 랩뷰에서 어떻게 데이터를 입력해야 할지 혼란을 느끼고 있습니다. 이런 문제는 위에서 설명드린 타입 캐스트 함수를 통해서 해결할 수 있습니다. 


이글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.



댓글