C# Modbus 通讯

前言

Modbus通讯是最常用的硬件通讯协调,我PLC接触的不多。Modbus保证了简单又高效的数据传输。

Modbus协议简单介绍

Modbus简单介绍

Modbus Poll和Modbus Slave 软件下载:必须下载

NModbus

一般带N开头的都是.NET平台移植版本。比如NLog,Log4Net。

NModbus Github仓库地址

NModbus使用

一般这种GitHub小项目都是没有详细的github项目介绍,都是以Demo的形式给你的。对于编程能力不强,英语能力不强的同学来说有点困难。

NModbus 官方文档,只是单纯列了一些函数

NModbus Demo

NModbus Simple

简单使用

注意:一定要先把Modbus Poll和Modbus Slave软件用明白。再去调试C# 程序。

这里以Modbus TCP 为例

  static void Main(string[] args)
  {
    
    
      Task.Run(ReadModbusTcp) ;
      Console.WriteLine("运行完毕");
      Console.ReadKey();
  }

//简单的Task任务
     public async static Task ReadModbusTcp()
   {
    
    
       using (TcpClient client = new TcpClient("127.0.0.1", 502))
       {
    
    
           Console.WriteLine("启动Tcp连接");
           var factory = new ModbusFactory();
           IModbusMaster master = factory.CreateMaster(client);
           master.Transport.ReadTimeout = 2000;
           master.Transport.Retries = 10;

           // 从地址0开始,读取10个数据。
           ushort startAddress = 0;
           ushort numInputs = 10;
           while (true)
           {
    
    
               var inputs = master.ReadInputRegisters(1, startAddress, numInputs);

               for (int i = 0; i < numInputs; i++)
               {
    
    
                   Console.WriteLine($"Input {
      
      ( startAddress + i )}={
      
      ( inputs[i] )}");
               }
               await Task.Delay(1000);
           }
           
       }

   }

猜你喜欢

转载自blog.csdn.net/qq_44695769/article/details/133344582