Activa JavaScript para disfrutar de los vídeos de la Mediateca.
7. Registro de desplazamiento
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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