要使用C#編寫ModbusRTU客戶端程序,可以使用第三方庫或者自己實現(xiàn)ModbusRTU通信協(xié)議。以下是一個簡單的示例代碼,使用第三方庫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);
}
}
}
}
}
}
在這個示例中,我們創(chuàng)建了一個SerialPort對象來打開串口通信,然后使用ModbusSerialMaster類來創(chuàng)建ModbusRTU主機。我們可以使用ReadHoldingRegisters方法來讀取保持寄存器的值。記得在項目中引入NModbus庫。