Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

7. Registro de desplazamiento

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 5 de febrero de 2026 por Victoriano G.

4 visualizaciones

Descargar la transcripción

En este capítulo aprenderás a utilizar los registros de desplazamiento y su equivalente 00:00:00
el nodo de realimentación, que tan útiles resulta en los programas y verás varios ejemplos 00:00:21
de utilización de los mismos. Al final del vídeo te agradecería me hicieras algún comentario 00:00:27
sobre qué te ha parecido. Si quieres que siga con el curso no dudes en suscribirte 00:00:31
a mi canal. Mi nombre es Aureo Cadenas y sin más, esto empieza ya. 00:00:36
Los registros de desplazamiento son variables locales disponibles para las dos estructuras iterativas que ya conoces, el bucle FOR y el bucle WHILE, que permiten transferir datos de una iteración a la siguiente como vas a ver seguidamente. 00:00:40
Como mínimo tienen un terminal de entrada, lado izquierdo, y otro de salida, situado en el lado derecho. 00:00:58
Se pueden incrementar el número de terminales a la entrada y cuantos más terminales se dispongan, más iteraciones se pueden almacenar, como verás más adelante. 00:01:05
Para crear un registro de desplazamiento, aquí tenemos un VI, te pones en el borde de esta estructura de bucle FOR, haces botón derecho, añadir registro de desplazamiento. 00:01:18
Automáticamente se te crea un registro de desplazamiento, pinchamos y arrastramos hasta colocarlo en el lugar que corresponda 00:01:30
y hacemos clic, botón izquierdo y lo colocamos en esta entrada de la función suma. 00:01:38
Y el otro lo cableamos a la salida, soltamos y ya tendríamos este registro de desplazamiento con su dato de tipo DBL listo para ser usado. 00:01:44
Bien, los registros de desplazamiento, como ya te he dicho, transfieren datos de una iteración a la siguiente 00:01:56
de forma que el terminal derecho almacena el dato al finalizar una iteración 00:02:03
y lo pasa al terminal de la izquierda quien proporciona el dato al comienzo de la siguiente iteración 00:02:08
Un registro de desplazamiento se adapta a cualquier dato que le conectes 00:02:14
Como puedes observar en la primera iteración se introduce un valor 0 inicial antes de que se inicie el ciclo while 00:02:18
y al ejecutarse el primer ciclo el resultado de la suma es 5 00:02:26
El registro de desplazamiento lo pasará a la entrada para que la segunda iteración lo tome como valor de inicio 00:02:32
el cual será sumado a la constante 5 y resultará el valor de 10 00:02:40
El registro de desplazamiento lo pasará a la entrada para que la tercera iteración lo tome como valor de inicio 00:02:46
El cual será sumado con la constante 5 y resultará el valor de salida 15 00:02:55
Y así sucesivamente hasta que se detenga el ciclo while al presionar sobre el botón stop 00:03:02
Los registros de desplazamiento se utilizan para muchas aplicaciones que necesiten memorizar datos como verás en los diferentes ejemplos que te voy a ir mostrando. 00:03:08
En este ejemplo se dispone de un bucle FOR que se repite 5 veces con un tiempo de espera entre iteración e iteración de 2 segundos, 2000 milisegundos. 00:03:18
Al comenzar el proceso de iteración el registro de desplazamiento es iniciado con el valor 0 en el terminal de la izquierda. 00:03:29
Como puedes ver se trata de un contador que cuenta de 5 en 5 unidades como te expliqué anteriormente. 00:03:36
Se dispone de un indicador dentro del bucle y otro indicador fuera que se actualizará cuando se terminen las 5 repeticiones. 00:03:42
El registro de esplanciamiento puede trabajar con cualquier tipo de datos siempre y cuando los datos que se conecten al terminal de entrada sean del mismo tipo de los que se conectan al terminal de salida. 00:03:52
Bien, aquí tienes el VI, vamos a ejecutarlo, pulsamos en RUN y vas viendo como se va incrementando el indicador de dentro y al terminar se actualiza el indicador de afuera. 00:04:03
¿De acuerdo? Bien, vamos a repetir el VI, voy a poner este a cero y vamos a ver, activando la ejecución resaltada, cómo se va a ir produciendo el desplazamiento de los datos. 00:04:23
Ahí tenemos, vas viendo cómo el dato que tengo aquí pasa otra vez aquí, ahí sale el 10, más 10, 15, el 15 vuelve a pasar aquí y termina. 00:04:39
En el diagrama de bloques en la paleta de funciones Programming, en el submenú Estructuras dispones del nodo de realimentación, que es otra representación del mismo concepto del registro de desplazamiento comportándose ambos de la misma forma. 00:04:59
En la imagen puedes ver la representación de un registro de desplazamiento y su representación equivalente mediante un nodo de realimentación 00:05:18
Observa que dispone de una entrada para inicializar el valor en su terminal de salida 00:05:27
El nodo de realimentación dispone además de una entrada de habilitación 00:05:33
Para poder usarla, haz clic derecho sobre el nodo y en el menú contextual selecciona Show Enable Terminal 00:05:38
si al terminal de habilitación le introduces el valor verdadero 00:05:47
el nodo de realimentación funciona como te he explicado 00:05:53
en cambio si le introduces el valor falso 00:05:57
el nodo de realimentación mantiene a la salida el último valor de la iteración o ejecución previa 00:06:00
hasta que el valor del terminal se establezca de nuevo el valor verdadero 00:06:08
Un nodo de reglamentación aparece automáticamente si cableas la salida de un sub-VI o una función a un terminal de ese mismo sub-VI o función. 00:06:13
Vamos a ver. 00:06:26
Bien, si consideramos el mismo VI de antes, eliminado el registro de desplazamiento, observarás lo siguiente. 00:06:28
Si yo me sitúo sobre este cable, aparece el carrete, pincho botón izquierdo, arrastro, suelto, me desplazo y giro para conectar ahí, ¿qué ocurrirá? Que va a aparecer un nodo de reglamentación, porque estoy uniendo una salida con una entrada. 00:06:35
Hago clic y automáticamente veis, si lo organizo un poquitín esto, vemos que el nodo de reglamentación está uniendo la salida con la entrada. 00:06:54
No obstante, lo más cómodo siempre sería utilizar el nodo de reglamentación colocándolo nosotros como queramos. 00:07:09
Para ello hacemos botón derecho en estructuras y voy a nodo de reventación y coloco el nodo donde yo quiera. 00:07:19
Por ejemplo, ahí me sitúo a la entrada, cableo a la salida, me sitúo a la salida del nodo y cableo a la entrada. 00:07:30
Bien, cableo esto ahí, aparece el carrete, hago clic en el botón izquierdo y me fijo ahí. 00:07:41
Pero observad, este terminal, para conectarlo ahí, si yo cableo, me sale una cruz. 00:07:54
Bueno, vamos a colocarnos encima de la cruz y vamos a ver qué nos dice. 00:08:02
Que hemos conectado dos terminales de diferente tipo. 00:08:06
efectivamente este terminal de aquí es un array y este indicador es de tipo escalar por lo tanto 00:08:09
lo que tengo que hacer es lo siguiente me sitúo hago botón derecho y que tengo que hacer el modo 00:08:16
de este túnel que hemos creado en la función del bloque for tengo que elegir el último valor no 00:08:24
que esté indesado que ya lo veremos más adelante con las con los array con las matrices y 00:08:32
automáticamente llame que me generaría el dato entonces aquí siempre sale el último dato sí 00:08:37
bien vamos a ejecutarlo para que veáis que funciona exactamente igual que el registro 00:08:43
de espaciamento tengo ahí el highlight activado pongo en modo rom empezaría a contar de acuerdo 00:08:49
y funciona exactamente igual que en el caso del registro de esparciamiento. 00:09:00
Bien, vamos con un ejemplo de aplicación del registro de esparciamiento. 00:09:10
En este programa, en este VI, voy a visualizar el nivel de un tanque 00:09:22
el cual conecto una tubería que lo alimenta de un líquido 00:09:26
y que se va a controlar el llenado mediante una electroválvula. 00:09:29
Asimismo, también se dispone de otra tubería de vaciado 00:09:34
también controlada por otra electroválvula. Bien, como puedes ver, voy a ejecutar el VI y tendría 00:09:37
que funcionar de la siguiente manera. Cuando activo la electroválvula de llenado, veremos al depósito 00:09:45
subir el nivel de líquido. Si la cierro, quedaría con ese nivel y si abro la válvula de vaciado, 00:09:53
tendría que disminuir el nivel y si la cierro, tendría que mantenerse. Esas serían las condiciones 00:10:02
que tendría que cumplir este v bien vamos a ver cómo hacerlo bien lo primero vamos a ver 00:10:06
qué elementos necesitas para construir este panel frontal del v lo primero es tener instalado el 00:10:13
módulo de sc el módulo de sc te va a permitir tener a disposición un conjunto de imágenes 00:10:22
como puedes ver aquí para interruptores etcétera vamos a buscar aquí los tanques vamos a ver aquí 00:10:32
tendréis todos estos tanques por ejemplo yo elijo este le podéis cambiar el color vais a opciones 00:10:41
símbolos y aquí pinchamos con el botón izquierdo y podemos seleccionar qué color deseamos de este 00:10:48
tanque, damos ok, pinchamos y arrastramos 00:10:57
y tendríamos ahí el tanque, lo podemos poner, cambiar 00:11:01
el color, luego 00:11:05
vamos a ver este indicador 00:11:08
que nos va a permitir visualizar el nivel del líquido, para ello 00:11:12
hacemos botón derecho, vamos a numeric 00:11:17
y aquí tenemos tanque 00:11:21
y lo único que haríamos sería situarlo 00:11:23
superpuesto por encima del tanque 00:11:28
tendríamos que cambiarle por ejemplo 00:11:31
el final de escala, ponemos 100 y ahí tendríamos 00:11:35
podemos cambiarle las dimensiones, etc. 00:11:40
bien, que más, las válvulas 00:11:43
estas válvulas son componentes que vamos a conseguir 00:11:47
botón derecho, vamos a DSC módulo y controles de dos dimensiones y válvulas de dos dimensiones. 00:11:51
Y aquí tendríamos todas las válvulas con la orientación que necesitemos. 00:12:02
Por ejemplo, pinchamos aquí y esta sería la válvula. 00:12:06
Podemos cambiarle de tamaño y ponerla al tamaño que queramos. 00:12:10
Este elemento, este terminal, puede ser un control o un indicador y tiene dos valores, falso y verdadero, es decir, es una variable booleana, es un control o un indicador booleano. 00:12:17
Si damos doble clic, lo veríamos aquí. Este sería, ahora mismo es un indicador, pero si le hacemos botón derecho y lo cambiamos a control, sería un control. 00:12:30
Y por último la tubería. Para la tubería lo mismo. En el módulo DSC vamos a 3D Controles y seleccionamos segmento múltiple. Lo colocamos aquí y este segmento lo podemos dimensionar y estirar. 00:12:41
Por ejemplo, si quiero quitar este trozo, botón derecho y lo que hago es borrar este segmento de tubería. 00:13:04
Lo puedo estrechar, lo puedo hacer más estrecho y cambiarle las dimensiones de esta brida. 00:13:12
Y nada, lo llevaría a donde quiera que quiero ahí. 00:13:25
Vale, por ejemplo, ¿qué estoy viendo? Estoy viendo que está por delante del depósito, quiero ponerlo por detrás, entonces lo que tendría que hacer sería seleccionar el dispositivo, venir aquí y mandarlo al fondo, ¿vale? 00:13:30
y estaría ahí colocada bien este dispositivo si lo seleccionó botón derecho encontrar terminal 00:13:48
este dispositivo sería este de aquí vale este de aquí yo ya los tengo aquí creados los diferentes 00:13:59
tubos los diferentes tuberías las tengo ahí creadas y les tengo puesto un valor falso para 00:14:07
que siempre tenga el mismo color vale porque esta tubería puede podemos hacer que tenga un color o 00:14:16
otro podemos cambiar el color vamos a borrar esto y vamos a pasar al v vamos a ver el v y que nos 00:14:24
encontramos sería este aquí lo primero tendremos el tanque el tanque le conectamos un registro 00:14:33
desplazamiento y la entrada vamos a ver que le vamos a colocar en el tanque vamos a colocarle 00:14:43
un selector y ese selector va a estar controlado por el ejemplo por la válvula de vaciado por una 00:14:50
entrada vamos a colocar este bloque y por la otra entrada vamos a colocar este otro bloque 00:14:58
vamos primero con este bloque lo que estamos haciendo aquí es que si la válvula vaciado es 00:15:04
verdadero estaríamos colocando a la salida el valor de esta entrada y en esta entrada que 00:15:12
viene de esta salida que también hay otro selector que estamos haciendo lo que estamos haciendo es 00:15:20
tomando el valor de la salida del tanque que tendría en el estado anterior le restamos uno 00:15:25
y lo que hacemos es que comparamos con 0 el nivel de tanque al restarle 1 es mayor que 0 si es que 00:15:37
si lo que tengo aquí el número que tengo aquí saldría en la salida y por tanto saldría en el 00:15:50
tanque y lo que hemos conseguido es disminuir una unidad el nivel del tanque que va a ocurrir si al 00:15:57
tomar el valor del estado del tanque y restarle 1 resulta ser menor que 0 esta igualdad de mayor 00:16:05
igual ya no se cumpliría y entonces este valor sería falso que estaríamos haciendo estaríamos 00:16:14
tomando este valor 0 y asignándole al nivel del tanque por lo tanto el tanque estaría siempre en 00:16:22
cero vacío por este otro lado si la válvula de vaciado es falso estaríamos tomando este valor 00:16:31
y lo estaríamos colocando a la salida es decir la válvula de vaciado la tengo cerrada no sale 00:16:39
nada del líquido del depósito podría entrar va a depender de este otro como veis repetimos el 00:16:46
mismo esquema pero ahora lo que hacemos es tomamos el valor que tiene el nivel del tanque le sumamos 00:16:54
1 y al sumar 1 preguntamos el nivel del tanque es ahora menor o igual a 100 si el tanque no está 00:17:03
lleno es decir si se cumple esta condición de ser menor o igual que 100 esto sería verdadero 00:17:14
y esta entrada aparecería la salida como está la válvula de llenado abierta no está cerrada 00:17:20
entonces lo que estaríamos haciendo es conservando el mismo valor que tiene el tanque y no lo 00:17:29
estaríamos incrementando de otra manera si la válvula de llenado está abierta es decir esto 00:17:35
es verdadero estaríamos incrementando en una unidad el nivel del tanque porque esta entrada 00:17:43
sería mayor que la anterior en una unidad esta salida lo mismo y el tanque valdría una unidad 00:17:49
más su nivel y esto estaría así hasta que llegue a 100 no hasta que llegue a 101 cuando llega a 00:17:56
101 preguntamos el nivel es menor o igual a 100 no por lo tanto esto sería falso tomaríamos el 00:18:05
valor de 100 y el nivel de depósito sería el 100%. Bien, pues esto es todo. Aquí tendríamos 00:18:15
el bucle Y, el pulsador de Stop y siempre recordar que tenemos que poner un tiempo de 00:18:24
espera para no sobrecargar la CPU donde estemos ejecutando el UI. 00:18:32
Etiquetas:
Robótica
Subido por:
Victoriano G.
Licencia:
Todos los derechos reservados
Visualizaciones:
4
Fecha:
5 de febrero de 2026 - 17:45
Visibilidad:
Público
Centro:
IES JULIO VERNE
Duración:
18′ 46″
Relación de aspecto:
1.79:1
Resolución:
1104x616 píxeles
Tamaño:
78.48 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid