Cómo almacenar información del RTC de un PLC industrial
M-Duino RTC + Almacenamiento SD
25 marzo, 2020 por
Cómo almacenar información del RTC de un PLC industrial
Andrei Postolache

Introducción

En este post vas a aprender cómo almacenar la información proporcionada por tu RTC. 

Estos enlaces te van a redirigir a nuestro sitio web donde podrás encontrar:

  • Cómo programar un  controlador PLC M-Duino RTC   Leer >>

y también

  • Cómo usar una tarjeta SD   Leer >>

Es muy importante echar un vistazo a estos artículos, ya que lo que vamos a hacer es una fusión entre el código del RTC y la tarjeta SD.

Requisitos

Con tal de trabajar con una micro SD, debes tener un M-Duino PLC (Controlador Lógico Programable basado en Arduino para la automatización industrial) incluido en las familias siguientes:

Familia Wifi y Bluetooth PLC


>>

Familia Controladores Ethernet


>>

Familia Controladores GPRS / GSM


>>

También necesitarás una tarjeta micro SD y unas pinzas.

Comprobación de los interruptores

Antes de proceder a conectar la tarjeta SD al controlador industrial, debes verificar que el interruptor SD está correctamente configurado. Debes verificar los interruptores de comunicación y coloca el interruptor SD en la posición OFF (si tu PLC lo tiene) . Además, tienes que comprobar que el RTC SCL y RTC SDA están en modo ON para habilitar cables I2C al RTC.


 Software

Una vez se haya realizado con éxito la programación del RTC siguiendo los pasos del blog  RTC test en versión M-Duino PLUS,donde se enviaban los datos utilizando el Monitor Serie, procederemos a guardarlos a la tarjeta SD. Lo primero que tienes que hacer es incluir las librerías RTC, SD y SPI.

El segundo paso es crear el archivo donde almacenarás la información. Luego creas todas las constantes, configuras el bus que comunica el Arduino con la tarjeta SD y almacenas todas las constantes en una nueva variable interna.

En el siguiente paso, debes abrir el archivo de la tarjeta SD y almacenar toda la información de cada variable. El último paso consiste en cerrar el archivo porque si no lo haces, el almacenamiento nunca se detendrá.


#include <RTC.h>
#include <SD.h>
#include <SPI.h>

File myFile;

const int YEAR = 2020;
const int MONTH = 2;
const int DAY = 26;
const int HOUR = 12;
const int MINUTE = 20;
const int SECOND = 25;

//const int TIME = 1522242547;
//UNIX timestamp (spent seconds since Jan 1 1970 00:00:00)

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  SD.begin(53);
  RTC.setYear(YEAR);                      //sets year
  RTC.setMonth(MONTH);                    //sets month
  RTC.setMonthDay(DAY);                   //sets day
  RTC.setHour(HOUR);                      //sets hour
  RTC.setMinute(MINUTE);                  //sets minute
  RTC.setSecond(SECOND);                  //sets second
  //RTC.setTime(TIME);                    //sets UNIX timestamp
  if(!RTC.write()){                       //RTC.write writes in the RTC memory all that has been set
    Serial.println("Write date error: Are the switches well placed?");
  }
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  SD.begin(53);
  myFile = SD.open("test.txt", FILE_WRITE);
  if (!RTC.read()) {
    Serial.println("Read date error: is time set?");
  } else {
    Serial.print("Time: ");
    myFile.println(RTC.getYear());
    Serial.print("-");
    myFile.println(RTC.getMonth());
    Serial.print("-");
    myFile.println(RTC.getMonthDay());
    Serial.print(" ");
    myFile.println(RTC.getHour());
    Serial.print(":");
    myFile.println(RTC.getMinute());
    Serial.print(":");
    myFile.println(RTC.getSecond());
    Serial.print(" (");
    myFile.println(RTC.getTime());
    Serial.println(")");
    myFile.close();
 }
 delay(1000);
}

¿Quieres saber más?

Resuelve tus dudas técnicas siguiendo nuestro blog.  Blog >>

Vea cómo aplicar nuestros equipos en la sección de estudios de casos.   Casos de Estudio >>

Cómo almacenar información del RTC de un PLC industrial
Andrei Postolache
25 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!