Monitorización industrial: cómo obtener el máximo rendimiento

Aprovecha el hardware de código abierto
18 de junio de 2020 por
Monitorización industrial: cómo obtener el máximo rendimiento
Joan F. Aubets - Industrial Shields

Index

Como arena entre tus dedos

¿Recuerdas la sensación de que la arena se te escapa de las manos?

Para un día de playa, es perfecto. Pero si lo que te falta son datos concretos de tu empresa, estás perdiendo todo tipo de oportunidades.

Incluso perdiendo dinero.

Grandes retos

Adapta tu negocio a la tecnología

Uno de los grandes retos que afrontan las empresas, como si de una carrera de fondo se tratase, es la adopción de las nuevas tecnologías que van apareciendo. Aunque es materialmente imposible estar a la última en todo, sí es necesario tener una visión global de la empresa, y conocer cuáles son las tecnologías que puedes implementar para obtener todo tipo de beneficios como:

  • ahorro energético

  • mayor seguridad para los operarios

  • mejora de los índices de producción

  • ahorro en materiales o mantenimiento preventivo

por citar algunos

 

Usos y ventajas de la monitorización industrial

La monitorización de los datos que pueden ser relevantes para ti, puedes realizarla de varias maneras. Por un lado, mediante soluciones cerradas donde necesitarás un partner externo para poder actualizar, configurar, reparar, etc. 

 Por otro lado, puedes elegir soluciones open source, donde serás el propietario de la solución completa y tendrás el control de:

  • qué quieres monitorizar, 

  • cada cuánto tiempo,

  • dónde enviar o almacenar los datos, etc. 

Todo esto, a un coste de adquisición mucho menor, debido al ahorro en licencias y al ahorro en consultorías y programaciones por parte de un tercero.

A modo de ejemplo de lo mucho que se puede realizar usando soluciones open source, mostramos algunas implementaciones de elementos de monitorización.

Programar un sensor de temperatura y humedad DHT22

Características del sensor

Fuente de alimentación de 3.3V a 6V.
Consumo de corriente de 2.5mA.
Salida - Señal digital.
Medición de la temperatura entre -40 y 125ºC, con una precisión de 0,5ºC a 25ºC.
Resolución de la medición de temperatura: 8-bit, 0,1ºC 
Medición de la humedad entre 0 y 100%, con una precisión del 2-5% para temperaturas entre 0 y 50ºC.
Resolución de la medición de la temperatura: 8-bit, 0,1%
Frecuencia de muestreo de 2 muestras/s: 2Hz.
Conexión por resistencia con un valor entre 4,7K y 10K.
Program a DHT22 humidity and temperature sensor

    Biblioteca DHT de Arduino industrial para el uso en la programación. En este caso estamos usando la biblioteca de Adafruit que puedes descargar gratuitamente aquí.

    (https://github.com/adafruit/DHT-sensor-library)

    Con esta biblioteca, puedes leer fácilmente ambos sensores y no preocuparte por el protocolo de comunicación entre el PLC Arduino y dichos sensores.

    Con la librería ya importada podemos empezar a programar.

    Este ejemplo le muestra cómo leer la humedad y la temperatura (Celsius y Fahrenheit).

    #include "DHT.h" #define DHTPIN 2     //Pin where is the sensor connecte

    #define DHTTYPE DHT22   // Sensor DHT22

    DHT dht(DHTPIN, DHTTYPE);

    void setup() {
    Serial.begin(9600);
    Serial.println("Loading...");
    dht.begin();
    }

    void loop() {
    delay(2000);
    float h = dht.readHumidity(); //Reading the humidity
    float t = dht.readTemperature(); //Reading the temperature in Celsius degree
    float f = dht.readTemperature(true); //Reading the temperature in Fahrenheit degrees

    //--------Sending the reading through Serial port-------------

    Serial.print("Humidity ");
    Serial.print(h);
    Serial.print(" %t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.println(" *F");
    }

    Uso de RS-485 entre dos controladores PLC Arduino

    Si necesitas elementos de comunicación, el RS-485 es habitual en entornos industriales.

    Para el uso entre controladores de automatización industrial basados en Arduino puedes utilizar el código que verás a continuación, y también ten en cuenta las características del protocolo Modbus RTU, que permite la comunicación entre controladores industriales, en caso de que tu proyecto requiera ese tipo de comunicación.

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

    Un ejemplo de comunicación 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 comunicación 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);
        }
      }
    }

    Mejora e implementa la monitorización

    Si apuestas por la monitorización industrial, y quieres ser el propietario de tu equipo evitando el pago de licencias y ahorrando en consultorías, contacta con nosotros.

    Nuestro equipo técnico-comercial te ayudará a determinar qué solución encaja más con tus necesidades. El control de tu empresa, a un solo clic. 

    Te esperamos.

    Si aún tienes dudas sobre las soluciones de monitoreo, contáctanos.

    Te ayudaremos a encontrar la mejor solución.

    Share this post on your favorite social media


        

    Buscar en nuestro blog

    Monitorización industrial: cómo obtener el máximo rendimiento
    Joan F. Aubets - Industrial Shields 18 de junio de 2020
    Compartir

    ¿Estás buscando 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.


    Industrial PLC comparison >>>