Using SubVI in LabView EN/ES

Often we use the same code fragment for different programs, it can be useful to save the fragment in a text file and simply copy and paste it where it is needed instead of writing it each time.

When you need to use the same snippet several times in the same program there are functions that save you from having to write it for each use, this way you don't fill your program with repeated code.

Going a little further you can save the code snippet in something known as a macro and then that snippet can be called from a main program, like a program running inside another program or something like that.

LabView is a graphical programming language that also enjoys the use of macros which are called SubVI. In this article we will learn how to create and use them in other programs.


A menudo usamos el mismo fragmento de código para distintos programas, puede resultar útil guardar el fragmento en un archivo de texto y simplemente copiar y pegarlo donde se necesite en lugar de escribirlo cada vez.

Cuando se necesita usar el mismo fragmento varias veces en el mismo programa existen funciones que nos evitan tener que escribirlo por cada uso, de esta forma no llenamos nuestro programa con un código repetido.

Yendo un poco más allá se puede guardar el fragmento de código en algo conocido como macro y luego ese fragmento se puede llamar desde un programa principal, como un programa ejecutándose dentro de otro o algo asi.

LabView es un lenguaje de programación gráfico que también goza del uso de macros los cuales reciben el nombre de SubVI. En este artículo aprenderemos a crearlos y usarlos en otros programas.


Speaking of code simplification it is appropriate to say that a SubVI allows us to compress an entire program into a single block that can be used in other programs.

When using the SubVI we will see only one block instead of all the blocks and connections that compose it, this gives us more space and comfort to work in other programs, we can even use several SubVI in complex programs, this would allow us to make the development by parts (SubVI) and then integrate them all to obtain the desired product.


Hablando de la simplificación de código es oportuno decir que un SubVI nos permite comprimir todo un programa en un unico bloque que puede ser utilizado en otros programas.

Al usar el SubVI veremos solo un bloque en lugar de todos los bloques y conexiones que lo componen, esto nos brinda mayor espacio y comodidad para trabajar en otros programas, incluso podemos usar varios SubVI en programas complejos, esto nos permitiría hacer el desarrollo por partes (SubVI) y luego integrarlas todas para obtener el producto deseado.


SubVI parts

A SubVI is a program that we modify so that it can be used in others, when we create a simple program (like the ones we have done in the past) they are called VI (Virtual Instrument).

The difference between a VI and a SubVI is that the SubVI has inputs and outputs that allow it to be included as a block within a program.

Then, we must consider that when we are creating a SubVI we are designing a block of functions and not a program, therefore it is necessary to define the parts that compose it.

These parts are the internal functions it executes, the data input connections, the data output connections and the representative icon.


Un SubVI es un programa que modificamos para que pueda ser utilizado en otros, cuando creamos un programa simple (como los que hemos hecho en el pasado) se les llama VI (Virtual Instrument).

La diferencia entre un VI y un SubVI es que el SubVI tiene entradas y salidas que permiten incluirlo como un bloque dentro de un programa.

Entonces, debemos considerar que cuando estamos creando un SubVI estamos diseñando un bloque de funciones y no un programa, por lo tanto es necesario definir las partes que lo componen.

Estas partes son las funciones internas que ejecuta, las conexiones de entrada de datos, las conexiones de salida de datos y el icono representativo.


The first thing is to establish the function that will execute our block, the number of functions surely tends to infinite so it will depend on the needs of each one.

In my case I am always making programs that communicate LabView with a microcontroller through the serial port, let's say that I don't want to be placing the configuration blocks every time I want to make a program of this type.

I am going to create a SubVI that already has all this configuration built in. In other words the function of my block will be to configure the serial port and read/write data through it.


Lo primero es establecer la función que ejecutará nuestro bloque, el número de funciones seguramente tiende a infinito asi que dependera de las necesidades de cada quien.

En mi caso siempre estoy haciendo programas que comuniquen a LabView con un microcontrolador por el puerto serial, digamos que no quiero estar colocando los bloques de configuración cada vez que quiera hacer un programa de este tipo.

Voy a crear un SubVI que ya tenga toda esta configuración integrada. En otras palabras la función de mi bloque sera configurar el puerto serial y leer/escribir datos a través del mismo.



