在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参考来了解更多操作方法。