在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库。