Discusiones sobre Productos NI

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

Enum dinámico en una máquina de estados

¡Resuelto!
Ir a solución

Hola a todos,

 

soy algo nuevo en Labview. Lo que estoy intentado hacer es una máquina de estados que funcione a partir de unos parámetros introducidos previamente y guardados en un reporte Excel. 

Mi duda es la siguiente que no sé si se puede implementar o no, ¿se puede hacer que el enum que elige los estados sea dinámico en función de los datos que hay en el excel?

El vi (labview 11), excel y una imágen a modo de muestra de lo que quiero.

 

Muchas Gracias!!!

Descargar todos
0 kudos
Mensaje 1 de 7
5.236 Vistas

Si te he entendido bien, en el excel siempre va a haber tres estados con distintos datos, y según esos datos quieres que el enum elija un estado u otro ¿verdad?

 

Si esto es así, sí que se puede hacer, tal y como lo estabas haciendo, te faltaba configurar el estado 3 y que en el estado 2 la estructura case haga cosas distintas para true o para false (tal y como está ahora hace lo mismo).

 

Para leer los datos del excel, supongo que eso lo harás con las variables "estado 1" y "estado 2". Por si tu pregunta va por aquí una manera de hacerlo sería:

 

Untitled8.png

 

 

 

 

0 kudos
Mensaje 2 de 7
5.211 Vistas

Muy buenas,

 

¡¡ gracias por contestar !! Creo que no me expliqué bien. A la hora de crear el Excel, yo creo n estados (en el ejemplo que subí eran 3), y quiero que la máquina haga tantos estados como haya en el Excel ya sean 3, 5 o 100... no sé si se puede hacer....

 

gracias de antemano

0 kudos
Mensaje 3 de 7
5.202 Vistas
Solución
Aceptado por el autor del tema Erniti

Erniti .Si bien una maquina de estado típica se compone de un ciclo While, un Case y un Enum, este ultimo no deja de ser solamente una representación numérica que se ingresa a el Case, así visualmente en el Case veamos un estado ( texto ), así que en teoría usted programaticamente podría editar los estados ( después de leer el archivo Excel ), no de el control “Enum”, pero si de el control "Ring" que no es el mismo pero funciona parecido, utilizando "Property Nodes" con la propiedad "Strings[ ]" del control Ring y este cablearlo al control de estados de la maquina. El problema radica en que, lo que si es imposible de hacer programaticamente es la acción que se hace cuando queremos adicionar un estado ( "Click derecho sobre el case / Add case after" ) así que a pesar de que usted tenga cableado a la maquina de estados N estados. Por programa no se puede configurar las correspondientes acciones para cada uno de esos N estados y lo que va a hacer es que si el estado no esta configurado este se va a ir a el estado “Default” de la maquina.

 

 



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

Mensaje 4 de 7
5.184 Vistas

¡Muchas gracias por la respuesta!

 

La verdad que me has aclarado las dudas y a la vez me has dejado sin ideas jaja, ahora ya no se como implementar mi proyecto... A seguir pensando.. 

 

 

¡Muchas gracias de verdad!

0 kudos
Mensaje 5 de 7
5.167 Vistas

Tal vez algo como esto ayude, ya que mas o menos entendí lo que usted quiere hacer. El ejemplo básicamente lo que hace es escanear las columnas de una matriz que para su caso seria los datos que lee del archivo Excel y solo escanea la siguiente columna hasta que se compare con una columna que sea idéntica.

 

Escanear columnas.png

 

Saludos.

 



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

Mensaje 6 de 7
5.159 Vistas

¡¡¡De nuevo muchísimas gracias!!! ¡Me sirve de mucho! Estaba "pegándome" con el Ring y la opción de String, pero me daba el error que había comentado, que no me dejaba seleccionar el selector. Con el ejemplo que ha subido, me es de gran ayuda. Le comento, lo que quiero hacer es el control de un horno, el cual se autónomo (por eso de lo del excel) y me pasase de unos estados a otros, una vez hubiese llegado a los puntos deseados. Por eso me estuve informando de sobre las máquinas de estado. Esto de verdad que me sirve mucho, dado que hasta que la columna no sea igual no pasa al siguiente Estado (Columna).

 

¡Muchísimas gracias!!

0 kudos
Mensaje 7 de 7
5.152 Vistas