Está en la página 1de 18

Programación Aplicada a la Industria

Programación Aplicada a la Industria


V Ciclo
LABORATORIO N°13: “Sincronización”

Integrantes:
o Huaman Acuña, Yhan pier
o Muñante Morales, Rogger
o Barraza Clares, Marco

Profesor:
Mendoza Ramírez, Jorge

Fecha de realización: 27– 11 - 23


Fecha de entrega: 04 – 12 - 23

2023-II
Programación Aplicada a la Industria

Índice
INTRODUCCIÓN ............................................................................................................ 3

¿POR QUÉ UTILIZAR PRODUCTOR/CONSUMIDOR? ......................................... 3

COMUNICACIÓN EN BÚFER .................................................................................. 3

ADQUISICIÓN DE DATOS Y PROCESAMIENTO ................................................. 4

COMUNICACIÓN EN RED ....................................................................................... 4

MANEJO DE MENSAJES EN COLA ........................................................................ 4

OBJETIVOS ..................................................................................................................... 5

DISEÑO ........................................................................................................................... 5

PROCEDIMIENTO ......................................................................................................... 6

EJERCICIO 1 ............................................................................................................... 6

Programa del ejercicio 1 adicional: .......................................................................... 9

EJERCICIO 2 ............................................................................................................. 14

CONCLUSIONES .......................................................................................................... 17

RECOMENDACIONES ................................................................................................ 17

OBSERVACIONES ....................................................................................................... 17

REFERENCIAS ............................................................................................................. 18

2
Programación Aplicada a la Industria

INTRODUCCIÓN
El patrón de diseño productor/consumidor se basa en el patrón maestro/esclavo y está
diseñado para mejorar el intercambio de datos entre múltiples ciclos que se ejecutan a
diferentes velocidades. El patrón productor/consumidor se utiliza para separar procesos
que producen y consumen datos a diferentes velocidades. Los ciclos paralelos del patrón
productor/consumidor se dividen en dos categorías; los que producen datos y los que
consumen los datos producidos.

Este artículo discute casos de uso común y beneficios para la arquitectura de


productor/consumidor y señala recursos para el uso de esta técnica en LabVIEW. Para
conocer más sobre cómo compartir información entre ciclos o para una guía paso a paso
y ejercicios para construir un ciclo productor/consumidor en LabVIEW, considere tomar
nuestro curso LabVIEW Core 2.

¿POR QUÉ UTILIZAR PRODUCTOR/CONSUMIDOR?

El patrón productor/consumidor le brinda la capacidad de manejar fácilmente múltiples


procesos al mismo tiempo al iterar a velocidades individuales.

COMUNICACIÓN EN BÚFER

Cuando hay varios procesos que se ejecutan a diferentes velocidades, la comunicación en


búfer entre procesos es extremadamente efectiva. Con un búfer lo suficientemente grande,
el ciclo productor puede funcionar a velocidades mucho más altas que el ciclo consumidor
sin pérdida de datos.

Por ejemplo:

considere que una aplicación tiene dos procesos; el primer proceso realiza la adquisición
de datos y el segundo proceso toma esos datos y los coloca en una red. El primer proceso
opera a tres veces la velocidad del segundo proceso. Si se utiliza el patrón de diseño
productor/consumidor para implementar esta aplicación, el proceso de adquisición de
datos actuará como productor y el proceso de red como consumidor. Con una cola de
comunicación (búfer) suficientemente grande, el proceso de red tendrá acceso a una gran
cantidad de datos que adquiere el ciclo de adquisición. Esta capacidad de almacenar datos
en búfer minimizará la pérdida de datos.

3
Programación Aplicada a la Industria

ADQUISICIÓN DE DATOS Y PROCESAMIENTO

El patrón productor/consumidor se usa comúnmente cuando se adquieren múltiples


conjuntos de datos para procesarlos en orden.

