在C#中編寫Modbus協議可以使用第三方庫或者自己實現Modbus協議。以下是一個簡單示例,演示如何使用Modbus庫來實現Modbus協議:
Install-Package NModbus
using Modbus.Device;
using System;
using System.IO.Ports;
class Program
{
static void Main(string[] args)
{
using (SerialPort port = new SerialPort("COM1"))
{
port.BaudRate = 9600;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Open();
using (ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port))
{
master.Transport.ReadTimeout = 1000;
byte slaveId = 1;
ushort startAddress = 0;
ushort numRegisters = 1;
ushort[] registers = master.ReadHoldingRegisters(slaveId, startAddress, numRegisters);
Console.WriteLine($"Register value: {registers[0]}");
}
}
}
}
在這個示例中,我們創建了一個Modbus串行主機,并使用COM1端口與Modbus從機通信。我們讀取從機的保持寄存器的值,并將其打印到控制臺。
以上是一個簡單的示例,用于演示如何在C#中使用Modbus庫編寫Modbus協議。您可以根據自己的需求擴展和修改這個示例,以實現更復雜的Modbus通信功能。