카테고리 없음

LabVIEW 시리얼 통신 5분 투자해서 초보탈출하자!!_(2)

송이와버섯 2025. 6. 29. 19:37

이 자료는 LabVIEW 기반 시리얼 통신을 막 시작한 실무자 분들을 위해 준비한 '기본 예제 코스'입니다.

 

LabVIEW 시리얼 통신 블록다이어그램 예제 분석 – *IDN? 명령 송수신

이번 포스팅에서는 LabVIEW로 시리얼 장비에 "*IDN?" 명령을 전송하고 응답을 받아오는 기본 통신 구조를 소개합니다.
해당 예제는 NI에서 제공하는 기본 예제 중 하나로, VISA 통신의 핵심 개념을 한눈에 익힐 수 있는 좋은 구조입니다.

 

 

블록별 구성 요소 설명

1. VISA Configure Serial Port

  • 시리얼 통신을 위한 포트 설정 블록입니다.
  • 프런트 패널에서 입력한 Baud rate, Data bits, Parity, Stop bits 등의 값이 이 블록에 전달되어 장비와의 통신 형식을 맞춰줍니다.
  • Baud rate, Data bits, Parity, Stop bits, flow control 등은 여기 링크를 참고해 주세요. https://ssonghistory.tistory.com/5

2. VISA Write

  • 문자열 "*IDN?\r\n"을 시리얼 포트로 전송합니다.
    • 구성 요소 
      *IDN? SCPI 명령어. 장비에 “너 누구냐?” 물어보는 기본 질의
      \r Carriage Return (CR), ASCII 0x0D
      \n Line Feed (LF), ASCII 0x0A
      \r\n CR + LF 조합, 명령 종료 신호로 사용됨
    • 종료문자는 왜 필요할까요?
      • 시리얼 통신에서 장비는 통신 문자열이 언제 끝났는지 확인되어야 명령을 처리합니다. 
      • 종료문자가 없으면 장비는 계속 기다리거나 명령을 무시할 수 있습니다.

3. Wait (ms)

  • 송신 후, 장비가 응답할 시간을 주기 위한 지연 블록입니다.
  • delay before read (ms)로 프런트 패널에서 설정한 값을 사용합니다. 일반적으로 100~500ms를 권장합니다.

4. VISA Property Node – Bytes at Port

  • 현재 시리얼 포트에 수신된 데이터가 몇 바이트 들어와 있는지를 확인합니다.
  • 이 값이 0이면 장비 응답이 없거나 지연된 것입니다. 
  • 장비에 따라서 Bytes at Port 프로퍼티를 지원하지 않을 수도 있습니다. 그럴때는 현 프로퍼티를 사용하지 마세요.

5. VISA Read

  • Bytes at Port 값을 바탕으로 해당 길이만큼의 데이터를 읽습니다.
  • 응답은 문자열 형태로 Response에 출력됩니다.
  • 만약 종료 문자가 장비사양과 맞지 않으면 에러가 발생됩니다.

6. bytes read

  • 실제로 읽은 바이트 수를 표시하며, 디버깅 시 유용한 정보입니다.

7. Error Cluster

  • 통신 과정 중 오류가 발생했는지 여부를 확인할 수 있습니다.

 

실무 포인트

  • "*IDN?" 명령은 SCPI 프로토콜을 지원하는 계측기(오실로스코프, 전력분석기 등)에서 동작합니다. 장비 통신 사양에 따라 이 명령이 지원되지 않을 수도 있습니다.
  • Bytes at Port을 활용해 응답 길이를 자동 추적하는 구조는 단발성 읽기 예제에서는 매우 유용합니다. 
  • 반복적이고 지속적인 통신이 필요한 경우, 이 구조를 While Loop로 감싸고 Timeout 처리 및 예외 처리를 추가해야 실전에서 안정적으로 동작합니다.
  • \r\n (캐리지 리턴 + 줄바꿈) 포함 여부는 장비 명령어 사양에 따라 달라지므로, 장비 매뉴얼을 꼭 참고하세요.

 

응용 아이디어

  • 이 구조를 기반으로 사용자가 명령어를 직접 입력하고 응답을 실시간 확인하는 Serial Command Tester UI를 제작할 수 있습니다.
  • 체크섬이 필요한 프로토콜에도 구조는 동일하게 사용되며, 송신 문자열 작성 부분만 커스터마이징하면 됩니다.

 

다음시간에는 현 예제를 응용하여 시리얼 통신 장비의 매뉴얼을 보고 통신 코드를 작성해보겠습니다.

기술 내용나 문의 사항 있으시면 댓글이나 메일 주세요.