Supongamos que desea escribir una aplicación que acepte datos mientras los procesa en
el orden en que se recibieron. Debido a que poner en cola (producir) estos datos son
mucho más rápido que el procesamiento actual (consumir), el patrón de diseño
productor/consumidor es el más adecuado para esta aplicación. Esto permitirá que el ciclo
consumidor procese los datos a su propio ritmo, permitiendo que el ciclo productor ponga
en cola datos adicionales al mismo tiempo.

Considere; si el productor y el consumidor están en el mismo ciclo para esta aplicación,


la velocidad de adquisición de datos disminuye para coincidir con la velocidad de
procesamiento de datos. Por eso es beneficioso dividir su código por procesos,
adquisición de datos (Productor) y procesamiento (Consumidor).

COMUNICACIÓN EN RED

La comunicación en red requiere dos procesos para operar al mismo tiempo y a diferentes
velocidades: el primer proceso sondearía constantemente la línea de la red y recuperaría
paquetes, y el segundo proceso tomaría estos paquetes recuperados por el primer proceso
y los analizaría. En este ejemplo, el primer proceso actuará como productor porque está
proporcionando datos al segundo proceso, que actuará como consumidor. Esta aplicación
se beneficiaría del uso del patrón de diseño productor/consumidor. Los ciclos paralelos
de productor y consumidor manejarán la recuperación y el análisis de datos fuera de la
red, y la comunicación en cola entre los dos permitirá el almacenamiento en búfer de los
paquetes de red recuperados. Este almacenamiento en búfer se volverá muy importante
cuando la comunicación en red esté ocupada. Con el almacenamiento en búfer, los
paquetes se pueden recuperar y comunicar más rápido de lo que se pueden analizar.

MANEJO DE MENSAJES EN COLA

La arquitectura del controlador de mensajes en cola es una versión especializada de la


arquitectura de productor/consumidor. Las colas de datos se utilizan para comunicar datos
entre ciclos en el patrón de diseño productor/consumidor. Estas colas ofrecen la ventaja
de almacenar datos en búfer entre los ciclos de productor y consumidor.

4
Programación Aplicada a la Industria

OBJETIVOS
Utilizar la plantilla Productor/Consumidor (Evento) para crear una consola de cola de
impresión que envíe trabajos a una impresora y monitorice la cola de impresión.

DISEÑO
Los controles y los enums de definición de tipo necesarios para este proyecto ya están
creados. Su tarea es utilizar la plantilla del patrón de diseño Productor/Consumidor que
incluye LabVIEW para crear el VI de consola de impresión. La tabla 3-1 muestra los
controles e indicadores utilizados en el panel frontal del VI de consola de impresión.

Tabla 1.
Controles/Indicadores y descripciones del panel frontal

5
Programación Aplicada a la Industria

PROCEDIMIENTO
EJERCICIO 1

Slide: Este componente es una regla de posicionamiento, lo que permite mover un objeto
en un rango determinado.

Gauge: Esta etiqueta indica una brújula, que es un instrumento que mide la cantidad de
algo en una escala. En este caso, parece ser una medida de los fondos disponibles.

TF: Esta etiqueta indica un sistema de retroalimentación temporal que es un mecanismo


de control que compara una entrada actual con una entrada previa.

DBL: Estas etiquetas indican valores numéricos dobles. En este caso, parecen ser
cantidades.

STOP: Esta etiqueta indica una señal de detención, que es una señal que detiene la
ejecución de un proceso.

El sistema incluye componentes como reguladores, reguladores de posicionamiento y


señales de detención para garantizar un control preciso y eficiente del sistema.

6
Programación Aplicada a la Industria

Figura 1

Diagrama de bloque de programación convencional

Ahora se grafica en el panel frontal la cual la aplicación proporciona información sobre


el estado y su funcionamiento.

En el caso del panel frontal, la barra de estado muestra varios indicadores de estado, como
la memoria usada (5039 bytes). Además, también se muestra una barra de desplazamiento
horizontal que indica el nivel de uso de los recursos del sistema.

