NI LabVIEW 와컴퓨터기반측정소개 한국내쇼날인스트루먼트 Field Sales Engineer 손영우
LabVIEW 소개 측정어플리케이션을위한시스템디자인소프트웨어
30 년이상의검증된소프트웨어플랫폼운영체제, 버스, 기술, 기타등의역사와함께한시간 3
LabVIEW 는측정의표준 데이터수집과인스트루먼트컨트롤에사용되는소프트웨어 NI LabVIEW Microsoft Visual C/C++ Microsoft Visual Basic Microsoft Visual Basic 6.0 NI - LabWindows /CVI Microsoft C# The MathWorks, Inc. - MATLAB NI Measurement Studio Agilent VEE NI TestStand Agilent IO Libraries Suite Python GeoTest ATEasy Other Don't use 0% 5% 10% 15% 20% 25% 30% 35% 40% 4
LabVIEW 의기반 : 버추얼인스트루먼테이션소프트웨어를통해기능이고정된계측기의자동화구현 파워서플라이각개별계측기에는실제신호를캡쳐하는측정회로를구동하기위한파워서플라이가필요합니다. 메모리 PC 는메모리업그레이드만으로도성능을높일수있습니다. 디스플레이디스플레이기술이많은발전을했음에도계측기업체들은계측기마다제한된품질의디스플레이를제공합니다. 프로세서칩제조업체들은무어의법칙에따라프로세서를빠르게개선하고있지만계측기의처리력은고정되어있습니다. 스토리지 PC 하드드라이브만으로도용량이충분하고비용효율적이긴하지만각계측기들은온보드스토리지를탑재하고있습니다. 5
LabVIEW 의기반 : 버추얼인스트루먼테이션상용 PC 컴포넌트를활용하면계측기가되는소프트웨어 LabVIEW 는 PC 업계를활용하고수많은회로를추출하여계측기와데이터수집하드웨어의성능을끌어올립니다. 6
따라서 LabVIEW 구성요소를버추얼인스트루먼트 (*.VI) 라고함 아이콘 / 커넥터팬입력과출력을맵핑 LabVIEW 프런트패널 VI 의사용자인터페이스 LabVIEW 블록다이어그램 VI 의소스코드 7 노트 : A *.vi f 파일에는세가지모든요소들이포함되어있음
LabVIEW 프런트패널생성 컨트롤팔레트 ( 오른쪽클릭 ) 모든프런트패널요소를계층형팔레트로접근합니다. 빠른탐색 (Ctrl + Space) 객체명으로검색합니다. 8
프런트패널객체 장식장식요소및이미지 텍스트 화살표 Callouts 라인 이미지 기타 정의가능한인디케이터사용자에게출력을전달하기위해사용 그래프와차트 진행바 게이지와미터 LED 숫자 문자및경로 기타 정의가능한컨트롤사용자의입력을수신하기위해사용 노브와다이얼 슬라이더 버튼 숫자 문자와경로 기타 9
LabVIEW SpaceX Mission 컨트롤에구현한수십개의 LabvIEW 프런트패널출처 : Elon Musk 위의모든프런트패널들은글로벌 LabVIW 커뮤니티들이공유하고재사용할수있도록기증받았습니다. 10
모든프런트패널요소들은블록다이어그램터미널을가지고있음블록다이어그램터미널은프런트패널값에접근을제공 11
데이터흐름이란? 각블록다이어그램노드는모든입력을수신했을때만실행 각노드는실행후에출력데이터를생성 데이터는와이어가정한경로에따라흐름 데이터의움직임은실행순서를결정 등식 : 결과 = (A+B*C) / (D-E) 12
데이터흐름이란? 각블록다이어그램노드는모든입력을수신했을때만실행 각노드는실행후에출력데이터생성 데이터는와이어가정한경로에따라흐름 데이터의움직임은실행순서를결정 [ 곱하기 ] 와 [ 빼기 ] 연산은데이터의존이없기대문에동시에실행할수있습니다. 13
LabVIEW 태스크병렬화 데이터병렬화 14
LabVIEW 블록다이어그램생성 함수팔레트 ( 오른쪽클릭 ) 모든블록다이어그램함수를계층형팔레트로접근합니다. 빠른탐색 (Ctrl + Space) 객체명으로검색합니다. 15
LabVIEW 블록다이어그램탐색 전형적인 LabVIEW 블록다이어그램으로지속적인전압측정어플리케이션을구현하였고특징은다음과같습니다 : 사용자인터페이스핸들링 이벤트처리 병렬화 멀티스레드데이터전송 신호분석 16
실행컨트롤구조 : 루프 카운트터미널이 For 루프에포함된코드는 N 번시행하게됩니다. For 루프 루프반복터미널현재루프반복수를제공하며, 0 ~ N-1 범위로제공됩니다. While 루프 조건터미널 While 루프내의코드는 True 값이 평가될때까지실행됩니다. 17
텍스트루프와상응하는 LabVIEW 기능 for (i = 0; i < 10; i++) { /* loop body */ } for (i = 0; i < 10; i++) { if(check(i)) break; } int x = 0; String y; while (x < 5) { y = functioncall(x); printf(y); x++; } 18
이벤트및케이스구조 이벤트구조 이벤트선택자라벨어떤서브다이어그램을보이게할지선택하며다이어그램내부의코드가처리되는이벤트를자세히나타냅니다. 케이스선택자라벨어떤서브다이어그램을보이게할지나타냅니다. 케이스구조 선택자터미널이터미널에와이어로연결된값은어떤서브다이어그램또는케이스가실행될지결정합니다. 19
텍스트이벤트, 케이스와상응하는 LabVIEW 기능 Button B = new Button(); B.Click += new RoutedEventHandler(OnBClick); void OnBClick(object Source) { Text1.Text = Button B was Clicked! ; } if condition1 then -- statements; elseif condition2 then -- more statements elseif condition3 then -- more statements; else -- other statements; end if switch (n) { case 5: printf( Small number."); break; case 100: printf( Large number."); break; default: printf( Outside range ); break; } 20
LabVIEW 블록다이어그램탐색 원시함수노란색 subvi 는 G 언어의네이티브일부로수정이불가합니다. 표준함수이 subvi 들은사용자가생성할수있거나드라이버, 라이브러리또는툴킷의일부가될수있습니다. 원시함수노란색 subvi 는 G 언어의네이티브일부로수정이불가합니다. 데이터가모든입력터미널에도달하기전까지 LabVIEW 함수 (SubVI) 는실행되지않습니다. 완료되면, 출력은값으로채워지기때문에실행이지속될수있습니다. 21
필요에따라복잡해지는 LabVIEW 함수 익스프레스 VI 빠르고쉬움 설정기반 제한 일반 VI 로우레벨 VI 불필요한세부사항감춤 활용성이높고유연함 강력하고유연함 어렵고시간소모적임 22
LabVIEW 블록다이어그램탐색 입력터미널입력터미널은프런트패널컨트롤에연결되며사용자인터페이스로부터입력데이터를수신합니다. 출력터미널출력터미널은프런트패널인디케이터에연결되며데이터를출력으로사용자인터페이스에디스플레이합니다. 나타내는방향을확인하여터미널이컨트롤인지인디케이터인지구분할수있습니다. 23
LabVIEW 블록다이어그램탐색 와이어블록다이어그램의노드간데이터는와이어를통해흐릅니다. 와이어의색상은데이터타입을나타내며, 24 편집할때색상에맞게와이어연결을해야합니다.
와이어의색상, 스타일, 두께 와이어타입스칼라 1D 배열 2D 배열색상 부동소수점정수불리언문자열에러 주황색파란색녹색분홍색노란색 깨진와이어 는 LabvVIEW가자동으로해결하수없는데이터타입문제를나타냅니다. 수정하지않으면코드가실행되지않습니다! 25
와이어를따라흐르는데이터흐름시각화처리 : 실행하이라이트사용자는 시작 버튼을눌러첫번째이벤트를실행사용자는 정지 버튼을눌러두번째이벤트를실행 26
데이터수집을넘어선 LabVIEW 활용영역확장 고급분석 외부코드통합 복합시각화처리 자동리포팅.NET Assembly, C DLL,.m File 27
데이터수집 (DAQ) 의기초 PC 기반측정의기본
데이터수집 (DAQ) 이란? 데이터수집 (DAQ) 은전기또는물리현상 ( 전압, 전류, 온도, 압력또는소리등 ) 을컴퓨터로측정하는프로세스입니다. 기존측정시스템과달리 PC 기반 DAQ 시스템은업계표준컴퓨터의처리력, 생산성, 디스플레이, 연결기능을차용하여보다강력하고, 유연하며, 비용효율적인측정솔루션을제공합니다. 29
2 개형태로들어오는신호 : 디지털과아날로그 Digital Analog 30
디지털신호 디지털신호는 2 개상태를가짐 : high 및 low DAQ 디바이스의디지털라인은트랜지스터 - 트랜지스터로직 (TTL) 호환신호를수용하고생성 High 상태 +5.0 V 중간 Low 상태 +2.2 V +0.8 V 0 V 상태 속도 31
디지털용어 0 1 Bit 데이터의가장작은 단위. 각비트는 1 또는 0 입니다. 바이너리수는 8 개의 관련데이터비트로 구성됩니다. Byte 01101001 10101100 Line 한포트의한개별신호. 비트는전송된데이터를뜻합니다. 라인은하드웨어를지칭합니다. 디지털라인의모음 ( 보통 4 개또는 8 개 ). Port 32
2 개의형태로들어오는신호 : 디지털과아날로그 Digital Analog 33
아날로그신호는지속적인신호로서 시간에대한값이라고할수있습니다. 34
아날로그용어 4.71 V 레벨 주어진시간지점에서신호의순간적인값입니다. 모양 아날로그신호가취하는형태로서, 신호에서분석할수있는 세부분석을나타냅니다. 주파수 시간에따라반복하는발생횟수입니다. 35
데이터수집의 3 R: 분해능 (Resolution) 6- 비트분해능 분해능범위속도 원래신호 3- 비트분해능 36
데이터수집의 3R: 범위 (Range) 분해능범위속도 -10V -2V to ~ 10V 2V 범위 원래신호 3- 비트분해능 37
데이터수집의 3R: 속도 (Rate) 분해능범위속도 원래대역폭 (10 Hz) 샘플링속도 = 100 25 11 Hz 38
샘플링속도고려사항 아날로그입력신호는시간에따라지속됩니다. 샘플링신호는지정한샘플링속도로수집되는일련의개별샘플입니다. 실제신호 빠르게샘플링할수록, 샘플링된신호가실제신호처럼보이게됩니다. 충분히빠르지않게샘플링되면, 앨리어싱이라고하는문제가발생하게됩니다. 샘플링된신호 39
앨리어싱 샘플속도 : A/D 변환이발생하는속도 앨리어스 : 신호의잘못된표현 적절한샘플링 고도 낮은샘플링으로인한앨리어스 6 주파수 고도 2 주파수 40
나이퀴스트이론에따라앨리어싱방지 주파수 원래신호의주파수를정확히표현하려면 신호의최대주파수보다 2 배높게샘플링해야합니다. 모양 원래신호의모양을정확히표현하려면 신호의최대주파수보다 5-10 배높게샘플링해야합니다. 41
나이퀴스트이론적용 앨리어싱신호 100 Hz 사인파 100 Hz 로샘플링 주파수만적절히샘플링 100 Hz 사인파 200 Hz 로샘플링 주파수와모양까지적절히샘플링 100 Hz 사인파 1 khz 로샘플링 42
통합형측정시스템의아키텍처 NI-DAQmx 는무료로제공되는드라이버소프트웨어로서다른프로그래밍언어와함께사용하여일관적인 API 와함께수천개의데이터수집디바이스를제어합니다. 센서 측정디바이스 소프트웨어 신호컨디셔닝 아날로그 - 디지털컨버터 (ADC) 드라이버소프트웨어 어플리케이션소프트웨어 43
Measurement & Automation Explorer (MAX) NI 하드웨어를위해무료로제공되는통합형설정관리유틸리티 태스크와채널생성 시뮬레이션된디바이스 설정및연결관리 내장된신호연결다이어그램 테스트패널윈도우 44
NI-DAQmx API: 설정기반 DAQ 어시스턴트 설정기반의신속한측정가능 여러채널과디바이스에서사용가능 일부유연성을희생하여사용편리성극대화 여러프로그래밍언어지원 자동으로로우레벨코드생성 45
NI-DAQmx API: 로우레벨 LabVIEW VI 유연성을극대화하고로우레벨컨트롤가능 기본적인흐름 : 채널설정 타이밍설정 트리거링설정 수집시작 데이터읽기 태스크제거 46
NI-DAQmx 채널 NI-DAQmx 채널은다음을수용 : 측정타입, 센서 / 신호타입 터미널설정 물리연결설정 이름 최소 / 최대값 o 증폭레벨을결정하는데사용 스케일링정의 o 예 : 열전쌍은 mv 신호를생성 ; NI-DAQmx는 C로스케일 47
타이밍 수집타이밍설정가능 샘플클럭, 수집속도, 수집또는생성할샘플의개수설정 타이밍옵션 유한샘플연속샘플하드웨어타임단일포인트 설명 설정가능한속도로설정가능한샘플개수를수집하거나생성합니다. API 가정지할때까지계속해서샘플을수집하거나생성합니다. 하드웨어클럭의에지에서지속적으로샘플을수집하거나생성합니다. 48
트리거링 입력에따라작동을생성 예 : 디지털펄스수신후웨이브폼생성 NI-DAQmx 는몇가지다른작동타입을지원 : 진행 정지 참조 시작 목록의다음디바이스로 트리거가 low 일때정지 소프트웨어로수집시작 수집시작 전환 트리거가 high 일때재개 참조트리거가수신될 생성시작 때까지원형버퍼가사용 사전또는사후트리거 샘플반환 49
트리거링 이벤트구동수집또는생성 유한또는연속연산에유효 예 : 시작트리거에서 5개샘플수집 : 시작트리거 클럭 1 2 3 4 5 수집시작 50
트리거타입 디지털에지트리거링 TTL/CMOS 호환신호수용 0 ~ 0.8 V = 로직 low 2.2 ~ 5 V = 로직 high 신호의상승또는하강에지에서트리거링 상승에지의트리거 하강에지의트리거 수집시작 수집시작 51
트리거타입 아날로그에지트리거링 신호레벨과경사도를트리거오프 경사도는상승또는하강이될수있음 2.7 레벨의상승경사도 2.7 레벨의하강경사도 캡쳐된 레벨과경사도가 2.7 신호 2.7 데이터캡쳐착수 0 레벨과경사도가데이터캡쳐착수 0 캡쳐된데이터 52
NI-DAQmx 태스크로코드단순화 태스크는채널과동질의타이밍및트리거링을 함께모은것입니다. 채널설정 타이밍설정 NI-DAQmx 태스크 트리거링설정 53
가장생산적이고유연한방식정확하고안정적인자동화측정시스템구축 일관된소프트웨어경험 1. 생산성가속 지능형의확장가능한하드웨어 2. 입증된성능과정확도 통합된드라이버 3. 확장성, 적용성및유연성 54