在C#中進行Modbus TCP數據包的發送和接收,通常需要使用第三方庫來幫助實現Modbus TCP通訊協議。一個常用的庫是NModbus,它提供了豐富的API來進行Modbus TCP通訊。
以下是一個簡單的示例代碼,演示如何使用NModbus庫來發送Modbus TCP數據包并接收響應:
using System;
using Modbus.Device;
using System.Net.Sockets;
class Program
{
static void Main()
{
// 創建TCP客戶端
TcpClient client = new TcpClient("127.0.0.1", 502);
// 創建Modbus TCP Master
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
// 讀取保持寄存器
ushort startAddress = 0;
ushort numRegisters = 1;
ushort[] registers = master.ReadHoldingRegisters(1, startAddress, numRegisters);
// 打印讀取到的數據
foreach (ushort reg in registers)
{
Console.WriteLine("Register Value: " + reg);
}
// 關閉TCP連接
client.Close();
}
}
在上面的示例中,我們首先創建了一個TCP客戶端并連接到Modbus TCP服務器。然后創建了一個Modbus TCP Master實例,并使用ReadHoldingRegisters
方法讀取保持寄存器中的數據。最后打印讀取到的數據,并關閉TCP連接。
需要注意的是,上述示例僅演示了讀取保持寄存器的操作,如果需要執行其它Modbus操作,可以查看NModbus庫的文檔或API參考來了解更多操作方法。