En el caro de “a” y “b” es una multiplicación asi como vemos en la imagen mostrada
cuando “a” es 2 y “b” es 2 es una multiplicación que se vera reflejada en el Gauge que da
4 asi mismo para otras multiplicaciones.

En resumen, el panel frontal proporciona información general sobre el estado actual de la


aplicación y permite al usuario obtener información detallada sobre los recursos
utilizados por la aplicación.

7
Programación Aplicada a la Industria

Figura 2

Panel frontal sobre programación convencional (2x2)

Figura 3

Panel frontal sobre programación convencional (4x2)

8
Programación Aplicada a la Industria

Programa del ejercicio 1 adicional:


En el caso de este ejemplo:

A fin de optimizar los recursos de computación, se propone emplear programación basada


en eventos.

Figura 4

Agregamos evento case

Figura 5

Ventana de stop

9
Programación Aplicada a la Industria

La sección de "Editar Eventos" de un Bloque de Esquema VI permite definir eventos


personalizados que pueden ser manejados por el VI. Estos eventos pueden ser usados para
implementar funcionalidades adicionales, como el inicio y la parada de tareas en segundo
plano.

En la sección "Editar Eventos", se puede ver una lista de eventos existentes. Para agregar
un nuevo evento, haga clic en el botón "+" y seleccione un evento en la lista desplegable.

En la sección "Eventos", se puede configurar la acción a realizar cuando se activa el


evento. Esto puede incluir ejecutar código LabVIEW, abrir otros VI y enviar mensajes.

Figura 6

Editar evento

10
Programación Aplicada a la Industria

Figura 7

Panel frontal de Event structure

El ejercicio simula el comportamiento de un dispositivo que produce respuesta a un


evento específico (por ejemplo, una intrusión). Para ello, utilice un registro de eventos
para almacenar y controlar eventos de usuario y una secuencia de tiempo para programar
eventos en el futuro.

Cuando ocurre el evento específico (por ejemplo, una intrusión), el registro de eventos se
actualiza con el evento y se envía una señal a la salida de tiempo del LIN para que se
inicie la secuencia de tiempo.

Este ejercicio ilustra cómo un sistema puede utilizar un registro de eventos y una
secuencia de tiempo para responder a eventos específicos y programar acciones en el
futuro

11
Programación Aplicada a la Industria

Figura 8

Comportamiento de un dispositivo.

La fuente de tiempo (TIM) genera señales de tiempo que se utilizan para marcar la
duración de la medición de datos de velocidad (DAQ).

La referencia de evento del usuario, es un bloque de memoria que almacena el valor de


un evento de usuario. En este caso, se utiliza para almacenar el estado del evento de
alarma.

El módulo DAQ (Adquisición de datos) se utiliza para recopilar datos de velocidad a lo


largo del tiempo. La señal de evento de alarma y la señal de tiempo se utilizan como
entradas para iniciar y controlar la medición de datos de velocidad

La alarma también activa la señal de evento stop_daq, que se utiliza para detener la
medición de datos de velocidad (DAQ).

12
Programación Aplicada a la Industria

Figura 9

Diagrama de bloque

En esta imagen vemos un Knob lo cual nos va indicar una máxima velocidad que seria 8
lo cual indican en el Knob.

En numeric sería el número de veces que se va realizar la operación de Knob esto nos
va indicar cuantas veces se realizo

13
Programación Aplicada a la Industria

Figura 10

Panel frontal del ejercicio

EJERCICIO 2

Esta vez desarrollaremos un VI para ilustrar la gestión de programación

Para este ejercicio utilizaremos los siguientes elementos:

14
Programación Aplicada a la Industria

Estos son los 4 elementos principales del programa, en este caso solo necesitamos uno de
ellos para generar el bucle de gestión de colas, pero crearemos dos bucles, uno para
transferir datos de tipo DBL y otro para transferir cosas de tipo booleano

15
Programación Aplicada a la Industria

El funcionamiento de este programa es el siguiente:

