LabView - Guardar Datos en forma de texto

 
Vista:

Guardar Datos en forma de texto

Publicado por REGA (164 intervenciones) el 18/08/2010 17:24:13
HOLA.

Actualmente estoy guardando datos en forma de texto, pero cuando quiero guardarlo en un directorio y me equivoco cancelo la operacion. El problema es que me sale un mensaje cuando cancelo la operacion, parece mas bien un mensaje de error.

Existe alguna forma de guardar mis datos, que cuando me equivoque y cancele no salga este mensaje de error.

Gracias por tomarse su tiempo y espero sus comentarios.

Por cierto, trabajo con labview 8.5 y estoy utilizando un control path.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Guardar Datos en forma de texto

Publicado por eZ (194 intervenciones) el 18/08/2010 18:00:02
De acuerdo a lo que describes, pienso que estas utilizando el VI
Write character to file... y cuando seleccionas cancel del dialogo de Windows te retorna un mensaje desde una ventana emergente (pop up message)

Lo que tienes que hacer es sustituir ese VI por los siguientes
(posiblemente los nombres cambien un poco debido a la versionde LabVIEW)

1.-Open/Create/Replace File.vi
2.-Write File.vi
3.-Close file

Primer paso:
Coloca el Open/Create/Replace.vi y alimenta las entradas necesarias

Segundo paso:
Las salidas (refnum & error out) del Open/Create/Replace.vi interconectalas a las entradas del Write File.vi
Asi mismo alimenta la entrada de datos

Tercer paso:
De las salidad (refnum & error out) del Write file.vi interconcetalas al VI Close File

Crea un indicador del cluster de error

Cuando canceles no saldra la ventana emergente... pero si te regreresara un error cuando cancelas...
Mi sugerencia es que no ignores el error, pues lo que se trata es que tu aplicacion maneje de manera adecuada los errores

Retroalimenta la experiencia

Saludos
http://mylabviewtshare.wordpress.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datos en forma de texto

Publicado por REGA (164 intervenciones) el 18/08/2010 19:04:00
Gracias, otra duda finciona de forma simililar par un Spreadsheet.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datos en forma de texto

Publicado por eZ (194 intervenciones) el 18/08/2010 19:20:12
no...
No funciona exactamente igual.... debido a que el VI del Write to Spreadsheet File.vi
no tiene cluster de error de salida

PERO
Puedes hacer lo siguiente:

Abre el VI: Write To Spreeadsheet.vi
Ahora ve a File>> Save as >> Asignale un nombre nuevo... puede ser Write To Spreadsheet v2.0.0.vi

abre tu recien creado VI

Notaras que aparte de lo "apretado" que esta el código con respecto al exceso de etiquetas...
Busca el ultimo VI que se llama: General Error Handler.vi

Remuevelo completamente y coloca un indicador al cluster de error a la salida del VI (Close File+.vi)... aprovecha de una vez para agregarle un cluster de error de entrada al VI
Open/Create/Replace.vi

A tu nuevo VI asignale la entrada como salida del cluster de error desde icono / conector.

Consejo extra
No estoy seguro si en la version 8.5 el Write to Spreadsheet.vi es polimorfico o solo los datos a escribir tienen que ser forzosamente numericos (SGL)

Para saber si es polimorfico, Coloca el Write to Spreadsheet File.vi y alambrale un arreglo de 1D de tipo string a la entrada 1D data... no debera de marcarte ningun tipo de conflico en la conexion... si te marca conflico de conexion el VI no es polimorfico

Si el Write to Spreadsheet File.vi no es polimorfico y solo te acepta que los datos a escribir (2D data, 1D data) sean tipo SGL
Entonces puedes hacer otro VI (ya sabes: utilizando salvar como... asignale otro nombre)
Reemplaza el tipo de dato de las entradas 2D data y 1D data .... a tipo string.

Salvalo
Ahora tienes Write to Spreadsheet para datos de tipoo string

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datos en forma de texto

Publicado por REGA (164 intervenciones) el 18/08/2010 19:54:32
Hola
podris mandarme el vi o poner una imagen, la verdad es que me perdi:

puse una imagen para ver si queda así.

www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/08/18/Inh53905.jpg
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datos en forma de texto

Publicado por eZ (194 intervenciones) el 18/08/2010 20:55:14
Si, voy a tratar de enviarlo este mismo dia
aunque no te aseguro que quede hoy

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datos en forma de texto

Publicado por eZ (194 intervenciones) el 19/08/2010 01:44:46
Con respecto a la imagen esta bien

Solo asegurate de incluir la entrada de error y la salida de error al icono/conector
Si no lo haces no pasa nada "malo"
Tu VI continua funcionando, solo que esimportante manejar los errores en tus aplicaciones... y cuando cancelas desde el pop up de windows te regresa un error (el cual veias con el molesto y odioso pop up)

