C# Modbus库推荐:轻松实现Modbus通信的利器

本文介绍了在C#中用于工业自动化通信的三个Modbus库:NModbus(支持多种协议),EasyModbusTCP.NET(专用于TCP/UDP/RTU)和IoTClient(跨平台).NModbus4已停止更新,而EasyModbusTCP.NET便于PLC数据交换.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

本文简介

C# Modbus库推荐

1、NModbus

NModbus与NModbus4的区别

源码地址

2、EasyModbusTCP.NET

支持的功能代码

源码地址

3、IoTClient


本文简介

Modbus是一种流行的工业通信协议,广泛应用于工业自动化领域。在C#中,有许多Modbus库可供选择,这些库提供了方便的API和丰富的功能,使Modbus通信变得更加简单和高效。本文将推荐几个优秀的C# Modbus库,以帮助轻松实现Modbus通信。

图片

C# Modbus库推荐

1、NModbus

NModbus是一个开源的C# Modbus库,具有丰富的功能和良好的性能。它是Modbus协议的c#实现。提供连接到Modbus从兼容设备和应用程序。支持串行ASCII、串行RTU、TCP和UDP协议,提供了读写寄存器、读写离散输入、读写线圈等常用功能。NModbus4项目已经封档不更新。此项目是NModbus4的一个分支。

NModbus与NModbus4的区别

  • Modbus从设备现在添加到由IModbusSlaveInstance表示的网络中。

  • 更多地使用接口

  • 自定义函数代码处理程序可以添加到从设备。

源码地址

https://github.com/NModbus/NModbus

2、EasyModbusTCP.NET

EasyModbusTCP.NET是一个Modbus TCP、Modbus UDP 和 Modbus RTU 客户端/服务器库,用于 .NET 行业认证!从 PC 或嵌入式系统快速安全地访问许多 PLC 系统和其他用于工业自动化的组件。只需几行代码即可在 PLC 中读取或写入数据。

支持的功能代码

  • 读取线圈 (FC1)

  • 读取离散输入 (FC2)

  • 读取保持寄存器 (FC3)

  • 读取输入寄存器 (FC4)

  • 写入单线圈 (FC5)

  • 写入单寄存器 (FC6)

  • 写入多个线圈 (FC15)

  • 写入多个寄存器 (FC16)

  • 读/写多个寄存器 (FC23)

源码地址

https://github.com/rossmann-engineering/EasyModbusTCP.NET

3、IoTClient

也是一款支持modbus协议的组件,本组件基于.NET Standard 2.0,可用于.Net的跨平台开发,如Windows、Linux甚至可运行于树莓派上。由于之前的文章已经介绍过它,本文不再阐述。

/// /// 读保持寄存器03 /// /// 数据读取延迟 /// 设备从站地址 /// 数据起始地址 /// 寄存器数量 /// 返回的寄存器数值 /// 返回异常描述 /// 是否读取成功 public bool ReadHoldReg(int timeout, byte slaveAddress, ushort startAddress, ushort regCountIn, out ushort[] holdRegs, out ModbusException ex) /// /// 读输入寄存器04 /// /// 数据读取延迟 /// 设备从站地址 /// 数据地址 /// 寄存器数量 /// 返回的寄存器数值 /// 返回异常描述 /// 是否读取成功 public bool ReadInputReg(int timeout, byte slaveAddress, ushort startAddress, ushort regCountIn, out ushort[] InputRegs, out ModbusException ex) /// /// 写单寄存器(06功能码) /// /// 数据读取延迟 /// 设备从站地址 /// 寄存器地址 /// 寄存器值 /// 返回异常描述 /// 是否写入成功 public bool WriteSingleReg(int timeout, byte slaveAddress, ushort regAdr, ushort regValue, out ModbusException ex) /// /// 写单个线圈(05功能码) /// /// 数据读取延迟 /// 设备从站地址 /// 寄存器地址 /// 寄存器值 /// 返回异常描述 /// 是否写入成功 public bool WriteSingleCoil(int timeout, byte slaveAddress, ushort regAdr, ushort ONorOFF, out ModbusException ex) /// /// 写多寄存器(10功能码) /// /// 数据读取延迟 /// 设备从站地址 /// 寄存器起始地址 /// 寄存器值 /// 返回异常描述 /// 是否写入成功 public bool WriteMutilReg(int timeout, byte slaveAddress, ushort regAdr, ushort[] regValue, out ModbusException ex) ....................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值