현재시간을 X축에 나타내고 엑셀 시간 포맷으로 저장하기

    반응형

    안녕하세요. 지지비입니다.
    이번 포스팅에서는 그래프를 그릴 때 현재 시간을 X축에 나타내고, 엑셀 시간 포맷으로 저장하여 엑셀에서 저장한 데이터를 불러왔을 때 바로 시간 형식으로 변경되는 것을 해 보겠습니다.

     

    1. 현재 시간 얻기

    현재 시간은 날짜/시간을 초로 얻기(Get Date/Time in Seconds)함수를 사용하여 윈도우 상의 시간을 타임스탬프 데이터형으로 얻을 수 있습니다. 타임스탬프 데이터형은 말 그대로 시간형 데이터 구조이고, XY 그래프의 X축으로도 사용할 수 있습니다. 

     

    2. 현재 시간을 x축의 그래프로 표현하기

    이전에 루프와 함께 XY 그래프를 그리는 방법 [LabVIEW 랩뷰/Labview 랩뷰 강의] - 루프와 함께 XY 그래프 그리기에서 사용했던 방법처럼은 할 수 없습니다. 왜냐하면 지난 번에는 x축 데이터(루프 카운트, 숫자형)와 y축 데이터(숫자형)가 일치했기 때문에 배열로 묶어서 사용할 수 있었지만, 이번에는 x축 데이터는 타임스탬프이고 y축 데이터는 숫자형이기 때문에 두 배열을 따로 관리해야 합니다.

    아래처럼 타임 스탬프를 쌓는 배열과, 측정 데이터를 쌓는 배열을 따로 시프트 레지스터로 만들어 주면 됩니다.

     

    그런데 XY 그래프를 보면 x축이 시간이 아니라 숫자로 표기됩니다.

     

    그래프를 오른쪽 클릭하여 속성(Properties)에 들어가서, Display Format 탭 - X-Axis를 절대 시간(Absolute Time)으로 변경해 줍니다.

     

    그래프의 x축이 절대 시간으로 변경된 것을 확인할 수 있습니다.

     

    3. 엑셀 시간 데이터 형식으로 저장하기

    엑셀에서 절대시간을 표현하는 포맷은 기본적으로 yyyy-mm-dd h:mm입니다.

    엑셀의 절대시간 표기 포멧

     

    따라서 데이터 저장도 위와 같은 포맷으로 해 주면 됩니다. yyyy는 4자리 숫자 연도, mm은 월, dd는 일, h는 시간, mm은 분이고 ss는 초입니다. 저는 yyyy-mm-dd h:mm:ss 형태로 저장하겠습니다.

    먼저, 날짜/시간 문자열로 포맷(Format Date/Time String) 함수를 이용해서 타임스탬프를 원하는 문자열 형태로 변경합니다. 아래 위치에서 추가할 수 있습니다.

     

    아래와 같이 포맷 터미널에 %Y-%m-%d %H:%M:%S 를 입력해 줍니다. 해당 포맷은 엑셀에서 yyyy-mm-dd h:mm:ss 포맷을 랩뷰에서 똑같이 맞춰준 것입니다.

     

    시간 저장 포멧을 변경하고 싶을 때에는 랩뷰 도움말을 참고하시거나 아래 표를 참고하세요. 

    랩뷰 시간 포멧

     

    이제 데이터도 마찬가지로 문자열로 변경해 주고, 배열로 만들어서 텍스트에 쓰도록 해 줍니다. 여기서 스프레드 시트에 쓰기(Write Delimited Spreadsheet) 함수에 참을 연결해 준 것은 이 코드는 루프를 돌 때마다 텍스트 파일에 한 줄씩 추가하게 하기 위함입니다. 측정 시에 루프 밖에서 한 번에 데이터를 저장하게 할 수도 있는데, 이 방법은 추천하지 않습니다. 왜냐하면 루프가 완료되지 않으면 저장도 되지 않기 때문에 중간에 측정을 그만두거나 랩뷰를 강제 종료하게 될 경우에  측정한 데이터가 모두 없어질 수도 있기 때문입니다.

     

    이렇게 저장하면 루프가 돌 때 텍스트 파일은 아래처럼 쓰이게 됩니다.

     

    저장된 텍스트 파일을 엑셀에서 불러오면 아래와 같이 시간이 잘 표기되는 것을 알 수 있습니다. 엑셀에서 그래프도 이런 식으로 그려볼 수 있겠죠.

    엑셀에서 데이터를 가져와서 그래프 그려보기
    랩뷰에서 본 그래프

     

     

    댓글

    Designed by JB FACTORY