在C#中測試ModbusTCP通訊,可以使用Modbus庫來幫助實現通訊功能。以下是一個簡單的示例代碼,用于測試ModbusTCP通訊:
using Modbus.Device;
using System;
using System.Net.Sockets;
namespace ModbusTCPTest
{
class Program
{
static void Main(string[] args)
{
try
{
TcpClient tcpClient = new TcpClient("192.168.1.1", 502); // IP地址為Modbus TCP服務器地址,端口號為默認的Modbus TCP端口502
ModbusIpMaster master = ModbusIpMaster.CreateIp(tcpClient);
ushort startAddress = 0; // 寄存器起始地址
ushort numRegisters = 1; // 寄存器數量
ushort[] registers = master.ReadHoldingRegisters(startAddress, numRegisters); // 讀取保持寄存器
foreach (ushort reg in registers)
{
Console.WriteLine("Register Value: " + reg);
}
tcpClient.Close();
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
}
}
在此示例代碼中,我們首先創建了一個TcpClient對象,用于連接到Modbus TCP服務器。然后,我們使用ModbusIpMaster類來創建一個Modbus主站,通過調用ReadHoldingRegisters方法來讀取指定起始地址和數量的寄存器值。最后,我們關閉TcpClient連接,并在控制臺打印讀取到的寄存器值。
請注意,你需要將IP地址替換為你實際使用的Modbus TCP服務器地址,以及根據需要更改寄存器地址和數量。另外,確保在項目中引用了Modbus庫。