阅读量:0
在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通信功能。