lastnamesong

[LabVIEW] myRIO의 시간을 PC와 동기화하는 방법 (w/ or w/o using NI MAX) 본문

Embedded System/LabVIEW

[LabVIEW] myRIO의 시간을 PC와 동기화하는 방법 (w/ or w/o using NI MAX)

응솩이 2024. 8. 1. 22:22
반응형

myRIO로 데이터를 저장할 때 정확한 time stamp가 필요한 상황이 있다. 그래서 time stamp를 같이 찍도록 하여 저장을 해보면, 1970년 이상한 시간으로 저장이 되어 난감할 때가 종종 있다.

시간 설정을 위한 방법을 찾다보면 NI MAX에서 시간 설정이 가능하다는 것을 확인할 수 있다. NI 측에서 제공하는 영상에도 소개되어 있다. myRIO에 있는 Real-Time Clock을 사용할테니 이 방법이 공식적이고 지향되는 방법일 것이다.

 

LabVIEW procedure: Set RT system time and date from NI MAX

그런데 연구실에 있는 myRIO와 NI MAX를 이용해 시간을 맞추려 해도 잘 안되는 경우가 있다. 시스템 시작 시간이 "사용할 수 없음" 이라고 나오거나, 설정 및 저장 후 실제 데이터를 받아보면 아까 이야기했던 이상한 시간이 찍히는 등의 문제가 있다.

 

이에 대한 근본적인 해결 방안은 아니지만, LabVIEW를 켜고 프로그램을 실행할 때나 실행하기 전에 사용할 수 있는 방법이 있어 소개하고자 한다. 구체적으로는 PC와 myRIO의 시간을 동기화 하는 프로그램을 LabVIEW로 구현할 수 있는 방법이다.


PC의 시간을 가져와서 myRIO의 시간을 업데이트 하는 방식으로 구성된다.

LabVIEW Measurement I/O

Measurement I/O는 LabVIEW를 설치할 때 같이 설치되는 드라이버이며, 내장된 VI와 함수를 사용하여 NI-DAQmx 및 다른 데이터 수집 디바이스와 상호 작용이 가능해진다.

LabVIEW 프로그램에서 VI를 새로 만들어서 블록 다이어그램에서 팔레트를 보면 Measurement I/O가 있는 것을 확인할 수 있다.

팔레트 구성은 LabVIEW 설치 시 함께 설치한 드라이버의 종류에 따라 다를 수 있다.

그 안에는 데이터 수집 디바이스를 컨트롤할 수 있는 몇 가지 블록이 있는 것을 확인할 수 있다.

이 글에서 사용할 블록들 중 Measurement I/O와 관련된 것들은 System Configuration에 모두 들어있다.

myRIO의 시간을 수정할 수 있는 블록이 여기에 모두 들어있다.

 

Timing

타이밍 VI와 함수를 사용하여 작업이 실행되고 컴퓨터 clock으로부터 날짜와 시간을 가져오는 속도를 조작할 수 있다.

가장 상위단 Programming 함수에 있으며, 그 안에 시간을 가져오는 함수가 있다.

Timing 안에 있는 블록들

PC와 myRIO의 시간 동기화하는 프로그램 만들기

admin은 myRIO의 관리자 계정 ID이고, target (myRIO)를 initialize - 시간 설정 - terminate하는 순서로 VI가 돌아간다.

Front panel에 있는 combo box의 화살표를 클릭해보면 저번 글에서 무선 네트워크로 연결했던 myRIO의 IP 주소가 들어가 있는 것을 확인할 수 있다.

USB 연결은 172.22.11.2

myRIO가 부팅되고 처음 실행시키면 시간이 조금 걸리며, 프로그램이 다 돌면 알아서 종료된다. (루프가 따로 없기 때문에)

코드 실행 후 indicator에서 보이는 시간이 업데이트 되었고, error가 출력 되지 않음을 확인


이렇게 LabVIEW로 myRIO의 시간 설정까지 가능하게 되었다. 각각의 블록의 기능과 필요한 변수를 더 알고 싶다면 해당 블록을 우클릭해서 Help (도움말)로 들어가면 자세히 설명이 되어있다.

Initialize Session의 도움말

이렇게 필요한 블록은 검색을 통해서 찾고, 해당 블록을 사용하기 위해 도움말을 사용하면 LabVIEW 프로그래밍이 그렇게 어렵지 않을 것이다.

아무튼 이제 데이터 저장 시 timestamp가 필요한 작업에 대해 문제 없이 저장이 가능하다!

반응형