같은 측정을 반복하거나, 여러 장비를 묶어 무인으로 시험하려면 측정 자동화가 답입니다. 그 핵심 언어가 SCPI입니다. 이 글은 SCPI의 구조와 Python(PyVISA) 예제로 자동화를 처음 시작하는 분을 위한 입문 가이드입니다.
1. SCPI란?
SCPI(Standard Commands for Programmable Instruments)는 계측기를 원격 제어하는 표준 명령 언어입니다. 제조사가 달라도 비슷한 명령 체계를 따르므로, 한 번 익히면 여러 브랜드 장비에 응용할 수 있습니다.
2. 왜 자동화하나?
- 일관성 · 사람 손에 의한 오차 제거, 동일 조건 반복
- 속도·효율 · 수백 회 측정·기록을 자동으로
- 무인 시험 · 양산 검사·장시간 신뢰성 시험
- 데이터 · 측정값 자동 저장·분석
3. 연결 인터페이스
| 인터페이스 | 특징 |
|---|---|
| LAN / LXI | 네트워크 기반, 원거리·다수 장비에 유리(권장) |
| USB (USBTMC) | 간편한 1:1 연결 |
| GPIB (IEEE-488) | 전통적 계측 표준, 안정적 |
| RS-232 | 구형·단순 장비 |
4. 명령 구조
SCPI는 콜론(:)으로 계층을 나타내고, 끝에 물음표(?)가 붙으면 값을 읽는 쿼리입니다. 별표(*)로 시작하는 것은 공통 명령입니다.
| 명령 | 의미 |
|---|---|
*IDN? | 장비 식별(제조사·모델·시리얼·펌웨어) |
*RST | 초기화(리셋) |
*OPC? | 동작 완료 확인(동기화) |
MEAS:VOLT:DC? | DC 전압 측정값 읽기 |
CONF:CURR 1 | 전류 측정 1 A 레인지 설정 |
OUTP ON | 출력 켜기(전원공급기 등) |
5. Python(PyVISA) 예제
가장 널리 쓰이는 조합이 Python + PyVISA입니다. LAN으로 연결한 멀티미터로 전압을 읽는 최소 예제입니다.
6. 자주 하는 실수
- 종단 문자 · 일부 장비는 명령 끝에 개행(\n)이 필요합니다.
- 타임아웃 · 느린 측정은 timeout을 늘려야 응답을 받습니다.
- 동기화 누락 · 측정 완료 전에 값을 읽으면 오류 →
*OPC?로 완료를 기다립니다. - 레인지·트리거 미설정 · 자동 레인지·트리거 모드를 명시하면 안정적입니다.
7. 어디에 쓰나
양산 검사 라인의 자동 합부 판정, R&D의 장시간 데이터 로깅, 다채널 전력·효율 동시 측정, 환경챔버 연동 신뢰성 시험 등에 활용됩니다.
자주 묻는 질문
프로그래밍을 몰라도 자동화할 수 있나요?
제조사 자동화 소프트웨어(BenchVue 등)로 코딩 없이 기본 자동화가 가능합니다. 더 유연한 제어가 필요하면 Python(PyVISA)을 권장합니다.
브랜드가 다르면 명령도 완전히 다른가요?
공통 명령(*IDN? 등)과 큰 틀은 비슷하지만, 세부 명령은 모델별로 다릅니다. 각 장비의 프로그래밍 매뉴얼을 참고하세요.
SCPI 교육도 받을 수 있나요?
네. X-NEO는 출연연·대학·기업 대상 한국어 SCPI 실습 교육(1~3일 과정)을 제공합니다.
오래된 GPIB 장비도 자동화되나요?
USB-GPIB 또는 LAN-GPIB 게이트웨이를 사용하면 기존 GPIB 장비도 동일하게 제어할 수 있습니다.