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 살펴보기 아래의 ..
모달 해석이라는 말은 여러가지 의미로 사용이 되고 있습니다. 하지만 가장 많이 사용되는 의미로는 진동문제에 대한 고유의 진동수를 해석하는 것을 말하지요. 즉 구조물의 동적 특성을 연구하는 학문입니다. 모달 해석은 모드 해석(Mode Analysis)로도 불리고 있습니다. 그럼 왜 모달 분석이 필요한 것일까요? 지난 몇십년 동안 전세계적으로 큰 인명 혹은 재산상 피해를 발생시킨 다리 붕괴 사건이 여럿 발생하였습니다. 이는 수십억 달러의 손실은 분명 수백명의 생명을 앗아가기도 하였습니다. 이와 같은 사고는 좀 더 나은 디자인, 검증, 모니터링을 통해서 교량에서의 구조를 잘 설계 했다면 피해갈 수 있었습니다. 이러한 이유로 모달 분석은 모니터링 시스템 기업 및 교량 설계 기업의 R&D 부서로 부터 많은 관심을..
FFT 및 파워스펙트럼을 통해서 분석을 하고자 할 때 사용자는 사용자의 요구사항에 따라 선형 스케일로 볼 것인지, dB 스케일로 볼것인지를 결정할 수 있습니다. 이 글에서는 분석을 통해서 나온 결과값을 Linear 혹은 dB 스케일로 보는 방법에 대해서 알아보고자 합니다. 결과의 값은 dB 스케일로 확인하기 위해서는 아래와 같이 2가지 방법을 사용할 수 있습니다. 1) LabVIEW Express VI를 사용 LabVIEW ExpressVI는 Express VI는 자체에서 dB 스케일로 결과를 볼 수 있는 기능을 제공하고 있습니다. 사용법을 알아볼까요? LabVIEW의 블록다이어그램에서 함수를 열어 익스프레스 >> 신호분석 >> 스펙트럼 측정을 들어갑니다. 블록 다이어그램에 스펙트럼 측정을 두면 아래와 ..