以下是一个基本的 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 中,可以使用以下步骤添加该库:

  1. 打开“工具”菜单
  2. 选择“NuGet 包管理器”
  3. 选择“包管理器控制台”
  4. 在控制台中输入“Install-Package ModbusTCP”并按 Enter

此示例读取从 Modbus 设备的指定地址开始的指定数量的保持寄存器数据,并在控制台中显示这些数据。请注意,此示例仅适用于保持寄存器,如果需要读取其他类型的 Modbus 数据,则需要使用适当的功能码。此外,如果需要写入 Modbus 数据,则需要使用相应的写入功能码。

C# Modbus TCP 连接示例 - 完整指南

原文地址: https://www.cveoy.top/t/topic/lEjN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录