You are here

LabVIEW 라이브러리

고급 시리얼 읽기와 쓰기

 

예제 설명

 

Advanced Serial Read and Write 예제는 버퍼 크기와 종료 문자(termination characters), 흐름 제어(XON/XOFF) 등과 같은 고급 옵션을 이용한 시리얼 읽기와 쓰기에 대해 설명합니다. 사용자는 프론트 패널에서 읽기와 쓰기를 선택할 수 있습니다. 만약, 두 가지 모두를 선택한다면, VI 는 먼저 데이터를 쓴 다음, 이를 읽고 VISA 세션을 닫습니다. 파라미터 설정은 연결되는 장비의 파라미터 요구와 일치해야 합니다. 파라미터가 일치하지 않는다면 에러(혹은 타임아웃)가 발생하거나 정확한 문자열이 읽어지지 않습니다. 또한 이 예제에서는 bytes to read 파라미터에서 지정된 만큼만 읽게 되며, 이 보다 많은 데이터는 읽지 않습니다. 지정된 수 보다 적은 데이터가 들어올 경우 타임아웃이 발생할지도 모릅니다. 시리얼 홈페이지는 ni.com/serial/ko 입니다. 

다운로드 안내

 LabVIEW > 예제 찾기 > 하드웨어 입력과 출력 > 시리얼 > Advanced Serial Write and Read.vi
파일 다운로드 하기
 

직접 다운로드 예제는 LabVIEW 8.5 (한글판) 이상의 버전에서 열립니다. 이전 버전의 사용자 분들은 상단에 표기된 예제 찾기를 이용하시면 LabVIEW에서 실행하실수 있습니다. (단, LabVIEW 8.5 이상에서 추가된 새로운 기능은 LabVIEW 평가판 다운로드를 통해 확인)


프런트 패널

1. 시리얼 리소스(포트 이름)를 선택하고 파라미터를 설정합니다

 • Baud rate : 통신 속도
 • Data bits : ASCII 방식으로 전송하므로 일반적으로 8bit
 • Parity : 오류 확인 방식(일반적으로 None)
 • Stop bit : 통신의 종료를 인식하는 bit 설정(일반적으로 1bit)
 • Flow control : 흐름제어

2. 종료 문자(Termination character) 사용 여부를 선택할 수 있으며 입력 버퍼의 크기를 조정할 수 있습니다.

3. 입력과 출력의 동작을 설정합니다. 입력과 출력을 동시에 설정할 수도 있습니다. (이 때는 하나의 포트로 입력과 출력을 동시에 합니다. 4. 과정을 참조하십시오).

4. 시리얼 포트를 외부 장비와 연결합니다(출력 혹은 입력만 사용시). 시리얼 통신을 사용하는 장비가 없다면, 입력과 출력을 모두 ON 으로 선택하고, Loop Back 테스트를 통해 수행할 수 있습니다. Loop Back 테스트는 COM1에서 나오는 시리얼 케이블의 2번, 3번 핀(RT, TX 핀)을 연결(쇼트) 하여 보낸 신호를 같은 포트에서 다시 받는 테스트를 말합니다(RS-485/422 시리얼 통신은 4-8, 5-9 핀을 연결 하십시오. 참조 : http://zone.ni.com/devzone/cda/tut/p/id/3450 )

5. VI 를 실행하여 결과를 확인 하십시오. Loop Back 테스트의 경우 "read string" 의 값이 "string to write" 의 값과 일치해야 합니다.

Note 1: 이 예제에서 사용하는 모든 파라미터를 설정할 필요는 없습니다. 또한 이 예제가 사용 가능한 모든 파라미터를 사용하고 있지도 않습니다. 그러나 입력 버퍼 크기 설정과 같은 파라미터는 어플리케이션의 중요한 요소가 될 수도 있습니다.
Note 2: Write 와 Read 버튼을 눌러 읽기와 쓰기 동작을 프로그램이 실행되고 있는 동안에도 선택할 수 있습니다. 그러나 통신 속도와 같은 파라미터를 변경하기 위해서는 반드시 프로그램을 종료하고 변경하여야 변경된 사항이 적용됩니다.
Note 3: 버퍼의 크기는 받고자 하는 데이터 양보다 약간 크게 설정하십시오. 이것은 흐름제어가 없는 통신에서 버퍼 오버플로우로 인한 데이터 손실을 방지하기 위해 중요합니다. 
Note 4: 일부 장치는 명령 문자열의 끝을 표시하기 위해서 종료 문자(termination character)를 필요로 할 수도 있습니다. 또한, 일부 장치는 데이터의 끝을 표시하기 위해 종료 문자를 전송하기도 합니다. 

 

 

블록다이어그램

 

1. 프론트 패널에 있는 컨트롤의 값을 이용하여 시리얼 포트의 파라미터를 설정합니다. 시리얼 포트의 파라미터를 설정하는 VISA Configure Serial Port.vi 는 “함수 팔레트>인스트루먼트 I/O>VISA>VISA 고급>특정 버스/인터페이스>시리얼” 에서 찾을 수 있습니다. 일부 연결되지 않은 상수 값은 설정할 필요가 없을 수도 있습니다.

Note 1: 종료 문자를 만나면 읽기를 종료하도록 설정하기 위해서는 VISA Configure Serial Port VI 에서 “종료 문자 활성화”, “종료 문자” 부분을 설정하거나 VISA 프로퍼티 노드(Serial End Mode for Reads) 를 사용하십시오.

 

2. VISA Configure Serial Port VI 는 VISA 세션을 열고 포트를 설정합니다. 이 VI 는 설정된 값을 통해 VISA의 리소스 이름을 다른 VI 로 전달합니다. VISA Write VI 는 연결된 시리얼 장치로 명령을 보내며, VISA Read VI는 시리얼 포트에서 저장된 데이터를 반납합니다.

Note 2: 쓸 데이터에 종료 문자가 있을 경우 쓰기를 종료하도록 설정하기 위해서는 VISA 프로퍼티 노드를 사용하십시오. “ASRL End Out(Serial settings -> End Mode for Writes)” 을 “TermChar” 로 선택하고 “Send End Enable”를 활성화 하고 “Termination Character”를 지정합니다.
Note 3: 특정 어플리케이션에서는 XON/XOFF 흐름 제어를 위한 특정 문자를 필요로 할 수도 있습니다. 이 때, 스탠다드를 사용하시면 데이터로 17 과 19 를 사용할 수 없습니다. 흐름 제어를 사용하면 데이터 버퍼가 오버플로우 되는 것을 막을 수 있습니다.

3. VISA Close VI 는 설정된 포트를 닫습니다. 이 과정이 이루어지지 않으면 포트가 예약되어 다른 통신을 할 수가 없습니다.

4. 만약 에러가 발생한다면, 팝업 창을 통해 대화상자를 출력합니다.