Cómo conectar dos PLCs industriales a través de RS-485
22 mayo, 2020 por
Cómo conectar dos PLCs industriales a través de RS-485
Andrei Postolache

Introducción

El RS-485, tambi√©n conocido como EIA-485, se define como un sistema de bus diferencial multipunto; es perfecto para transmitir datos con alta velocidad a alcances de hasta 12 m. Una de sus caracter√≠sticas m√°s importantes es que su 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 el RS-485 sea √ļtil en sistemas de control industrial y aplicaciones similares.

Lecturas previas

Te recomendamos que leas las siguientes entradas para entender el programa de este blog. Usamos las siguientes entradas del blog para hacer este ejemplo:

Requisitos

Para trabajar con comunicación TTL en serie, necesitará cualquiera de nuestros controladores lógicos programables para la automatización industrial:

Controladores Industrial Shields controllers: Wifi & Bluetooth Controller Family, Ethernet Controller Family, GPRS / GSM Controller Family.

Hardware

Para hacer la conexión entre los dispositivos seguimos el siguiente esquema.

Esquema para realizar la conexión entre los dispositivos.

Software

El siguiente código tiene la función de comunicar al Maestro y al Esclavo enviando la instrucción de activar el relé para encender la bomba de agua.

Un ejemplo de la comunicación de Simplecomm Master:

#include <RS485.h>
#include <SimpleComm.h>

// Create SimplePacket for sending and receiving data
SimplePacket packet;

// Define master address
uint8_t masterAddress = 0;

// Define slave address to communicate with
uint8_t slaveAddress = 1;

// Value to send as packet data
int value = 5;

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
	Serial.begin(9600L);

  // Start RS485
  RS485.begin(19200L);
  RS485.setTimeout(20);

  // Start SimpleComm
  SimpleComm.begin(masterAddress);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  static unsigned long lastSent = millis();

  // Send packet periodically: once per second
  if (millis() - lastSent >= 10000) {
    // Set request packet data
    packet.setData(value);

    // Send request to slave
    if (SimpleComm.send(RS485, packet, slaveAddress)) {
      lastSent = millis();

      Serial.print("Sent value: ");
      Serial.println(value);
    }
  }

  // Get responses
  if (SimpleComm.receive(RS485, packet)) {
    // Update value from the response
    value = packet.getInt();

    Serial.print("Received value: ");
    Serial.println(value);
  }
}

Un ejemplo de la comunicación de Simplecomm Slave:

#include <RS485.h>
#include <SimpleComm.h>

// Create SimplePacket for sending and receiving data
SimplePacket request;
SimplePacket response;

// Define slave address to communicate with
uint8_t slaveAddress = 1;

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
	Serial.begin(9600L);

  // Start RS485
  RS485.begin(19200L);
  RS485.setTimeout(20);

  // Start SimpleComm
  SimpleComm.begin(slaveAddress);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  // Get requests
  if (SimpleComm.receive(RS485, request)) {
    int value = request.getInt();

    Serial.print("Received value: ");
    Serial.println(value);
if ( value==5){
  digitalWrite(R0_8,HIGH);
  delay(5000);
  digitalWrite(R0_8,LOW);
  
}
    // Process value
    //value++;

    // Send response to the request packet source
    response.setData(value);
    if (SimpleComm.send(RS485, response, request.getSource())) {
      Serial.print("Sent value: ");
      Serial.println(value);
    }
  }
}

 
 

Suscríbete a nuestro  YouTube channel si quieres estar al día de nuestos tutoriales.


Encuentra lo que buscas.¬°Busca en nuestro Blog!

Cómo conectar dos PLCs industriales a través de RS-485
Andrei Postolache
22 mayo, 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!