C#中ModbusTCP异步通讯的实现

   2024-10-06 6900
核心提示:在C#中实现ModbusTCP异步通讯,可以使用第三方库如NModbus。以下是一个简单的示例代码:using System;using System.Net;using Sy

在C#中实现ModbusTCP异步通讯,可以使用第三方库如NModbus。以下是一个简单的示例代码:

using System;using System.Net;using System.Net.Sockets;using NModbus;using NModbus.IO;using NModbus.Serial;using NModbus.Utility;namespace ModbusTCPExample{    class Program    {        static async Task Main(string[] args)        {            using (var client = new TcpClient("127.0.0.1", 502))            {                var factory = new ModbusFactory();                var master = factory.CreateMaster(client);                // 读取保持寄存器的值                ushort startAddress = 0;                ushort numRegisters = 5;                ushort[] registers = await master.ReadHoldingRegistersAsync(1, startAddress, numRegisters);                Console.WriteLine("Read result:");                for (int i = 0; i < registers.Length; i++)                {                    Console.WriteLine($"Register {startAddress + i}: {registers[i]}");                }                // 写入保持寄存器的值                ushort[] values = new ushort[] { 10, 20, 30, 40, 50 };                await master.WriteMultipleRegistersAsync(1, startAddress, values);                Console.WriteLine("Write successful");            }        }    }}

在上面的示例中,我们使用NModbus库创建了一个ModbusTCP主站,并使用了异步方法来读取和写入保持寄存器的值。需要注意的是,在实际使用中,需要根据具体的设备和寄存器地址来调整代码。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号