시리얼 통신은 RS-232, RS-485, RS-422등 다양한 종류가 있습니다.
VISA (Virtual Instrument Software Architecture)는 계측 시스템의 설정, 프로그래밍 및 문제 해결하기 위한 표준입니다. NI-VISA는 National Instruments에서 개발한 것으로, GPIB, VXI, PXI, 시리얼 (RS232/RS485), 이더넷/LXI, USB 및/또는 IEEE 1394 계측기와의 통신을 단일화하고 인스트루먼트 컨트롤 프로그램을 간소화시켜줍니다.
따라서 LabVIEW로 시리얼 통신을 하려면 반드시 NI-VISA 드라이버를 설치해야 합니다.
블록 다이어그램에서 VISA 함수를 불러오는 방법은 함수 팔레트>>Instrument I/O>>VISA에서 아래와 같은 함수들이 제공됩니다.
위의 함수들을 아래 그림에서와 같은 방식으로 호출해서 구현하면 됩니다.
다음으로 "읽기"와 관련하여 Serial_Read.vi라는 이름으로 아래와 같이 구현할 수 있습니다.
위에서 보는 바와 같이 "VISA Read" 함수를 이용하여 전송된 데이터가 0바이트 이상이면, 읽어올 수 있도록 해줍니다.
다음으로 "쓰기"와 관련하여 Serial_Write.vi라는 이름으로 아래와 같이 구현할 수 있습니다.
위에서 보는 바와 같이 "VISA Write" 함수를 이용하여 데이터를 전송할 수 있습니다.
다음으로 "닫기/에러핸들"와 관련하여 Serial_Close.vi라는 이름으로 아래와 같이 구현할 수 있습니다.
위에서 보는 바와 같이 "VISA Close" 함수를 이용하여 시리얼 통신을 종료할 수 있습니다.
이렇게 구현한 시리얼 통신을 위한 Sub VI들을 사용하여 Main.vi에 코드를 구현할 때 FGV(Functional Global Variable)를 이용하여 코드 모듈화를 할 수 있습니다. 모듈화 작업을 통하여 얻을 수 있는 장점 중 하나는 Main.vi에서 시리얼 통신과 관련하여 시프트 레지스터를 사용하지 않아도 됩니다. Main.vi를 살펴보기 앞서, 시리얼 통신을 위한 코드 모듈화 작업 내용에 대해서 살펴보겠습니다. Serial.vi를 FGV 기법으로 아래와 같이 구성하였습니다.
위에서 보는 바와 같이 State(Config/Read/Write/Close) 별로 앞서 구현한 시리얼 통신용 Sub VI를 이용하여 프로그래밍하였습니다.
위와 유사하게 Main.vi에서는 "START" Command에 대해서 아래와 같은 상태머신 구조를 이용하여 프로그램을 구성하는데, 이 경우 상태 천이를 위한 VI(State.vi)를 FGV로 구현할 수 있습니다.
위에서 언급한 상태 천이를 위한 VI(State.vi)를 Main.vi에서 아래와 같이 사용할 수 있습니다.
위에서 보는 바와 같이 FGV를 이용한 코드 모듈화를 통하여 별도의 시프트레지스터를 사용하지 않고 프로그래밍 할 수 있습니다.
관련 코드들을 이용하여 시리얼 통신을 위한 Project 파일을 아래와 같이 구성하여 운영하도록 구현하였습니다.
'프로그래밍 > 랩뷰 기술자료' 카테고리의 다른 글
그래픽기반 프로그래밍 언어 랩뷰 (0) | 2023.06.03 |
---|---|
LabVIEW 랩뷰 환경의 기본 사항 (0) | 2023.06.02 |
NI DAQ와 랩뷰를 이용한 구적 엔코더 측정 방법 (0) | 2023.06.01 |
랩뷰 디자인 패턴: 상태 머신 (0) | 2023.06.01 |
랩뷰 디자인패턴 유형 및 구현방법 (0) | 2023.06.01 |