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

Cómo usar el Watchdog con tu PLC industrial


 En este post veremos cómo utilizar el perro guardián y cuál es el límite de su controlador industrial Arduino diseñado para la automatización industrial.


Requisitos

PLC Arduino Ethernet o 20 I/Os:      PLC Ethernet        PLC 20 I/Os

Librería Watchdo:  avr/wdt.h library

Odoo image and text block

¿Qué es el Watchdog?


El Watchdog es un temporizador electrónico que permite reiniciar el sistema en caso de mal funcionamiento del ordenador y recuperarse.

El Watchdog consiste en un temporizador decreciente: cuando el temporizador llega a cero, el sistema se reinicia. Entonces siempre hay que refrescar el "watchdog".g.

Software

Debes usar la biblioteca de Watchdog "#include <avr/wdt.h>" proporcionada por Arduino para programar tu propio Watchdog.


Funciones:


#define 

wdt_reset()   __asm__ __volatile__ (“wdr”)

#define 

WDTO_500MS   5

#define 

WDTO_1S   6

#define 

WDTO_2S   7

#define 

WDTO_4S   8

#define 

WDTO_8S   9


IMPORTANTE: El Watchdog del Ardbox no puede trabajar por debajo de los 500ms. No hay limitaciones para el PLC M-Duino.

A continuación encontrarás un ejemplo de cómo usarlo: el Watchdog lib

/*
   Copyright (c) 2017 Boot&Work Corp., S.L. All rights reserved

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <avr/wdt.h>

//////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
	Serial.begin(9600L);
  // Set the watchdog on 500 ms 
  wdt_enable(WDTO_500MS);
}

//////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  // Refresh the watchdog
  wdt_reset();

  // WORK HERE, but faster than 500ms
  
  Serial.println("Watchdog is working if you don't see the points");
  delay(550);
  
  

  Serial.println("...");
}

¿Tienes preguntas sobre nuestros dispositivos de código abierto?

Contacta con nuestro equipo técnico-comercial para resolver tus dudas. ¡Te esperamos!


¿Quieres más información? 

¡Solo llena el formulario! 

¡Quiero saber más!  Por favor, llene el formulario correctamente.