温馨提示×

如何使用C#编写ModbusRTU客户端程序

c#
小樊
120
2024-08-13 08:33:40
栏目: 编程语言

要使用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库。

0