Ahora ya no tienes ese pop up, pero si te sugiero que saques el error para que en un futuro tomes desiciones en tu aplicacion de que hacer si el usuario cancela o cosas por el estilo

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias por tus comentarios

Publicado por REGA (164 intervenciones) el 19/08/2010 06:06:11
Ok muchas gracias y tamare en cuenta todos tus comentarios.

Aunque no entiendo muy bien todabia el funcionamiento de los errores y su aplicaion en los VI.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por eZ (194 intervenciones) el 19/08/2010 15:28:52
El manejo de errores es parte fundamental... pues siempre pueden ocurrir situaciones previstas o inprevistas

Dos ejemplos basicos

Se te pide hacer una aplicacion que trabaje interactuando con una base de datos, pero cuando la conexion a la base de datos no este disponible , que escriba en archivos locales (es un mero ejemplo, asi que lo mejor seria que si no hay conexion a la base de datos no trabaje... a menos que sea una aplicacion de escritorio y no una industrial... pero te repito solo es para que te des una idea de el manejo de errores)
Una vez que haya regresado la conexion que busque los archivos, los escriba e inmediatamente despues los borre

Imaginate si se origina algun error mientras esto sucede... seguramente tendras mas de un bug y hara cosas imprevistas e indeseadas

Asi que de entrada para saber si la conexion fué exitosa, utilizas el cluster de error.
Podriamos decir que si no te regreso error a la hora de la peticion para conectarte a la base de datos, entonces significa que fue exitoso.... si no se pudo conectar te regresara un error
Como veras asi es como puedes tomar las desiciones

Segudo ejemplo
Quieres escribir a un archivo de texto que esta dentro de un folder, pero alguien lo borró
Aunque puedes generar un archivo de texto si este no esta presente, aun asi tendras un error puesto que el folder donde deberia de ir (C:\folder\archivo.txt) no existe
Ahi tambien puedes utilizar el cluster de error para entonces crear el folder ssolamente si este no existe

Y una infinidad de ejemplos que se pueden citar

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por REGA (164 intervenciones) el 19/08/2010 20:05:51
Hola.

por lo que entendi el uso de los errores es un aviso de que "algo" no estabien, pero por lo que vi en el cluster, existe un numero de erro y una describcion de ello, pero existe algun vi de ejemplo donde pueda verlo mejor y como se desempeña la aplicacion cuando sucede un error.

La aplicación toma decisiones dependiendo del error, y lo hace dependiendo del numero de error o hay algo mas,y como se genera la rutina para ello?

Se que no se mucho de esto pero me gustaria entenderlo mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por eZ (194 intervenciones) el 19/08/2010 22:13:57
El cluster de error tiene 3 elementos
Status:boolean
Errorcode:Int32
Source:String

Si se genera un error:

Status = True
Errorcode = xxx dependiendo lo que haya sucedido (ejemplo error 7 esta relacionado cuando trata de abrir un archivo que no existe...)
Source = Es una breve explicacion del error

Quien toma las desiciones no es LabVIEW, sino TU el desarrollador
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por eZ (194 intervenciones) el 19/08/2010 22:26:06
Para tomar desiciones en base a el cluster de errores
Haz lo siguiente

En el panel forntal
Coloca un control de error cluster

En el diagrama a bloques
Coloca una estructura Case
Alambra el control directamente a la entrada de la estructura Case

En LabVIEW 8.5 la estructura case cambia de color y existen dos casos: Error & No Error

Entonces, ahi es donde puedes tomar las desiciones

Mete todo el codigo que quieras en el caso NO ERROR
y mete otro código en el caso ERROR

Corre la aplicación con el Status sin Error

Ahora ejecuta tu código con el Status Con Error


En versiones posteriores de LabVIEW (por lo menos se que LabVIEW 5.0) no puedes conectar directamente el cluster de error a la estructura Case

Lo que tienes que hacer es buscar el nodo : Unbundle by name en la libreria de los Clusters

Coloca ese unbundle by name y enseguida alambralo a el error cluster

Coloca el puntero de tu raton en una esquina y "alarga" el nodo

podras ver los 3 elementos que conforman el cluster de error y puedes obtener sus valores

Estos pasos los puedes hacer tambien inclusive en LabVIEW2009... pero es mas entendible el codigo si conectas directamente el cluster de error a la entrada de estructura CASE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por REGA (164 intervenciones) el 20/08/2010 00:13:09
Ok .

Gracias por las molestias, pero parece que ahora ya entendi el concepto.

Es necesario terner un control de errores en cada vi, o solo se utilizan cuando se genera un archivo o se abre?

Es que algunos complementos de los vi no tiene señal de error y al parecer en ellos no es necesario el control de errores.

Bueno parece que mis preguntas no paran y agradesco tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias por tus comentarios

Publicado por eZ (194 intervenciones) el 20/08/2010 01:33:19
Como buena practica de programación es bueno colocar el cluster de error (entrada / salida) y te puede beneficiar mas de lo que crees

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar