티스토리 뷰
[랩뷰 예제] LabVIEW 차트의 x축을 상대시간으로 설정하기
랩뷰에서 수집된 데이터를 확인하기 위해서 차트와 그래프를 많이 사용하십니다. 그래프와 차트의 차이는 간략히 설명을 드리면 그래프는 배열 혹은 웨이브폼의 뭉탱이 자료를 한번에 볼 수있게끔 하는 인디게이터이고, 차트는 특정 사이즈 많큼의 히스토리를 저장하여 지속적인 흐름을 파악할 수 있게 해주는 인디게이터 입니다. 시간이 허락한다면 좀더 다른 글에서 상세히 설명을 드리도록 하겠습니다.
이번 글에서는 랩뷰에서 차트의 X축 시간을 변경하여 시작 시점에 맞게 상대시간을 설정하는 방법을 생각해보도록 하겠습니다.
일반적으로 차트에 데이터에 값을 넣으면 아래와 같은 화면으로 X축이 계산이 됩니다.
일단 X축의 시간 부분이 입력된 데이터의 갯수로 나오고 있습니다. 이 부분을 시간으로 변경을 하실려면 차트의 프로퍼티에 들어가셔서 X축의 디스플레이 포맷에서 자동 포맷팅으로 되어 있는 부분을 상대시간을 설정을 합니다.
설정 후 다시 테스트 VI를 실행해보도록 하겠습니다. 약 2초간 돌린 자료임에도 불구하고 46분 30초 이후의 데이터가 나오는것을 확인 할 숭 있습니다.
왜 이러한 증상이 발생을 하는것일까요?
이는 X축에 설정된 오프셋과 dt의 값이 잘못 설정이 되었기 때문입니다. 기본적으로 차트를 처음 만들었을 때 설정되는 dt에 대한 배율은 1입니다. 1초에 데이터 한개가 입력이 된다는 의미이지요.
하지만 위의 코드는 1초에 1000개를 차트에 넣고 있습니다. 따라서 차트의 시간을 의도치 않게 1000배 빠른속도로 돌고 있었던 겁니다.
그럼 차트에 데이터를 넣을때는 1초에 하나만 넣어야 할까요? 그렇지는 않습니다.
x축에 대한 dt를 설정해 주시면 됩니다. dt 설정 방법은 프로그래밍 상에서 하는것이 가장 효율적입니다.
그 이유가 1초에 몇개의 데이터를 수집할것인지 프로그래밍 실행시 파악을 할 수 있기 때문입니다.
dt의 설정은 차트의 프로퍼티 노드를 이용하시면 됩니다. 그럼 먼저 차트의 프로퍼티 노드를 만드는 방법을 알아보겠습니다. 차트에서 오른쪽 마우스 버튼을 눌러서 생성-프로퍼티 노드에 가시면 차트가 지원하는 여러 프로퍼티 노드를 볼 수 있습니다.
지금 이글에서는 X축에 대한 스케일을 확인해야 하기 때문에 아래의 X 스케일 부분으로 이동을 합니다.
X 스케일 - 오프셋과 배율에서 '배율' 이라는 이름을 가진 프로퍼티 노드가 차트의 dt를 결정하는 노드입니다. 이 노드를 프로그래밍 상에 추가를 합니다.
그리고 '오프셋'은 차트가 시작하는 값을 의미합니다. 프로그램 실행시 항상 0초를 기준으로 하려면 오프셋에 0을 넣으시면 됩니다.
'배율'과 '오프셋'을 위에서 설명한봐와 같이 설정을 하고 간략히 프로그램을 추가적으로 구현해보았습니다. 구현 코드는 아래와 같습니다.
코드를 간략히 설명을 드리면 1초에 몇개의 데이터를 넣을 건지를 Samples Per Second 컨트롤을 통해서 가지고 옵니다. 사용자가 100을 지정하면 dt의 값은 0.01이 되므로 100의 역수를 취하여 '배율' 프로퍼티 노드에 넣습니다. 그리고 와일문을 1초에 만들어야 할 갯수를 나눠서(1000 / 100) 와일문의 기다림 함수에 넣습니다.
그럼 프로그램 시작시 0초부터 시작해서 1초에 100개의 데이터를 넣고, 그에 맞는 상대적 시간 설정이 가능해 지는겁니다.
3초간 돌리고 그후의 데이터에 대해서 캡쳐를 한 사진입니다. 문제없이 잘돌아가네요.
이 글에서는 차트에 대한 상대 시간 설정하는 방법을 알아보았습니다.
다음 글에서도 알찬 팁을 가지고 찾아 뵙겠습니다.
이글이 도움이 되셨나요?
그렇다면 아래의 그림을 클릭해주세요.
'National Instruments > LabVIEW' 카테고리의 다른 글
[LabVIEW] 이벤트 편집 창이 뜨지 않을때 해결 방안 (0) | 2014.09.29 |
---|---|
[LabVIEW] MSSQL UDL 파일 생성 및 랩뷰와 연동 하기 (1) | 2014.09.19 |
[LabVIEW 예제] 텍스트 파일 읽기를 통해 라인별로 텍스트 구분하기 (2) | 2014.09.11 |
LabVIEW에서 DLL을 읽어오자 - 2, WINAPI 사용하기 (user32.dll 응용) (0) | 2014.09.08 |
랩뷰에서 DLL 사용하기 (2) | 2014.09.08 |