Conceptos b谩sicos: tarjeta SD en un PLC industrial
Trabajar con un controlador l贸gico programable para automatizaci贸n industrial
14 octubre, 2019 por
Conceptos b谩sicos: tarjeta SD en un PLC industrial
Boot & Work Corp. S.L., David Martin

Introducci贸n


En este post, empezaremos a trabajar con la programaci贸n de la tarjeta micro SD para el almacenamiento de datos en un PLC Arduino. En primer lugar, te presentaremos la biblioteca utilizada para manejar la programaci贸n de la micro SD y, finalmente, veremos y comentaremos dos ejemplos para que puedas escribir y leer desde tu tarjeta uSD.

La tarjeta SD es una buena manera de guardar la informaci贸n dentro de tu controlador industrial, sin pensar en el espacio de memoria o en las desconexiones de la l铆nea de suministro. Hay muchos tipos diferentes de tarjetas, desde unos pocos megabytes hasta gigabytes, que te permiten dimensionar tus sistemas seg煤n lo necesites.


Primeros pasos

Antes de empezar los ejemplos b谩sicos con la tarjeta SD, ten en cuenta que te ser谩 煤til leer los siguientes blogs:



Requisitos


Para poder trabajar con una tarjeta SD, debes tener un PLC industrial Arduino de alguna de estas familias:



Software


Lo primero que debes hacer es incluir la biblioteca de Arduino que contiene las funciones de la tarjeta SD:

#include <SD.h>

Debes iniciar la SD con el siguiente comando. Ten en cuenta que el n煤mero junto a las funciones significa d贸nde se encuentra el chip CS. Para nuestros productos, el n煤mero 53 es el que necesitas:

SD.begin(53);

Para una utilidad extendida, puedes capturar el n煤mero devuelto de esta funci贸n, y comprobar si el proceso de inicio fue correcto:

if(!SD.begin(53))
{
聽聽聽聽Serial.println("Initialization failed"); while (1)
聽聽聽聽聽聽聽聽;
}

Para crear un archivo o abrir uno existente para escribir, debes poner la siguiente l铆nea:

File myFile = SD.open("test.txt", FILE_WRITE);

Puedes buscar errores durante la apertura del archivo:

if (!myFile) 
{
聽聽聽聽Serial.println("File opening failed"); while (1) ;
}

Escribir en un archivo abierto:

myFile.println("Test text");

Cerrar un archivo:

myFile.close();

Abrir un archivo para su lectura::

File myFile = SD.open("test.txt");

Leer un car谩cter:

myFile.read();

Saber el tama帽o de un archivo:

myFile.size();

Cuando se cierra el archivo, puedes eliminar un archivo existente:

 SD.remove("test.txt"); 


Ejemplos


En los siguientes p谩rrafos, puedes聽ver ejemplos de redacci贸n y escritura de bytes:

Escribir informaci贸n en la SD

// SD Write Example
// This example writes a test text in the SD card

#include <SD.h>

// Counter variable
int n = 0;

// Setup function
void setup()聽
{
聽聽聽聽// Set the speed of the serial port 聽聽聽
聽聽聽聽Serial.begin(9600UL);

聽聽聽聽// Init the SD Card 聽聽聽聽
聽聽聽聽if (!SD.begin(53))聽
聽聽聽聽{聽
聽聽聽聽聽聽聽聽// Error during SD init 聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽Serial.println("Card failed, or not present"); 聽聽聽
聽聽聽聽聽聽聽聽while (true)
聽聽聽聽聽聽聽聽聽聽聽聽;
聽聽聽聽}
}

// Loop function
void loop()
{
聽聽聽聽// Open the file
聽聽聽聽File dataFile = SD.open("test.txt", FILE_WRITE);

聽聽聽聽// Check if the file opening was fine 聽聽
聽聽聽聽if (!dataFile)聽
聽聽聽聽{
聽聽聽聽聽聽聽聽// Error during the opening Serial.println("Card failed, or not present"); while (true) ;聽
聽聽聽聽}

聽聽聽聽dataFile.println("Test text"); dataFile.close();

聽聽聽聽// Program end
聽聽聽聽while (true)
聽聽聽聽聽聽聽聽;
}


Leer informaci贸n desde la SD

// SD Read Example
// This example read a file in the SD card

#include <SD.h>

// Counter variable
int n = 0;

// Setup function
void setup() 
{
    // Set the speed of the serial port    
    Serial.begin(9600UL);

    // Init the SD Card     
    if (!SD.begin(53)) 
    { 
        // Error during SD init         
        Serial.println("Card failed, or not present");    
        while (true)
            ;
    }
}

// Loop function
void loop()
{
    // Open the file
    File dataFile = SD.open("test.txt");

    // Check if the file opening was fine   
    if (!dataFile) 
    {
        // Error during the opening     
        Serial.println("Card failed, or not present");
        while (true)
            ; 
    }

    // Read each byte of the file
    for (int n = 0 ; n < dataFile.size() ; n++)
      Serial.println(char(dataFile.read()));
    dataFile.close();

    // Program end
    while (true)
        ;
}

Conceptos b谩sicos: tarjeta SD en un PLC Arduino


Are you looking for further information?

Our tech-sales team will be glad to help you.

Conceptos b谩sicos: tarjeta SD en un PLC industrial
Boot & Work Corp. S.L., David Martin
14 octubre, 2019
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!