Memoria EEPROM y Registro de Hora

  • 1 Respuestas
  • 3764 Vistas

MartinN

  • Principiante
  • Mensajes: 1
Memoria EEPROM y Registro de Hora
« : febrero 10, 2012, 21:57:54 pm »
Buenas!

Estoy utilizando un PLC STX8081-C2, anda barbaro,
pero tengo una duda:

Me podrian explicar una forma facil de guardar
la informacion de fecha y hora actual en la memoria
EEPROM y luego leerla ?.

El metodo actual que utilizo es guardar hora,
minutos segundos por separado...hay una forma
mas directa ?.

Tengo que registrar el tiempo de algunos eventos
que los leo a traves de las entradas discretas.
Los guardo en la EEPROM, asi los datos nos se
pierden luego de un corte de energia.

Gracias y saludos desde Mar del Plata!

Boris Estudiez

  • Novato
  • *
  • Mensajes: 12
Re: Memoria EEPROM y Registro de Hora
« Respuesta #1 : febrero 13, 2012, 15:28:31 pm »
Hola Martin,

Una forma simple y eficiente de registrar fecha y hora es utilizando "timestamp".

Un "timestamp" es un numero, que representa los segundos transcurridos
desde el 01/01/1970 a una fecha determinada.

La ventaja de un "timestamp", es la de permitirte guardar
la fecha y hora en una sola variable.

Para obtener el timestamp de la fecha y hora actual, podes
utilizar la funcion RtcGetTimestamp().

Luego con la funcion TimeConvertTimestamp() podes
convertir un "timestamp" a fecha y hora leibles por un
humano.

Luego con EepromWriteCells() podes ir guradando cada
timestamp en la memoria EEPROM.

Un ejemplo de "timestamp" esta incluido en el SDK y
es el siguiente:

main()
{
   // Variables que almacenara el TimeStamp y fecha/hora.
   new TimeStamp, Day, Month, Year, Hour, Min, Sec

   LcdClear()

   // Loop principal.
   while(true)
   {
      // Obtener timestamp actual y almacernarlo en una variable.
      TimeStamp = RtcGetTimestamp()

      // Convertir TimeStamp a fecha y hora.
      TimeConvertTimestamp(TimeStamp, Day, Month, Year, Hour, Min, Sec)

      // Imprimir fecha y hora del reloj en display LCD.
      LcdPrintf(0, 0, "%02d/%02d/%d", Day, Month, Year)
      LcdPrintf(0, 1, "%02d:%02d:%02d", Hour, Min, Sec)

      // Esperar 1 segundo.
      DelayS(1)

      // Conmutar led D1 "DEBUG".
      LedToggle()
   }
}


Saludos, Boris.-

www.slicetex.com.ar

« Última Modificación: febrero 13, 2012, 15:37:44 pm por Boris Estudiez »