modbus rtu c#代码
时间: 2024-10-13 09:01:45 浏览: 41
Modbus RTU是一种串行通信协议,常用于工业自动化设备间的通信。在C#中编写Modbus RTU通信代码,通常需要利用一些第三方库,如NModbus或Serious Modbus等。
以下是一个简单的示例,展示如何使用NModbus库进行Modbus RTU读取输入寄存器:
```csharp
using NModbus;
using NModbus.IO;
// 创建串口实例
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
// 初始化Modbus RTU传输
ModbusRtuMaster master = new ModbusRtuMaster(serialPort);
try
{
// 设置地址和寄存器数量
ushort slaveId = 1; // 设备地址
int numberOfRegisters = 10; // 需要读取的寄存器数
// 执行读取操作
byte[] inputRegisters = master.ReadInput_registers(slaveId, 0, numberOfRegisters);
// 输出读取的数据
for (int i = 0; i < inputRegisters.Length; i++)
{
Console.WriteLine($"Register {i}: {inputRegisters[i]}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
// 关闭资源
serialPort.Close();
master.Dispose();
}
```
阅读全文