Seg√ļn altos est√°ndares industriales

Busca en nuestro Blog. Encontrar√°s m√ļltiples aplicaciones, soluciones, ejemplos de c√≥digo. Navega utilizando la nube de etiquetas o busca utilizando criterios espec√≠ficos

Conceptos b√°sicos sobre RS485 de un PLC industrial

Introducción de RS-485

RS-485, tambi√©n conocido como EIA-485, se define como un sistema de bus diferencial multipunto. El est√°ndar RS-485 es perfecto para transmitir datos a alta velocidad a rangos de hasta 12m. Una de sus caracter√≠sticas m√°s importantes es que el par trenzado de cables reduce el ruido inducido en la l√≠nea de transmisi√≥n. Se pueden conectar m√ļltiples receptores a dicha red en un bus lineal multipunto. Estas caracter√≠sticas hacen que RS-485 sea √ļtil en sistemas de control industrial y aplicaciones similares.

Nuestros PLC para automatizaci√≥n industrial tienen dentro del circuito integrado MAX485. Este es un transceptor de baja potencia utilizado para la comunicaci√≥n RS-485 que funciona con una sola fuente de alimentaci√≥n de 5V y la corriente promedio es de 300őľA. Usando la comunicaci√≥n Half Duplex para convertir el nivel TTL a nivel RS-485, puede alcanzar la velocidad m√°xima de transmisi√≥n de 2.5Mbps. Internamente podemos encontrar un transceptor Half Duplex MAX485 y tambi√©n un MAX485, de forma que, si estamos en Full Duplex, utilizar√° el Half Duplex MAX485 para recibir datos y el transmisor MAX485 los enviar√°.

Lectura previa

Te recomendamos leer las siguientes publicaciones para comprender el programa de este blog. Hemos usado las siguientes publicaciones de blog para hacer este ejemplo:

Requisitos para trabajar con RS-485

Para trabajar con el protocolo RS-485, necesitará cualquiera de nuestros controladores PLC industriales Arduino para automatización industrial:

Configuración de interruptores y jumpers

Tenemos 2 familias de PLCs: M-Duino and Ardbox.
 
RS-485 en M-Duino
En la¬†Familia M-Duino¬†siempre tendr√°s activado el RS-485 por defecto, por lo que no necesitar√°s activarlo con ning√ļn interruptor. √önicamente tienes que elegir entre Full Duplex y Half Duplex, usando el √ļltimo interruptor (FD / HD).
RS485 en M-Duino - Configuración de interruptores y jumpers 

RS-485 en Ardbox

Para la Familia Ardbox tenemos dos subfamilias. En este caso, tenemos que escoger entre RS-485 y RS-232 usando los interruptores y jumpers tal como mostramos en la siguiente imagen:

IMPORTANTE‚Ěó: LA CONFIGURACI√ďN DE LA COMUNICACI√ďN YA EST√Ā REALIZADA, SOLO NECESITAS ELEGIRLA AL COMPRAR EL DISPOSITIVO.


Ardbox Analog HF+ - RS232 HW configuración Ardbox Analog HF+ - RS485 HW configuración






    • Jumper zona 1: RSRS-232 SW / Q0.8 y Q0.9.

    • Jumper zona 2: RS-232 SW / Q0.8 y Q0.9.


Ardbox Relay HF+ - RS232 HW configuraciónArdbox Relay HF+ - RS485 HW configuración

    • Jumper zona 1: RS-485 FD / A0.0 y A0.1.

    • Jumper zona 2: RS-232 SW / I0.2 y I0.3.

    • Jumper zona 3: RS-232 / RS-485.


Hardware

Lo primero que debemos hacer es asegurarnos de que el PLC industrial Arduino se suministre con 12-24Vdc.

M-Duino - Pines PLC para comunicación RS-485Los pines del PLC que tenemos que utilizar para la comunicación RS-485.

Ardbox Analog HF+ - Pins PLC for RS-485 communication

Ardbox Relay HF+ - Pines PLC para comunicación RS-485

Software

El primer paso es descargar el boards para PLC Arduino para Arduino IDE.
Despu√©s de realizar la configuraci√≥n del hardware, debemos continuar con la configuraci√≥n del software y tambi√©n c√≥mo lo usamos. Para iniciar este proceso, es necesario incluir la biblioteca RS485.h fundada en nuestro sitio web. Despu√©s de esto, en la configuraci√≥n de funciones, aseg√ļrate de realizar la implementaci√≥n correcta de tu comunicaci√≥n.

Para todas las familias:

Configuración del Software

#include <RS485.h>

Para comprobar la activación de RS-485 solo tienes que utilizar el monitor serie del Arduino IDE usando la oración correcta dentro de la función setup ().

Serial.begin(9600); 

También es importante implementar la inicialización en la función setup ().

RS485.begin(38400);

IMPORTANTE‚Ěó:¬†COMPRUEBA LA VELOCIDAD DE TRANSMISI√ďN DEL PLC-PORT√ĀTIL Y PLC-DISPOSITIVOS.


Ejemplo b√°sico de escritura en el RS-485:

// Include Industrial Shields libraries
#include <RS485.h>

//// IMPORTANT: check switches configuration

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  // Begin serial port
  Serial.begin(9600);

  // Begin RS485 port
  RS485.begin(38400);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  // Wait bytes in the serial port
  if (Serial.available()) {
    byte tx = Serial.read();

    // Echo the byte to the serial port again
    Serial.write(tx);

    // And send it to the RS-485 port
    RS485.write(tx);
  }
}

Ejemplo b√°sico de lectura del RS-485:

// Include Industrial Shields libraries
#include <RS485.h>

//// IMPORTANT: check switches configuration

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  // Begin serial port
  Serial.begin(9600);

  // Begin RS485 port
  RS485.begin(38400);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  // Print received byte when available
  if (RS485.available()) {
    byte rx = RS485.read();

    // Hexadecimal representation
    Serial.print("HEX: ");
    Serial.print(rx, HEX);

    // Decimal representation
    Serial.print(", DEC: ");
    Serial.println(rx, DEC);
  }
}

Ejemplo b√°sico de Full Duplex de RS-485:

‚ĚóAntes de comenzar la prueba, conecte A, B (receptores) a Y, X (transmisores).‚Ěó

// Include Industrial Shields libraries
#include <RS485.h>
//// IMPORTANT: check switches configuration
//// IMPORTANT: Full duplex mode is only available when device supports it
////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  // Begin serial port
  Serial.begin(9600);
  // Begin RS485 port
  RS485.begin(38400, FULLDUPLEX);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  // Wait bytes from the RS-485
  if (RS485.available()) {
    byte tx = RS485.read();
    // In full-duplex mode it is possible to send and receive data
    // at the same time in a secure way
    RS485.write(tx);
    // Echo the byte to the serial port
    Serial.write(tx);
  }
} 

¬ŅEst√°s buscando tu PLC ideal?

Echa un vistazo a esta comparación de productos con otros controladores industriales Arduino.

Comparamos entradas, salidas, comunicaciones y otras características con las de algunas de las marcas relevantes


Comparación de controladores PLC industriales >>

¬ŅQuieres m√°s informaci√≥n? 

¬°Solo llena el formulario! 

¬°Quiero saber m√°s!  Por favor, llene el formulario correctamente.