Now we must define the amount of data inputs and outputs that our block will have, in this case there are 5 inputs in the serial configuration block plus the write input through the port are 6 in total.

If I wanted to modify that all these data could be defined in the program where this block is used I would create input variables for each case, but in my case there are input data that are of fixed use, so I have set them as constants and these can not be modified in a program where the block is used.

So I have given priority to the selection of the COM port (we can not define a fixed port here) and the input data to be sent by the serial port, that makes a total of 2 inputs.

Regarding the output there is only one and it is the data that has been received, this data must leave the block to be used in a program. Now that we know this we go on to configure our small block of input and output data so that their number matches our needs.


Ahora debemos definir la cantidad de entradas y salidas de datos que tendrá nuestro bloque, en este caso hay 5 entradas en el bloque de configuración serial más la entrada de escritura a través del puerto son 6 en total.

Si quisiera modificar que todos estos datos pudiesen ser definidos en el programa donde se use este bloque crearía variables de entrada para cada caso, pero en mi caso hay datos de entrada que son de uso fijo, por lo cual los he establecido como constantes y estos no se podrán modificar en un programa donde se use el bloque.

De manera que he dado prioridad a la selección del puerto COM (no podemos definir un puerto fijo aquí) y la entrada de datos que serán enviados por el puerto serial, eso hace un total de 2 entradas.

Respecto a la salida solo existe una y es el dato que se ha recibido, este dato debe salir del bloque para poder ser usado en un programa. Ahora que sabemos esto pasamos a configurar nuestro pequeño bloque de entrada y salidas de datos para que su número coincida con nuestras necesidades.



To enable the inputs and outputs we must associate them to their corresponding variables, this is done by clicking on the representative box and then clicking on the variable we want to associate.


Para habilitar las entradas y salidas debemos asociarlas a sus variables correspondientes, esto se hace con un click en el cuadro representativo y luego un click en la variable que queremos asociar.



Con esto nuestro bloque está listo para ser usado, pero... no podemos ser tan cutres, vamos a personalizar un icono para nuestro bloque, ¿no?

Para ello podemos hacer clic con el botón derecho y entrar en un minifotoshop en el que podemos pasar más tiempo personalizando el icono que el tiempo que pasamos haciendo el programa o simplemente arrastrar una imagen y ya estará hecho. Todo depende del tiempo y la paciencia que cada uno se pueda permitir 😉.


Con esto nuestro bloque está listo para ser usado, pero... no podemos ser tan cutres, vamos personalizar un icono para nuestro bloque ¿verdad?

Para ello podemos hacer clic derecho y entrar en un miniphotoshop en el cual podemos pasar más tiempo personalizando el icono que el que duramos haciendo el programa o simplemente arrastramos una imagen y estará hecho. Todo depende del tiempo y la paciencia que se pueda permitir cada quien.😉



After it is ready we save it and we can import it from any diagram panel in a program we are creating.


Luego que esté listo lo guardamos y podremos importarlo desde cualquier panel de diagramas en un programa que estemos creando.



The use of SubVI can be extremely useful when developing complex programs where a large number of blocks are required, you can split the program with SubVI and make it simpler.

It was a pleasure to write for all of you once again, thank you for all the support you give me in each delivery, I remain attentive to the comments section.


El uso de SubVI puede ser de extrema utilidad cuando se desarrollan programas complejos donde se requieren un gran número de bloques, se puede fraccionar dicho programa con SubVI y hacerlo más simple.

Fue un gusto escribir para todos ustedes una vez más, agradecido por todo el apoyo que me brindan en cada entrega, quedo atento a la sección de comentarios.









https://images.ecency.com/p/3W72119s5BjW4PvRk9nXBzqrPWMsMTjNrXDPFFf12CAfRz5MY8jCm5vGDUj7o96hwAT3YCMBJgcTgcWmsqeuBbZL1YbmxtaV4gyfByenDkmAkgv6rkm9ZP.webp?format=webp&mode=fit



0
0
0.000
2 comments
avatar

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

Thanks for including @stemsocial as a beneficiary, which gives you stronger support. 
 

0
0
0.000