Comunicación Modbus C#

Prefacio

La comunicación Modbus es la coordinación de comunicación de hardware más utilizada y no tengo mucho contacto con el PLC. Modbus garantiza una transmisión de datos sencilla y eficiente.

Una breve introducción al protocolo Modbus

Una breve introducción a Modbus

Descarga del software Modbus Poll y Modbus Slave: debe descargarse

NModbus

Generalmente, las que comienzan con N son versiones portadas de la plataforma .NET. Como NLog, Log4Net.

Dirección del almacén de NModbus Github

Uso de Modbus

Generalmente, este tipo de pequeño proyecto de GitHub no tiene una introducción detallada al proyecto de GitHub y se le proporciona en forma de demostración. Es un poco difícil para los estudiantes que no tienen conocimientos de programación ni de inglés.

La documentación oficial de NModbus simplemente enumera algunas funciones.

Demostración de NModbus

NModbus simple

Fácil de usar

Nota: asegúrese de comprender primero el software Modbus Poll y Modbus Slave. Depuremos el programa C# nuevamente.

Aquí tomamos Modbus TCP como ejemplo.

  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);
           }
           
       }

   }

Supongo que te gusta

Origin blog.csdn.net/qq_44695769/article/details/133344582
Recomendado
Clasificación