Keithley 계측기 TCP 통신: C#을 활용한 제어 가이드

Keithley 계측기는 정밀한 전류, 전압 측정을 지원하는 장비로, LAN을 통한 TCP/IP 통신으로 원격 제어가 가능합니다. 본 글에서는 C#으로 Keithley 장비에 SCPI 명령어를 전송하고 응답을 받는 기본 통신 구조를 소개합니다.


1. Keithley TCP 통신 기본 개념

  • 장비는 TCP 서버 역할, PC는 클라이언트
  • 기본 포트는 5025
  • 통신 방식은 소켓 기반, 명령어는 SCPI (IEEE488.2) 사용

2. 장비 설정 확인 사항

  1. 장비의 IP 주소 확인 (고정 IP 또는 DHCP)
  2. 포트 번호: 기본은 5025, 다르면 설정 메뉴에서 변경 가능
  3. Ping 테스트로 네트워크 연결 확인
  4. 방화벽에서 포트가 열려 있는지 확인

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#으로 제어하면 안정적인 자동화 환경을 구현할 수 있습니다. 소켓 구조와 명령 프로토콜만 정확히 이해하면 고급 제어도 충분히 가능합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다