예제 파일LabVIEW 2021 이상 개요Excel file의 특정 셀에 콤보 박스 값 설정 (Office 365로 검증) 실행 순서Set Combo box items in Excel.vi 실행Excel 파일 이름 설정 후 저장생성된 Excel 파일 확인 Ref : Microsoft Learn ChallengeRef : NI Community ※ 이 글이 도움이 되었다면 "👆🏻구독"과 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.
예제 파일LabVIEW 2021 이상 (제공되는 Zip 파일은 LV 2012 기준) 개요이미지 파일로부터 불러온 이미지 정보를 BASE64 문자열로 변환하는 LV 예제 실행 순서Fast Base64 Encoder_Decodr.zip 압축 해제BASE64 Encoder_Decoder.vi 열기 >> 블록다이어그램 코드 확인비활성화 구조의 코드는 기존 예제 코드로 LV 프런트 패널 이미지 정보를 BASE64로 변환시키는 코드 예제 이미지 [minion-.png] 파일 지정 및 코드 실행 >> 프런트 패널 및 BASE64 문자 정보 확인BASE64 문자Copy >> BASE64 to Image Decoder 웹 화면에서 이미지 확인Base64 to Image Decoder/Converter ..
파일 입출력(File I/O) LabVIEW의 장점 중 하나라고 소개드리고 싶은 사항 중 하나, 바로 파일 입▪출력입니다. LabVIEW는 데이터 관리 측면에서도 다양한 파일 포맷을 지원하고 있으며 NI에서 제공하는 2진 포맷 형태의 TDMS 파일을 통해 고속 스트리밍이 가능하다는 장점을 가지고있습니다. TDMS 포맷에 대해서는 다음 튜토리얼에서 좀 더 자세히 다루도록하고 먼저 LabVIEW의 기본 "파일 I/O" 함수들을 살펴보도록 하겠습니다. 파일 I/O 함수의 위치는 함수 팔레트에서 프로그래밍 >> 파일I/O 에 있습니다. ASCII 및 Binary 파일 포맷을 지원하는 텍스트 및 2진 파일 읽기/쓰기 관련 함수들이 있습니다. LabVIEW 관련 함수를 보고있긴 합니다만 보통 OS 위에서 실행되는 ..
You have a large LabVIEW application with over 200 subVIs written by you and your colleagues. It is functioning incorrectly, and you are fairly certain the issue is in one of the subVIs that you wrote. Which of the following strategies will most effectively troubleshoot the issue? 1. Open all of the front panels for the subVIs you wrote and observe the control and indicator values during executi..
This VI has a race condition. Why? 1. The bottom While Loop could stop before the top loop stops. 2. Numeric Control could be inserted into the array before being incremented. 3. Numeric Control is executed twice in the top While Loop. 4. LabVIEW always prioritizes execution of the top loop. 정답 보기는 아래 더보기 클릭 더보기 정답 : 2. Numeric Control could be inserted into the array before being incremented. 블..
Why does this code cause a broken Run button? 1. There is no data source for the subVI 2. The subVI is broken. 3. The indicator is wired to a control terminal 4. There is a data mismatch between the main VI and the subVI 정답 보기는 아래 더보기 클릭 더보기 정답 : 2.The subVI is broken. 문제에서 제시한 이미지를 보고 VI 실행 버튼이 깨진 원인을 찾는 문제이다. 정답 찾기는 쉬운 편이나 문제를 보면 코드와 도움말 패널을 같이 제시하고있다. 도움말 패널에서는 입출력 터미널에 대한 정보 및 입력 터미널의 연결 설정을..
Your LabVIEW program has multiple While Loops running in parallel. Each of these loops must wait until a common resource is available before starting a new iteration. Which of the following mechanisms can you use to ensure that the loop iterations always start at the same time? 1. Global variable 2. Local variable 3. Reading from a file 4. Rendezvous VIs 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. Rendezvous V..
모듈화(SubVI) 모듈화란 사용자가 원하는 기능의 함수를 직접 만드는 것을 말합니다. 랩뷰에서는 SubVI라고 많이 부르며 랩뷰 기본 함수 및 툴킷에서 제공되는 아이콘 외에 내가 직접 함수 아이콘을 만든다고 보시면 되겠습니다. "그럼 모듈화를 왜 사용해야 하는 걸까요?", "기존에 제공되는 함수를 사용하면 더 편하고 쉬운게 아닌가요?" 등의 의문을 가지고 계신 분들이 있으실텐데요. 개인적으로는 내가 잘 활용할 수 있는 나만의 모듈. 즉, SubVI를 얼마나 많이 가지고 있는지가 나의 LabVIEW 스킬이 될 수 있다고 생각합니다. 그만큼 랩뷰에서는 지원되는 함수만 있다면 입출력 터미널을 와이어링만 시켜서 일단 코드 작성을 끝낼 수 있기 때문이죠. "先 기능 구현, 後 스터디가 가능하다고나 할까요?" 크..
Why does this code cause a broken Run button? 1. Control wired to another control 2. Output and input nodes are not wired together 3. Mismatched data types 4. Required terminal is not wired 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. Required terminal is not wired VI의 실행 버튼이 깨져있는데 원인이 무엇인지 물어보는 문제이다. 코드를 살펴보면 Input X와 Product라고하는 이름의 컨트롤, 인디케이터가 있고 [곱하기] 노드를 통해 와이어링 연결되어있다. [곱하기] 노드의 경우 입력 X와 Y 값 두 개를 모두 받아야지만..
이벤트 구조 심화편(Advanced Event Structure) 이번 시간에는 지난번 다루어보았던 이벤트 구조(Event Structure)에 대해 좀 더 알아보는 시간을 가지도록 하겠습니다. 이벤트 구조의 동작만 알아도 LabVIEW에서 사용하는데 크게 문제가 없기 때문에 따로 지난 시간에 언급드리진 않았는데요. 한번 사용해보았으니 이제 자세히 리뷰를 해보도록 하겠습니다. 이벤트 구조에 대해서 잘 기억이 안나시는 분들은 이전 포스팅 내용을 한번 정독하시고 본문을 읽어주시길 권장드립니다. 랩뷰(Tutorial) 17 | 이벤트 구조(Event Structure) 이벤트(Event)란, 프로그래밍에서 이벤트라고 하면 '지정한 조건에서의 특정 기능이 실행'되도록 하는 것입니다. 프로그래밍 언어가 익숙하신 ..
Why does this VI have a race condition? 1. The lack of a Wait function will cause the While Loop to execute too quickly for data to be written correctly. 2. The local variables could be written to from another VI. 3. This VI does not have a race condition. 4. There is nothing to control the execution order of the two local variables. 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. There is nothing to control the e..
Running this VI causes your computer to run out of memory. What is the most likely cause? 1. The loop time delay is too large 2. The DAQmx Read VI returned an error 3. The specified current range is too high 4. The array output tunnel on the While Loop has no bounds 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. The array output tunnel on the While Loop has no bounds 위의 코드를 실행하였을 때 PC에서 메모리 부족 현상이 나타날 가능성이 있는 경우에..
If an error occurs in Startup.vi , which VI can pass the error code to the Shutdown case? (automatic error handling is disabled) 1. 2. 3. 4. 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. (문제 속 이미지 참조) 이미지 속 Startup.vi에서 에러가 발생하였을 경우 "Shutdown" 케이스로 에러 코드를 전달하는 코드를 찾는 문제이다. 따라서, 에러 발생시 열거형 상수의 아이템이 "Shutdown"으로 지정되는 코드와 에러 정보가 다음 사이클로 전달되는지 2가지를 살펴보면 된다. 첫 번째로 Startup.vi에서 출력되는 에러 라인에 따라 Shutdown으로 전달되는 코드는 1, 2,..
Why does this code cause a broken Run button? 1. A required terminal for the function is not wired. 2. None of the output terminals are wired. 3. The error in terminal is unwired. 4. This code does not cause a broken Run button. 정답 보기는 아래 더보기 클릭 더보기 정답 : 1. A required terminal for the function is not wired. 해당 코드를 보고 실행 버튼이 깨진 이유에 대해 물어보는 문제이다. 먼저 함수에 대해 알고 있어야 풀 수 있는 문제로 [원소를 큐에 추가] 함수에 대해 알아보도..
Which is a valid error description value for this Error Ring? 1. Error %d occurred at "%s". Possible reason: %d 2. No Error 3. The "%s" function generated a value of "%d", but the expected value was "%d". 4. The "abc" function generated a value of "I32", but the expected value was "I32". 정답 보기는 아래 더보기 클릭 더보기 정답 : 3. The "%s" function generated a value of "%d", but the expected value was "%d". 에러..
이벤트(Event)란, 프로그래밍에서 이벤트라고 하면 '지정한 조건에서의 특정 기능이 실행'되도록 하는 것입니다. 프로그래밍 언어가 익숙하신 분들은 어렵지 않겠으나 반대로 '굳이 써야하나..?'라고 생각하시는 분들도 계실 수 있는데요. 간단하게 설명하긴 하였지만 이벤트를 사용하지않고 CASE 구조를 가지고 입력이 a이면 b를, c이면 특정 동작을 수행하라와 같이 코드를 작성할 수도 있습니다. (강의를 다녀보면 오히려 많이 배우면 머리아프다거나,,이정도만 알아도 내가 코드를 간단히 작성해서 돌려보는데에는 문제없다고 하시는 분들도 꽤 있더군요..LabVIEW가 배우기 쉬운만큼 간단한 것까지만하려고 하는걸까요. 개인적으로는 아쉬웠습니다..😂)바로 이전 시간에 '스탑 워치' 실습을 해보았던 자료를 예시로 설명하..
Which error(s) does LabVIEW report at the end of execution? 1. Error Code 1430 2. Both Error Code 7 and Error Code 1430 3. Error Code 7 4. Ether Error Code 7 or Error Code 1430 정답 보기는 아래 더보기 클릭 더보기 정답 : 1. Error Code 1430 이미지와 같이 코드가 작성되어있고 각각의 SubVI에서 Error 1430과 Error 7이 발생하였을 때 랩뷰에서 실행 마지막에 알려주는 에러는 어떻게 되는지 물어보는 문제이다. [에러 병합(Merge Errors)] 함수를 알고 있는지가 핵심이라고 할 수 있으며 [에러 병합] 함수의 경우 입력으로 받고자하는 에..
예제 파일 LabVIEW 2018 or 이후 버전 개요 강도 그래프(Intensity Graph) 데이터 Smoothing 처리해주는 예제 실행 순서 Bilinear Interplation.vi 실행 블록다이어그램 2D 배열 크기 4*4 확인 램프 함수에 샘플 입력 설정 40(x10 Bilinear) 확인 결과 그래프 비교 ※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.
Why does this code cause a broken Run button? 1. The False case has an unwired output terminal. 2. The VI is not broken. 3. The Case structure lacks a default case. 4. The Replace Array Subset function has an unwired input terminal. 정답 보기는 아래 더보기 클릭 더보기 정답 : 1. The False case has an unwired output terminal. 문제에서 보여주는 이미지처럼 코드가 작성되어있을 때 VI가 깨진 상태가 되는 이유를 물어보는 문제이다. "참" 케이스 안에 있는 [Delete From Arra..
In the following code, the Init Values VI sets the value of the Additional Action global variable to TRUE. But when you run this VI, the Additional Action VI does not execute. Why? 1. The Case structure has been constant folded. 2. The Init Values VI is reentrant and addressing a different instance of the global variable. 3. The global VI is broken. 4. There is no data dependency between when th..
Which VI is used to ignore a specific error? 1. Simple Error Handler 2. Error Cluster From Error Code 3. General Error Handler 4. Clear Errors 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. Clear Errors 특정 에러를 무시할 때 사용하는 VI를 물어보는 문제이다. LabVIEW에서 Error Handling 경험이 있다면 크게 어렵지 않은 문제로 보기를 하나씩 살펴보면 다음과 같다. 1. Simple Error Handler (단순 에러 핸들러) : 에러가 발생했는지의 여부를 나타낸다. 에러가 발생한 경우, 이 VI는 에러의 설명을 반환하고 선택적으로 대화 상자를 디스플레이한다. ..
If SubVI Process.vi generates an error, your VI should clear the error and retry the SubVI two more times to give it a chance to succeed. Which of the following VIs best meets these requirements? 1. 2. 3. 4. 정답 보기는 아래 더보기 클릭 더보기 정답 : 3. (문제 이미지 참조) Process.vi 이름의 SubVI에서 에러가 발생하였을 경우 2번 더 SubVI를 실행하여 에러없이 실행되도록 하는 코드를 찾는 문제이다. 일단 조건을 정리해보면 에러가 발생하였을 경우이므로 반대로 에러가 없다면 SubVI는 1회만 실행되어야한다. 이를 가능토록 ..
지금까지 다루었던 반복문, 분기문, 시프트 레지스터, 타이밍 함수 등을 이용하여 스톱 워치와 알람 기능을 만들어보도록 하겠습니다. 혹시라도 해당 포스팅을 처음 보시거나 랩뷰를 처음 사용하시는 분들이 계시다면 앞에서 다루었던 Tutorial 10 ~ 15까지는 한번 정독 후 본문을 읽어주시기 바랍니다. 그럼 한 Step씩 랩뷰 실습을 해보도록 하겠습니다. 기본 UI 제공 파일 UI가 만들어져 있는 파일은 아래에 첨부한 vi를 다운로드하시거나 직접 버튼 3개, 숫자형 인디케이터 1개를 생성하셔도 무방합니다. 순서도(Flow chart) 보통 코드를 작성할 때 우리는 순서도, 알고리즘 또는 로직이라고 일컫는 블록도를 한번 설계해보고나서 그걸 참고하여 코드를 작성하는데요. 이번 실습에서 만들어볼 스탑워치에 대한..
이번 시간에는 타이밍(Timing) 함수에 대해 알아보도록 하겠습니다. 이전 시간에 반복문(For, While 문) 구조와 연속적인 실행에서 데이터를 넘기기 위한(Shift Register)에 대해 알아보았는데요. 여기에서 '루프 실행을 내가 원하는 주기마다 어떻게 실행하지?'라는 궁금증이 하나 생길 겁니다. 바로 랩뷰(LabVIEW) 타이밍 함수와 관련된 내용인데요. 이전 시간에 잠깐씩 언급은 되었지만 이번 시간에 한번 자세히 살펴보도록 하겠습니다. 타이밍 팔레트 (Timing Palette) 타이밍 팔레트의 위치는 함수 팔레트 >> 프로그래밍 >> 타이밍에 위치해 있습니다. 본문에서 다룰 함수는 랩뷰에서 대표적으로 많이 쓰이는 함수인 [Tick 카운트(ms)], [기다림(ms)], [다음 ms배수까지..