首先Modbus slave配置如下:
![](https://img-blog.csdnimg.cn/c064a8920ed841d997a6cab4d7c5e5f4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oCd5rW3OTk5,size_17,color_FFFFFF,t_70,g_se,x_16)
?
![](https://img-blog.csdnimg.cn/35598cea53b94ea291ff0790c8d4c6f6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oCd5rW3OTk5,size_16,color_FFFFFF,t_70,g_se,x_16) ![](https://img-blog.csdnimg.cn/1b7bc3b080bc4f6d90109b4dc1aaa777.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oCd5rW3OTk5,size_20,color_FFFFFF,t_70,g_se,x_16)
?
?
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using Modbus.Device;
namespace ConsoleApp1 { ? ? class Program ? ? { ? ? ? ? static void Main(string[] args) ? ? ? ? { ? ? ? ? ? ? IPAddress address = new IPAddress(new byte[] { 127, 0, 0, 1 }); ? ? ? ? ? ? using (TcpClient clinet = new TcpClient(address.ToString(), 502)) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? clinet.SendTimeout = 1; ? ? ? ? ? ? ? ? ModbusIpMaster master = ModbusIpMaster.CreateIp(clinet);
? ? ? ? ? ? ? ? ushort startAddress = 0; ? ? ? ? ? ? ? ? ushort numInputs = 10; ? ? ? ? ? ? ? ? ushort[] inputs = master.ReadInputRegisters(1, startAddress, numInputs);
? ? ? ? ? ? ? ? for (int i = 0; i < numInputs; i++) ? ? ? ? ? ? ? ? ? ? Console.WriteLine($"Registers {(startAddress + i)}={(inputs[i])}");
? ? ? ? ? ? } ? ? ? ? } ? ? } } ?
运行结果如下:
![](https://img-blog.csdnimg.cn/345f35154a8e4fe18c4a9a7b0b42bafd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oCd5rW3OTk5,size_11,color_FFFFFF,t_70,g_se,x_16)
?
|