You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#在Visual Studio中远程控制Aim-TTi CPX400DP电源?

Aim-TTi CPX400DP 电源C#远程控制实现方案

一、核心原理说明

Aim-TTi CPX400DP支持SCPI标准指令集,通过USB转串口(COM口)完成通信,无需依赖NiMax工具,直接用C#自带的串口类即可实现数据收发。

二、C#实现步骤

1. 串口参数配置

根据电源手册,固定参数如下:

  • 波特率:9600
  • 数据位:8
  • 停止位:1
  • 奇偶校验:无
  • 流控制:无

2. 完整代码示例

使用System.IO.Ports.SerialPort类完成通信,以下是可直接测试的基础控制代码:

using System;
using System.IO.Ports;

public class CPX400DPController
{
    private readonly SerialPort _serialPort;

    public CPX400DPController(string portName)
    {
        _serialPort = new SerialPort(
            portName, 
            9600, 
            Parity.None, 
            8, 
            StopBits.One
        );
        _serialPort.ReadTimeout = 1000;
        _serialPort.WriteTimeout = 1000;
    }

    // 建立串口连接并验证设备
    public void Connect()
    {
        if (!_serialPort.IsOpen)
        {
            _serialPort.Open();
            string deviceId = SendCommand("*IDN?");
            Console.WriteLine($"设备识别:{deviceId}");
        }
    }

    // 发送SCPI指令并获取返回值
    public string SendCommand(string command)
    {
        if (!_serialPort.IsOpen)
            throw new InvalidOperationException("串口未连接");
        
        _serialPort.WriteLine($"{command}\r\n");
        return _serialPort.ReadLine().Trim();
    }

    // 设置输出电压
    public void SetVoltage(double voltage) => SendCommand($"VOLT {voltage:F2}");

    // 设置输出电流
    public void SetCurrent(double current) => SendCommand($"CURR {current:F3}");

    // 开启输出
    public void EnableOutput() => SendCommand("OUTP ON");

    // 关闭输出
    public void DisableOutput() => SendCommand("OUTP OFF");

    // 断开串口连接
    public void Disconnect()
    {
        if (_serialPort.IsOpen)
            _serialPort.Close();
    }
}

// 测试用例
class Program
{
    static void Main()
    {
        var controller = new CPX400DPController("COM4");
        try
        {
            controller.Connect();
            controller.SetVoltage(5.0);
            controller.SetCurrent(1.0);
            controller.EnableOutput();
            Console.WriteLine("电源输出已开启");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"通信异常:{ex.Message}");
        }
        finally
        {
            controller.Disconnect();
        }
    }
}

3. 关键注意事项

  • 确保电源USB驱动已正确安装,设备管理器中能正常识别出COM4(无黄色感叹号)
  • 运行代码前关闭所有占用该COM口的程序(包括NiMax)
  • SCPI指令需以\r\n结尾,否则设备可能无法识别
  • 更多指令可参考电源官方手册,核心指令与多数SCPI兼容设备一致

三、NiMax问题说明

NiMax仅用于NI自有设备的配置,Aim-TTi的USB转串口设备属于系统标准串口设备,无需通过NiMax配置,因此面板中无操作选项是正常现象,直接使用系统串口即可。

内容的提问来源于stack exchange,提问作者St3althPatchin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:40:33