在C#中實現Modbus TCP通信可以借助現有的Modbus TCP類庫,例如NModbus庫或EasyModbus庫。這些庫提供了封裝好的Modbus TCP通信功能,可以方便地在C#程序中進行調用。
以下是一個簡單的示例代碼,演示如何使用NModbus庫實現Modbus TCP通信:
using System;
using System.Net;
using Modbus.Device;
using System.Net.Sockets;
class Program
{
static void Main()
{
// 創建Modbus TCP主站
TcpClient client = new TcpClient("192.168.1.1", 502);
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
// 讀取保持寄存器的值
ushort startAddress = 0;
ushort numRegisters = 1;
ushort[] registers = master.ReadHoldingRegisters(startAddress, numRegisters);
// 輸出讀取到的寄存器值
foreach (var reg in registers)
{
Console.WriteLine(reg);
}
// 關閉TCP連接
client.Close();
}
}
在這個示例中,我們首先創建了一個Modbus TCP主站對象,并連接到設備的IP地址和端口。然后使用主站對象的ReadHoldingRegisters方法讀取指定地址的保持寄存器的值,并將結果輸出到控制臺。最后關閉TCP連接。
需要注意的是,實際使用時需要根據實際的設備IP地址、寄存器地址等進行調整。另外,還可以根據需要實現寫寄存器、讀輸入寄存器等其他Modbus TCP通信功能。