LabVIEW를 이용하여 데이터를 엑셀파일로 저장하는 방법은 실로 다양합니다. (함수가 여러개 존재하기 때문이죠...-_-) 이 글에서는 파일 쓰기 어시스턴트가 아닌 LabVIEW의 일반 VI 중 하나인 스프레드시트 파일에 쓰기 함수를 이용하여 엑셀 파일을 저장하는 방법에 대해서 알아보도록 하겠습니다. 하지만 이 함수를 사용하게 되면 엑셀 타입으로 저장이 되는것은 아닙니다. 엑셀 타입(xlxs와 같은 확장자)가 아닌 CSV 파일 타입으로 저장하게 되는데 CSV 파일은 행과 ,를 구분으로 엑셀의 행과 열을 구분하여 엑셀에서 이 파일을 연동할 수 있게 해주는 파일을 말합니다. Microsoft Excel로 포맷하려면 LabVIEW에서 ActiveX 또는 Report Generation Toolkit for ..
LabVIEW Signal Express는 한정적인 함수를 지원하기 때문에 추가적인 알고리즘을 개발해야 하는 경우 LabVIEW와 연동하여 사용해야 합니다. 아래의 그림과 같이 Signal Express는 LabVIEW의 VI를 실행할 수 있습니다.하지만 VI의 LabVIEW의 각 버전에 따라서 실행을 해야 하는 기능이 다릅니다. 2012버전에서 만든 vi를 다른 버전에서 실행하게 되면 아예 실행이 되지 않습니다. 따라서 반드시 LabVIEW에서 개발된 버전에 맞춰서 설정을 해야 합니다. 그리고 64비트 LabVIEW에서 만든 vi는 실행을 할 수 없으니 참고하시기 바랍니다. LabVIEW와 연동하여 사용하기 위해서는 입력받을 데이터가 있어야 합니다. 데이터를 만들기 위해서 DAQ Assistant를 이..
LV에서 .NET 함수를 호출할 때 에러가 발생하는 경우가 있습니다. .NET 어셈블리의 함수를 호출할 때 제대로 호출이 되지 않는 경우 LV에서는 1172 에러를 발생시킵니다. 따라서 1172 에러가 발생이 되었을 때 에러코드를 보는 것이 아니라, 에러가 어떤 에러가 발생하였는지를 파악해야 합니다. .NET 함수 호출시 대부분의 에러가 1172로 발생하기 때문에 정확한 에러 해결방안을 찾기 위해서는 내역을 파악해야 하는 것입니다. 1172 에러에 대한 창은 아래의 그림과 같습니다. 1172 에러가 발생했지만 아래 내역을 보면 스레드가 단일 스레드가 아니라서 발생하는 에러라고 나옵니다. 그럼 이제부터 단일 쓰레드에 대한 에러를 해결하는 방법을 알아보도록 하겠습니다. LV는 기본적으로 단일 쓰레드 기반이 ..
PID제어는 비례(Proportional), 비례적분(Integral), 비례미분(Differential) 제어를 조합한 제어방식으로 기존의 제어의 85%이상을 차지하는 유명하면서 많이 쓰이는 제어방식입니다. 흔히 PID 제어라고 하면 아래의 그림을 많이 볼 수 있습니다. Kp, Ki, Kd의 값을 이용해서 특정한 연산을 하고 이에 대한 Output을 낸다고 볼 수 있겠네요. PID 제어는 제어하고자는 대상의 출력값을 측정하여, 이 값을 바탕으로 목표값(SetPoint)와 비교한 뒤 오차를 계산하여 이를 바탕으로 다시 제어값을 결정하는 알고리즘입니다. PID 제어의 공식을 먼저 살펴보겠습니다.공식은 아래와 같습니다. 적분도 있고, 미분도 있네요. 위의 공식은 아래와 같이도 표현이 될 수 있습니다. 왜 P..
일반적으로 랩뷰에서 subVI를 팝업 창으로 동기적으로 동작이 됩니다. 동기적으로 동작이 되면 subVI가 종료되기 이전에 subVI를 띄운 Main VI가 Waiting 상태에 빠지게 됩니다. subVI가 종료되야 Main VI의 기능이 동작하게 됩니다. 하지만 대부분 PopUP 창을 띄울때는 MainVI에서는 기능이 제대로 실행되기를 원합니다. 이럴때는 동기적이 아닌 비동기적인 방식으로 subVI를 띄어야합니다. 그럼 지금부터 랩뷰에서 비동기적인 방식으로 subVI를 호출하는 방법에 대해서 알아보도록 하겠습니다. 그럼 MainVI 부터 살펴보도록 하죠. Main VI에서는 특정 이벤트 혹은 버튼이 눌러지는 경우 상태머신을 기반으로 subVI를 호출할 수 있습니다. 1) Main VI 살펴보기 아래의 ..