# s618bms **Repository Path**: mao-jicheng/s618bms ## Basic Information - **Project Name**: s618bms - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设备控制上位机 - Device Control 基于 `DeviceOperate.dll` 的 C# 上位机程序,用于控制设备的电压、电流输出。 --- ## 📁 项目结构 ``` DeviceControl/ ├── DeviceControl.csproj # 项目文件 ├── Program.cs # 程序入口 ├── MainForm.cs # 主窗体(UI) ├── DeviceDll.cs # DLL P/Invoke 封装 ├── DeviceOperate.dll # 设备动态库(需要复制到这里) └── README.md # 说明文档 ``` --- ## 🚀 快速开始 ### 1. 环境要求 - Windows 10/11 - .NET 6.0 SDK 或更高版本 - DeviceOperate.dll(已放在 workspace 根目录) ### 2. 复制 DLL 将 `DeviceOperate.dll` 复制到 `DeviceControl/` 目录下: ```bash # 在 Windows 上执行 copy ..\DeviceOperate.dll DeviceControl\ ``` ### 3. 编译运行 ```bash cd DeviceControl # 编译 dotnet build # 运行 dotnet run ``` 或者直接双击 `DeviceControl.csproj` 在 Visual Studio 中打开。 --- ## 🎛️ 功能说明 ### 连接设备 1. 选择串口号(COM1-COM8) 2. 选择波特率(默认 115200) 3. 选择设备地址(1-16) 4. 点击"连接设备" ### 设置输出 - **电压范围:** 0-100V - **电流范围:** 0-20A - **温度设置:** 0-100°C(*注:温度控制需确认 DLL 是否支持*) ### 读取输出 点击"读取输出"按钮,实时查看当前电压和电流值。 --- ## 📋 DLL 函数说明 ### 初始化函数 | 函数 | 说明 | 参数 | 返回值 | |------|------|------|--------| | `InitDeviceDll()` | 初始化 DLL | 无 | 0=成功 | | `InitCom(port, baud)` | 初始化串口 | 串口号,波特率 | 0=成功 | | `ReleaseCom()` | 释放资源 | 无 | 无 | ### 电压/电流控制 | 函数 | 说明 | 参数 | 返回值 | |------|------|------|--------| | `SetVirtualBatteryVoltage(v)` | 设置电压 | voltage (V) | 0=成功 | | `SetVirtualBatteryVoltageAndCurrent(v, c)` | 设置电压 + 电流 | voltage, current | 0=成功 | | `SetVirtualBatteryCurrentLevel(level)` | 设置电流档位 | level | 0=成功 | | `GetVirtualBatteryVoltAndCurrent(out v, out c)` | 读取电压电流 | out voltage, out current | 0=成功 | ### 设备连接 | 函数 | 说明 | 参数 | 返回值 | |------|------|------|--------| | `ConnectToVirtualBatteryBox(addr)` | 连接虚拟电池箱 | 设备地址 | 0=成功 | | `ConnectToCurrentSource(addr)` | 连接电源 | 设备地址 | 0=成功 | | `CloseVirtualBattery()` | 关闭虚拟电池 | 无 | 无 | | `CloseCurrentSource()` | 关闭电源 | 无 | 无 | --- ## ⚠️ 注意事项 1. **温度控制:** 当前 DLL 函数中没有直接的温度控制接口。如果设备支持温度控制,可能需要: - 通过电压/电流间接控制 - 或者 DLL 有未导出的内部函数 - 请确认设备的具体型号和协议 2. **串口占用:** 关闭程序前请确保点击"断开连接",否则串口可能被占用 3. **错误处理:** 所有函数返回 0 表示成功,非 0 表示失败(具体错误码需参考设备文档) --- ## 🔧 扩展开发 如果需要添加更多功能,可以参考 `DeviceDll.cs` 中的 P/Invoke 声明,添加其他 DLL 导出函数: ```csharp [DllImport("DeviceOperate.dll", CallingConvention = CallingConvention.StdCall)] public static extern int YourFunctionName(int param1, double param2); ``` --- ## 📞 问题排查 1. **连接失败:** 检查串口是否被占用,设备是否开机 2. **DLL 加载失败:** 确保 `DeviceOperate.dll` 在输出目录 3. **读取数据异常:** 检查设备地址是否正确,通信线是否接好 --- **开发时间:** 2026-03-18 **开发语言:** C# / .NET 6 / WinForms