温馨提示×

c# easymodbus有示例代码吗

c#
小樊
81
2024-11-22 00:45:48
栏目: 编程语言

当然,我可以为您提供一些C# EasyModbus的示例代码。以下是一个简单的示例,演示如何使用EasyModbus库连接到PLC并读取寄存器的值:

using System;
using System.Threading.Tasks;
using EasyModbus;

namespace EasyModbusExample
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // 创建一个ModbusClient实例,连接到PLC
            var client = new ModbusClient("192.168.1.100");
            client.Parity = Parity.None;
            client.DataBits = 8;
            client.StopBits = StopBits.One;
            client.BaudRate = BaudRate.Bps9600;

            // 设置连接超时时间
            client.ConnectionTimeout = 5000;

            // 尝试连接到PLC
            if (!await client.ConnectAsync())
            {
                Console.WriteLine("Failed to connect to PLC.");
                return;
            }

            // 读取PLC中地址为0x0001的寄存器的值
            var result = await client.ReadHoldingRegistersAsync(1, 0x0001);

            if (result.IsSuccess)
            {
                Console.WriteLine($"Value read from register: {result.Values[0]}");
            }
            else
            {
                Console.WriteLine("Failed to read register value.");
            }

            // 断开与PLC的连接
            await client.DisconnectAsync();
        }
    }
}

在这个示例中,我们首先创建了一个ModbusClient实例,并设置了连接参数,如IP地址、波特率等。然后,我们尝试连接到PLC,如果连接成功,我们将读取PLC中地址为0x0001的寄存器的值,并将其打印到控制台。最后,我们断开与PLC的连接。

请注意,您需要将示例代码中的IP地址替换为您自己的PLC的IP地址。此外,您还需要将示例代码中的寄存器地址替换为您要读取的寄存器的地址。

希望这个示例代码对您有所帮助!如果您有任何其他问题,请随时问我。

0