c#modbus tcp案例
时间: 2023-07-29 19:14:13 浏览: 207
当然可以!这里是一个简单的C# Modbus TCP的案例:
```csharp
using System;
using System.Net.Sockets;
using System.Threading;
using System.Net;
namespace ModbusTCPExample
{
class Program
{
static void Main(string[] args)
{
// Modbus TCP服务器的IP地址和端口号
string ipAddress = "127.0.0.1";
int port = 502;
// 创建TCP客户端
TcpClient client = new TcpClient();
try
{
// 连接到Modbus TCP服务器
client.Connect(ipAddress, port);
// 获取网络流
NetworkStream stream = client.GetStream();
// 创建读取请求
byte[] request = new byte[12] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01 };
// 发送读取请求
stream.Write(request, 0, request.Length);
// 读取响应
byte[] response = new byte[1024];
int bytesRead = stream.Read(response, 0, response.Length);
// 处理响应数据
if (bytesRead > 9)
{
ushort value = BitConverter.ToUInt16(response, 9);
Console.WriteLine("Read value: " + value);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
// 关闭TCP连接
client.Close();
}
Console.ReadLine();
}
}
}
```
这个案例使用了C#的TcpClient类来创建一个Modbus TCP客户端,然后连接到指定的Modbus TCP服务器。它发送一个读取请求,并接收服务器的响应,最后打印读取的值。请注意,这只是一个简单的示例,实际应用可能需要进行更多的错误处理和数据解析。
阅读全文