LabVIEW에서 에러 핸들링하기

이 섹션에 포함된 내용

생성한 VI가 아무리 완벽해 보이더라도, 사용하면서 접하게 될 문제를 모두 예측할 수는 없습니다. 에러 확인 메커니즘이 없는 경우에는, VI가 올바로 작동하지 않고 있다는 사실 밖에 모르게 됨. 에러 확인 기능이 있다면, 에러가 발생하는 원인과 대상을 점검할 수 있습니다.

자동 에러 핸들링

각 에러에는 숫자 코드 및 이에 해당하는 에러 메시지가 있습니다.

기본적으로 LabVIEW는 VI를 실행할 때 에러가 발생하면 실행을 정지하고, 에러가 발생한 subVI 또는 함수를 하이라이트하고, 에러 대화 상자를 열어 자동으로 에러를 처리합니다.

현재 VI의 자동 에러 핸들링을 비활성화하려면, 파일≫VI 프로퍼티를 선택한 후 항목 풀다운 메뉴에서 실행을 선택합니다. 새로 생성하는 모든 VI의 자동 에러 핸들링을 비활성화하려면, 도구≫옵션을 선택한 후 항목 리스트에서 블록다이어그램을 선택합니다. VI 안의 SubVI 또는 함수의 자동 에러 핸들링을 비활성화하려면, 에러 출력 파라미터를 다른 SubVI나 함수의 에러 입력 파라미터 또는 에러 출력 인디케이터에 연결합니다.

수동 에러 핸들링

다른 에러 핸들링 방법을 선택할 수 있습니다. 예를 들어 블록다이어그램에서 I/O VI가 타임아웃되면, 전체 어플리케이션이 멈추고 에러 대화 상자가 나타나는 것을 원하지 않을 수도 있습니다. 또한 그 VI가 일정 시간 동안 다시 동작을 시도하기를 원할 수도 있습니다. LabVIEW의 경우, VI의 블록다이어그램에서 이러한 에러 핸들링에 대한 결정을 할 수 있습니다.

대화 상자 & 사용자 인터페이스 팔레트에 있는 LabVIEW 에러 핸들링 VI와 함수, 그리고 대부분의 VI와 함수에 있는 에러 입력에러 출력 파라미터를 사용하여 에러를 처리합니다. 예를 들어 LabVIEW에서 에러가 발생한 경우, 다양한 종류의 대화 상자에서 에러 메시지를 생성할 수 있습니다. 에러 핸들링과 디버깅 도구를 함께 사용하여 에러를 찾아내고 관리합니다.

어떠한 입력과 출력 (I/O) 작업을 수행하더라도 에러가 발생할 가능성이 있다는 것을 염두에 두십시오. 대부분의 I/O 함수는 에러 정보를 반환합니다. VI, 특히 파일, 시리얼, 계측, 데이터 수집, 통신과 관련된 I/O 동작에 에러 확인 기능을 포함시키고, 에러 발생시 에러를 적절하게 처리하는 메커니즘을 지정해야 합니다.

LabVIEW 에러 핸들링 VI, 함수, 파라미터를 사용하여 에러를 처리합니다. 예를 들어, LabVIEW에 에러가 발생할 경우 대화 상자에 에러 메시지를 디스플레이할 수 있습니다. 또는 프로그램적으로 에러를 수정한 후, SubVI 또는 함수의 에러 출력을 [에러 지우기] VI의 에러 입력에 연결하여 에러를 지울 수 있습니다. 에러 핸들링과 디버깅 도구를 함께 사용하여 에러를 찾아내고 관리합니다.

에러 클러스터

LabVIEW의 에러 핸들링은 데이터 흐름 모델을 따릅니다. 데이터 값이 VI의 시작 부분에서부터 끝 부분까지 흘러가는 것과 같이, 에러 정보도 같은 방식으로 전달됩니다. 에러 정보를 VI의 시작에서 끝 부분까지 와이어로 연결합니다. VI의 끝에 [에러 핸들러] VI를 놓아 해당 VI가 에러 없이 실행되었는지 확인합니다. 직접 만들거나 사용하는 각 VI에 에러 입력 및 에러 출력 클러스터를 사용하여, VI의 시작에서 끝부분까지 에러 정보를 전달합니다.

VI가 실행되는 동안, LabVIEW는 각 실행 노드에서 에러가 없는지 테스트합니다. LabVIEW가 에러를 발견하지 못하면, 노드는 정상적으로 실행됩니다. LabVIEW가 에러를 감지하면, 노드는 해당 코드 부분을 실행하지 않고 다음 노드에 에러를 전달합니다. 다음 노드도 이처럼 진행되고, 이런 방식으로 계속해서 이어집니다. 실행 흐름의 끝 부분에서 LabVIEW는 에러를 보고합니다.

에러 클러스터 컨트롤과 인디케이터를 사용하여, SubVI에서 에러 입력 및 출력을 생성할 수 있음.

에러 입력과 에러 출력 클러스터는 다음과 같은 정보의 구성요소를 포함합니다.

  • 상태 에러가 발생하면 참(TRUE)을 보고하는 불리언 값.
  • 코드 에러를 숫자로 나타내는 부호있는 32 비트 정수.  거짓 (FALSE) 상태와 짝을 이루는 0이 아닌 에러 코드는 에러가 아닌 경고를 표시합니다.
  • 소스. 에러가 발생한 위치를 나타내는 문자열.

에러 설명

에러가 발생하면, 클러스터 경계 안쪽에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 에러 설명을 선택하여 에러 설명 대화 상자를 엽니다. 에러 설명 대화 상자에는 에러에 대한 정보가 포함됩니다. VI가 에러가 아닌 경고를 포함하는 경우, 바로 가기 메뉴에는 경고 설명 옵션이 포함됩니다.

또한 도움말≫에러 설명 메뉴에서 에러 설명 대화 상자에 접근할 수 있습니다.

While 루프를 사용하여 에러 핸들링 하기

While 루프의 조건 터미널 또는 조건 터미널을 가진 For 루프에 에러 클러스터를 연결하여, 루프의 반복을 멈추게 할 수 있습니다. 에러 클러스터를 조건 터미널에 연결하면, 에러 클러스터의 상태 파라미터에서 참 (TRUE) 또는 거짓 (FALSE)값만이 터미널에 전달됩니다. 에러가 발생하는 경우 루프는 정지합니다. 조건 터미널이 있는 For 루프에서, 카운트 터미널에 값을 연결하거나 또는 입력 배열을 오토인덱싱하여 최대 반복 횟수를 설정해야 합니다. For 루프는 에러가 발생하거나 설정된 반복 횟수에 이를 때까지 실행됩니다.

에러 클러스터를 조건 터미널에 연결하면, 참이면 정지와 참이면 계속 바로 가기 메뉴 아이템은 에러 발생시 정지와 에러 발생시 계속으로 변경됩니다.

그림 1에서 에러 클러스터와 정지 버튼이 함께 사용되어 루프를 정지할 시점을 결정합니다. 이 방법은 사용자가 루프를 중지하고자 할 때나 작동이 잘못 되었을 때 (에러 도출) 대부분의 루프를 중지하기 위해 권장되는 방법입니다.

그림 1. While 루프 중지하기

새로운 방법으로 LabVIEW의 기본 사항을 학습하십시오.

LabVIEW의 개념을 새로운 대화식 학습으로 배울 수 있습니다

대화식 학습으로 가기

이전 실행 구조
LabVIEW 예제 검색하기 다음