Conceptos básicos sobre RS485 de un PLC industrial
6 marzo, 2020 por
Conceptos básicos sobre RS485 de un PLC industrial
Andrei Postolache

            RS-485 's Introducción

            El RS-485, también conocido como EIA-485, se define como un sistema de bus multipunto diferencial. El estándar RS-485 es perfecto para transmitir datos con alta velocidad a rangos de hasta 12m. Una de sus características más importantes es que el par de cables trenzados reduce el ruido inducido en la línea de transmisión. Se pueden conectar varios receptores a una red de este tipo en un bus lineal multipunto. Estas características hacen que el 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 la lectura del siguiente post para entender la programación de este blog. Utilizamos el post siguiente para realizar este ejemplo:
            Cómo programar nuestro PLC industrial Arduino conArduino IDE:

            Requisitos para trabajar con RS-485

            Para trabajar con el protocolo RS-485, necesitarás cualquiera de nuestros PLCs para automatización industrial:
            - Controladores Industrial Shields: 
            - Configuración de los interruptores y puentes
             

            RS-485 en M-Duino

            En el  M-Duino Familysiempre 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).

            ral audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.

            RS485 en M-Duino - Configuración de interruptores y jumpers


            RS-485 en Ardbox

            ForPara la familia Ardbox tenemos dos subfamilias. En ésta, tenemos que elegir entre RS-485 y RS-232 utilizando los interruptores y puentes como mostramos en la siguiente imagen:

            IMPORTANTE: LA CONFIGURACIÓN DE LA COMUNICACIÓN YA ESTÁ HECHA, SÓLO HAY QUE ELEGIRLA AL COMPRAR EL DISPOSITIVO.

            Ardbox Analog HF+ - RS232 HW configuración










            Ardbox Analog HF+ - RS485 HW configuración














            Jumper zone 1: RS-232 / RS-485 HW.
            Jumper zone 2: RS-232 SW / Q0.8 and Q0.9.


            Ardbox Relay HF+

            Ardbox Relay HF+ - RS232 HW configuración

            Ardbox Relay HF+ - RS485 HW configuración

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

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

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


            Hardware

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

            M-Duino - Pines PLC para comunicación RS-485

            Los 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

            El primer paso es descargarnos los Arduino based PLC boards 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:

            Configuación de Software

            #incluir <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 DE LOS DISPOSITIVOS PLC-PORTÁTIL Y PLC.

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

            Un 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 RS-485 Full Duplex:

            Antes de iniciar la prueba, conecta A, B (receptores) a los Y, Z (transmisores).

            // Include Industrial Shields libraries
            #include <RS485.h>
            //// IMPORTANT: check switches configuration
            //// IMPORTANT: Full duplex mode is only available when device supports it
            ////////////////////////////////////////////////////////////////////////////////////////////////////
            byte tx = 5;
            void setup() {
              // Begin serial port
              Serial.begin(9600);
              // Begin RS485 port
              RS485.begin(38400, FULLDUPLEX);
              Serial.println("setup");
            }
            ////////////////////////////////////////////////////////////////////////////////////////////////////
            void loop() {
              // Wait bytes from the RS-485
              RS485.write(tx);
              delay(3000);
              if (RS485.available()) {   
                byte rx = RS485.read();
                // In full-duplex mode it is possible to send and receive data
                // at the same time in a secure way
                RS485.write(rx);
                // Echo the byte to the serial port
                Serial.println(rx);
              }
            } 


            Conceptos básicos sobre RS485 de un PLC industrial
            Andrei Postolache
            6 marzo, 2020
            Compartir
            Archivar

            ¿Buscas tu controlador lógico programable ideal?

            Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

            Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


            Comparación PLC industrial>>>

            ¿Quieres más información?

            ¡Rellena el formulario!

            ¡Cuéntame más!