From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Comunidad NI México Discussions

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Como guardar datos de una maquina de estados en tiempo real?

¡Resuelto!
Ir a solución

Hola que tal, necesito saber como se gestionan gran cantidad de datos tomados de una maquina de estados, lo intente con txt pero en un solo archivo guarda 13 gygabytes y se vuelve inutil el archivo, y con tdms no logro organizar los datos, aunque son mas manejables, el problema es que el programa estaria guardando informacion por lo menos un año de operacion de un equipo. si alguien me podria dar un consejo se lo agradeceria mucho, gracias!

0 kudos
Mensaje 1 de 4
6.963 Vistas

Hola, has probado hacerlo en Access, y puedes ir haciendo cortes automáticos cada mes, para evitar que una misma tabla crezca durante todo el año. Saludos.

Mensaje 2 de 4
6.407 Vistas
Solución
Aceptado por el autor del tema lemusin

Que tal,

Una alternativa que podras tener es guardar los datos en un archivo binario, este metodo para almacenar los datos es ampliamente recomendada cuando necesitas respaldar altas cantidades de datos debido que de las diferentes maneras de almacenamiento esta es la que otorga el mayor rendimiento en cuanto a utilizacion de memoria vs information.

Para que los archivos no crezcan y/o lleguen a tener infinidad de datos puedes particionar la adquisicion de datos por tiempos determinados o por numero de datos recopilados, y en caso de necesitar mas rendimiento en el almacenamiento puedes comprimir cada uno de estos archivos con la finalidad de reducir el peso en memoria. (Esto se puede lograr desde labVIE)

De igual manera podrias realizar la gestion en SQL, una vez teniendo los datos y querer hacer una busqueda o un manejo especial para los datos puedes introducirlos a SQL y realizar la gestion que ncesitas.

Saludos

Mensaje 3 de 4
6.407 Vistas

Probablemente  guardar a un archivo CSV o txt (labview les llama spreadsheet files)  es tu mejor opcion, ya que otros formatos van a ser mas grandes o pueden de requerir de otros programas.... incluso TDMS es buena opcion pero  el truco esta en separar tu archivo en partes mas manejables (1 dia, 1 semana, 1 mes, etc)/

Para evitar agregar complejidad a tu maquina de estados, puedes separar la escritura a disco de la adquisicion.  Haz que tu maquina de estados meta la informacion a una queue en lugar de escribirla a disco.

Luego puedes hacer otra maquina de estados sencilla que corra de manera  concurrente (en el mismo VI o incluso en otro, ya que las queues pueden usarse entre procesos)  y saque los samples de la queue y los  escriba a disco,esta maquina de estos debe de ir llevando la cuenta de cuantas samples se van poniendo en cada archivo, o del tiempo que lleve corriendo y cada determinado tiempo cree un nuevo archivo.

Hay un ejemplo de  esta  arquitectura en los ejemplos de labview (se llama producer consumer o algo asi)

Mensaje 4 de 4
6.407 Vistas