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!