要使用C#编写ModbusRTU客户端程序,可以使用第三方库或者自己实现ModbusRTU通信协议。以下是一个简单的示例代码,使用第三方库NModbus:
using System;
using Modbus.Device;
using System.IO.Ports;
namespace ModbusRTUClient
{
class Program
{
static void Main(string[] args)
{
using (SerialPort port = new SerialPort("COM1"))
{
port.BaudRate = 9600;
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.Open();
using (ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port))
{
master.Transport.ReadTimeout = 1000;
master.Transport.WriteTimeout = 1000;
// 读取保持寄存器的值
ushort startAddress = 0;
ushort numRegisters = 1;
ushort[] registers = master.ReadHoldingRegisters(1, startAddress, numRegisters);
foreach (ushort reg in registers)
{
Console.WriteLine("Register Value: " + reg);
}
}
}
}
}
}
在这个示例中,我们创建了一个SerialPort对象来打开串口通信,然后使用ModbusSerialMaster类来创建ModbusRTU主机。我们可以使用ReadHoldingRegisters方法来读取保持寄存器的值。记得在项目中引入NModbus库。