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

Aprender los conceptos básicos sobre RS485 de un PLC industrial

Introducción

RRS-485, también conocido como EIA-485, se define como un sistema de bus diferencial multipunto; es perfecto para transmitir datos a alta velocidad en rangos de hasta 12 m. Una de sus características más importantes es que el par de cables trenzados reducen el ruido inducido en la línea de transmisión. Se pueden conectar múltiples receptores a dicha red en un bus lineal de múltiples caídas. Estas características hacen que el RS-485 sea útil en sistemas de control industrial y aplicaciones similares.

Nuestros PLCs para automatización industrial cuentan con el circuito integrado MAX485. Este es un transmisor 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 en el nivel RS-485, puede alcanzar la velocidad máxima de transmisión de 2.5Mbps. Internamente podemos encontrar un trasnmisor half duplex MAX485 y también un MAX485 de forma que, si estamos en full duplex, usará el half duplex MAX485 para recibir datos y el transmisor MAX485 los enviará.


Lectura previa

Te recomendamos la lectura del siguiente post para entender la programación de este blog. Utilizamos el post siguiente para realizar este ejemplo:


Requisitos

Para trabajar con el protocolo RS-485, necesitarás cualquiera de nuestros PLCs para automatización industrial:

Configurar interruptores y jumpers

Tenemos dos familias de PLCs: Mduino y Ardbox. 
En la familia Mduino, siempre tendrás activado el RS-485 por defecto,  así que no necesitarás activarlo usando ningún interruptor. Lo único a tener en cuenta es que deberás seleccionar entre Full-Duplex y Half-Duplex, usando el último interruptor (FD/HD).
 
Para la familia Ardbox, tenemos dos subfamilias:

En este caso, necesitamos escoger entre RS-232 y RS785 usando los interruptores y jumpers tal como mostramos en la siguiente imagen.

IMPORTANTE : LA CONFIGURACIÓN DE LA COMUNICACIÓN VIENE DE FÁBRICA, SOLO TIENES QUE ESCOGERLO AL COMPRAR EL DISPOSITIVO.

Ardbox Analog HF+ 

 






Jumper zona 1: RS-232 / RS-485 HW.

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

Ardbox Relay HF+ 


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

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

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


Hardware

Lo primero que tenemos que hacer es asegurarnos de que nuestro PLC está alimentado con 12-24Vdc.

Familia Mduino:
Los pins del PLC que tenemos que utilizar para comunicación RS-485.
 
 

 Familia Ardbox:

Ardbox Analog HF+ :


Ardbox Relay HF+ :

 



Software

El primer paso es descargarnos los  boards para PLC Arduino o integración de nuestros equipos en Arduino IDE.
Después de realizar la configuración del hardware, debemos continuar con la configuración del software y también con cómo lo usamos. Para comenzar este proceso, es necesario incluir la biblioteca RS485.h fundada en nuestro sitio web. Después de esto, en la configuración de la función, debes tener cuidado en hacer la implementación correcta de tu comunicación.

Para todas las familias:

Configuración de software


#include <RS485.h>


Para revisar la activación del RS-485, solo tienes que usar el monitor serie de Arduino IDE mediante la frase correcta dentro de la función setup().

Serial.begin(9600); 


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

RS485.begin(38400);

IMPORTANTE: REVISA LA VELOCIDAD DE TRANSMISIÓN ENTRE PLC y PC.

Ejemplo básico de escritura en 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 full-duplex básico de RS-485: 

Antes de empezar el test, conecta 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);
  }
} 

¿Quieres más información?

Con la tecnología Open Source, puedes ejecutar tus propias instalaciones.

Rellena el formulario y contactaremos contigo lo más pronto posible.

Enviar  Por favor, completa el formulario correctamente.