Primero creamos tipos de variables que tendrán administración de colas, una parte
booleana y otra DBL, podemos crearlas todas usando get queue elementos, luego creamos
un registro de desplazamiento con dos While y otro while sin registro de desplazamiento,
uno de ellos se llama productor while y otro consumidor. Esto se debe a que el productor
while tiene un elemento de fila, mientras que el consumidor tiene un elemento de fila. La
propiedad del elemento Enqueue es agregar elementos o datos a la cola creada, luego
almacenarlos mientras están en la memoria y pasarlos al elemento de la cola. El elemento
en cola es responsable de recuperar elementos y luego "eliminarlos", contando así y luego
continuando leyendo. Guion. En realidad, no se elimina, sino que se reemplaza, pero
según el método FIFO (primero en entrar, primero en salir).

16
Programación Aplicada a la Industria

CONCLUSIONES
• Se destaca la importancia de los componentes y etiquetas mencionados para
garantizar un control preciso y eficiente del sistema, lo cual es crucial para el
funcionamiento correcto de la aplicación.
• El texto muestra una evolución en el enfoque de programación, desde la
programación convencional hasta la propuesta de utilizar programación basada en
eventos. Esto sugiere una adaptación a prácticas más avanzadas y eficientes en el
desarrollo de software.
• La introducción de la Event Structure y su aplicación en la simulación de un
dispositivo proporciona una visión práctica de cómo se pueden utilizar conceptos
avanzados en situaciones del mundo real para mejorar el rendimiento y la
respuesta del sistema

RECOMENDACIONES
• Aunque se proporciona información detallada, algunas secciones podrían
beneficiarse de una redacción más clara y concisa. Esto ayudará a mejorar la
comprensión, especialmente para aquellos menos familiarizados con la
terminología técnica.
• La inclusión de ejemplos prácticos adicionales aumenta la comprensión de los
conceptos propuestos. Por ejemplo, brinde ejemplos específicos de cómo se
utilizan las etiquetas y los componentes en situaciones del mundo real.
• A medida que se introduzcan conceptos avanzados como la programación
orientada a eventos y las estructuras de eventos, explicaciones más detalladas y
ejemplos adicionales ayudarán a los lectores a comprender mejor sus usos y
beneficios.

OBSERVACIONES
• El texto explica en detalle los distintos elementos (como deslizadores, contadores,
TF, DBL y STOP) y sus funciones en el sistema. Se enfatiza la importancia de
estos componentes para garantizar un control preciso del sistema.

17
Programación Aplicada a la Industria

• Describir el panel frontal y proporcionar detalles sobre la información que


proporciona, como indicadores de estado y recursos utilizados. Además, se
brindan ejemplos de programación tradicional que utiliza la multiplicación y se
ofrecen sugerencias para utilizar la programación basada en eventos para
optimizar los recursos de la computadora.
• Introduce el concepto de estructura de eventos y su aplicación en programación.
Explica cómo agregar eventos, configurar acciones y muestra ejemplos de
dispositivos de simulación que utilizan registros de eventos y líneas de tiempo
para responder a eventos específicos.

REFERENCIAS
• Sitio web de National Instruments (NI): https://www.ni.com/
Documentación de LabVIEW en línea: https://www.ni.com/documentation/es/

• "LabVIEW for Everyone: Graphical Programming Made Easy and Fun" de


Jeffrey Travis y Jim Kring.
"LabVIEW Graphical Programming Cookbook" de Yik Yang.
"LabVIEW for Engineers" de Ronald W. Larsen.

• Plataforma de aprendizaje en línea de National Instruments: https://learn.ni.com/


Coursera y Udemy suelen tener cursos en línea sobre LabVIEW.

• Foro de LabVIEW en NI Community: https://forums.ni.com/t5/LabVIEW/ct-


p/3011
Stack Overflow: https://stackoverflow.com/questions/tagged/labview

• IEEE Transactions on Instrumentation and Measurement.


Journal of Systems Engineering and Electronics.

18

También podría gustarte