c#写入modbustcp
时间: 2024-12-22 08:18:25 浏览: 18
在C#中,如果你需要通过Modbus TCP协议向设备发送数据或读取数据,你可以使用第三方库,如NModbus、ModbusMaster等,它们提供了方便的API支持。
首先,你需要安装相应的NuGet包,例如安装NModbus的命令是:
```shell
Install-Package NModbus
```
然后,创建一个ModbusTcpClient实例,并设置IP地址和端口号:
```csharp
using NModbus;
...
string host = "192.168.1.100"; // 设备IP地址
int port = 502; // Modbus默认TCP端口
ModbusTcpClient client = new ModbusTcpClient();
client.Connect(host, port);
```
接下来,你可以使用`WriteSingleRegister`、`WriteMultipleRegisters`或`Write holding registers`方法发送请求到远程设备的寄存器,示例:
```csharp
ushort slaveId = 1; // 设备标识符
ushort startAddress = 1000; // 数据起始位置
byte[] data = { 0x01, 0x02, 0x03 }; // 需要写入的数据
// 写单个寄存器
ushort registerValue = client.WriteSingleRegister(slaveId, startAddress, data[0]);
// 写多个寄存器
client.WriteMultipleRegisters(slaveId, startAddress, data);
// 写保持寄存器 (通常用于读取)
ushort[] readValues = client.ReadHoldingRegisters(slaveId, startAddress, data.Length);
```
记得处理异常并关闭连接:
```csharp
try
{
// 发送请求
}
catch (ModbusException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
client.Close();
}
```
阅读全文