Introducción
Tools40 es una Librería de Industrial shields para nuestros diferentes PLCs. En esta entrada del blog se presenta la Librería Tools40.
Librería Tools40 incluye la Librería SimpleComm, la Librería Filter y la Librería Timer.
Requisitos
Ethernet or 20 I/Os PLC: Ethernet PLC 20 I/Os PLC
Librería Tools40 : Herramientas40 Repositorio Github
Uso
Con la Librería SimpleComm, puedes enviar datos a través de cualquier flujo de Arduino: RS-485, RS-232, y Ethernet... Es lo suficientemente flexible como para soportar diferentes tipos de tipologías de comunicación: Ad-hoc, Maestro-Esclavo, Cliente-Servidor... Utilizando una API fácil de usar.
La Librería de filtros incluye un software de filtrado que permite suavizar las entradas analógicas. Esto es realmente útil cuando se tiene una señal analógica que es inestable.
Con la Librería Timer puedes crear 3 temporizadores diferentes como el estándar Ladder Timers:
- PulseTimer: cuando hay un flanco ascendente en el valor de entrada, PulseTimer activa la salida durante el tiempo seleccionado.
- OnDelayTimer: cuando la Entrada está activa (HIGH) durante el tiempo definido, la Salida relacionada estará activa. La salida se desactiva cuando la entrada está inactiva.
- OffDelayTimer: Como el OnDelayTimer, pero cuando la entrada está inactiva (LOW) durante el tiempo definido, la salida relacionada estará activa. La salida se desactiva cuando la entrada está activa.
A continuación, se explica cómo utilizar la Librería de Filtros y la Librería de Temporizadores:
Primero tienes que definir el temporizador o el filtro y darle un nombre. Después de eso, sólo tiene que crear una variable y relacionada con la entrada deseada. En temporizadores, el último paso es utilizar esta variable en la salida seleccionada. A continuación se muestra un ejemplo de cómo usarlo.
Librería de filtros:
#include <Filter.h> // Create a filter // Number of samples: 10 // Sample period: 5ms (setting it to 0, samples are taken as fast as possible) AnalogFilter<10, 5> filter; //////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { // Init Serial port Serial.begin(9600L); // Set pin as INPUT pin pinMode(pin, INPUT); } //////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { // Read pin value int value = analogRead(pin); // Filter it int filtered = filter.update(value); // Print the filtered value Serial.println(filtered); }
Librería del temporizador :
PulseTimer
#include <Timer.h> // Define a new OnDelayTimer with preset time of 3s OnDelayTimer timer(3000); int inputPin = I0_0; #if defined(ARDBOX_ANALOG) int outputPin = Q0_0; #elif defined(ARDBOX_RELAY) int outputPin = R3; #elif defined(MDUINO_19R) || defined(MDUINO_38R) || defined(MDUINO_57R) int outputPin = R0_1; #elif defined(MDUINO_21) || defined (MDUINO_42) || defined(MDUINO_58) int outputPin = Q0_0; #endif //////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { // Configure inputPin as input pinMode(inputPin, INPUT); // Configure outputPin as output pinMode(outputPin, OUTPUT); digitalWrite(outputPin, LOW); } //////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { // Read inputPin int input = digitalRead(inputPin); // Update timer using inputPin value and set outputPin associated variable value int output = timer.update(input); // Update outputPin with its associated variable value digitalWrite(outputPin, output); }
OnDelayTimer
#include <Timer.h> // Define a new PulseTimer with preset time of 3s PulseTimer timer(3000); int inputPin = I0_0; #if defined(ARDBOX_ANALOG) int outputPin = Q0_0; #elif defined(ARDBOX_RELAY) int outputPin = R3; #elif defined(MDUINO_19R) || defined(MDUINO_38R) || defined(MDUINO_57R) int outputPin = R0_1; #elif defined(MDUINO_21) || defined (MDUINO_42) || defined(MDUINO_58) int outputPin = Q0_0; #endif //////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { // Configure inputPin as input pinMode(inputPin, INPUT); // Configure outputPin as output pinMode(outputPin, OUTPUT); digitalWrite(outputPin, LOW); } //////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { // Read inputPin int input = digitalRead(inputPin); // Update timer using inputPin value and set outputPin associated variable value int output = timer.update(input); // Update outputPin with its associated variable value digitalWrite(outputPin, output); }
Cómo instalar la biblioteca Tools40 en Arduino IDE
- Descarga la Librería Tools40 de GitHub. Haga clic en: "Clonar o descargar". Después de eso, descarga el archivo zip en tu escritorio.
- Añade la Librería en el IDE de Arduino. Haz clic en: Sketch->Incluir librería->Añadir librería .ZIP y elegir "arduino-Tools40-master.zip". Después de elegir el Arduino-Tools40-master.zip hay que cargar la Librería. Para verificar que la Librería se ha añadido correctamente, puedes ver la Librería en: //Archivo->Ejemplos->Tools40
- Ahora tu Librería está correctamente instalada y puedes ver un ejemplo de cómo usar esa librería en nuestros PLCs.