el 06-15-2011 04:08 AM
Hola a todos,
Tengo un problemilla casi de principiante, que es lo que soy jejeje. He realizado un programa para utilizarlo como una subrutina en un programa general, el cual hace un barrido de frecuencia. Al ejecutarlo por si solo el programa hace exactamente lo que quiero, pero a la hora de utilizarlo como un subprograma no puedo utilizar la salida que me devuelve.
El programa es sencillo, dos entradas y una salida, tal vez el problema este en la variable de salida,pero no encuentro el porqué.
Os adjunto el programa
el 06-15-2011 10:30 AM
Hola:
La estructura del programa que tienes no puede ser una subrutina, dado que tienes un bucle While. Además, la salida está también dentro de un bucle For.
El funcionamiento de la subrutina es tal que el programa principal pasa el control a la subrutina, ejecuta la subrutina (y el programa principal espera sin hacer nada), y una vez terminada la subrutina el valor de la salida la transfiere al programa principal.
En tu ejemplo, la salida va tomando valores diferentes en una sola ejecución, por lo que solo transferirá el último al programa principal.
Saludos... Moisés San Martín
el 06-16-2011 02:01 AM
Hola moisan,
Efectivametne, lo que tienes que hacer es eliminar el bucle While si solo lo quieres ejecutar una vez o si necesitas que itere un número determinado de veces, coloca una condición de parada para el bucle While que haga que se pare. Tambien puedes sustituirlo pro un bucle FOR y pasar el número de iteraciones como parámetro de entrada.
Por cierto, siempre que puedas evita utilizar variables locales. Hacen que el código sea menos leible y las modificaciones muchas veces son mínimas (adjunto modificación).
06-16-2011 03:25 AM - editado 06-16-2011 03:28 AM
Muchas gracias Sendia, pero esto sigue sin funcionar.
Os comento desde el principio cuales son las necesidades que tengo, a ver si me dais una solucion, que seguro que si.
Parto del programa que os adjunto, este programa sirve para medir corrientes, voltajes e impedancias en materiales, concretamente lo estamos utilizando para la caracterizacion de pilas SOFC. Resulta que este programa, (proporcionado por un fabricante) solo permite hacer las medidas de impedancia a una determinada frecuencia, el objetivo es hacer un barrido de frecuencia que vaya desde 0,1Hz a 1000MHz. Por eso porgramé el subVI que hacia el barrido, pero no consigo hacerle funcionar.
hay que tener en cuenta tambien que para que devuelva el valor de la medida hay que pulsar el boton measura, por tanto para cada valor de frecuencia habra que llevar una señal que "pulse" el boton.
¿alguna sugerencia?
Por cierto, lo que aparece con el subVI es solo para hacer la prueba de si funcionaba o no, la salida iria al a la entrada Frecuency
PS: se ha añadido el programa como si fuera un subVI, si hiciera falta el programa completo os lo mando.
Gracias!