C# Modbus TCP 连接示例 - 完整指南
以下是一个基本的 C# Modbus TCP 连接示例,使用 ModbusTCP 库来读取 Modbus 设备的保持寄存器数据。
using System;
using System.Net.Sockets;
using System.Threading;
namespace ModbusTCPExample
{
class Program
{
static void Main(string[] args)
{
// 定义要连接的 Modbus TCP/IP 端点
string ipAddress = '192.168.0.100'; // 替换为您的设备的 IP 地址
int port = 502; // Modbus TCP/IP 默认端口
// 创建与 Modbus 设备的 TCP/IP 套接字连接
TcpClient client = new TcpClient(ipAddress, port);
// 创建一个 Modbus TCP/IP 主站与设备通信
Modbus.Device.ModbusTcpMaster modbusMaster = Modbus.Device.ModbusTcpMaster.CreateTcp(client);
// 定义要读取的 Modbus 地址
ushort startAddress = 0; // 替换为数据的起始地址
ushort numRegisters = 10; // 替换为要读取的寄存器数量
// 从 Modbus 设备读取指定的寄存器数量
ushort[] data = modbusMaster.ReadHoldingRegisters(startAddress, numRegisters);
// 显示读取的数据
Console.WriteLine('Read data: ' + string.Join(', ', data));
// 关闭 TCP/IP 套接字连接
client.Close();
// 等待用户输入,然后退出
Console.WriteLine('Press any key to exit...');
Console.ReadKey();
}
}
}
此示例使用 ModbusTCP 库,该库可通过 NuGet 包管理器获得。在 Visual Studio 中,可以使用以下步骤添加该库:
- 打开“工具”菜单
- 选择“NuGet 包管理器”
- 选择“包管理器控制台”
- 在控制台中输入“Install-Package ModbusTCP”并按 Enter
此示例读取从 Modbus 设备的指定地址开始的指定数量的保持寄存器数据,并在控制台中显示这些数据。请注意,此示例仅适用于保持寄存器,如果需要读取其他类型的 Modbus 数据,则需要使用适当的功能码。此外,如果需要写入 Modbus 数据,则需要使用相应的写入功能码。
原文地址: https://www.cveoy.top/t/topic/lEjN 著作权归作者所有。请勿转载和采集!