c# modbus tcp读取数据
时间: 2023-11-29 07:06:12 浏览: 51
以下是使用C#编写的Modbus TCP连接PLC寄存器读取数据的示例代码:
```csharp
using System;
using System.Net;
using EasyModbus;
namespace ModbusTCP
{
class Program
{
static void Main(string[] args)
{
IPAddress address = new IPAddress(new byte[] { 192, 168, 1, 1 }); // PLC的IP地址
using (TcpClient client = new TcpClient(address.ToString(), 502))
{
ModbusClient modbusClient = new ModbusClient(client);
modbusClient.Connect(); // 连接PLC
int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(0, 10); // 读取PLC寄存器的值
foreach (int value in readHoldingRegisters)
{
Console.WriteLine(value);
}
modbusClient.Disconnect(); // 断开连接
}
}
}
}
```
该示例代码使用了EasyModbus库,该库提供了一组易于使用的API,用于与Modbus TCP设备通信。在示例代码中,我们首先创建了一个IPAddress对象,该对象包含PLC的IP地址。然后,我们使用TcpClient类创建一个TCP连接,并将其传递给ModbusClient类的构造函数。接下来,我们使用Connect()方法连接到PLC,并使用ReadHoldingRegisters()方法读取PLC寄存器的值。最后,我们使用Disconnect()方法断开连接。