Keithley 계측기는 정밀한 전류, 전압 측정을 지원하는 장비로, LAN을 통한 TCP/IP 통신으로 원격 제어가 가능합니다. 본 글에서는 C#으로 Keithley 장비에 SCPI 명령어를 전송하고 응답을 받는 기본 통신 구조를 소개합니다.
1. Keithley TCP 통신 기본 개념
- 장비는 TCP 서버 역할, PC는 클라이언트
- 기본 포트는
5025 - 통신 방식은 소켓 기반, 명령어는 SCPI (IEEE488.2) 사용
2. 장비 설정 확인 사항
- 장비의 IP 주소 확인 (고정 IP 또는 DHCP)
- 포트 번호: 기본은
5025, 다르면 설정 메뉴에서 변경 가능 - Ping 테스트로 네트워크 연결 확인
- 방화벽에서 포트가 열려 있는지 확인
3. C# 예제: TCP 클라이언트로 SCPI 명령어 전송
csharp복사편집using System;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
string ip = "192.168.0.10"; // Keithley 장비 IP
int port = 5025;
try
{
using (TcpClient client = new TcpClient(ip, port))
using (NetworkStream stream = client.GetStream())
{
// 명령어 전송 (*IDN?은 장비 정보 요청 명령)
string command = "*IDN?\\n";
byte[] buffer = Encoding.ASCII.GetBytes(command);
stream.Write(buffer, 0, buffer.Length);
// 응답 수신
byte[] readBuffer = new byte[1024];
int bytesRead = stream.Read(readBuffer, 0, readBuffer.Length);
string response = Encoding.ASCII.GetString(readBuffer, 0, bytesRead);
Console.WriteLine(\"장비 응답: \" + response);
}
}
catch (Exception ex)
{
Console.WriteLine(\"통신 오류: \" + ex.Message);
}
}
}
4. 도메인 주소 사용하기 (유동 IP 대응)
장비의 IP가 유동적인 환경에서는 DDNS 또는 고정 도메인을 사용하는 것이 유리합니다.
csharp복사편집string ip = \"mykeithley.ddns.net\"; // 도메인 주소로 변경
이렇게 하면 IP 변경 시에도 DNS 조회로 자동 연결되므로 유지 관리가 훨씬 쉬워집니다.
5. 자주 사용하는 SCPI 명령어 예시
| 명령어 | 설명 |
|---|---|
*IDN? | 장비 정보 확인 |
MEAS:VOLT? | 전압 측정값 요청 |
SYST:ERR? | 시스템 에러 조회 |
*RST | 장비 리셋 |
6. 실무 활용 예
- 자동 테스트 시스템 구축
- 측정값을 주기적으로 로깅
- Windows UI와 연동하여 실시간 모니터링
Keithley와 TCP 통신을 C#으로 제어하면 안정적인 자동화 환경을 구현할 수 있습니다. 소켓 구조와 명령 프로토콜만 정확히 이해하면 고급 제어도 충분히 가능합니다.