Home > Foro > controladores SlimLine e Netsyst (LogicLab) > Cómo usar la tarjeta SD para guardar archivos de registro
- Este tema tiene 19 respuestas, 10 participantes y se actualizó por última vez 4 años, hace 10 meses da Sergio Bertana.
-
autorPublicación
-
Agosto 4, 2011 en 8: 44 am #35074AnonimoInvitado
Acabo de actualizar el firmware en el módulo de la CPU SlimLine con la nueva versión que admite el sistema de archivos. Estoy tratando de hacer un programa simple que guarde datos en un archivo de registro SDCard, pero no puedo hacerlo funcionar. ¿Me puede dar alguna información?
Agosto 4, 2011 en 8: 46 am #36879Sergio BertanaAdministrador del foroEl sistema operativo de la SlimLine desde la versión SFW167C100 (para actualización, consulte Preguntas Frecuentes), es compatible con el sistema de archivos. Dos directorios son administrados Almacenamiento (Desde 100 Kb) ubicado en la memoria EEPROM presente en el módulo de la CPU, SDCard (Max 512 Mb) presentes en la Tarjeta SD que se debe insertar en el módulo de la CPU. Para acceder a los directorios es necesario realizar el formateo, comando Formato por Telnet. Para obtener la lista completa de comandos Telnet, consulte manual de referencia, las credenciales de inicio de sesión predeterminadas para Telnet y Ftp para el administrador son Nombre de usuario: Administración, Contraseña AdministraciónDe acuerdo con el comando Formato, es necesario definir el número de archivos aceptados para cada directorio, hasta un máximo de 12 archivos en total. El primer parámetro se refiere a los archivos en Almacenamiento, el segundo a los archivos en SDCard (si no está presente, inserte 0). Ejemplo, para tener 2 archivos en almacenamiento y 4 en SDCard daremos el comando Formatear 2, 4, si el comando se ejecuta correctamente devolverá el mensaje Formato Ok, Almacenamiento: archivos 2, tarjeta SD: archivos 4Conectándose al SlimLine con un cliente FTP (Ejemplo FileZilla), será posible visualizar el árbol de directorios y acceder en lectura y escritura, creando, borrando, editando los archivos dentro de ellos (Ver captura de pantalla).
Agosto 4, 2011 en 10: 16 am #36880Sergio BertanaAdministrador del foroEn cuanto a su necesidad de escribir un archivo de registro en SDCard, creé un programa LogicLab simple (Descargar) que guarda un archivo con nombre CLog.txt, con dentro de 50 registros de registro del valor de voltaje adquirido de una entrada analógica.
El archivo contiene registros guardados en formato CSV para ser fácilmente importados a Excel, cada registro contiene 5 campos separados por ";"(Ejemplo: 01;12;12;03;01.8;). El primer campo es un registro progresivo de 1 a 0. El segundo, tercer, cuarto campo muestra la hora, los minutos y los segundos del registro. El quinto campo muestra el valor de voltaje adquirido en voltios.
La escritura del registro se realiza mediante este programa en ST (listado), que "llena" la matriz LogRecord con log cadena ascii (5 campos separados por ";"). La función SysVarsnprintf escribe el valor seguido del código terminador "0", luego es necesario comenzar a escribir el siguiente valor en la posición del arreglo donde la escritura anterior ha colocado el código terminador.
Finalizó el registro de registro, con la función Sysfseek, el posicionamiento se realiza en el archivo en la posición de escritura y con la función Sysfwrite la escritura está hecha.
Junio 25, 2012 en 10: 32 am #37297MichelepartícipeUo one SlimLine y me gustaría usar la SDCARD como un registrador de datos, vi en este tema que hablamos de la tarjeta SD como máximo de 512 MB. ¿Este límite se debe al uso de la tarjeta SD como SPI Flash o también puedo usar una tarjeta SD con un tamaño superior a 512?
Gracias como siempre por el valioso apoyo de este foro y felicitaciones por la gestión eficiente de la misma.
Junio 25, 2012 en 11: 58 am #37298Sergio BertanaAdministrador del foroAdministración del sistema de archivos en el módulo de la CPU SlimLine ARM7 es limitado, por lo que se ha impuesto un límite en el tamaño máximo de la tarjeta SD que se puede administrar. Se pueden utilizar tarjetas SD con un tamaño máximo de 2Gb pero en cualquier caso el tamaño máximo del área de memoria administrada por el sistema de archivos es de 512Mb.
Septiembre 9, 2014 en 2: 02 pm #38407OscarpartícipeGracias por la sugerencia, traté de seguir estos pasos pero encontré los siguientes problemas. Ejecuté el comando Formatear 4, 0 como se informó en esta publicación, pero recibí un mensaje de error, luego ejecuté el comando Formato de almacenamiento, 4 a partir de Manual de instrucciones de Telnet a través de Toolly. Leí el comando Almacenamiento de Dir:
Directorio de "Almacenamiento"
Espacio para archivos 4 de bytes 67254 cada unoLuego intenté conectarme con FileZilla, configurado de acuerdo con los parámetros que sugieres, la conexión está correctamente establecida con el servidor, pero en respuesta recibo el mensaje de que el PLC no tiene carpetas disponibles. Con explorer, el ftp permanece "colgado" sin respuestas. Envié el programa propuesto, modificando
IF (SysClock1000 = Pulso) ENTONCES RETORNO; END_IF;
Pulso: = SysClock1000; (* Pulso base de tiempo *)
Fp: = Sysfopen ('Almacenamiento / CLog.txt', 'a'); (* Abra el archivo en modo "adjuntar". *)In
Tiempo: = SysTime;
WHILE SysTime - Tiempo <60000 DO END_WHILE; (* para escribir una línea en el registro cada minuto *)
Fp: = Sysfopen ('Almacenamiento / CLog.txt', 'a'); (* Puntero de archivo *)El resto permanece sin cambios. La escritura 'Storage / CLog.txt', 'a' aparece en rojo en el editor ST. Ejecuto el programa en la tarea Atrás, en la Tarea Lenta tengo otros programas que funcionan correctamente.
En este punto el PLC se congela, el estado pasa a NO EJECUTAR, intenté enviar un programa que funcionaba anteriormente pero se perdió la conexión USB. Apagué y volví a encender el PLC, el LED RUN comienza a parpadear con una secuencia fija. Después de una serie de intentos de reiniciar y enviar programas, pude reiniciarlo con un programa antiguo. Me detuve aquí.
¿Podría ser que el espacio en el que depositar el archivo no esté correctamente disponible? ¿Puedes decirme qué pude haber hecho mal?
Septiembre 9, 2014 en 2: 45 pm #38408Sergio BertanaAdministrador del foroIntentemos resolver sus problemas en orden. Se ha modificado el comando Formatear de una determinada versión del sistema operativo, ahora debe indicar qué directorio desea formatear y cuántos archivos desea dejar espacio. Entonces tu comando Formato de almacenamiento, 4 formatee el directorio de Almacenamiento para que contenga archivos 4 que dividirán el espacio disponible (según lo informado por el comando) UstedNo entiendo porque el cliente FTP no se conecta, no me dices que sistema operativo estás usando, con Total Commander y con el explorador de Windows 7 que suelo usar nunca he tenido problemas (Tema) posiblemente compruebe si tiene la última versión del sistema operativo. El error que cometió es muy grave ... nunca se puede detener un programa de PLC en un ciclo cerrado. MIENTRAS (SysTime-Time) <60000 HACER END_WHILE; Esto hace que intervenga el perro guardián del sistema y reinicialice la ejecución que se cierra nuevamente en el bucle infinito y se reinicia nuevamente. Esto bloquea todos los recursos del sistema, incluidas las comunicaciones (Tema). ¿Cómo se sale de él? ... después de un cierto número de reinicios, el sistema se detiene en suspensión y, por lo tanto, es posible reanudar la conexión y cargar un nuevo programa.
Septiembre 9, 2014 en 4: 30 pm #38409Sergio BertanaAdministrador del foroCómo resolver la sincronización correctamente, en el foro encontrarás un sinfín de ejemplos de cómo usar la hora del sistema, así es como puedes hacerlo.
SI ((SysGetSysTime (TRUE) -Time)> 60000000) ENTONCES
Tiempo: = SysGetSysTime (TRUE); (* Time buffer (uS) *)
Fp: = Sysfopen ('Almacenamiento / CLog.txt', 'a'); (* Abra el archivo en modo "adjuntar". *)… Otras declaraciones del programa
END_IF;Nota: la variable Horario debe ser del tipo UDINT.
Octubre 7, 2014 en 9: 03 pm #38452LuispartícipeBuenos días, quería hacer un datalogger con un PLC SlimLine registrar los valores de 4 entradas analógicas cada 10 segundos en formato CSV con la fecha (año, mes, día, hora, minuto, segundo) y hacer un archivo para cada día. Necesito una pequeña ayuda.
Octubre 8, 2014 en 8: 24 am #38453Sergio BertanaAdministrador del foroSi descargas el programa que encuentras en uno de los posts de este tema ya tienes un buen punto de partida. Sin embargo a partir del programa del post anterior he preparado un programa que se da cuenta de lo que necesitas, aquí está la impresión del programa WriteLog.
Como puede ver, he definido una matriz de cadenas para la definición de los días semanales, por lo que es posible escribir un archivo CSV para cada día (el archivo tendrá el nombre del día). Cuando se cambia el día, se elimina el archivo del mismo día (este es el archivo de la semana anterior) y se crea un nuevo archivo del día con los nuevos datos. Esto le da una semana para descargar por FTP los archivos de registro almacenados.
Creé el registro de registro en el formato 2014-10-08 09:25:58;02.8;02.8;02.8;02.8, como puede ver, el campo de fecha / hora va seguido de los 4 valores analógicos. En mi ejemplo, realizo una única adquisición analógica para los 4 canales, pero dejo a usted que realice las 4 adquisiciones y las informe en el registro.
Creo que con este ejemplo en el ejemplo anterior tiene toda la información para construir su DataLogger. aquí está el programa fuente.
Octubre 25, 2014 en 6: 34 am #38476AnonimoinactivoEl ejemplo que se muestra en el post anterior encaja muy bien con el problema que tengo que afrontar, la única objeción es que me gustaría almacenar datos por un período superior a una semana. En una de las publicaciones anteriores leí que SlimLine puede administrar hasta 512 MB de memoria en la tarjeta SD con hasta 64 archivos.
Teniendo que almacenar un archivo de registro compuesto por 7 valores REALES (5 señales 4-20mA y 2 valores leídos por protocolo Modbus) más el campo de datos en formato CSV, ¿cuánto espacio en términos de memoria ocupa cada registro a historizar?
Suponiendo almacenar un registro cada 10 segundos, ¿sería posible crear archivos con los valores de una semana completa (o incluso un mes) y no solo para un solo día como en el ejemplo?
Otra posibilidad viendo eso SlimLine es accesible a través del cliente FTP, sería posible programar un programa en una PC que lea automáticamente los archivos de registro del SlimLine y hacer una copia de seguridad en un servidor aumentando así drásticamente la posibilidad de iniciar sesión?
Octubre 25, 2014 en 7: 23 am #38477Sergio BertanaAdministrador del foroAsumí un registro de registro con los datos que necesita (Fecha / hora; 7 valores REALES), el registro es del tipo:
25/10/2014 00:00:00;120.5;75.8;1200.0;145.76;1560.6;456.8;985.75
Como puede ver hay 64 bytes que redondeamos a 70. Considerando un registro cada 10 segundos tendremos 360 Registros / Hora (Igual a 25Kb Hora). Incluso asumiendo un registro continuo las 24 horas del día y 24 días al mes, tendremos 31 registros cada mes con una cantidad de datos igual a 267840Mb. Formateando la SDCard para que contenga los 18 meses, tendremos 12Mb de datos disponibles para cada archivo como lo muestra el comando:
Formatear la tarjeta SD 12
Estas seguro? (Y, n)
Formato Ok, Archivos: 12, FSize: 44738688, Tiempo: 54.290 (mS)Con respecto a la solución que propone leer desde una PC a través de una conexión FTP, los archivos de SlimLine, Yo diría que es una excelente solución para garantizar una copia de seguridad eficaz de los datos en el almacenamiento corporativo. Si opta por esta solución, mantendría los archivos en SlimLine más pequeño (por lo que haría un almacenamiento diario) y el servidor central puede todos los días descargar el archivo del día anterior teniendo en el SlimLine Un pulmón de 7 días.
Marzo 22, 2016 en 4: 17 pm #39475AlbertopartícipeDespués de insertar la SDCard en el PLC, la formateé directamente en el PLC con los procedimientos ilustrados y la usé para escribir archivos de datos, todo bien.
Pero ahora me gustaría copiar los archivos a una PC pero insertado en el lector está vacío, en la práctica la PC no ve los archivos almacenados. ¿Qué he dejado fuera? Los archivos seguramente están presentes en la tarjeta SD.
Marzo 23, 2016 en 8: 24 am #39476Sergio BertanaAdministrador del foroHiciste todo correctamente SlimLine Para garantizar que los datos no se corrompan cuando el sistema se apaga repentinamente, utiliza un sistema de archivos propietario que no es reconocido por la PC.
Entonces, para transferir datos de la tarjeta SD a la PC y / o viceversa, debe usar un cliente FTP (Tema) también puede utilizar el Explorador de Windows (Captura de pantalla).
Junio 17, 2016 en 8: 05 pm #39633AntoniopartícipeHabiendo actualizado una CPU vieja slimline modelo A a la última versión de firmware (167) disponible. He perdido completamente la carpeta del sistema que no puedo agregar de ninguna manera (en FTP con filezilla con administración de recursos, etc.) siempre me da acceso denegado o operación no permitida.
También conectarme con Toolly y tratar de formatear (incluso las dos únicas carpetas en Storage y SDCard) me da un parámetro incorrecto (claramente el comando no es incorrecto).
¿Hay alguna forma de restaurar todo el sistema de archivos?
-
autorPublicación
- Debe iniciar sesión para responder a este tema.