You are here

Numeric Array를 연속적으로 저장하기(Binary)와 Binary 형식으로 연속 저장한 파일을 불러오기

다음 단계에 따라 Numeric Array를 File I/O 함수와 노드를 이용하여 Binary 파일로 연속적으로 저장하는 VI를 만듭니다. 

프런트패널

1. 새 VI를 열고 다음 프런트패널을 구성합니다.

 

 

a. Controls>>String & Path 팔레트에 있는 File Path Control과 Controls>>Graph 팔레트에 있는 Waveform Graph, 그리고 Controls>>Boolean 팔레트에 있는 Stop Button을 프런트패널에 놓습니다.

 

블록다이어그램

2. 다음과 같이 블록다이어그램을 구성합니다.

 

a. Loop 안에 위치한 Write File 노드에 2차원 DBL Array를 바로 입력합니다. Header 파일을 추가하기 위하여 Header 입력 터미널에 TRUE를 입력하였습니다.

 

 

참고) Write File 노드는 Loop가 한번씩 실행될 때마다 Header를 붙입니다. 즉 Header, 데이터, Header, 데이터, Header ... 형식으로 계속 저장이 됩니다. 이렇게 저장된 파일을 읽어오려면 이 형식에 맞추어 Read하는 VI를 작성해야 됩니다.

 

3. 프런트패널로 돌아와서 VI를 실행합니다.

 

 

a. Stop 버튼을 클릭할 때까지 연속적으로 데이터가 Binary로 저장됩니다.

 

Binary 형식으로 연속 저장한 파일을 불러오기

다음 단계에 따라 앞 연습에서 Binary 형식으로 연속 저장한 파일을 읽어오는 VI를 완성합니다. ASCII형식으로 저장한 파일은 일반 Read VI로 쉽게 읽어올 수 있지만 Binary 형식으로 저장했을 경우에는 저장하는 방식에 따라서 파일을 읽어 들이는 VI가 바뀝니다.

 

프런트패널

1. 새 VI를 열고 다음 프런트패널을 구성합니다.

 

 

블록다이어그램

2. 다음과 같이 블록다이어그램을 구성합니다.

 

 

a. Loop가 한번 실행될 때마다 Read File노드는 Header의 정보에 따라서 저장된 파일의 일부를 읽습니다.

 

b. 매 Loop에서 읽어온 2차원 DBL Array는 Build Array 노드를 이용하여 하나로 묶어줍니다. 이때 Build Array 노드의 단축메뉴에서 Concatenate Inputs를 선택해주어야 됩니다.

 

c. 이 While Loop는 End of File error (4)가 발생하면 멈추도록 설계되었습니다. 그리고 VI가 종료될 때에는 이 4번 Error가 경고되는 것을 막기 위하여 4번 Error는 무시하는 루틴을 끝에 추가하였습니다.

 

 3. 프런트패널로 돌아와서 VI를 실행합니다.

 

 

* 본 내용은 ‘LabVIEW Express 컴퓨터 기반 제어와 계측’의 저자인 곽두영님의 승인 하에 발췌된 내용입니다. 무단 사용을 금합니다.