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

从.NET Framework迁移至.NET 6.0后nModbus4库出现C#编译错误

解决nModbus4中ModbusSerialMaster.CreateRtu参数不匹配的问题

问题根源

你安装的NSModbus4 4.0.2版本存在API定义错误,导致ModbusSerialMaster.CreateRtu方法错误要求传入TcpClient,而非文档指定的SerialPort对象。

解决方案

  • 卸载错误的NuGet包:打开VS2022的NuGet包管理器,找到已安装的NSModbus4 (4.0.2),点击卸载并清理项目。
  • 安装正确的包版本:
    • 若坚持使用NSModbus系列,尝试安装3.x版本(该版本的CreateRtu方法参数符合文档规范,接收SerialPort);
    • 或者切换到官方的nModbus包(注意包名无NS前缀),其API设计更稳定,ModbusSerialMaster.CreateRtu默认接收SerialPort参数。
  • 修正代码示例:
    using System.IO.Ports;
    using Modbus.Serial;
    
    // 初始化串口
    var serialPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
    serialPort.Open();
    
    // 创建RTU主站实例
    var rtuMaster = ModbusSerialMaster.CreateRtu(serialPort);
    
  • 核对版本与文档:确保你参考的库文档与实际安装的包版本一致,避免因版本迭代导致的API不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:14:57