溫馨提示×

如何使用C#編寫ModbusRTU客戶端程序

c#
小樊
176
2024-08-13 08:33:40
欄目: 編程語言

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

0