262
Control Industrial Guía del Estudiante Versión 1.1 en Castellano Sobre la precisión de este texto: Se realizó un gran esfuerzo para asegurar la precisión de este texto y los experimentos, pero puede haber errores aún. Si usted encuentra errores o algún tema que requiera información adicional, por favor infórmelo a [email protected] , así podemos con-tinuar mejorando la calidad de nuestra documentación.

Industrial Control Version 1.0

Embed Size (px)

Citation preview

Page 1: Industrial Control Version 1.0

Control Industrial

Guía del Estudiante

Versión 1.1 en Castellano

Sobre la precisión de este texto: Se realizó un gran esfuerzo para asegurar la precisión de este texto y losexperimentos, pero puede haber errores aún. Si usted encuentra errores oalgún tema que requiera información adicional, por favor infórmelo [email protected], así podemos con-tinuar mejorando la calidad denuestra documentación.

Page 2: Industrial Control Version 1.0

Garantía Parallax garantiza sus productos contra defectos en sus materiales o debidos a la fabricación por un período de 90 días. Si usted descubre un defecto, Parallax según corresponda, reparará, reemplazará o regresará el valor de la compra. Simplemente pida un número de autorización de regreso de mercadería (Return Merchandise Authorization, “RMA”), escriba el número en el exterior de la caja y envíela a Parallax. Por favor incluya su nombre, número telefónico, dirección y una descripción del problema. Nosotros le regresaremos su producto o el reemplazo, usando el mismo método de correo que usted usó para enviar el producto a Parallax. Garantía de 14 días de regreso de dinero Si dentro de los 14 días en que usted recibió su producto, encuentra que no es conveniente para sus necesidades, puede regresarlo, recibiendo un reembolso. Parallax regresará el precio de compra del producto, excluyendo los costos de manipuleo y correo. Esto no se aplica si el producto a sido alterado o dañado. Derechos de Copia y Marcas Registradas Esta documentación tiene derechos de copia Copyright 1999 por Parallax, Inc. BASIC Stamp (Estampilla BASIC) es una marca registrada de Parallax, Inc. Si usted decide usar el nombre “BASIC Stamp” en su página web o en material impreso, debe agregar la aclaración: “BASIC Stamp es una marca registrada de Parallax, Inc.” Otros nombres de productos son marcas registradas de sus respectivos dueños. Desvinculación de Responsabilidad Parallax, Inc. no es responsable de daños por consecuencias, incidentes o daños especiales que resulten de cualquier violación de la garantía, bajo cualquier teoría legal, incluyendo pérdida de beneficio, tiempo, daño o reemplazo de equipo o propiedad y cualquier costo, recuperando, reprogramando o reproduciendo cualquier dato guardado o usado dentro de los productos Parallax. Parallax tampoco es responsable de cualquier daño personal, incluyendo vida o muerte, resultado del uso de cualquiera de nuestros productos. Usted tiene absoluta responsabilidad por la aplicación que desarrolle con el BASIC Stamp. Acceso en Internet Mantenemos sistemas de Internet para su uso. Estos pueden ser usados para obtener software, comunicarse con miembros de Parallax y comunicarse con otros clientes. Las rutas de acceso a la información se muestran a continuación: E-mail: [email protected] Web: http://www.parallaxinc.com y http://www.stampsenclase.com Lista de Discusión de BASIC Stamp en Internet Mantenemos dos listas de discusión por e-mail para gente interesada en el BASIC Stamp. La lista trabaja así: mucha gente se suscribe a la lista y luego todas las preguntas y respuestas son distribuidas a todos los suscriptos. Es una forma rápida, divertida y gratis de discutir temas sobre el BASIC Stamp y obtener respuestas a preguntas técnicas. Para suscribirse a la lista de BASIC Stamp encuentre la información en www.parallaxinc.com. Esta lista genera aproximadamente 40 mensajes diarios. También mantenemos una lista exclusiva para educadores que usan el BASIC Stamp en el aula. Usted puede unirse a esta lista en el sitio web http://www.stampsinclass.com. Esta lista genera aproximadamente 5 mensajes diarios. Si busca una lista de discusión en castellano puede encontrarla en http://www.cursoderobotica.com.ar.

Page 3: Industrial Control Version 1.0

Contenido

Página i

Contenido Prefacio ........................................................................................................................................... iii

Destinatarios y Guías para Profesores .......................................................................................................................... v Derechos de Copia y Reproducción ............................................................................................................................... v

Experimento 1: Diagramas de Flujo y StampPlot Lite .......................................................................... 6 Ejemplo 1: Ajuste de la Temperatura de la Ducha .......................................................................................................7 Ejemplo 2: Contador de Cinta Transportadora............................................................................................................9 Ejercicio 1: Diseño de Diagramas de Flujo...................................................................................................................13 Ejercicio 2: Circuito de LED que Titila ..........................................................................................................................13 Ejercicio 3: Datos Analógicos.........................................................................................................................................16 Ejercicio 4: Uso del StampPlot Lite ..............................................................................................................................19 Preguntas y Desafío ........................................................................................................................................................23

Experimento 2: Acondicionamiento de Señal de Entrada Digital......................................................... 25 Ejercicio 1: Interruptor Básico......................................................................................................................................30 Ejercicio 2: Rebote de Interruptores y Rutinas Anti-Rebote ...................................................................................35 Ejercicio 3: Disparo por Flanco .....................................................................................................................................38 Ejercicio 4: Interruptor Electrónico.............................................................................................................................44 Ejercicio 5: Tacómetro ...................................................................................................................................................50 Preguntas y Desafío ........................................................................................................................................................62

Experimento 3: Acondicionamiento de la Señal de Salida Digital ........................................................ 69 Ejercicio 1: Control Secuencial .....................................................................................................................................72 Ejercicio 2: Aumentando la Potencia del BASIC Stamp.............................................................................................83 Preguntas y Desafío ........................................................................................................................................................89

Experimento 4: Control de Procesos Continuos................................................................................. 95 Ejercicio 1: Control ON-OFF de Bucle Cerrado..........................................................................................................96 Ejercicio 2: Control a Lazo Cerrado vs. Lazo Abierto..............................................................................................111 Preguntas y Desafío ......................................................................................................................................................123

Experimento 5: Control a Lazo Cerrado ...........................................................................................125 Ejercicio 1: Estableciendo un Control a Lazo Cerrado............................................................................................128 Ejercicio 2: Control de Banda Diferencial .................................................................................................................134 Preguntas y Desafío ......................................................................................................................................................140

Experimento 6: Control Proporcional-Integral-Derivativo ............................................................... 143 Ejercicio 1: Excitación de Polarización ......................................................................................................................153 Ejercicio 2: Control Proporcional + Integral ............................................................................................................170 Ejercicio 3: Control Proporcional-Derivativo...........................................................................................................178 Preguntas y Desafío ......................................................................................................................................................186

Experimento 7: Control de Tiempo Real y Adquisición de Datos ........................................................189

Page 4: Industrial Control Version 1.0

Contenido

Página ii

Ejercicio 1: Control de Tiempo Real...........................................................................................................................192 Preguntas y Desafío ......................................................................................................................................................199 Ejercicio 2: Temporización por Intervalos ................................................................................................................199 Preguntas y Desafíos.....................................................................................................................................................203 Ejercicio 3: Adquisición de Datos (Data Logging)......................................................................................................204 Preguntas y Desafíos.....................................................................................................................................................219

Apéndice A: Stamp Plot Lite ........................................................................................................... 221 Apéndice B: Plantillas de Ventilador ................................................................................................ 231 Apéndice C: Hoja de Datos del SSR.................................................................................................. 233 Apéndice D: Hoja de Datos del LM34 ............................................................................................... 237 Apéndice E: Hoja de Datos del LM358 .............................................................................................. 243 Apéndice F: Hoja de Datos del DS1302 ............................................................................................ 249 Apéndice G: Listado de Componentes y Suministros........................................................................ 255 Apéndice H: Desafío de Incubadora Comercial................................................................................. 257

Page 5: Industrial Control Version 1.0

Prefacio

Página iii

Prefacio

El control de procesos industriales es un área fascinante de la tecnología electrónica y nada ha revolucionado esta área, como los microcontroladores. El microcontrolador ha agregado un cierto nivel de inteligencia a la evaluación de datos y un cierto grado de sofisticación en las respuestas a las perturbaciones del proceso. Los microcontroladores actúan como los “cerebros” de la maquinaria de fabricación y los dispositivos electrónicos de consumo.

El control de procesos involucra aplicar tecnología a una operación que transforma a la materia prima en un producto terminado. Casi todo lo que usted usa o consume, ha pasado por algún tipo de control de proceso automatizado en su producción. Los controles de procesos automatizados mejoran la productividad y la terminación del producto, mientras reducen los costos de producción.

Este texto intenta introducir los conceptos y características del control de procesos con microcontroladores, con experimentos prácticos sobre los siguientes temas:

a) Escritura de un programa partiendo de un diagrama de flujo, para realizar un control de

proceso secuencial. b) Uso de pulsadores, conteo de ciclos y procesos de E/S simples para trabajar con un sistema

“bajo control”. c) Control de proceso continuo comenzando con control on-off, continuando con banda

diferencial con múltiples niveles de acción. d) Control Proporcional Integral Derivativo (PID) de un pequeño sistema de calefacción de

escritorio. e) Control temporizado de los anteriores e introducción a la adquisición y almacenamiento de

datos (data logging). El hardware necesario en los experimentos para simular los procesos se ha mantenido en el mínimo

indispensable. Si bien el microcontrolador es el “cerebro” del proceso, no puede ser el “músculo”. Las aplicaciones reales necesitan que el microcontrolador lea y controle una gran variedad de dispositivos de entrada y salida (E/S). Se usan simples pulsadores montados en una protoboard para simular la acción de interruptores mecánicos y electromecánicos que se encuentran en la industria. Diodos emisores de luz visible (LEDs), pequeños ventiladores y resistores de baja potencia simulan guarda motores y equipamiento de alta tensión (HVAC). La información incluida en los experimentos le ayudará a comprender la interfaz eléctrica para conectar dispositivos de E/S del “mundo real” al BASIC Stamp.

La naturaleza física de los elementos en un sistema determina el modo de acción de control más apropiado. La dinámica de un proceso incluye un estudio de la relación entre las perturbaciones en las entradas y las correspondientes acciones en las salidas, de acuerdo a las variables medidas. Es difícil

Page 6: Industrial Control Version 1.0

Prefacio

Página iv

comprender la dinámica de un proceso sin ser capaz de “ver” esta relación. Para los autores, esto definió la necesidad de desarrollar una interfaz gráfica para el BASIC Stamp; culminando en la creación y distribución del StampPlot Lite. Este software permite graficar valores analógicos y digitales y almacenar datos. StampPlot Lite es usado en casi todos los experimentos, y le será especialmente útil cuando investigue los distintos modos de control de procesos. También se muestran las imágenes de las pantallas en el libro.

Este libro es una segunda edición donde hemos intentado mejorar a la primera. Algunos cambios y

modificaciones incluyen: a) Agregado de la 7ma sección, sobre control temporizado (basado en el tiempo). b) Reescritura de la sección de control PID para demostrar y explicar mejor la teoría. c) Agregado del circuito y teoría sobre sample-and-hold (muestra y retención) con FET y PWM. d) Reescritura de numerosos programas de ejemplo, incluyendo más diagramas de flujo y

explicaciones. Agradecemos a nuestros editores Ms. Cheri Barrall y Dale Kretzer, y por supuesto a Ken Gracey y a

Russ Miller de Parallax por sus revisiones y mejoras a este texto. Además, agradecemos al Dr. Clark Radcliffe de la Michigan State University por su revisión detenida. Muchos clientes de área educativa de Parallax nos proveyeron sus recomendaciones para esta segunda revisión.

Los autores son instructores en Southern Illinois University en Carbondale en el programa de Electronic Systems Technologies y además socios en la compañía de software SelmaWare Solutions. Visite el sitio web para encontrar ejemplos del uso de StampPlot Pro específicamente creados para los lectores de este libro.

Lo invitamos a enviarnos sus comentarios. Por favor contáctenos mediante nuestros sitios web y envíe todos los errores que encuentre en este libro a Parallax a la dirección [email protected], así podremos corregirlos en la próxima revisión. Will Devenport y Martin Hebel Southern Illinois University, Carbondale Electronic Systems Technologies http://www.siu.edu/~imsasa/est

-- y -- SelmaWare Solutions http://www.selmaware.com

Page 7: Industrial Control Version 1.0

Prefacio

Página v

Destinatarios y Guías para Profesores

Este texto se escribió para alumnos mayores de 17 años. No se tiene pensado realizar una Guía para los Profesores.. Resolver los experimentos y ejercicios de este libro, no representa una gran dificultad técnica, y puede lograrse con un poco de paciencia.

Derechos de Copia y Reproducción Los libros de Stamps en Clase tienen derecho de copia Parallax 2002. Parallax le garantiza a cada

persona derechos condicionales de descargar, duplicar y distribuir este texto sin nuestro permiso. La condición es que este texto o cualquier parte de él, no debería ser duplicada para uso comercial, resultando en gastos para el usuario, más allá del costo de la impresión. Es decir, nadie deberá lucrar por la duplicación de este texto. Preferentemente, la duplicación no tendrá costo para el estudiante. Cualquier institución educativa que desee producir duplicados para los estudiantes, puede hacerlo sin nuestro permiso. Este texto también está disponible en formato impreso por Parallax. Debido a que imprimimos el texto en cantidad, el precio al cliente es a menudo menor que el de una típica duplicación xerográfica. Este texto puede ser traducido a cualquier otro idioma, con el permiso previo de Parallax, Inc.

Traducción

Traducido y adaptado al castellano por Arístides A. Alvarez. Corrección y edición de la traducción:

Ana M. Lusi y Arístides L. Alvarez. Si encuentra errores en el texto, contáctese con nosotros, para poder mejorar la calidad de la documentación en castellano.

e-mail: [email protected] Sitios web en Castellano:

www.stampsenclase.com www.cursoderobotica.com.ar

Page 8: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 6666 • Control Industrial Versión 1.1

Un diagrama de flujo es una representación gráfica detallada que muestra la naturaleza y secuencia paso a paso de una operación. Se puede hacer un diagrama de flujo de cualquier tarea diaria, como conducir hasta el supermercado, o ir al colegio. ¿Cuántos pasos están involucrados en esta simple tarea? ¿Cuántas decisiones se toman hasta llegar al

supermercado o al colegio? Se puede hacer el diagrama de flujo de una operación formal, cocinar bizcochos por ejemplo, ya sea un proceso a pequeña escala en su cocina o a gran escala en una fábrica. Y por supuesto, se puede hacer un diagrama de flujo que tenga en cuenta los pasos y decisiones necesarios para que la tarea sea llevada a cabo por una computadora o un microcontrolador. Un proceso relativamente simple normalmente es fácil de comprender y fluye en forma lógica desde el principio hasta el final. En el caso de cocinar bizcochos, los pasos involucrados son bastante simples. Una receta normalmente requiere que se mezclen los ingredientes necesarios, se armen los bizcochos y se cocinen apropiadamente. Hay que tomar varias decisiones: ¿Están bien mezclados los ingredientes? ¿Está precalentado el horno? ¿Se cocinaron los bizcochos el tiempo necesario? A medida que el proceso se vuelve más complejo, sin embargo, es más difícil diagramar el orden de los eventos necesarios, para llegar a un final exitoso. Un programa en un BASIC Stamp puede tener muchísimos pasos y bifurcaciones if - then. Puede ser difícil seguir el flujo del programa, si solamente observáramos el código.

Un diagrama de flujo se construye con unos símbolos gráficos especiales que representan acciones, funciones, y equipamiento usado para lograr un resultado específico. La Tabla 1.1 muestra los símbolos y su uso.

Tabla 1.1: Símbolos de Diagramas de Flujo

Inicio / Fin indica el inicio y el final de un programa o proceso.

Proceso indica un paso que debe ser cumplido.

Entrada / Salida indica que el proceso requiere una entrada o provee una salida.

Experimento 1: Diagramas de Flujo y StampPlot Lite

Page 9: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 7777

Decisión indica que el proceso tiene la posibilidad de tomar distintas direcciones de acuerdo a una condición. Normalmente, tiene la forma de una desigualdad verdadera o falsa.

Línea de flujo es usada para mostrar la dirección del flujo entre símbolos.

Conector es usado para mostrar una conexión entre puntos de un mismo diagrama, o diferentes diagramas de flujo.

Subrutina o subproceso indica el uso de una rutina o proceso definido.

Ejemplo 1: Ajuste de la Temperatura de la Ducha Tomemos como ejemplo el diagrama de flujo de una tarea diaria: ajustar la temperatura de una ducha. El proceso de ajustar la temperatura del agua involucra varios pasos. Primero se abren las canillas de agua fría y caliente, esperamos un rato para que se estabilice la temperatura del agua, la probamos y tomamos algunas decisiones para realizar los ajustes necesarios. Si la temperatura del agua es demasiado fría, abrimos más la canilla de agua caliente y probamos nuevamente. Si el agua está demasiado caliente, se abre más la del agua fría. Una vez que realizamos cada ajuste, vamos al punto donde esperamos unos segundos antes de probar nuevamente. Por supuesto no tuvimos en cuenta el caso cuando las canillas están completamente abiertas. Se pueden agregar pasos en el proceso de ajuste de temperatura para corregir esta condición. La Figura 1.1 muestra un diagrama de flujo de este proceso. Este ejemplo demuestra un proceso que puede ser usado para ajustar la temperatura, pero ¿serían estos los pasos para un programa de un microcontrolador? ¡Seguro! Las canillas podrían ser ajustadas por servos, y la temperatura del agua podría determinarse con un sensor. En la mayoría de los casos, un proceso simple para nosotros puede ser bastante complejo para un microcontrolador. Tome el ejemplo de dar la vuelta a la esquina conduciendo un automóvil. ¿Puede hacer una lista de las entradas que procesamos mientras realizamos el giro?

Page 10: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 8888 • Control Industrial Versión 1.1

Figura 1.1: Ejemplo de la Temperatura de la Ducha

Page 11: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 9999

Ejemplo 2: Contador de Cinta Transportadora Miremos un caso real y desarrollemos un diagrama de flujo para él. En una fábrica, los materiales se empacan en cajas y se envían a una de dos bahías de carga, donde aguardan los camiones. Cada camión puede transportar 100 cajas. A medida que llegan las cajas, los trabajadores las colocan en el primer camión. Cuando el camión se llena, las cajas deben ser desviadas hacia el segundo camión, mientras el camión que está cargado se retira y deja su lugar para otro vacío. Además, en caso de emergencia o que exista un problema, debe haber una forma de detener la cinta transportadora. El aspecto físico de esta disposición se muestra en la Figura 1.2. El motor que mueve la cinta está rotulado como MOTOR1. El sensor que detecta el paso de las cajas está rotulado como DETECTOR1. La palanca que direcciona las cajas hacia uno y otro camión está rotulado DESVIADOR1. El botón de parada de emergencia está rotulado PARAR1.

Figura 1.2: Ejemplo del Contador de Cinta Transportadora

Page 12: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 10101010 • Control Industrial Versión 1.1

Hagamos una lista ordenada con una descripción breve de lo que debería ocurrir:

• Encender el motor de la cinta transportadora. • Contar las cajas a medida que pasan. • Cuando hayan pasado 100 cajas, mover el desviador a la posición opuesta. • Cuando se presione el botón de emergencia, detener la cinta.

Ahora que conocemos los pasos básicos involucrados, desarrollemos un diagrama de flujo para el proceso. Comencemos mirando el diagrama de flujo de la Figura 1.3. Observe la ubicación del recuadro de E/S que controla el botón de parada de emergencia, PARAR1. el botón se revisa en cada ciclo. ¿Qué sucedería si lo hubiésemos puesto después del recuadro de decisión que controla si se contaron 100 cajas? ¿Cuánto tiempo pasaría desde que se presiona el botón hasta que se detuviese la cinta? ¿Este diagrama de flujo describe todo lo que nuestro programa debe hacer? Definitivamente no, pero es un buen comienzo determinar el flujo general del proceso. Observe el recuadro de Proceso "Contar cajas con DETECTOR1". ¿Cómo se realiza esto exactamente? Necesitaríamos desarrollar un diagrama de flujo para describir solamente esta rutina. Si un proceso necesita más detalle, podríamos reemplazar el recuadro de Proceso con uno de Sub-Proceso como se muestra en la Figura 1.4.

Figura 1.4: Recuadro de Sub-proceso

¿Qué tan complicado es contar las cajas que pasan por el detector? Si DETECTOR1 se activa “yendo a nivel bajo”, ¿contamos cuando baja? Cuando el detector permanece en nivel bajo, ¿cómo evitamos que cuente nuevamente, la próxima vez que el programa pasa por ese punto? ¿Qué sucede si la caja vibra sobre la cinta transportadora, a medida que atraviesa el haz de nuestro detector? ¿Cómo evitamos contar varias veces la misma caja? Las respuestas pueden no ser tan simples como parece. Incluso cuando se realiza una tarea tan simple como contar las cajas que pasan, muchas variables deben ser tenidas en cuenta.

Page 13: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Figura 1.3: Diagrama de Flujo de la Cinta Transportadora

Control Industrial Versión 1.1 • Página Página Página Página 11111111

Page 14: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 11112222 • Control Industrial Versión 1.1

Otra consideración es la salida de nuestro detector. ¿Podemos medir directamente la salida usando una de las entradas del BASIC Stamp, o se necesita algún circuito para acondicionar la señal primero? Consideremos ahora una salida en nuestro ejemplo de la cinta transportadora. ¿Cómo encenderemos el motor? Es muy dudoso que la salida de 5 Volts, con escasos miliamperes del BASIC Stamp sea capaz de alimentar directamente un motor con suficiente potencia para mover una cinta transportadora. ¿Cómo acondicionaremos una salida del BASIC Stamp para controlar una carga de mayor corriente y tensión? Estos temas se irán desarrollando a medida que trabaje en los capítulos de este manual. Lo que nos parece simple de hacer como humanos, puede requerir algunos algoritmos sofisticados si queremos realizarlo con un microcontrolador. Usaremos los componentes electrónicos disponibles, un módulo BASIC Stamp, y la Plaqueta de Educación, para simular algunos procesos de control industrial complejos.

Page 15: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 13131313

Ejercicios

Ejercicio 1: Diseño de Diagramas de Flujo Dibuje un diagrama de flujo que encienda un calentador por debajo de 100 grados y lo apague por encima de 120 grados. Ejercicio 2: Circuito de LED que Titila Usaremos un circuito simple para demostrar el proceso de un diagrama de flujo y armaremos el programa que cumpla la tarea. Deberá armar el circuito que se muestra en la Figura 1.5. Se necesitarán los siguientes componentes para este experimento: (1) LED, verde (2) resistores 220-Ohm (1) resistor 10K-Ohm (1) pulsador (1) potenciómetro multivueltas de 10K-Ohm (1) capacitor 1 uF (varios) cables de interconexión

Figura 1.5: Ejercicio 2, Esquema del Circuito para LEDs que Titilan

Page 16: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 14141414 • Control Industrial Versión 1.1

El circuito que está armando consta de un pulsador como dispositivo de entrada y un LED como dispositivo de salida. Este es el proceso que queremos realizar: mientras el pulsador (PB1) esté presionado, hacer titilar el LED (LED1) cinco veces en 10 segundos. El diagrama de flujo de nuestro proceso se muestra en la Figura 1.6. Veamos algunos detalles del diagrama de flujo. Nuestro bucle principal es bastante simple. En el recuadro Inicializar Variables, definiremos todas las variables necesarias y fijaremos sus valores de salida iniciales (LED apagado), luego entra en un bucle hasta que se presione PB1, en ese caso llama a la subrutina, titilar_led1. Nuestra sub-rutina no comienza con "Inicio”, sino con el nombre del proceso, de forma que podamos identificarla. El diagrama de flujo describe un proceso que se repetirá cinco veces, encendiendo y apagando nuestro LED durante un segundo cada vez. Ahora que tenemos un diagrama de flujo que describa el proceso, ¿cómo hacemos el programa en PBASIC? Podemos sensar PB1 usando la instrucción in. Tenemos dos formas de llamar a nuestra subrutina. Si la condición es verdadera (1), podemos saltar a nuestra subrutina directamente usando la instrucción if-then. Esta podría tratarse igual que otra instrucción PBASIC llamada goto. Una vez ejecutada la subrutina, necesitaríamos saltar con goto hacia el bucle principal. O, si la condición es falsa (0), podríamos saltar hacia la rutina principal desde el if-then, y usar un comando gosub para saltar a la subrutina cuando la condición sea verdadera. Luego

Figura 1.6: Ejercicio 2. Diagrama de Flujo del LED que Titila

Page 17: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 15151515

podemos usar return al terminar de ejecutarla. En nuestra subrutina titilar_led1, necesitamos un bucle que se repita cinco veces. Las opciones para llevar a cabo esta tarea pueden incluir el uso de una variable que incrementaremos en cada repetición, o el uso de la instrucción for-next que haría todo el trabajo por nosotros. El diagrama de flujo describe los pasos generales involucrados en la realización del proceso. Se puede usar cualquier código siempre y cuando se complete exactamente el proceso descripto. El mismo diagrama de flujo puede ser usado con muchos lenguajes o sistemas y hasta incluso con humanos. El Programa 1.1 es una forma de escribir el código para nuestro proceso del LED titilante. Ingrese el programa en el BASIC Stamp Editor, descárguelo en el BASIC Stamp, y presione el pulsador del circuito que construyó. Si todo funciona correctamente, el LED titilará cinco veces después de presionar el pulsador. 'Programa 1.1, Ejemplo de LED que titila cnt var byte 'Una variable para contar pb1 var in1 'PB1 está en P1 led1 con 4 'LED1 está en P4 input pb1 'Configura a P1 como entrada output led1 'Configura a P4 como salida low led1 'Apaga el LED bucle: if pbl = 0 then bucle '¿No se presionó? Regresa al inicio gosub titilar_led1 'Si se presionó, ejecuta la subrutina goto bucle 'Después de regresar, salta al inicio titilar_led1: 'Subrutina para hacer titilar al LED for cnt = 1 to 5 ‘Configura el bucle para 5 repeticiones high led1 'Enciende el LED pause 1000 ‘Espera un segundo low led1 ‘Apaga el LED pause 1000 ‘Espera un segundo next ‘Repite el bucle hasta terminar las 5 repeticiones return ‘Regresa a la instrucción siguiente de donde fue llamada ‘la subrutina

Desafío de Programación Haga el diagrama de flujo y el programa para un proceso donde el LED deba titilar 4 veces por segundo, mientras el pulsador NO esté presionado.

Page 18: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 16161616 • Control Industrial Versión 1.1

Ejercicio 3: Datos Analógicos En muchos casos un proceso involucra el análisis y la respuesta a datos analógicos. Los datos digitales involucran dos posibilidades: encendido y apagado (1 y 0). Esto se puede comparar a los interruptores comunes de las luces de nuestras casas. La luz está encendida o apagada. Los datos analógicos, por el contrario, involucran un rango continuo de valores. Algunos ejemplos incluyen la regulación de la temperatura del agua que sale por la ducha o la temperatura de la calefacción. Hay varios métodos para ingresar datos analógicos en un microcontrolador, tales como usar un conversor analógico-digital (A/D) que convierte los valores analógicos en digitales, para que puedan ser procesados numéricamente. Otro método usado por el BASIC Stamp es una red resistor/capacitor (RC) para medir el tiempo de carga o descarga de un capacitor. Variando el valor de la resistencia, podemos modificar y medir el tiempo que necesita el capacitor para descargarse. En este experimento, la resistencia se modifica manualmente ajustando un resistor variable. Pero el dispositivo podría ser más sofisticado, como un fotorresistor que cambia su resistencia en función de la iluminación, o un sensor de temperatura. Volveremos a tratar datos analógicos en secciones posteriores, pero ahora realicemos un simple experimento de control de proceso usando un valor analógico. Agregue la red RC que se muestra en la Figura 1.7 al circuito del experimento anterior.

Figura 1.7: Esquema del circuito de Datos Analógicos agregado en el Ejercicio 3

Page 19: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 17171717

Referencia Rápida de Comandos PBASIC: RCTime RCTIME pin, estado, resultvariable

• Pin es el pin de E/S conectado a la red RC. • Estado es la tensión de entrada de ese pin. • Resultvariable es una variable normalmente de tamaño word que almacena el resultado del comando.

. El comando PBASIC que usaremos para leer el valor analógico del potenciómetro es rctime. Un segmento de código típico para leer el potenciómetro es el siguiente: high 7 pause 10 rctime 7, 1, pot

Para leer el potenciómetro, la rutina debe realizar los siguientes pasos:

• +5 V (HIGH=ALTO) se aplican a ambos terminales del capacitor para descargarlo. • El BASIC Stamp realiza una pausa suficientemente larga para asegurarse que el capacitor esté

completamente descargado. • Cuando se ejecuta rctime, el Pin 7 se vuelve una entrada. El Pin 7 leerá inicialmente un estado alto

(1) debido a que el capacitor descargado se comporta como un corto circuito. • A medida que el capacitor se descarga a través del resistor, cae la tensión del Pin 7. • Cuando la tensión en Pin 7 llega a 1.4 V (cayendo), el estado de la entrada pasa a ser bajo (0),

deteniendo el proceso y almacenando un valor en pot proporcional al tiempo requerido para cargar el capacitor.

A mayor resistencia, mayor tiempo necesitará el capacitor para cargarse; por lo tanto, mayor será el valor de pot. De esta forma, podemos adquirir un valor analógico de un dispositivo de entrada simple. Escribamos un programa de control de proceso que use este tipo de entrada. Nuestro proceso monitoreará la temperatura para encender un calentador a menos de 100 grados y lo apagará a más de 120 grados. El potenciómetro representará un sensor de temperatura y el LED indicará el comportamiento del supuesto calentador. Usaremos la ventana debug para mostrar nuestra temperatura y el estado del calentador. El valor máximo del potenciómetro, con esta combinación de resistor y capacitor, puede llegar a 5000, así que lo dividiremos por 30 para obtener un rango más razonable.

Page 20: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 18181818 • Control Industrial Versión 1.1

Ingrese y ejecute el Programa 1.2. Controle los valores de la ventana debug mientras ajusta el potenciómetro y observe especialmente qué ocurre cuando el valor sube por encima de 120 o cae por debajo de 100. 'Programa 1.2, Calentador simple LED1 VAR OUT4 'LED1 está en P4 RC CON 7 'Red RC en Pin 7 Temp VAR WORD 'Temp es una variable para almacenar resultados OUTPUT 4 'configura el LED como salida LED1 = 1 'Inicia encendido Principal: GOSUB LeeTemp 'Lee el potenciómetro como temperatura GOSUB ControlaTemp 'Controla el valor de la temperatura PAUSE 250 GOTO Principal LeeTemp HIGH RC 'Lee el potenciómetro PAUSE 10 RCTIME RC, 1, Temp Temp = Temp/30 'Ajusta el valor y 'lo almacena como Temp DEBUG "Temp = ",dec Temp, CR RETURN ControlaTemp: 'Si Temp > 100, o el calentador está encendido, 'controla si debería estar apagado IF (Temp > 100) OR (LED1 = 1) THEN ControlaApagado LED1 = 1 'Sino, enciende el calentador y muestra DEBUG "Calentador Encendido",CR ControlaApagado: 'Si Temp < 120 o el calentador está apagado, listo IF (Temp < 120) OR (LED1 = 0) THEN Listo LED1 = 0 'sino, lo apaga y muestra DEBUG "Calentador Apagado", CR Listo: RETURN

Desafío de Programación Modifique el proceso (diagrama de flujo y programa) para que el LED indique el ciclo de trabajo de un aire acondicionado entre 70 y 75 grados (Fahrenheit).

Page 21: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 19191919

Ejercicio 4: Uso del StampPlot Lite Si bien la ventana debug es muy útil para obtener datos e información del BASIC Stamp, puede ser difícil visualizar la información sin revisarla cuidadosamente. ¿La temperatura está aumentando o disminuyendo? ¿Qué tan rápido está cambiando? ¿En qué momento cambió la salida? ¿Alrededor de qué temperatura se repite el ciclo? ¡Bienvenido al StampPlot Lite! StampPlot Lite (SPL) fue desarrollado específicamente para este libro. SPL acepta datos desde el BS2 de la misma forma que la ventana debug, solamente que SPL interpreta los datos y realiza una de cuatro acciones dependiendo de la estructura de los datos:

• Un valor se dibuja en una escala analógica en tiempo real. • Un valor binario que comienza con % se dibuja como trazo binario en tiempo real. • Cadenas que comienzan con ! se interpretan como instrucciones de control y configuración para

controlar el SPL. • Cualquier otra cadena se muestra como mensaje en la parte superior del SPL.

La regla principal del SPL es que cada línea debe terminar con un retorno de carro (13 o CR). Por favor revise el Apéndice A para una explicación más profunda del StampPlot Lite. Si aún no ha instalado StampPlot Lite, descárguelo de http://www.stampsenclase.com, e instálelo en su computadora. Haga doble clic en el botón setup e instálelo en el directorio que usted elija. Miremos nuevamente el Programa 1.2, nuestro calentador simple, pero esta vez usando StampPlot Lite para poder visualizar mejor el proceso. El Programa 1.2 ha sido reescrito como Programa 1.3, para utilizar el StampPlot Lite (las líneas en negrita están agregadas / modificadas del programa 1.2). 'Programa 1.3; Calentador simple usando StampPlot Lite 'Configura StampPlot Lite PAUSE 500 DEBUG "!SPAN 50,150",CR 'Configura amplitud (span) 50-150 DEBUG "!TMAX 60",CR 'Configura para 60 segundos DEBUG "!PNTS 500",CR '500 puntos de datos por gráfico DEBUG "!TITL Control de Calentador Simple ",CR 'Título del formulario DEBUG "!SHFT ON",CR 'Permite que el gráfico se desplace DEBUG "!TSMP ON",CR DEBUG "!PLOT ON",CR 'Comienza a dibujar DEBUG "!RSET",CR 'Reinicia (borra) el gráfico LED1 VAR OUT4 'LED1 está en P4 RC CON 7 'Red RC en Pin 7 Temp VAR WORD 'Temp es una variable para almacenar resultados

Page 22: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 20202020 • Control Industrial Versión 1.1

OUTPUT 4 'configura el LED como salida LED1 = 1 'Inicia encendido Principal: GOSUB LeeTemp 'Lee el potenciómetro como temperatura GOSUB ControlaTemp 'Controla el valor de la temperatura PAUSE 250 GOTO Principal LeeTemp HIGH RC 'Lee el potenciómetro PAUSE 10 RCTIME RC, 1, Temp Temp = Temp/30 'Ajusta el valor y 'lo almacena como Temp DEBUG DEC Temp, CR 'Envía el valor de la temperatura DEBUG IBIN LED1,CR 'Envía el estado del LED RETURN ControlaTemp: 'Si Temp > 100, o el calentador está encendido, 'controla si debería estar apagado IF (Temp > 100) OR (LED1 = 1) THEN ControlaApagado LED1 = 1 'Sino, enciende el calentador y muestra DEBUG "Calentador Encendido",CR DEBUG "!USRS Calentador Encendido",CR 'Actualiza la barra de estado del SPL ControlaApagado: 'Si Temp < 120 o el calentador está apagado, listo IF (Temp < 120) OR (LED1 = 0) THEN Listo LED1 = 0 'sino, lo apaga y muestra DEBUG "Calentador Apagado", CR DEBUG "!USRS Calentador apagado",CR 'Actualiza la barra de estado del SPL Listo: RETURN Descargue el programa en su BASIC Stamp y siga estas instrucciones para usar el StampPlot Lite.

• Ejecute su StampPlot Lite usando el botón de Inicio de Windows y siguiendo la siguiente secuencia Programas/StampPlot/StampPlot Lite.

• Escriba y descargue el Programa 1.3 en su BASIC Stamp. • Cierre la ventana azul de debug del editor del BASIC Stamp. • Seleccione el puerto COM apropiado en el StampPlot Lite y haga clic en 'Connect.'

• • Reinicie el BASIC Stamp presionando el botón Reset de la Plaqueta de Educación. Ahora está listo

para usar este software único.

Page 23: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 21212121

En este punto debería ver como se dibujan los datos en la pantalla. Ajuste el potenciómetro de 10K-Ohm con sus dedos o un destornillador pequeño. La línea analógica muestra el valor del potenciómetro. El trazo digital de la parte superior muestra el estado del LED indicador. La Figura 1.8 es un ejemplo del gráfico que se obtuvo con este mismo circuito.

Figura 1.8: Gráfico del StampPlot Lite para el Ejercicio 4

Observe la relación entre el valor analógico y la conmutación de la salida digital. Use los controles del StampPlot Lite para familiarizarse con sus funciones y características. Analice el Programa 1.3 y observe los ajustes de configuración y los datos enviados al software utilitario. Vea el Apéndice A si tiene problemas para entender el funcionamiento del StampPlot Lite. Desafío de Programación Modifique el desafío del aire acondicionado del Ejercicio 2, para que use el StampPlot Lite. Configure su programa para transmitir datos aproximadamente cada 0,5 segundos. Calcule la cantidad de puntos de datos necesarios para llenar la pantalla en un tiempo máximo de 60 segundos. Ejecútelo y vea si funciona. ¡Ahora por diversión! Escriba y descargue el siguiente programa. El potenciómetro simula una ducha de un solo grifo (mezcladora). Ajuste la temperatura de la ducha para obtener 110 Fahrenheit constantes. Vea qué tan rápido puede

Calentador encendido

Page 24: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Página Página Página Página 22222222 • Control Industrial Versión 1.1

estabilizar la temperatura en ese valor. Presione el botón Reset de la Plaqueta de Educación e inténtelo nuevamente. 'PROGRAMA 1.4: Ajuste la ducha PuntoAjuste VAR BYTE TempAct VAR BYTE Dif VAR BYTE Temp VAR WORD RC CON 7 LED1 CON 4 PuntoAjuste = 110 PAUSE 500 DEBUG "!RSET",CR,"!SPAN 0,200",CR,"!TMAX 30",CR,"!PLOT ON",CR DEBUG "!TSMP ON",CR,"!MAXS",CR,"!PNTS 100",13 DEBUG "!USRS Ajuste la temperatura a ",DEC PuntoAjuste,CR Principal: HIGH RC PAUSE 10 RCTIME RC,1,Temp Temp = Temp/ 30 IF Temp > TempAct THEN MasAlta IF Temp < TempAct THEN MasBaja GOTO Display MasAlta: DIF = Temp - TempAct/5 TempAct = TempAct + Dif GOTO Display MasBaja: Dif = TempAct - Temp/5 TempAct = TempAct - Dif Display: LOW LED1 DEBUG DEC TempAct,CR IF TempAct <> PuntoAjuste THEN SkipBeep DEBUG "¡AJUSTADA!",CR,"!BELL",CR HIGH LED1 SkipBeep: PAUSE 250 GOTO Principal

Page 25: Industrial Control Version 1.0

Experimento 1: Diagramas de Flujo y StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 23232323

Preguntas y Desafío

1. Mencione una actividad humana cotidiana que involucre una decisión. Liste los pasos necesarios para

llevar a cabo ese proceso y las decisiones que deben tomarse.

2. Desarrolle un diagrama de flujo simple para el proceso de la Pregunta 1.

3. Mencione un ejemplo de un proceso electrónico en su hogar o escuela (tal como el control de un horno microondas, un reloj despertador, etc.). Desarrolle un diagrama de flujo simple que describa el proceso.

4. Desarrolle el diagrama de flujo y el código para los siguientes procesos: El potenciómetro simula un sensor de temperatura. Si la temperatura excede 100 grados Fahrenheit, enciende la alarma (LED). La alarma no se apaga hasta que se presiona el botón.

5. Modifique el programa de la Pregunta 4 de forma que use StampPlot Lite para mostrar la temperatura, el bit de alarma y el estado de la alarma.

Page 26: Industrial Control Version 1.0
Page 27: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 25252525

El control de procesos depende de la obtención de información de entrada, su evaluación y la ejecución de la acción correspondiente. En control industrial, la mayoría de las veces la información de entrada involucra el monitoreo de dispositivos de campo que admiten dos estados posibles. Un interruptor es un ejemplo común de dispositivo de dos estados. O está abierto o está cerrado.

Los interruptores pueden controlar una operación de tres formas. Una podría ser si conectamos directamente una carga al interruptor, controlando toda la corriente y la tensión de la carga. También podemos conectarlo a la entrada de un relé. En este caso, el interruptor controla con poca potencia el circuito de entrada del relé, mientras que la potencia es controlada por el circuito de salida. El estado encendido / apagado (on/off) del interruptor también podría proveer una señal digital a la entrada de un controlador programable. ¿Cuántos interruptores usó hoy? Y, ¿qué procesos afectó con la acción de dichos interruptores? La tabla 2.1 lista unas pocas posibilidades, comenzando por el principio del día:

Tabla 2.1: Interruptores que podría haber usado al principio del día.

Estado del Interruptor Resultado Primero podría presionar el botón “SNOOZE” de su reloj despertador.

La alarma se apaga y... ¡5 minutos más para dormir!

Luego, tropezando al entrar al baño, prende la luz. ¡Ay! Apaga rápidamente la luz porque lastima la vista. Ahora, en la cocina, prende la cafetera, presiona la tostadora de pan y programa su microondas. Abre el refrigerador y la luz se enciende.

El desayuno está listo. Y, ¿quién sabe si la luz del refrigerador realmente se apaga cuando se cierra la puerta?

Enciende el termostato. Calefacciona o refrigera, según su elección Enciende su TV, cambia de canal, sube el volumen. Los interruptores del frente del TV tienen la misma función

que los del control remoto que se transmiten por un LED infrarrojo.

Hace una llamada. Levanta el auricular y espera el tono. Presiona los botones del número de teléfono.

El interruptor que el auricular normalmente mantiene presionado ahora se encuentra en la posición “descolgado”. Cada interruptor del teclado genera una combinación de tonos específica.

Enciende su PC. Enciende el monitor. Clic con el mouse para revisar su e-mail.

Estos son los tres más obvios. Hay muchos más interruptores detrás de escena en su PC.

¡Ha presionado más de 15 interruptores y aún no ha dejado su casa!

Algunos de los interruptores listados en la Tabla 2.1 tienen control directo de la continuidad eléctrica de las cargas involucradas. Por ejemplo, el interruptor de la luz del baño controla el flujo real de la corriente que

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Page 28: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 26262626 • Control Industrial Versión 1.1

circula por las lámparas. El termostato es un ejemplo de un interruptor que opera un sistema de baja tensión para controlar un relé de la calefacción o aire acondicionado. La mayoría de los interruptores de la Tabla 2.1, probablemente proveen una señal digital de estado alto o bajo, que es monitoreada por un sistema de control electrónico. Es el estado de esta señal de entrada el que es evaluado para determinar el estado apropiado de las salidas involucradas. El botón "snooze" del reloj despertador no abre físicamente el circuito de la alarma. Cuando usted lo presiona, el cambio momentáneo de estado es reconocido por un circuito programable. Como resultado, el programa le ordena a la salida que se apague y agregue cinco minutos a la hora programada en la alarma. El botón "start" de su microondas no conduce en realidad la corriente que alimenta el magnetrón, la luz interior y el ventilador. Sin embargo, al presionarlo se genera una entrada que hace que el microcontrolador del horno active los relés que encienden esas cargas. A menudo pensamos en los interruptores como dispositivos mecánicos que establecen e interrumpen la continuidad entre dos puntos de un circuito. En el caso de los pulsadores manuales y los interruptores mecánicos mostrados en la Figura 2.1, este es exactamente el caso.

Figura 2.1: Varios Pulsadores Manuales e Interruptores Mecánicos

La Tabla 2.2 muestra la representación esquemática de varios interruptores industriales. Los símbolos se dibujan para representar el estado “normal” del interruptor. Estado normal se refiere al estado de reposo o

Page 29: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 27272727

sin activar del interruptor. Los pulsadores que están en el kit de componentes para este libro son Normalmente Abiertos (N.O. es la sigla en inglés). Al presionar el botón, se produce un corto circuito entre los contactos. La resistencia va desde el valor de circuito abierto que es cercano a infinito, a un valor muy cercano a cero.

Tabla 2.2: Representación Esquemática de Varios Interruptores Industriales

Mientras que el concepto de interruptor es muy simple, parece no haber límites para los diseños físicos que encontrará en aplicaciones de control industrial. Los interruptores también pueden ser diseñados como Normalmente Cerrados (N.C.); se encuentran cerrados en reposo y sus contactos se abren cuando son activados. Como técnico, programador, o diseñador de sistemas, debe estar al tanto de la posición Normal (de reposo) de un interruptor.

PulsadorPulsadorPulsadorPulsador Límite Límite Límite Límite MecánicoMecánicoMecánicoMecánico

NNNNormalormalormalormal----mentementementemente CerradoCerradoCerradoCerrado

NormalNormalNormalNormal----mentementementemente AbiertoAbiertoAbiertoAbierto

Interruptor deInterruptor deInterruptor deInterruptor deProximidadProximidadProximidadProximidad

Relé Relé Relé Relé

Page 30: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 28282828 • Control Industrial Versión 1.1

Entrada Digital (TTL, CMOS, ECL, etc.)? Los dispositivos lógicos se fabrican con diferentes procesos que hacen que operen a distintas tensiones. La hoja de datos del fabricante muestra los valores críticos para cada dispositivo. Los Valores Máximos Absolutos son las tensiones y corrientes que no deben excederse para evitar dañar o destruir al chip. Los pines de E/S del BASIC Stamp II no deberían exceder de 0,6 V o Vdd+0,6 V (5,6V) con respecto a Vss. La transición entre el estado lógico alto y bajo está especificada en las características de corriente continua (DC) de la hoja de datos. Una tensión de 0,2 Vdd (1 V en el BASIC Stamp II) se considera como un cero, y una de 0,45 Vdd (2,25 V) o superior, garantizará un estado alto. Hay un área gris entre estas dos tensiones donde se producirá la transición. Depende de la temperatura y la tensión de la fuente la ubicación del punto donde ocurrirá la transición. Normalmente se producirá a 1.4 Volts.

Figura 2.2: Esquemas de Interruptores Pulsadores

Figure 2.2a Figure 2.2b

Los pines de entrada del BASIC Stamp no detectan “cambios de resistencia” entre los contactos del interruptor. Estas entradas esperan niveles de tensión apropiados que representen un estado lógico alto o bajo. Idealmente, estas tensiones deberían ser +5 Volts para un nivel lógico alto (1) y 0 Volts para un nivel lógico bajo (0). Para convertir los dos estados resistivos del interruptor en entradas aceptables, se debe colocar en serie con un resistor conectado a la fuente de tensión de +5 Volts del BASIC Stamp. Esto forma un circuito divisor de tensión en el cual el estado resistivo del interruptor se compara con el valor resistivo del resistor de referencia. La Figura 2.2 muestra las dos posibilidades para nuestro simple interruptor pulsador N.O. (normalmente abierto). La Figura 2.2a entregará +5 Volts en el pin de entrada cuando es presionado. Cuando el interruptor está abierto, no tiene continuidad; por lo que no circula corriente a través del resistor de 10K y el pin de entrada queda conectado a masa.

Page 31: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 29292929

Resistor de Referencia: El resistor fijo de 10K-Ohm en las Figuras 2.2a y 2.2b es necesario para obtener niveles lógicos variables. Está conectado en serie con el interruptor. Su valor debe ser mucho mayor que la resistencia del interruptor cerrado y mucho menor que la resistencia del interruptor abierto. Cuando el interruptor está abierto en la Figura 2.2a, el resistor no recibe tensión y el punto de entrada es llevado a masa. En la Figura 2.2b, el circuito abierto hace que la entrada quede fijada a +5 Volts. Debe tener en cuenta estos resistores (pull-up y pull-down) siempre que trabaje con interruptores mecánicos o electrónicos.

En la Figura 2.2b, al cerrar el interruptor se pone a masa el pin de entrada. Cero Volts es un nivel lógico bajo. Cuando el interruptor se abre, no hay caída de tensión sobre el resistor de 10K-Ohm y la tensión en la entrada es +5, un nivel lógico alto. Los circuitos son esencialmente iguales, aunque los resultados obtenidos al operar sobre el interruptor son exactamente opuestos. Desde el punto de vista de la programación, es importante saber qué configuración se está utilizando.

Page 32: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 30303030 • Control Industrial Versión 1.1

Ejercicio 1: Interruptor Básico Para comenzar una investigación sobre la programación de pulsadores, conecte dos como se muestra en la Figura 2.2 en la protoboard de la Plaqueta de Educación. Conecte la configuración de activo alto (Figura 2.2a) en el Pin 1 de E/S y la salida de la configuración activo bajo (Figura 2.2b) al Pin 2. Observe cuál es cual. Como se dijo anteriormente, esto es importante. La Figura 2.3 muestra la fotografía de cómo podría quedar montado este circuito en la Plaqueta de Educación.

Figura 2.3: Fotografía del Montaje del Circuito de la Figura 2.2

Ejercicios

Page 33: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 31313131

El siguiente programa está escrito para usar el StampPlot Lite para mostrar el estado de los interruptores. El procedimiento será el mismo que para el Experimento 1, Diagrama de Flujo y StampPlot Lite. Primero, escriba el Programa 2.1. Puede omitir del programa todos los comentarios que comienzan con un apóstrofe (‘). 'Programa. 2.1: Detección del Estado de un Pulsador con StampPlot Lite DEBUG "!TITL Prueba de Pulsadores",CR ' Título para ventana StampPlot INPUT 1 ' Configura P1 como entrada INPUT 2 ' Configura P2 como entrada PB1 VAR IN1 PB2 VAR IN2 Bucle: PAUSE 100 ' Reduce velocidad del bucle DEBUG IBIN PB1, BIN PB2, CR ' Grafica el estado digital DEBUG DEC 0, CR ' Envía un 0 para lograr desplaz. de pantalla IF (PB1 = 1) and (PB2 = 0) THEN Ambos ' Verifica ambos botones IF PB1 = 1 THEN PB1_on ' Verifica si PB1 (activo alto) está presionado IF PB2 = 0 THEN PB2_on ' Verifica si PB2 (activo bajo) está presionado DEBUG "!USRS Estados normales - Ninguno presionado", CR ' Informa que ninguno está presionado GOTO Bucle PB1_on: ' Informa que PB1 está presionado DEBUG "!USRS Entrada 1 en nivel alto - PB1 está presionado ", CR GOTO Bucle PB2_on: ' Informa que PB2 está presionado DEBUG "!USRS Entrada 2 en nivel bajo - PB2 está presionado ", CR GOTO Bucle Ambos: ' Reporta que ambos están presionados DEBUG "!USRS PB1 alto y PB2 bajo - Ambos presionados", CR DEBUG "!BELL", CR ' Emite sonido. GOTO Bucle

Page 34: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 32323232 • Control Industrial Versión 1.1

Ejecute el programa. DEBUG mostrará el estado de los interruptores y el valor digital de las entradas. Cierre la ventana de DEBUG y ejecute StampPlot Lite. Seleccione el puerto COM apropiado y seleccione las casillas de Connect y Plot Data. Presione el botón Reset de la Plaqueta de Educación y los trazos de In1 e In2 deberían comenzar a notarse en la pantalla. Su ventana debería verse similar a la de la Figura 2.4. Presione los pulsadores para familiarizarse con su sistema. Luego observaremos cómo funciona el programa.

Figura 2.4: Pantalla Típica de StampPlot Controlando el estado de Pulsadores

El propósito de este programa es ejecutar cierto código de acuerdo al estado (presionado o no) de los pulsadores. Este ejercicio simple introduce varias consideraciones a tener en cuenta cuando se trabaja con entradas digitales, se programan varias instrucciones ifififif----thenthenthenthen, o se usan algunos operadores lógicos de PBASIC. Primero, in1 e in2 simplemente contienen el valor lógico de los pines de entrada: +5 V = 1 lógico y 0 V = 0 lógico. El pulsador activo alto PB1 entrega un 1 si está presionado. El pulsador activo bajo PB2 entrega un 0 cuando está presionado. El programa controla el estado “lógico” de las entradas; como programador, debe comprender como se relaciona esto con la condición de “presionado” o “no presionado” de los botones. Esto es evidente en la primer línea del programa donde se emplea un operador lógico AND.

Page 35: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 33333333

Cuando considera las configuraciones de los botones, tiene sentido lógico que si In1 entrega un estado alto e In2 un estado bajo, entonces ambos botones están presionados. Las acciones de los controladores industriales a menudo dependen del estado de muchos interruptores y contactos. Una revisión de los operadores lógicos de PBASIC, incluyendo AND, OR, XOR y NOT, puede ser conveniente para cumplir estos requerimientos usando un BASIC Stamp. Otro aspecto a observar en el Programa 2.1 es el flujo del programa. Las estructuras IF-THEN verifican una condición y si esta condición se cumple, entonces la ejecución del programa salta hacia la etiqueta. En este caso, la rutina a la que salta simplemente imprime el estado de los interruptores en el StampPlot Lite. En aplicaciones industriales, esta porción del programa podría causar una acción de salida apropiada. Dado que la última línea de cada subrutina es GOTO Bucle, la ejecución del programa salta al principio del bucle principal y cualquier parte de código que se encuentre por debajo de la instrucción IF-THEN que causó la bifurcación se ignora. El diagrama de flujo de la Figura 2.5 muestra como se ejecuta el programa.

Figura 2.5: Diagrama de Flujo del Programa 2.1

Page 36: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 34343434 • Control Industrial Versión 1.1

Si se presionan ambos botones, la comprobación “(PB1 = 1) and (PB2 = 0)” es verdadera. La ejecución del programa se dirigiría a la etiqueta AmbosAmbosAmbosAmbos. La condición “Ambos Presionados” se mostraría en la barra User Status Bar del SPL y su computadora emitiría un sonido. Luego, el programa salta de regreso a Bucle y verifica nuevamente los interruptores. Mientras ambos botones permanezcan presionados, el resultado de esta verificación será verdadero y se repetirá la misma parte del programa. Si se deja uno o ambos botones sin presionar, las siguientes tres líneas de código realizarán una verificación de condiciones similares. Al presionar PB1 se hace verdadera la condición “PB1 = 1”, la ejecución salta a la etiqueta PB1, regresando luego al principio del bucle; en ese caso “PB2 = 0” nunca se verificaría. ¿Esto es bueno o malo? En realidad no importa. Pero hay que tener en cuenta, que comprender el funcionamiento de múltiples instrucciones IF-THEN, puede ser una herramienta muy útil para aplicaciones de programación. Olvidarse de esto puede dar como resultado errores frustrantes y no muy fáciles de corregir en su programa. Por ejemplo, ¿que pasaría en nuestro programa, si la verificación de ambos botones presionados “IF (PB1 = 1) AND (PB2 = 0) THEN Ambos” se colocara a continuación de las verificaciones individuales de cada botón? Desafío Rápido Mientras ejecuta el programa, intente reproducir el estado de los botones mostrado en la pantalla de la Figura 2.4.

Page 37: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 35353535

Ejercicio 2 – Rebote de Interruptores y Rutinas Anti-Rebote En el ejercicio anterior, se empleó el nivel de estado estable del interruptor. La rutina informaba el estado del interruptor una vez por cada pasada del bucle. ¿Qué sucede si se desea presionar rápidamente un botón para lograr que algo suceda solamente una vez? Hay dos problemas que deberemos enfrentar. El primero es: ¿Qué tan rápido puede presionar y soltar un botón? Debe hacerlo en menos tiempo de lo que tarda en ejecutarse un ciclo de programa. El segundo problema es lidiar con el rebote del interruptor. Llamamos rebote del interruptor a la tendencia que tienen estos dispositivos a realizar varias acciones rápidas de encendido / apagado, en el instante que se activan o desactivan. El siguiente programa demostrará la dificultad asociada a realizar esta tarea. Se agregarán dos diodos emisores de luz como indicadores de salida en los pines Pin 4 y Pin 5. Conecte los LEDs como en la Figura 2.6.

Figura 2.6: Circuitos de LED Activo Alto a ser agregados al Circuito del Ejercicio 1

Ingrese y ejecute el programa de acuerdo al procedimiento para emplear el StampPlot Lite. El estado de los pulsadores y los LEDs se mostrará en la pantalla. Cuando PB1 es presionado, los LEDs parpadearán. ¿Puede ser usted lo suficientemente rápido como para hacerlos titilar solamente una vez? Inténtelo.

Page 38: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 36363636 • Control Industrial Versión 1.1

'Programa 2.2 Sin Anti Rebote PAUSE 500 DEBUG "!TITL Desafío de Velocidad",CR ' Título para ventana StampPlot DEBUG "!TMAX 25", CR ' Configura tiempo de gráfico (segundos) DEBUG "!PNTS 300", CR ' Configura cantidad de puntos INPUT 1 ' Configura P1 como entrada INPUT 2 ' Configura P2 como entrada OUTPUT 4 ' LED Verde Out4 = 1 ' Inicializa encendido OUTPUT 5 ' LED Rojo Out5 = 0 ' Inicializa apagado Bucle: DEBUG IBIN In1, BIN In4, BIN In5, CR ' Dibuja el estado digital. DEBUG DEC 0, CR ' Envía un 0 para desplazar gráfico IF In1 = 1 THEN Titila ' Controla el interruptor ' Agregar pause 5 si StampPlot se cuelga GOTO Bucle Titila: ' Invierte el estado de los pines TOGGLE 4 TOGGLE 5 GOTO Bucle Si StampPlot Lite no responde a los datos que envía el BASIC Stamp, debería agregar una pequeña pausa en la rutina Bucle:. Una PAUSE 2 o PAUSE 5 (incluso hasta 10 en computadoras muy lentas) aliviará los problemas que pueda encontrar en la transmisión de datos. Es casi imposible presionar y liberar el botón suficientemente rápido como para realizar la acción solamente una vez. Esto se muestra en la Figura 2.7. El bucle del programa se ejecuta demasiado rápido. Si usted es lento, el programa tiene la oportunidad de ejecutarse varias veces mientras el interruptor se encuentra presionado. Agregue a esto varios milisegundos de rebote y podría obtener muchos pulsos cada vez que presione el botón.

Figura 2.7: La Respuesta Lenta y el Rebote Pueden Ser un Problema

Page 39: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 37373737

Reducir más la velocidad de ejecución del programa puede ayudar a remediar el problema. (Si el programa anterior no trabajó correctamente con StampPlot Lite, una disminución en la velocidad de ejecución permitirá mejorar la transmisión serial de datos). Agregue una pausa de 250 milisegundos a la rutina Titila:. El interruptor tiene ahora 250 milisegundos para asentarse luego de ser presionado, para después retornar a su posición abierta. Incluya en su programa “PAUSE 250” para incrementar el tiempo del bucle y cancelar el rebote del interruptor. 'Programa 2.3 (modifique este segmento del programa 2-2 para que se vea como abajo) Titila: ' Invierte el estado de los pines TOGGLE 4 TOGGLE 5 PAUSE 250 ' Agregada para mejorar tiempo de establecimiento GOTO Bucle

Figura 2.8: Agregar una Pausa Hace el Desafío Mucho Más Fácil

Otorgando este tiempo de establecimiento, es mucho más fácil lograr que Titila: se ejecute una sola vez, al presionar rápidamente el botón. Esta técnica elimina el rebote del interruptor y le da tiempo suficiente para liberarlo antes del siguiente ciclo de programa. La PAUSE debe ser suficientemente larga para evitar estos inconvenientes. Sin embargo, si la PAUSE es demasiado larga, se podría presionar el botón sin que el microcontrolador lo note.

Page 40: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 38383838 • Control Industrial Versión 1.1

Ejercicio 3 – Disparo por Flanco Las rutinas de conteo presentan problemas adicionales en la programación de entradas digitales. El Ejercicio 2 usó el comando PAUSE para eliminar el rebote del interruptor, técnica que no se puede emplear en aplicaciones industriales tales como la cuenta de productos que se desplazan por una cinta transportadora. No solamente se trata de que el interruptor posee un rebote inherente a su construcción, sino que el producto a contar en sí mismo puede tener forma irregular, tambalearse, o detenerse durante algún tiempo mientras activa el interruptor. Podría haber solamente un producto, pero el interruptor podría abrirse y cerrarse varias veces. Además, si el producto permanece en contacto con el interruptor durante varios ciclos del bucle, el programa debería registrarlo una sola vez y no continuamente como en el Programa 2.2. El Programa 2.4 usa una variable bandera para crear un programa que responde a las transiciones iniciales de estado bajo a alto del interruptor. Una vez que se detecta este “flanco ascendente” en la entrada digital, Titilar: se ejecutará. Luego se activará la bandera para evitar otras ejecuciones hasta que el producto haya liberado el interruptor, regresando nuevamente al estado bajo. Ingrese el Programa 2.4. ' Programa 2.4: Detección del Flanco del Interruptor ' Cuenta y muestra la cantidad de pulsos en PB1. ' La cuenta se reinicia presionando PB2. PAUSE 500 DEBUG "!TITL Activación por Flanco",CR ' Título para la ventana StampPlot DEBUG "!TMAX 50",CR ' Configura tiempo de gráfico (segundos) DEBUG "!PNTS 300",CR ' Configura cantidad de puntos de datos DEBUG "!AMAX 20",CR ' Configura eje vertical (cantidad) DEBUG "!MAXR",CR ' Reinicia al alcanzar el máximo INPUT 1 INPUT 2 PB1 VAR In1 PB2 VAR In2 Band1 VAR bit ' bandera para PB1 Band2 VAR bit ' bandera para PB2 Contar VAR word ' variable tipo word para contar Band1 = 0 ' limpia banderas y contador Band2 = 0 Contar = 0 Bucle: PAUSE 50 DEBUG "!USRS Total = ",DEC Contar, CR ' Muestra valor contador DEBUG DEC Contar, CR ' Muestra el mismo valor como trazo analógico DEBUG IBIN PB1, BIN PB2,CR ' Grafica estado digital. IF PB1 = 1 THEN Cuenta ' Si se presionó, cuenta y muestra Band1 = 0 ' Sino, reinicia bandera en 0

Page 41: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 39393939

IF In2 = 0 THEN Borra ' Si PB2 es presionado, pone contador en 0 Band2 = 0 GOTO Bucle Cuenta: IF (PB1 = 0) OR (Band1 = 1) THEN Bucle ' Si deja de estar presionado O la ' bandera está activa, saltea Contar = Contar +1 ' Incrementa la cuenta Band1 = 1 ' Una vez contado, pone bandera en 1 GOTO Bucle Borra: IF(In2 = 1) OR (Band2 = 1) THEN Bucle ' Si no está presionado O la bandera ' está activa, saltea Contar = 0 ' Pone contador en 0 Band2 = 1 ' Evita que se borre nuevamente DEBUG "Cuenta reiniciada. Total = ", DEC Contar, CR GOTO Bucle Cuando PB1 es presionado, el programa salta a la rutina Cuenta. Observe que la primer línea de esta rutina verifica si el interruptor está abierto o la bandera Band1 está activada. Ninguna es verdadera en la primer pasada por el programa. Por lo tanto, Contar es incrementada, Band1 es puesta en 1 y el programa regresa a Bucle. Si PB1 aún sigue presionado, Cuenta se ejecuta nuevamente. Esta vez, sin embargo, con Band1 activada, la instrucción IF-THEN envía el programa de regreso a Bucle sin incrementar Contar nuevamente. Sin importar cuanto tiempo esté presionado el botón, solamente se contará una unidad por cada vez que se lo presione. Aunque en este caso solamente está incrementando el valor de la variable Contar, este programa podría ser parte de una rutina llamada por una aplicación industrial. La Figura 2.9 muestra como se vería este programa funcionando con SPL.

Page 42: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 40404040 • Control Industrial Versión 1.1

Figura 2.9: Programa 2.4 en SPL– Contador de Flancos

Desafío de Programación 1: Estacionamiento. Use los LEDs de los Pines 4 y 5, junto con los dos pulsadores, para simular un estacionamiento de automotores. Suponga que el estacionamiento puede ubicar 24 autos. El pulsado PB1 contará los autos a medida que ingresen al estacionamiento. El pulsador PB2 contará los autos a medida que salen. Escriba un programa que determine la cantidad total de autos estacionados, aumentando la cuenta con PB1 y disminuyéndola con PB2. Mantenga el LED verde encendido mientras haya lugar libre en el estacionamiento. Encienda el LED rojo cuando el estacionamiento esté lleno. Muestre continuamente cuántos espacios de estacionamiento hay disponibles en la ventana User Status (!USRS). También muestre continuamente la cantidad de autos estacionados. Desafío Adicional de StampPlot Lite Mantenga un registro de la cantidad de veces que el estacionamiento pasó de “Hay lugar“ a “Lleno” (vea el Apéndice A y el archivo de ayuda de StampPlot Lite para obtener información sobre el uso de la opción Save Data to File--Guardar Datos en Archivo).

Page 43: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Comando BUTTON: Rutina Anti Rebote de PBASIC Eliminar el r bote de los interruptores es una tarea común en programación. Parallax desarrolló dentro del juego de ins ucciones PBASIC2 un comando específico para trabajar con la detección de señal de entrada digital. El com

Para probar ' Programa ' Use BUTTO' Reinicie PAUSE 500 DEBUG "!TITDEBUG "!TMADEBUG "!PNTDEBUG "!AMADEBUG "!MAX EspTrabajo1EspTrabajo1EspTrabajo2EspTrabajo2 Contar VAR Contar = 0 Bucle: PAUSE 50

BUTTON pin

• P• E• R

re

• R• B• E• D

etr

Control Industrial Versión 1.1 • Página Página Página Página 41414141

ando se llama button. La sintaxis del comando se muestra en el cuadro siguiente.

esta función con nuestra rutina, cargue y ejecute el Programa 2.5.

2.5: Uso de BUTTON con StampPlot N para contar y mostrar la cantidad de veces que se presiona PB1. la cuenta total con PB2.

L Uso de BUTTON",CR ' Título de ventana StampPlot X 50",CR ' Configura tiempo de gráfico (segundos) S 300",CR ' Configura cantidad de puntos X 20",CR ' Configura eje vertical R",CR ' Reinicia cuando llega a máxima cant. De puntos

VAR byte ' Espacio de trabajo para BUTTON de PB1 = 0 ' Se debe limpiar la variable al inicio VAR byte ' Espacio de trabajo para BUTTON de PB2 = 0 ' Se debe limpiar la variable al inicio

word ' Variable para almacenar la cuenta

Referencia Rápida de Comandos PBASIC: BUTTON

, estadoactivo,retardo,repetir,bytevariable,estadosalto, dirección

in: (0-15) Número de pin de la entrada. stadoactivo: (0 or 1) Especifica el estado lógico que ocurre al activar el interruptor. etardo: (0-255) Especifica el tiempo de establecimiento del interruptor. Nota: 0 y 255 son casos especiales. Sietardo es 0, Button no elimina el rebote ni ejecuta autorepetición. Si es 255, Button elimina el rebote pero nojecuta autorepetición. epetir: (0-255) Especifica la cantidad de ciclos por repetición. ytevariable: Nombre de una variable tipo byte que sirve como espacio de trabajo para la instrucción BUTTON. stadosalto: Estado del pin en el que se pretende que salte. irección: Etiqueta a la que saltará el programa cuando se cumplan las condiciones.

Page 44: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 42424242 • Control Industrial Versión 1.1

BUTTON 1,1,255,0,EspTrabajo1,1,Cuenta ' Detección flanco sin rebote de PB1 BUTTON 2,0,255,0,EspTrabajo2,1,Borra ' Detección flanco sin rebote de PB2 DEBUG "!USRS Total = ", DEC Contar, CR ' Muestra el total en el recuadro Status DEBUG DEC Contar, CR ' Muestra el valor del contador con trazo analógico DEBUG IBIN In1, BIN In2, CR ' Grafica el estado digital. GOTO Bucle Cuenta: Contar = Contar +1 ' Incrementa Contar GOTO Bucle Borra: Contar = 0 ' Reinicia la cuenta a 0 DEBUG "Cuenta reiniciada. Total = ", DEC Contar, CR ' Muestra mensaje en el recuadro Text GOTO Bucle Revise la documentación sobre el comando BUTTON en el BASIC Stamp Programming Manual Versión 1.9 (en Inglés). Este es un comando muy útil para aplicaciones industriales. Experimente cambiando el tiempo de retardo de 50 a 100 y a 200. Vea si puede presionar el botón más de una vez, por cada vez que se ejecute una instrucción Cuenta. ¿Cuál es el riesgo de permitir demasiado tiempo de establecimiento en aplicaciones de “alta velocidad”? Guarde este programa; será modificado ligeramente en el siguiente desafío de programación. Fuentes de Entrada Digital Electrónicas Es muy común que las entradas digitales provengan de las salidas de otros circuitos electrónicos. Estas entradas pueden provenir de una variedad de fuentes electrónicas, incluyendo detectores de proximidad capacitivos o inductivos, optocuplas o interruptores ópticos, circuitos de acondicionamiento de señal de sensores, compuertas lógicas y salidas de otros microcontroladores, microprocesadores, o sistemas de control lógico programables.

Page 45: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 43434343

Hay varias cosas a considerar cuando conecta estas fuentes a un BASIC Stamp. Primero: “¿Son eléctricamente compatibles?”

1. ¿La tensión de la fuente de señal está dentro de los límites de entrada del BASIC Stamp?

2. ¿La referencia de masa del circuito es la misma que la del BASIC Stamp?

3. ¿Es necesario aislar un circuito ante la eventual falla eléctrica del otro?

La Figura 2.10 muestra varias posibilidades de interconexión eléctrica que podría necesitar. Una vez que se obtiene una señal compatible, aparece la siguiente interrogante, “¿El programa está en condiciones de responder a la señal?”

1. ¿El rebote del interruptor representa un problema?

2. ¿Qué tan rápidos son los datos? ¿Cuál es su frecuencia? ¿Cuál es el tiempo del pulso mínimo?

3. La acción se debe tomar en el nivel de estado estable de los datos o en su flanco ascendente o descendente?

Las técnicas vistas para tratar con el rebote y los disparos por flanco de los pulsadores manuales, también son válidas para los interruptores electrónicos.

Page 46: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 44444444 • Control Industrial Versión 1.1

Figura 2.10: Interfaz de Electrónica de Entrada al BASIC Stamp

(a) Las salidas de circuitos TTL y CMOS alimentadas desde una fuente de +5 Volt pueden ser aplicadas directamente a los pines de entrada del BASIC Stamp. Si los dos sistemas están alimentados desde los mismos 5 Volts, perfecto. Sino al menos las masas deben ser comunes (conectadas juntas).

(b) Los dispositivos de baja tensión (+3 V) pueden ser conectados usando un 74HCT03 u otra compuerta de colector abierto similar con un resistor de pull-up a la fuente de +5 Volt del BASIC Stamp. Alimente el chip con su fuente de baja tensión y una las masas.

(c) Las señales digitales de alta tensión pueden conectarse mediante un buffer 74HC4050 o un inversor 74HC4049 alimentado con +5 Volts. Estos dispositivos pueden manejar con seguridad entradas de hasta 15 Volts. Nuevamente, las masas deben ser comunes.

(d) Una configuración de amplificador operacional trabajando como comparador con referencia puede establecer una salida Alta / baja de acuerdo a si la entrada analógica está por encima o debajo de una tensión de referencia. El LM358 es un amplificador operacional cuya salida puede ir desde masa hasta cerca de Vdd con una alimentación simple de +5 Volt. Lo usaremos en la próxima aplicación.

(e) Se puede usar una optocupla para conectar diferentes niveles de tensión al BASIC Stamp. El resistor del LED limita la corriente a un nivel seguro, mientras que permite un nivel de luz suficiente para saturar el fototransistor. El circuito de entrada puede ser aislado totalmente de la fuente de alimentación del fototransistor del BASIC Stamp. Esta aislamiento provee protección efectiva de cada circuito, en el caso que el otro falle.

Ejercicio 4: Interruptor Electrónico

Page 47: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 45454545

Interruptor de Proximidad? Los interruptores de proximidad detectan la presencia de un objeto, sin contacto físico. Los interruptores de la figura representan las tres principales categorías:

Inductivo, Capacitivo y Óptico

Los interruptores electrónicos que proveen detección “sin contacto” son muy populares en aplicaciones industriales. Activación sin contacto físico significa que no hay que usar contactos eléctricos ni partes móviles. El pulsador que usamos anteriormente serviría en una aplicación donde se lo presionara varios miles de veces. Sin embargo, en algún momento su resorte se gastará, o sus contactos de desgastarán u oxidarán, hasta el punto que deje de ser conveniente usarlo. Los interruptores eléctricos industriales utilizan uno de tres principios.

• Los interruptores de proximidad inductivos miden el cambio en el rendimiento de un oscilador, cuando objetos de metal se acercan. A menudo los objetos de metal absorben energía mediante corrientes parásitas, lo que hace que el oscilador se detenga.

• Los interruptores de proximidad capacitivos miden un incremento en la capacidad cuando se les acerca cualquier tipo de material. Cuando el incremento es suficientemente grande, causa que el oscilador interno comience a oscilar. El circuito se dispara y el estado de la salida cambia.

• Los interruptores ópticos detectan la presencia o ausencia de un angosto haz de luz, a menudo en el rango infrarrojo. En interruptores ópticos reflectivos, el haz de luz podría reflejarse en un objeto móvil hacia el sensor óptico del interruptor. Otros interruptores ópticos se configuran de forma que un objeto bloquee el haz de luz que va desde la fuente de luz hasta el receptor.

La salida de un interruptor electrónico es una señal de dos estados. Su etapa final puede ser cualquiera de las mostradas en la Figura 2.10. Como técnico y desarrollador de aplicaciones, debe considerar la naturaleza de este circuito de señal y condicionarlo para la entrada digital del microcontrolador. La hoja de datos del fabricante le dará información sobre la tensión de operación del interruptor y conexiones de cargas típicas. Aunque puede tomar el pin de entrada digital del BASIC Stamp como una carga, el interruptor electrónico puede necesitar un resistor de referencia como se empleó en la Figura 2.2. Normalmente, la salida del interruptor de proximidad estará muy cerca de 0 Volts en un estado y muy cerca de la tensión de fuente en el otro. Siempre es una buena idea medir la tensión de los estados del interruptor con un voltímetro, antes de conectarlo a un microcontrolador desprotegido. Si las tensiones de salida no están dentro de los límites compatibles

con el BASIC Stamp, necesitará usar alguno de los circuitos mostrados en la Figura 2.10 como interfaz apropiada.

Page 48: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 46464646 • Control Industrial Versión 1.1

El ejercicio siguiente se enfoca en el diseño y montaje de un interruptor óptico. Usaremos este interruptor para contar y detectar objetos. Luego el interruptor se usará como tacómetro, para determinar las RPM. En la Figura 2.11, el diodo emisor de luz infrarroja (LED) y el fototransistor infrarrojo forman un par emisor / detector acoplado. La luz emitida por el LED causará una corriente en el colector del fototransistor. Un aumento en la corriente de colector lleva al fototransistor hacia la saturación (masa). Si se evita que la luz llegue al fototransistor, este se va hacia el corte y la tensión de colector aumenta positivamente. Estas condiciones de luz y oscuridad normalmente no generarán una señal TTL válida en el colector del transistor. Si aplicamos esta señal a la entrada de un comparador con referencia, podremos establecer un punto de ajuste entre las dos condiciones. La salida del comparador será una señal lógica compatible con TTL. Su nivel de salida depende de qué lado del punto de ajuste, se encuentra la salida del fototransistor. El amplificador operacional LM358 es una buena elección para esta aplicación. Puede operar con una fuente simple de +5 Volt y sus tensiones de salida son casi iguales a las tensiones de la fuente de alimentación +5 y masa. Construya cuidadosamente el circuito de la Figura 2.11 en la protoboard. Montar los componentes cerca de un extremo como se muestra en el diagrama, nos permitirá agregar más componentes en los próximos ejercicios. Haga un doblez de 90o en las patas del LED y del fototransistor para que queden paralelos a la mesa. El fototransistor y el LED deberían ponerse apuntando hacia fuera del borde de la protoboard. El LED en la Figura 2.11 emite continuamente un haz de luz infrarroja. Con el LED y el fototransistor lado a lado, hay poca o ninguna luz entrando al fototransistor debido a que no hay nada reflectivo frente a él. Si un objeto se aproxima al par, parte de la luz del LED se reflejará hacia el fototransistor. Cuando la luz lo alcanza, la corriente de colector fluirá y su tensión caerá. Con esta configuración, la reflexión proveniente de un objeto que pasa por delante del par, será detectada por el fototransistor. La cantidad de luz reflejada hacia el sensor depende de la reflectividad óptica del objeto y de la geometría del haz de luz. En nuestro caso intentaremos determinar la presencia de un objeto blanco y plano. Con el emisor y el detector montados lado a lado, intentará la detección del objeto a una distancia de dos o tres centímetros. Debe medir un par de tensiones para calibrar la presencia de un objeto. Coloque un voltímetro entre el emisor y el colector del fototransistor. Mida la tensión cuando no hay ningún objeto frente al sensor. Anote este valor en la Tabla 2.3. Luego, acerque y aleje del par un trozo de papel blanco, mientras observa la variación de tensión. A medida que el papel se acerca al par IR, la luz reflejada incrementa la corriente de colector y lleva al transistor hacia la saturación (bajo). Anote la lectura de tensión con el papel a unos dos centímetros de los sensores, en la Tabla 2.3. La diferencia entre estas mediciones puede ser bastante pequeña, como 0,5 V, pero esto será suficiente para disparar el amplificador operacional. Esta señal se aplica en la entrada inversora del LM358. El potenciómetro proveerá la tensión de referencia en la entrada no inversora. Esta referencia será un valor intermedio entre las lecturas de la Tabla 2.3.

Page 49: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 47474747

Figura 2.11a y b: Dibujo y Esquema Eléctrico del Interruptor Reflectivo

Page 50: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 48484848 • Control Industrial Versión 1.1

Ajuste el potenciómetro para proveer la tensión de referencia apropiada, que es el punto medio entre ambas mediciones. Al verificar la salida del LM358 se debería encontrar una señal compatible con el BASIC Stamp. La salida debería estar baja sin anteponer el objeto y alta al colocar un objeto blanco frente al par emisor / detector. Mida estas dos tensiones a la salida del LM358 anotando los valores en la Tabla 2.3. Si la señal de salida es compatible, aplíquela al Pin 3 del BASIC Stamp. Detectar la luz reflejada por un objeto es lo que llamamos detección reflectiva.

Tabla 2.3: Valores de Tensión del Fototransistor y el LM358

Condición Tensión en el

Fototransistor Tensión de Salida

del LM358 Sin objeto – sin reflexión Con objeto – reflexión total Tensión de Referencia

Esta habilidad de obtener una conmutación dependiendo de la luz recibida es muy útil para aplicaciones industriales tales como conteo de productos, control de cintas transportadoras, medición de RPM, etc. El siguiente ejercicio demostrará una operación de conteo. Usted deberá ayudar, sin embargo, usando su imaginación. Supongamos que se están transfiriendo botellas de leche por una cinta transportadora, desde el sector de llenado al de empaque. Corte una tira de papel blanco para representar una botella de leche. Pasarla por delante de nuestro interruptor representa una botella desplazándose por la cinta transportadora. Solamente se necesita una pequeña modificación al programa anterior para probar nuestro nuevo interruptor. Si tiene cargado el Programa 2.5, simplemente modifique la instrucción button cambiando el identificador de entrada de Pin 1 a 3. La línea modificada se vería así: ' Programa 2.6 (modificación del Programa 2.5 para trabajar con el interruptor reflectivo) BUTTON 3,1,255,0,EspTrabajo1,1,Cuenta ' Detección de disparo por flanco sin rebote del interruptor óptico Desafío de Programación 2: Empacadora de Botellas de Leche Revea el Experimento 1 y considere la disposición de cinta transportadora de la Figura 1.2. Asumiremos que el controlador está contando botellas blancas de leche. Nuestro interruptor reflectivo podría reemplazar el interruptor “Detector1” de la figura original. El pulsador activo alto PB1 podría encender y apagar el motor. El LED de P4 puede encenderse para indicar que el motor está encendido. El LED de P5 controla la compuerta de desvío. En estado alto la compuerta está hacia la derecha y en estado bajo, a la izquierda.

Page 51: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 49494949

Su desafío es encender el motor con PB1 y contar botellas a medida que pasan. Cada seis botellas, TOGGLE (invierta) la posición de la compuerta que se indica encendiendo o apagando el LED en P4. Después de haber enviado 4 paquetes de seis botellas a cada lado, apague el motor. El proceso podría reiniciarse presionando el botón Reset. Vea la Figura 2.12 para comprender como trabaja el diagrama de flujo.

Figura 2.12: Diagrama de Flujo de la Empacadora de Botellas de Leche

Page 52: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 50505050 • Control I

Ejercicio 5: Tacómetro Monitorear y controlar la velocidad de giro es importante en muchas aplicaciones industriales. Un tacómetro mide la cantidad de rotaciones de un eje en una unidad de tiempo. La medición normalmente es expresada en revoluciones por inuto (RPM). Un interruptor ófranjas negras pconocida de tiemejemplos de discóptico se enfrentcantidad de segmdel eje. El primerestará frente al i Durante la otra msin reflejar nada,alto-bajo. El juegusado para contatiempo. Su sintax El siguiente ejercdatos sobre velo Comencemos corpegarlo al centrodel Apéndice B deV hasta aproximaPruebe su ventilaBusque en su plapolaridad en los ventilador deber

m

ndustrial Versión 1.1

ptico reflectivo puede abrirse y cerrarse suficientemente rápido como para poder contar intadas en el eje de un motor. Contar la cantidad de activaciones durante una cantidad

po provee suficiente información para calcular las RPM. La Figura 2.13 muestra cinco os codificadores que podrían colocarse en el extremo del eje de un motor. Si el interruptor a al disco rotativo, generará pulsos a medida que pasen frente a él los distintos sectores. La entos blancos (o negros) representa la cantidad de pulsos del interruptor por giro completo disco codificador tiene un segmento blanco y otro negro. En cada giro el segmento blanco nterruptor la mitad del tiempo, generando un estado alto durante la mitad de la rotación.

itad de la rotación, el segmento negro estará frente al disco, absorbiendo la luz infrarroja por lo que el interruptor estará en estado bajo. Por cada revolución se completa un ciclo de o de instrucciones del PBASIC2 nos provee de un comando útil llamado COUNT que puede ser r la cantidad de transiciones que ocurren en una entrada digital durante cierto intervalo de is se muestra a continuación.

icio usa la instrucción COUNT, el interruptor óptico y los discos codificadores para obtener cidad.

tando el primer disco codificador. Coloque cinta adhesiva en la parte trasera del disco, para de la hélice del ventilador (puede recortar los discos codificadores del tamaño necesario este libro). El ventilador es de 12 V. Su velocidad cambia con tensiones que varían desde 12 damente 3,5 V. Esta es la caída de tensión del circuito de control del motor sin escobillas. dor conectándolo directamente primero a Vdd (+5 Volts) y luego a +Vin (tensión sin regular). queta el rótulo Vin, para tener acceso a la tensión de entrada sin regular. Debe respetar la motores sin escobillas. El cable rojo es el positivo (+V) y el negro va conectado a masa Vss. El ía colocarse de forma que el disco codificador apunte hacia el par IR.

Referencia Rápida de Comandos PBASIC: COUNT

COUNT pin, período, variable

• Pin: (0-15) Identificador de pin de entrada. • Período:(0-65535) Especifica el tiempo en ms durante el que contará. • Variable: Variable en la que se almacenará esa cantidad.

Page 53: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 51515151

Figura 2.13: Discos Codificadores para Interruptor Óptico Reflectivo (versiones para recortar en el Apéndice B)

Page 54: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 52525252 • Control Industrial Versión 1.1

El primer disco codificador tiene un sector negro y uno blanco. A medida que rota, el interruptor óptico debería activarse y desactivarse una vez por cada vuelta o revolución. Ingrese el Programa 2.7 de Prueba de Tacómetro. ' Programa 2.7 Prueba de Tacómetro – con el StampPlot ' Inicializa parámetros de interfaz gráfica. ' (También pueden configurarse o modificarse en la ventana del SPL) DEBUG "!AMAX 8000",CR ' Escala Completa RPM DEBUG "!AMIN 0",CR ' Escala mínima RPM DEBUG "!TMAX 100",CR ' Eje de tiempo máximo DEBUG "!TMIN 0",CR ' Eje de tiempo mínimo DEBUG "!AMUL 1",CR ' Multiplicador de escala analógica DEBUG "!PNTS 600",CR ' Dibuja 600 puntos de datos DEBUG "!PLOT ON",CR ' Enciende el graficador DEBUG "!RSET",CR ' Reinicia la pantalla Contar VAR word ' Variable para llevar la cuenta RPM VAR word ' Variable para RPM calculadas Contar = 0 ' Limpia Contar Bucle: COUNT 3,1000, Contar ' Contar los pulsos del pin 3 por 1 segundo RPM = Contar * 60 ' Ajusta escala de RPM

DEBUG DEC RPM, CR ' Envía el valor de RPM a graficador y barra de estado DEBUG "!USRS RPM actuales ", DEC RPM, CR GOTO Bucle A medida que la hélice gira, los pulsos generados por el interruptor óptico se contarán durante 1000 milisegundos (un segundo). Con una duración de la rutina Contar de un segundo, y produciéndose un ciclo por cada rotación, obtenemos directamente la velocidad de rotación de la hélice en ciclos por segundo. Pero normalmente, la velocidad de rotación de un disco se describe en revoluciones por minuto (RPM). Multiplicando las revoluciones por segundo por 60, obtenemos la cantidad de RPM. Ejecute su programa. La ventana debug aparecerá primero mostrando la información serial para configurar StampPlot Lite. Cierre la ventana debug del BASIC Stamp y abra StampPlot Lite. Tilde “Connect y Plot Data” y presione “Restart.” Presione el botón de Reset de su plaqueta y el SPL comenzará a graficar. La Figura 2.14 muestra un ejemplo del gráfico con las RPM alimentando el motor a distintas tensiones .

Page 55: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Figura 2.14: RPM del Ventilador de CC sin Escobillas a Distintas Tensiones

El disco codificondiciones dpotenciómetroa pico del fotose obtendrá sila frecuencia y2.15. . . . La lectumedidos por eciclos complet

Control Industrial Versión 1.1 • Página Página Página Página 53535353

cador giratorio podría generar una salida de picos del fototransistor ligeramente diferente en e “luz” y “oscuridad”. Si su sistema no responde correctamente, cambie el punto de ajuste del hasta encontrar el nuevo valor promedio. Si tiene acceso a un osciloscopio, mida la salida pico

transistor y la tensión que aplica el potenciómetro sobre el comparador. El rendimiento óptimo ajusta la tensión de referencia, en el punto medio de los niveles de tensión pico a pico. Observe la forma de onda de la señal. Un ejemplo de la lectura del osciloscopio se muestra en la Figura ra de 84,7 Hz equivale a una lectura de debug igual a: “Contar = 84; RPM = 5040”. Los 84,7 Hz l osciloscopio reflejan una RPM real de 84,7 x 60 = 5082. El BASIC Stamp usa solamente los 84 os que se produjeron durante el segundo que duró la captura de datos.

RPM actuales 0RPM actuales 0RPM actuales 0RPM actuales 0

Page 56: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 54545454 • Control Industrial Versión 1.1

Figura 2.15: Trazos del Osciloscopio para un Codificador de 2 Pulsos / vuelta

Anote la lectura del tacómetro cuando se aplica la tensión máxima al motor. Puede usar Vin en su plaqueta (entrada directa de tensión de fuente, siempre que sea menor de 12 V) para máxima velocidad, o Vdd (5 V regulados) para obtener una velocidad menor.

Contar = ___________ RPM = _____________ Cuando pruebe su tacómetro, observe lo que sucede si disminuye la velocidad del ventilador, aplicando ligeramente rozamiento con su dedo. Si utiliza el disco de 1 pulso / vuelta, contar decrecerá de a una unidad, de 83 a 82 a 81, etc. y las lecturas de RPM caerían por un factor de 60 (4980 a 4920 a 4860, etc.).

Page 57: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 55555555

Debido a que estamos contando durante un segundo y obtenemos un pulso por vuelta, el programa puede obtener las RPM con una resolución de 60 unidades. Para mejorar la resolución en la lectura de las RPM, tiene un par de opciones: incrementar el tiempo durante el cual se realiza la cuenta, o aumentar la cantidad de pulsos por vuelta. Probemos la primer opción. Incremente el tiempo de conteo del Programa 2.7 de 1000 milisegundos a 2000 milisegundos. Haciendo esto, el microcontrolador estará leyendo los pulsos durante dos segundos y las RPM se obtendrán calculando [(Contar/2 segundos) x 60}. Esto se simplifica a RPM = 30 x Contar obteniendo una resolución de 30 RPM. En el Programa 2.7, cambie en la línea RPM = Contar * 60 el valor de escala de 60 a 30. Pruebe su sistema. Al incrementar la duración del conteo se incrementó la precisión de la medición de las RPM. Vea la Tabla 2.4. . . .

Tabla 2.4: RPM Obtenidas de un Codificador de 1 Pulso / vuelta con Distintos Tiempos de Conteo.

Duración Conteo Contar Escala RPM Resolución 1000 mS 84 60 5040 60 RPM 2000 mS 169 30 5070 30 RPM 3000 mS 254 20 5080 20 RPM

60000 mS 5082 1 5082 1 RPM Como puede ver, para obtener una resolución de una RPM, nuestra rutina de conteo debe tener una duración de todo un minuto (60.000 ms). A menos que usted sea muy paciente, esto es inaceptable. En términos de programación, el BASIC Stamp está atado a la función BUTTON por la duración total. Durante este tiempo, no se atiende el resto del programa. Por esta razón, una duración tan larga no es recomendable. Otro método para mejorar la resolución es incrementar la cantidad de pulsos por vuelta. Corte el segundo disco codificador y péguelo a la hélice de su ventilador. Este disco tiene dos segmentos blancos y producirá dos pulsos a contar por revolución. Durante un conteo de un segundo de duración, este codificador producirá el doble de pulsos de los que producía el primer codificador. La línea de cálculo de RPM del programa, debería ser RPM = Contar x 60 / 2 para este codificador, o RPM = Contar x 30. ¡Inténtelo! El tercer disco codificador tiene aún más resolución, con cuatro pulsos por vuelta. Coloque este codificador en su ventilador y modifique la línea de RPM a RPM = Contar * 15. Podría necesitar modificar la calibración de la referencia del comparador cada vez que cambia de un disco codificador a otro.

Page 58: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 56565656 • Control Industrial Versión 1.1

Si usa el codificador de seis pulsos, ¿qué valor debería usar para ajustar la escala de Contar a RPM? Coloque su respuesta en la Tabla 2.5. La Figura 2.16 muestra trazos de osciloscopios tomados usando discos codificadores de dos pulsos, cuatro pulsos, y seis pulsos por vuelta, rotando a 4.980 RPM. Son las propiedades focales del par emisor / detector las que limitarán la cantidad máxima de segmentos que podrá tener el disco codificador. Puede encontrar difícil de usar el codificador de seis pulsos / vuelta si no usa algún tipo de filtro o enfoque en el haz de luz.

Figura 2.16: Trazos de Osciloscopio para Discos Codificadores de 2 Pulsos, 4 Pulsos y 6 Pulsos / vuelta

La precisión requerida en un tacómetro dependerá de cada aplicación. Los codificadores comerciales vienen con resoluciones mayores de 500 pulsos por revolución. Complete los valores apropiados en la Tabla 2.5 para obtener un codificador con una resolución de 360 pulsos por revolución.

Page 59: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Tabla 2.5: Velocidad de Giro Dada de 4.980 RPM

Pulsos por Vuelta

Contar

Factor de Escala

RPM

1 83 60 4,980 2 166 30 4,980

Desafío 3: M Al variar la teuna salida aStamp generLa sintaxis d La instrucciópromedio esde 0,75 x 5 ocompleto de2.17 muestrcapacitor Ch

cambia la dicarga del capdel amplifica(Av = Rf/Rin corriente paindefinidameligeras variaefecto domin

PWM Pin, • P• T

V• C

Control Industrial Versión 1.1 • Página Página Página Página 57575757

4 312 20 4,980 6 498 ______ 4,980 360 ______ ______ _______

onitorear y Controlar la Velocidad de un Motor.

nsión aplicada a un pequeño motor sin escobillas, se varía su velocidad. El BASIC Stamp no tiene nalógica continua. El comando de modulación por ancho de pulso (PWM) le permite al BASIC ar una tensión analógica promedio controlable.

el comando PWM se muestra a continuación.

n PWM 7,190,30 producirá en el pin de salida 7, una serie de pulsos cuyo tiempo en estado alto 0,75 (190/255), durante 30 milisegundos. Durante este tiempo, la tensión promedio en el pin es 3,5 Volts. Para mantener el valor de esta tensión promedio durante la ejecución de un bucle

l programa, se debe desarrollar un circuito de muestreo y retención (sample and hold). La Figura a un circuito sample and hold que funcionará correctamente con el motor sin escobillas. El old se carga durante el comando PWM a la tensión promedio. Al finalizar su ejecución, PWM rección del pin de salida a entrada. Esto coloca al pin en una condición de alta impedancia y la acitor se retiene debido a la alta impedancia del pin 7, del dieléctrico del capacitor y la entrada

dor operacional (op amp). El operacional se configura con una ganancia 3 mediante la red RF/Rin + 1). La salida de este amplificador alimenta al transistor Q1. Éste provee la amplificación de ra alimentar la carga. Idealmente la carga, así como la tensión en el capacitor, podría retenerse nte. Pequeñas corrientes de pérdida en el capacitor y de polarización en el operacional causan

ciones en la tensión entre cada comando PWM. Normalmente la corriente de polarización es el ante, lo que resulta en un leve aumento de la tensión.

Referencia Rápida de Comandos PBASIC: PWM Trabajo, Ciclos. in: especifica el pin que generará la tensión de salida. rabajo: es un valor entre 0 y 255 que expresa la salida analógica promedio entre 0 y 5olts. iclos: es un valor entre 0 y 255 que especifica la duración del PWM en milisegundos.

Page 60: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 58585858 • Control I

La Figura 2.1 usa el segundo operacional de su LM358. Agregue cuidadosamente este circuito a su tacómetro, en la protoboard. Observe que la fuente de alimentación del operacional se cambió a la entrada de fuente sin regular (9 Volts). Esto permite que el circuito tenga una salida de tensión que se aproximará al valor de la fuente. El operacional que funciona como comparador en su tacómetro también tendrá una salida mayor. Nota: Es impresc dible que coloque el diodo Zener que se muestra en la Figura 2.11, para limitar la tensión en el P3 a 5 Volts Su BASIC Stamp estará en peligro si la tensión excede los 5V.

Comprobando e La electrónica inventilador será aentre 4 y 12 se gaparecen en la Tcada valor listado

in.

ndustrial Versión 1.1

Figura 2.17 Ventilador alimentado por un PWM con sample and hold.

l Sample and Hold

terna del ventilador necesita entre 4 y 5 Volts para funcionar. La tensión aplicada al proximadamente igual a: (5V x Trabajo/255) x 3. De acuerdo a esta ecuación, las tensiones enerarán con valores de Trabajo entre 70 y 210. Reemplace “Trabajo” con los valores que abla 2.6 y use un voltímetro para registrar el valor de tensión aplicado al ventilador, para .

Ventilador

Page 61: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 59595959

'Programa 2.8 Prueba de Sample and Hold Bucle: PWM 7, (Trabajo), 60 PAUSE 500 GOTO Bucle

Tabla 2.6

Trabajo Tensión Trabajo Tensión 60 160 80 180 100 200 120 220 140 254

Luego, el tacómetro del Programa 2.7 se modificará para incluir el PWM con el circuito Sample and Hold. Recuerde que este programa informaba las RPM del motor contando los pulsos provenientes del disco codificador durante 1 segundo. Si no se usara Sample and Hold, el motor se detendría durante este período de un segundo. El Programa 2.9 muestra las modificaciones resaltadas en negritas. El programa operará el motor incrementando el Ciclo de Trabajo entre 70 y 210. Cada incremento se probará durante aproximadamente 5 segundos. StampPlot mostrará estos valores en el recuadro de estado y graficará las RPM continuamente. La fórmula para calcular la tensión esperada asume que el circuito sigue la función transferencia discutida anteriormente. Puede modificar esta fórmula para ajustar mejor su circuito, basándose en las pruebas realizadas en el Programa 2.8. Modifique el Programa 2.7 como se muestra a continuación (las instrucciones agregadas están en negritas). Ejecute el programa y anote las características tensión velocidad en la Tabla 2.6. 'Programa 2.9 (Programa 2.7 Modificado - con StampPlot) ' Inicializa parámetros de interfaz gráfica. ' (También pueden configurarse o modificarse en la ventana del SPL) DEBUG "!AMAX 8000",CR ' Escala Completa RPM DEBUG "!AMIN 0",CR ' Escala mínima RPM DEBUG "!TMAX 100",CR ' Eje de tiempo máximo DEBUG "!TMIN 0",CR ' Eje de tiempo mínimo DEBUG "!AMUL 1",CR ' Multiplicador de escala analógica DEBUG "!PNTS 600",CR ' Dibuja 600 puntos de datos DEBUG "!PLOT ON",CR ' Enciende el graficador DEBUG "!RSET",CR ' Reinicia la pantalla

Page 62: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 60606060 • Control Industrial Versión 1.1

Contar VAR word ' Variable para llevar la cuenta RPM VAR word ' Variable para RPM calculadas Contar = 0 ' Limpia Contar OUTPUT 7 ' Declara el pin para PWM. x VAR word ' Variable Trabajo y VAR byte ' Repeticiones por valor de Trabajo Tvolts VAR word Bucle: FOR x = 70 TO 210 ' Variable Trabajo FOR y = 0 TO 5 ' Prueba valor de Trabajo por 5 segundos PWM 7, x, 50 ' Genera PWM a un Ciclo de Trabajo de x Tvolts = 50 * x / 255 * 3 ' Calcula tensión en decenas de Volts. COUNT 3,1000, Contar ' Contar los pulsos del pin 3 por 1 segundo RPM = Contar * 60 ' Ajusta escala de RPM

DEBUG DEC RPM, CR ' Envía el valor de RPM a graficador y barra de estado DEBUG "!USRS Trabajo = ",DEC x, " RPM es ",DEC RPM," a " ,DEC Tvolts," Tvolts", CR NEXT x = x + 9 NEXT END GOTO Bucle

Page 63: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 61616161

Trabajo Tensión RPM 1 2 3 4 5 6 7 8 9 10 11 12 13 14

StampPlot Lite graficará las características tensión velocidad de su motor. Use el puntero del mouse para leer las RPM en cada escalón del gráfico. Recopile la respuesta del motor a los cambios en la tensión.

Page 64: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 62626262 • Control Industrial Versión 1.1

Preguntas 1. Un dispositivo industrial cuya salida solamente puede tomar dos estados posibles es llamado

______________.

2. ¿Cuál es la resistencia “ideal” de un interruptor mecánico en el estado abierto? ¿Y en el estado cerrado?

Resistencia abierto = ___________ ; Resistencia cerrado = _____________

3. Explique el propósito del resistor que se conecta en serie con el interruptor para acondicionar una señal de entrada digital.

4. Un pulsador normalmente abierto en configuración estado “activo bajo” indicará un estado lógico _______ mientras no está siendo presionado.

5. ¿Cuál es la tensión de entrada máxima absoluta del BASIC Stamp?

6. Para algunos dispositivos CMOS, una entrada de 1,3 Volts está en el área ________de operación.

7. Los dispositivos lógicos de baja tensión operan a ______ Volts de corriente continua.

8. ¿Qué tipo de interruptor de proximidad se activa solamente con objetos metálicos?

9. Cuando se ilumina la base de un fototransistor, la corriente de colector __________ y la tensión colector emisor ___________.

10. Las RPM de un motor de automóvil de seis cilindros pueden determinarse contando los pulsos enviados a la bobina de ignición. Se necesitan seis pulsos por cada revolución. Si ocurren 20 en un segundo, ¿cuáles son las RPM del motor?

Preguntas y Desafío

Page 65: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 63636363

¡Diséñelo!

1. Dibuje un circuito de un pulsador normalmente abierto con su resistor de “pull-up”. El circuito deberá dibujarse de forma que al presionar el botón se genere un estado lógico “bajo”.

2. Dibuje un circuito de un pulsador normalmente cerrado con un resistor en serie de 10K-Ohm. El circuito deberá dibujarse de forma que al presionar el botón se genere un estado lógico bajo.

Page 66: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 64646464 • Control Industrial Versión 1.1

¡Analice! 1. Observe los circuitos de fototransistor que aparecen abajo. ¿Cuál tiene una tensión se salida creciente

cuando se aumenta el nivel de luz? ¿Por qué? ¿Cuál es la tensión de salida de Circuit B si el nivel de luz satura el transistor Q1?

Page 67: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 65656565

2. El circuito comparador de abajo es usado para determinar cuándo encender o apagar una lámpara de

seguridad. ¿Cuál sería el estado de salida del comparador en condiciones de “luz”? ¿Sería más conveniente programar para detectar el nivel de tensión o el flanco generado por este circuito? ¿Por qué?

3. El interruptor óptico reflectivo (Optical Switch Banner Corporation) de abajo debe conectarse a un Basic

Stamp (BS2 Input). Su hoja de datos especifica que opera con 10 Volts, como “sumidero de corriente” (colector abierto). Vea la Figura 2.10 y complete los valores apropiados para +V, +Vdd, y el dispositivo de interfaz (Interface device).

Page 68: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 66666666 • Control Industrial Versión 1.1

¡Prográmelo! 1. Haga de cuenta que su tacómetro reflectivo provee la entrada a un sistema antibloqueo de frenos de un

automóvil. Además de esta entrada, use un pulsador para simular el pedal del freno. Un LED activo alto representará la acción del frenado. Escriba un programa que detecte cuándo se presiona el pedal del freno, para detener el vehículo. Haga que su programa encienda el LED mientras la velocidad esté por encima de cero. Cuando la velocidad del disco cae a cero, apague el LED. Use un potenciómetro para ajustar la velocidad inicial del motor. Configure los dos pulsadores como entradas activo altas. Conecte un LED como salida activo alta.

2. Escriba programas para duplicar la operación de las compuertas OR, AND y XOR.

Compuerta OR PB1 PB2 LED 0 0 0 1 0 1 0 1 1 1 1 1

Compuerta AND

PB1 PB2 LED 0 0 0 1 0 0 0 1 0 1 1 1

Compuerta XOR

PB1 PB2 LED 0 0 0 1 0 1 0 1 1 1 1 0

Page 69: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Control Industrial Versión 1.1 • Página Página Página Página 67676767

Actividad de Campo ¿Cuántos dispositivos digitales (de dos estados) puede identificar en un auto nuevo? Liste todos los que pueda. Escriba si supone que el dispositivo controla directamente la carga, usa algún tipo de relé, o si piensa que su estado está siendo monitoreado por un microcontrolador.

Page 70: Industrial Control Version 1.0

Experimento 2: Acondicionamiento de Señal de Entrada Digital

Página Página Página Página 68686868 • Control Industrial Versión 1.1

Page 71: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 69696969

Las salidas de un microcontrolador pueden ser usadas para controlar el estado de dispositivos de campo de salida. Los dispositivos de salida son aquellos que realizan el trabajo en una aplicación de control de proceso. Ellos entregan la energía al proceso bajo control. Algunos ejemplos incluyen motores, calentadores, solenoides, válvulas y lámparas. La salida de baja

potencia del BASIC Stamp (o cualquier otro microcontrolador) no le permite proveer la energía requerida por estas cargas. Con un acondicionamiento de señal apropiado, el BASIC Stamp puede controlar transistores de potencia, tiristores y relés. Estos son los dispositivos que pueden entregar las tensiones y corrientes que demandan los dispositivos de campo. En algunas aplicaciones, puede usar la salida del BASIC Stamp para comunicarse con otro microcontrolador o circuito electrónico. Podría haber problemas de compatibilidad entre diferentes familias lógicas, fuentes de alimentación separadas, o masas no comunes que requieren consideraciones especiales. El foco de este experimento es presentar algunas de las técnicas de acondicionamiento de señal usadas para conectar su BASIC Stamp a distintos dispositivos de salida. El diseño del acondicionamiento de señal apropiado comienza observando las características y limitaciones de las salidas del BASIC Stamp. La salida de un BASIC Stamp usa niveles “TTL standard”. (Nota del TraductorNota del TraductorNota del TraductorNota del Traductor: Los niveles usados por el BASIC Stamp NO SON TTLNO SON TTLNO SON TTLNO SON TTL, sino que son compatibles con estos) Como dijimos en el Experimento 2, esto significa que puede conmutar entre un estado alto de aproximadamente 5 Volts a un estado bajo cercano a 0 Volts. De acuerdo a la hoja de datos del BASIC Stamp, cada salida puede entregar 25 mA y recibir 20 mA de corriente. Relacionando esto al diagrama de la Figura 3.1, observe como se puede conectar la carga. En la Figura 3.1a, la carga es conectada desde el pin de salida a masa. Cuando pone el pin en estado alto, aparecen 5 Volts sobre el resistor (RL). La corriente de carga fluirá hasta masa, a través del resistor. En este modo de suministro de corriente el BASIC Stamp puede entregar un máximo de 20 mA.

Figura 3.1: Disponibilidad de Corriente en un pin de Salida del BASIC Stamp

Figura 3.1a: Suministro de Corriente Figura 3.1b: Absorción de Corriente

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Page 72: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 70707070 • Control Industrial Versión 1.1

En la Figura 3.1b, la carga está entre el pin de salida y la fuente de +5 Volts Vdd. La corriente fluye desde la alimentación hacia el pin de salida del BASIC Stamp en estado bajo (masa), atravesando la carga. Este es el modo de absorción de corriente en el que el BASIC Stamp puede recibir un máximo de 25 mA.

Especificación de Corriente de un Circuito Digital?

Las especificaciones de la salida de los circuitos digitales se muestran en las hojas de datos del fabricante. Estos dispositivos normalmente pueden "absorber" más corriente de la que pueden "entregar". Algunos dispositivos no pueden entregar corriente porque la salida, no está conectada internamente a +V. Normalmente la salida de estos dispositivos se denomina salida con “colector abierto”.

Las salidas se han usado para encender LEDs en ejercicios previos, como muestra la Figura 3.2a. Cuando la salida del BASIC Stamp está en estado bajo, el diodo se polariza en directa generando una caída de tensión de más de un Volt, cayendo el resto de la tensión en el resistor de 220-Ohm. Esto limita el flujo de la corriente a aproximadamente 16 mA. (Nota del TraductorNota del TraductorNota del TraductorNota del Traductor: Estos valores fueron corregidos por el traductor), La luz emitida por el diodo da una indicación visual del estado de la salida. En los desafíos de programación anteriores, había asumido que el estado del LED representaba la acción del proceso que se estaba realizando en ese momento. Esta suposición se vuelve real cuando considera la operación de un relé de estado sólido (SSR). La Figura 3.2b muestra el esquema del relé de estado sólido. El circuito de entrada (terminales 1-2) es equivalente a la Figura 3.2a. La entrada de +3 a +24 V CC identifica el rango de tensiones de control. Las tensiones de control deben estar por encima de la tensión que produce suficiente corriente en el LED para encenderlo. Si se excede la tensón de control máxima, la corriente resultante puede dañar el LED. La luz generada en el SSR acciona un circuito de salida controlado ópticamente. No se muestra el detalle de este circuito, pero está representado por el símbolo de contacto normalmente abierto. Las limitaciones de corriente y tensión de la salida se muestran en la hoja de datos del dispositivo y normalmente también se encuentran impresas en el encapsulado.

Figura 3.2: Circuitos de BASIC Stamp con LED y con Relé de Estado Sólido

Figura 3.2a: BASIC Stamp con LED Figura 3.2b: BASIC Stamp con Relé de Estado Sólido

Page 73: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 71717171

Los relés de estado sólido vienen para muchos rangos de salida. Pueden ser diseñados para usarse con cargas de CA o de CC. La carga que usará es la que define las especificaciones mínimas del SSR requerido. Un beneficio adicional del relé de estado sólido es el aislamiento eléctrico. El BASIC Stamp controla la carga mediante una señal acoplada ópticamente. No hay conexión eléctrica entre el microcontrolador y la carga de alta potencia. Las fallas eléctricas en la carga, o problemas en la línea de alimentación tales como picos de tensión, no repercutirán en el BASIC Stamp. La hoja de datos del Potter-Brumfield SSR puede encontrarse en el Apéndice C. Revise la hoja de datos y obtenga los datos siguientes. Input tensión range: ____________ (Rango de tensión de entrada) Input current requirement @ five Volts: ____________ (Corriente de entrada a 5 Volts) Maximum output load current: ____________ (Máxima corriente de salida) Maximum output load tensión: ____________ (Máxima tensión de salida) Electrical isolation: ____________ (Aislamiento eléctrico) Precauciones al seleccionar y emplear relés de estado sólido:

1. No lleve las especificaciones al límite. Sobredimensione las características de salida como mínimo un 20%.

2. Preste mucha atención a la necesidad del uso de disipadores. Los valores bajo carga máxima, normalmente requieren el uso de un disipador apropiado.

3. Todo el cableado y las conexiones entre la fuente de alimentación y la carga deben ser capaces de conducir la corriente. Si se colocan relés en la protoboard, asegúrese de no sobrepasar un valor máximo de 1 A en las pistas de la misma.

4. Respecto a la tensión del circuito de salida, asegúrese que todas las conexiones están firmemente aseguradas y bien realizadas, antes de aplicar la tensión de la línea. Con la tensión de línea corre el riesgo de recibir un shock eléctrico. Tome medidas para evitar el contacto con potenciales de alta tensión. Cubra o use blindaje sobre estos contactos. Identifique claramente los potenciales de alta tensión con rótulos apropiadas.

5. Algunos relés electrónicos no incluirán el resistor limitador de corriente interno en la entrada. En esos casos, se debe agregar un resistor externo en serie con el LED interno. El valor del resistor depende de la tensión de control y de las especificaciones de corriente de entrada recomendada por el fabricante.

Los relés de estado sólido proveen una interfaz simple para controlar cargas en aplicaciones industriales. Familiarícese con las especificaciones de la hoja de datos del SSR para asegurarse la elección correcta para su aplicación.

Page 74: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 72727272 • Control Industrial Versión 1.1

Ejercicio 1: Control Secuencial

El BASIC Stamp es muy bueno para realizar operaciones de control secuencial. Muchos procesos dependen de la ejecución ordenada de operaciones. Considere la operación de maquinado de la Figura 3.3a.

Figura 3.3a: Secuencia de Perforado Automático

Ejercicios

Page 75: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 73737373

Figura 3.3b: Control Secuencial (salidas a la izquierda; entradas a la derecha)

Una cinta transportadora está moviendo piezas a través de una estación de perforado. Cuando se detecta una pieza, la cinta transportadora se detiene. Luego de una breve pausa, el solenoide se activa para sujetar la pieza; otra pausa corta y el taladro baja hacia la pieza. Un interruptor de proximidad controla la profundidad del agujero taladrado. Cuando se activa el detector de profundidad, el comando “perforar” se detiene y se eleva la posición del taladro. Luego de darle un tiempo para que el taladro se retraiga, el solenoide libera la pieza y se activa la cinta transportadora. La pieza procesada es retirada de este sector y la cinta transportadora continua moviéndose hasta que se detecte otra pieza. Cuando se detecta otra pieza, el proceso secuencia se repite. Con el acondicionamiento de señal apropiado, el BASIC Stamp puede controlar fácilmente esta secuencia. Para nuestro ejercicio, necesitará usar su imaginación para lograr que los LEDs simulen el comportamiento de los SSRs que controlarían la cinta transportadora, el solenoide y el taladro. Dos pulsadores y sus dedos simularán una pieza que llega a su posición y la indicación de profundidad de perforado. Arme el circuito de la Figura 3.3b en su plaqueta. Para facilitar las cosas, use su LED verde para la cinta transportadora, el amarillo para el solenoide y el rojo para el taladro.

Page 76: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 74747474 • Control Industrial Versión 1.1

El control secuencial es muy fácil de representar con diagramas de flujo. El tiempo que se necesita para completar el diagrama de flujo, le ahorrará tiempo en la escritura del programa. Compare el diagrama de flujo de la Figura 3.4 con la descripción del proceso anterior.

Figura 3.4: Diagrama de Flujo de Control Secuencial

El Programa 3.1 sigue muy de cerca lo expresado en el diagrama de flujo. Estudie el programa; compare su estructura con el diagrama de flujo. Ingrese el programa y pruébelo. Nuevamente tendrá que usar su imaginación para simular este proceso. Cuando el programa se inicia, el LED verde se enciende. Esto representa la activación de la cinta transportadora. Para simular una pieza entrando en el área de perforado, debe presionar y retener el Pulsador P1. El LED a cinta se apagará instantáneamente y el LED amarillo que representa el relé del solenoide se encenderá luego de una pausa. Luego de que el solenoide tuvo tiempo suficiente para sujetar la pieza, el

Page 77: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 75757575

taladro se activará y comenzará a perforar la pieza, como lo indica el LED rojo. En este momento coloque otro dedo en el otro pulsador para indicar que el agujero es suficientemente profundo. El pulsador P2 representa un interruptor de proximidad que detecta que la profundidad de la perforación es la correcta. Al presionar P2 se apagará el LED rojo, indicando que el taladro se detuvo. Saque su dedo del pulsador P2 para indicar que el taladro se está alejando de la pieza, a medida que se contrae a su posición original durante los dos segundos que el programa queda detenido. Luego de esta pausa, el solenoide liberará la pieza (luz amarilla se apaga) y la cinta transportadora se activa nuevamente. La pieza está terminada y deja la zona de perforado. Desde este punto la secuencia comienza otra vez. Ejecute el programa algunas veces. A no ser por el reporte de DEBUG que indica cuando una pieza ha sido terminada, no necesita mantener su computadora conectada al BASIC Stamp. Desconecte el cable serial de la ficha de su plaqueta y continúe simulando el proceso secuencial. El BASIC Stamp funciona como el controlador (“embedded controller”) de esta aplicación. Si conectáramos los dispositivos reales al BASIC Stamp podríamos repetir continuamente este proceso. Después de comprender este proceso secuencial, redefiniremos sus dos entradas y tres salidas para simular otra operación. Usted será desafiado a desarrollar el programa necesario para esta aplicación de control. ' W 1 segundos 'Programa 3.1: Operación de Maquinado Controlada por Proceso Secuencial INPUT 1 ' Detector de pieza INPUT 2 ' Profundidad de perforación OUTPUT 3 ' Relé de cinta transportadora (verde) OUTPUT 4 ' Relé de solenoide (amarillo) OUTPUT 5 ' Relé de taladro (rojo) OFF CON 1 ' Lógica negativa ON CON 0 OUT3 = OFF ' Inicializa salidas en off (apagadas) OUT4 = OFF OUT5 = OFF Inicio: OUT3 = ON ' Enciende cinta transportadora IF IN1 = 1 THEN Proceso ' Si se presiona, inicia el "Proceso" GOTO Inicio Proceso: ' Se inicia el Proceso OUT3 = OFF ' Detiene cinta transportadora PAUSE 1000 OUT4 = ON ' Sujeta la pieza en su lugar PAUSE 2000 ' Espera 2 segundos para encender el taladro Taladrar: OUT5 = ON ' Enciende el taladro y comienza a bajar IF IN2 = 1 THEN Levanta_taladro ' Si la profundidad es suficiente, levanta el taladro GOTO Taladrar

Page 78: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 76767676 • Control Industrial Versión 1.1

Levanta_taladro: OUT5 = OFF ' Apaga el taladro y lo levanta IF IN2 = 0 THEN Taladro_subiendo ' Indica que el taladro está subiendo GOTO Levanta_taladro Taladro_subiendo: PAUSE 2000 ' Continua subiendo el taladro por 2 segundos Suelta: OUT4 = OFF ' Abre el solenoide para liberar la pieza PAUSE 1000 ' Espera 1 segundo OUT3 = ON ' Enciende la cinta transportadora IF IN1 = 0 THEN Siguiente_pieza ' Pieza terminada deja el área de Proceso GOTO Suelta Siguiente_pieza: PAUSE 1000 ' Espera 1 segundo DEBUG "Pieza liberada. Comenzando el siguiente ciclo", CR GOTO Inicio La verdadera ventaja de los microcontroladores es que tienen la capacidad de introducir toda la inteligencia necesaria para realizar un control sofisticado dentro del equipo. Sin embargo, a sus capacidades también se le agrega la cualidad de enviar información a una PC. El StampPlot Lite puede usarse efectivamente para monitorear el proceso de maquinado secuencial. El Programa 3.2 usa esta interfaz. Las funciones del Programa 3.2 son las mismas que las del programa anterior. Los comandos DEBUG se han insertado para enviar datos al StampPlot Lite. El programa grafica el estado de las E/S digitales, reporta los pasos del proceso en la barra de estado del usuario (User status bar) y mantiene una lista temporizada del total de piezas producidas. La Figura 3.5 muestra este proceso secuencial siendo monitoreado por el StampPlot Lite. Cargue el Programa 3.2 y ejecútelo. Estudie los comandos DEBUG usados para el StampPlot Lite que se agregaron al programa original. Familiarícese con su uso. Las interfaces gráficas para usuarios como ésta, son muy útiles en la adquisición y conservación de datos de sistemas de control. Use StampPlot para monitorear el Desafío de Control Secuencial de Mezclado, al final de esta sección. Programa 3.2: Control de Proceso Secuencial con interfaz de StampPlot Pause 500 DEBUG "!TITL Control de Proceso de Maquinado Secuencial", CR ' Título StampPlot DEBUG "!TMAX 100", CR ' Configura tiempo de barrido (segundos) DEBUG "!PNTS 500", CR ' Cantidad de puntos de datos DEBUG "!AMAX 20", CR ' Configura eje vertical DEBUG "!CLRM", CR ' Limpia el recuadro de listado DEBUG "!CLMM", CR ' Limpia Min/Max DEBUG "!RSET", CR ' reinicia todos los dibujos DEBUG "!DELD", CR ' Borra archivos de datos anteriores DEBUG "!PLOT ON", CR ' Comienza a graficar DEBUG "!TSMP ON", CR ' Toma tiempo para finalizar una pieza

Page 79: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 77777777

DEBUG "!SAVD ON", CR ' Guarda datos en un archivo INPUT 1 ' Detector de pieza INPUT 2 ' Profundidad de perforación OUTPUT 3 ' Relé de motor de cinta transportadora (verde) OUTPUT 4 ' Relé de solenoide (amarillo) OUTPUT 5 ' Relé de taladro (rojo) OFF CON 1 ' Lógica negativa ON CON 0 OUT3 = OFF ' Inicializa las salidas en off OUT4 = OFF OUT5 = OFF Piezas VAR byte Piezas = 0 Inicio: GOSUB Grafica_datos ' Grafica el estado OUT3 = ON ' Enciende la cinta transportadora DEBUG "!USRS Enciende cinta",CR ' Imprime en el recuadro User status IF IN1 = 1 THEN Proceso ' Si se presiona, inicia el "Proceso" PAUSE 100 GOTO Inicio Proceso: ' Inicia el Proceso GOSUB Grafica_datos ' Grafica el estado OUT3 = OFF ' Detiene la cinta DEBUG "!USRS Pieza detectada. Detiene cinta",CR ' Imprime en el recuadro User status PAUSE 1000 GOSUB Grafica_datos ' Grafica el estado OUT4 = ON ' Comienza a sujetar la pieza en su lugar DEBUG "!USRS Sujeta pieza.",CR ' Imprime en el recuadro User status GOSUB Grafica_datos ' Grafica el estado PAUSE 2000 ' Espera 2 segundos hasta que agujeree Taladra: GOSUB Grafica_datos ' Grafica el estado OUT5 = ON ' Enciende el taladro y comienza a bajar DEBUG "!USRS Taladro bajando",CR ' Imprime en el recuadro User status IF IN2 = 1 Then Levanta_taladro ' Si el taladro llegó hasta abajo, lo levanta PAUSE 100 GOTO Taladra Levanta_taladro: GOSUB Grafica_datos ' Grafica el estado OUT5 = OFF ' Apaga el taladro y lo levanta DEBUG "!USRS Detiene y levanta el taladro",CR ' Imprime en el recuadro User status IF IN2 = 0 Then Taladro_subiendo ' Indica que el taladro está subiendo

Page 80: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 78787878 • Control Industrial Versión 1.1

PAUSE 100 GOTO Levanta_taladro Taladro_subiendo: GOSUB Grafica_datos ' Grafica el estado DEBUG "!USRS Taladro Subiendo.",CR ' Imprime en el recuadro User status PAUSE 2000 ' Sube el taladro durante 2 segundos Suelta: GOSUB Grafica_datos ' Grafica el estado OUT4 = OFF ' Abre para liberar la pieza DEBUG "!USRS Pieza liberada. Cinta transportadora moviéndose.",CR ' Imprime en el recuadro User status PAUSE 1000 ' Espera 1 segundo OUT3 = ON ' Enciende la cinta transportadora IF IN1 = 0 Then Pieza_siguiente GOTO Suelta Pieza_siguiente: GOSUB Grafica_datos ' Grafica el estado DEBUG "!USRS Pieza completa. Comienza el siguiente ciclo ",CR ' Imprime en el recuadro User status Piezas = Piezas + 1 ' Contador de Piezas PAUSE 1000 ' Espera 1 segundo DEBUG "Piezas completadas = ", DEC Piezas,CR ' Imprime cantidad de piezas contadas GOTO Inicio Grafica_datos: DEBUG IBIN IN1,BIN IN2,BIN OUT3,BIN OUT4, BIN OUT5,CR ' Grafica estado digital. DEBUG DEC Piezas,CR ' Grafica contador analógico RETURN

Page 81: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 79797979

Figura 3.5: Ventana de Control de Proceso de Maquinado Secuencial con StampPlot Lite

Observe que los trazos aparecen de arriba a abajo en el orden que fueron listados en el comando Debug de estado digital. Por lo tanto, los dos primeros trazos son los de los pulsadores IN1 (pieza en posición) e IN2 (profundidad taladro). Los siguientes tres trazos son las salidas OUT3 (cinta), OUT4 (solenoide), y OUT5 (taladro). Recuerde que las salidas se conectaron con la configuración de lógica inversa. Un estado alto apaga un LED (OFF) y un estado bajo lo enciende (ON). Observe que en la configuración inicial del StampPlot Lite, “Save data to file” o "Guardar datos en archivo" (!SAVD) está en ON (activado). Durante la ejecución, los datos de cada punto de muestreo se almacenan en un archivo de texto, stampdat.txt. los datos incluyen la hora del día y el tiempo de ejecución de programa, número de muestra y los valores analógicos y digitales en cada muestra. Los datos se separan por comas y por lo tanto, están listos para usarse en utilitarios de hojas de cálculo y bases de datos. Una vez que los datos están en el archivo, se pueden manipular y analizar. La Figura 3.6 muestra un ejemplo de cómo aparecen los datos en Microsoft Excel. El archivo completo contiene 500 muestras (filas de datos). La Figura 3.7 es un gráfico de Excel construido en base al archivo de datos.

P1 P2

Solenoide

Taladro

Total

Cinta

Page 82: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 80808080 • Control Industrial Versión 1.1

Figura 3.6: Datos de Control Secuencial (muestras solamente)

HoraTiempo de Ejecución

Número de Muestra

Piezas Terminadas

Pieza Número

Estado Digital

11:46:50 a.m. 0,21 1 1 1 11111:46:50 a.m. 0,21 2 2 2 1111:46:50 a.m. 0,21 3 3 3 1111:46:50 a.m. 0,21 4 4 4 1111:46:50 a.m. 0,27 5 5 5 1111:46:50 a.m. 0,27 6 6 6 1111:46:50 a.m. 0,27 7 7 7 1111:46:50 a.m. 0,27 8 8 8 1111:46:50 a.m. 0,27 9 9 9 1111:46:50 a.m. 0,27 10 10 10 1111:46:50 a.m. 0,32 11 11 11 1111:46:50 a.m. 0,32 12 12 12 1111:46:51 a.m. 0,43 13 13 13 1111:46:51 a.m. 0,50 14 14 14 1111:46:51 a.m. 0,71 15 15 15 1111:46:51 a.m. 0,98 16 16 16 1111:46:51 a.m. 1,26 17 17 17 11

Page 83: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 81818181

Figura 3.7: Gráfico de Datos de Control Secuencial

0

2

4

6

8

10

12

14

16

11:4

6:50

a.m

.

11:4

6:55

a.m

.

11:4

7:13

a.m

.

11:4

7:28

a.m

.

11:4

7:43

a.m

.

11:4

7:58

a.m

.

11:4

8:13

a.m

.

11:4

8:28

a.m

.

11:4

8:40

a.m

.

11:4

8:56

a.m

.

11:4

9:11

a.m

.

11:4

9:27

a.m

.

11:4

9:42

a.m

.

11:4

9:57

a.m

.

11:5

0:12

a.m

.

11:5

0:27

a.m

.

11:5

0:42

a.m

.

Hora

Piez

a

Piezas terminadas

Page 84: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 82828282 • Control Industrial Versión 1.1

Desafío de Programación: Operación de Mezcla Secuencial Una secuencia de Mezclado se muestra en la Figura 3.8. En este proceso, un operario presiona momentáneamente un botón para abrir una válvula y comenzar a llenar un depósito. Un flotador mecánico sube con el nivel del líquido y acciona un interruptor cuando el recipiente está lleno. En este momento, el solenoide de llenado se apaga y un agitador mezcla el contenido durante 15 segundos. Después del período de mezcla, un solenoide en la parte inferior del recipiente se abre para vaciar el tanque. El flotador mecánico desciende, abriendo el interruptor cuando el recipiente se vacía. En este punto, el solenoide de vaciado se apaga, cerrando la válvula. El proceso está listo para ser inicializado nuevamente por el operador.

Figura 3.8: Proceso de Control de Mezclado Secuencial

Page 85: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 83838383

Asigne las siguientes entradas y salidas del BASIC Stamp para simular la operación. Botón de Inicio Entrada P1 (N.O. active high) Interruptor de nivel Entrada P2 (N.O. active high) Solenoide de llenado Salida P13 (LED rojo) Solenoide de mezcla Salida P14 (LED amarillo) Solenoide de vaciado Salida P15 (LED verde) Realice el diagrama de flujo y programe la operación. Ejercicio 2: Aumentando la Potencia del BASIC Stamp La capacidad de tensión y/o corriente de salida del BASIC Stamp puede ser incrementada agregando un transistor de salida (Driver). Tanto el transistor bipolar de la Figura 3.9a como el transistor MOSFET de la Figura 3.9b pueden ser efectivos cuando las cargas necesitan más potencia de la que las salidas del BASIC Stamp pueden entregar. Entender cada uno de estos circuitos será importante en futuras aplicaciones industriales. Para este ejercicio y los siguientes, tendremos dos cargas que desearemos controlar de esta forma. Se trata del ventilador eléctrico sin escobillas de CC y un resistor de 47 Ohm, de medio Watt. Las especificaciones del ventilador incluyen una tensión de +12 V con una corriente de 100 mA. El resistor tomará aproximadamente 190 mA cuando se alimenta por una fuente de alimentación de +9 V (Nota del Traductor: esta corriente varía de acuerdo a la tensión de su fuente). Consideremos el diseño del transistor bipolar para alimentar el resistor de 47 Ohm. Los valores del circuito deberían calcularse de forma que una salida en estado alto (+5V) del BASIC Stamp lleve a Q1 a la saturación, sin tomar más corriente que la que el BASIC Stamp puede entregar.

Page 86: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 84848484 • Control Industrial Versión 1.1

Figura 3.9: Circuitos con Transistores para Amplificación de Potencia

Los valores de los componentes de los circuitos surgen de los requerimientos de corriente y tensión de la carga. El proceso para determinar los valores mínimos de estos componentes es así: Dado que Q1 actúa como colector abierto, la tensión de fuente de la carga no está limitada a la fuente de +5-Volts del BASIC Stamp. Si se usan fuentes separadas sin embargo, deben unirse las masas. Cuando Q1 se lleva a la saturación, virtualmente toda la tensión de la fuente caerá sobre la carga y la corriente será igual a Vfuente/Rcarga. La máxima capacidad de corriente de colector de Q1 debe ser mayor que la corriente de la carga. La corriente de base de Q1 para mantener la corriente de colector puede ser calculada dividiendo la corriente de carga por el “beta” de Q1. IB = IC/bQ1. Dado un máximo de 20 mA de corriente de la salida de un BASIC Stamp, el mínimo beta del transistor se calcula despejando la fórmula anterior. bQ1(min) = IC/IB. Donde IB es la máxima corriente de un BASIC Stamp de 20 mA. Se debe elegir un transistor que cumpla y preferiblemente exceda estos requerimientos mínimos. Exceder los valores mínimos por un 50 o 100% o más, sería lo mejor. Una vez elegido el transistor, se puede determinar el

Page 87: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 85858585

valor del resistor limitador de base. Este valor debe permitir una corriente mayor que la definida por IC/bQ1,

aunque menor que el límite de 20 mA del BASIC Stamp. La caída de tensión sobre Rlimit es igual a los +5 V de salida del BASIC Stamp menos la caída en la juntura PN de Q1 (aproximadamente +5V-0,7V, o 4,3V). Siguiendo el procedimiento mencionado arriba, el transistor debe manejar corrientes de colector de por lo menos 190 mA y tener un beta mayor que 10. La Figura 3.9c muestra un 2N3904 como Q1. Las especificaciones del 2N3904 incluyen una corriente de colector máxima de 300 mA y un Beta mínimo de 75. Otras características que favorecen la selección de este transistor son: que es muy común, barato, y que puede controlar la corriente sin necesitar disipador. El valor de Rlimit se escogió basándose en el valor de beta mínimo y con la intención de mantener la corriente de la salida del BASIC Stamp bien por debajo de 20 mA. Este resistor de 1K-Ohm permite una corriente de base de unos 5 mA, suficiente para lograr la saturación. Construya el circuito mostrado en la Figura 3.9c en su protoboard. Luego, considere el circuito del transistor MOSFET de potencia de la Figura 3.9b. El MOSFET se lleva a la saturación aplicando tensión a la compuerta (gate). Los 5 Volts positivos provenientes de la salida del BASIC Stamp son suficientes para colocar al MOSFET en el estado “ON”. Cuando el dispositivo está completamente saturado, su resistencia de estado ON (rson) es normalmente menor de 1 Ohm. Aplicando un estado bajo en la compuerta (0 V) lleva el dispositivo al corte. En este estado prácticamente no hay circulación de corriente y el MOSFET actúa como un interruptor abierto. El MOSFET de potencia es muy fácil de alimentar con un BASIC Stamp. Una capa de óxido de metal (MOS) entre la fuente (source) y la compuerta (gate) funciona como un muy buen aislante. La extremadamente alta impedancia de entrada provista por esta capa MOS implica que no se necesita corriente por la compuerta para controlar este dispositivo. Dado que no se necesita corriente para gobernar la compuerta, una simple salida de un BASIC Stamp puede controlar múltiples MOSFETs. Con un disipador adecuado, el BS170 puede manejar corrientes de carga de hasta 5 Amps. Estas características hacen que los MOSFET de potencia sean muy fáciles de utilizar en aplicaciones industriales, tales como activación de relés, solenoides y pequeños motores de CC. Debería tenerse en cuenta que este tipo de cargas son inductivas. Cuando se desconecta la carga, su inductancia puede producir una tensión inversa transitoria que puede dañar el MOSFET. El diodo D1 provee protección al transistor cuando controla cargas inductivas como ésta. Este diodo no es necesario para el pequeño motor sin escobillas que usamos en nuestros experimentos. Construya el circuito de la Figura 3.9d. Nota: Los MOSFET de potencia, al igual que sus primos CMOS, son susceptibles a daños por descargas de tensión estática y transitorios de tensión inversa. Debe tenerse cuidado cuando se maneja e instala el dispositivo. Tómelo por el encapsulado, evitando tocar sus patitas y verifique que todos los instrumentos estén conectados apropiadamente a masa. Pruebe el circuito amplificador de potencia empleando el programa siguiente. La ventana Debug le indicará cuando deba tomar mediciones de tensión sobre los transistores y sus cargas, en el momento oportuno.

Page 88: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 86868686 • Control Industrial Versión 1.1

'Programa 3.3: Amplificación de potencia para el ventilador y el calentador. OUTPUT 7 ' Salida de control de ventilador OUTPUT 8 ' Salida de control de calentador Bucle: OUT7 = 0 OUT8 = 0 DEBUG "Ventilador y Calentador apagados – Mida la tensión de fuente sin carga Vin.",CR PAUSE 10000 OUT7 = 1 DEBUG "Ventilador encendido – Mida la tensión sobre el ventilador.", CR PAUSE 10000 DEBUG "Ventilador encendido – Mida la tensión de saturación sobre el MOSFET.", CR PAUSE 10000 OUT7 = 0 DEBUG "Ventilador apagado",CR PAUSE 2000 OUT8 = 1 DEBUG "Calentador encendido – Mida la tensión sobre el resistor de 47-Ohm ", CR PAUSE 10000 DEBUG "Calentador encendido – Mida la tensión de saturación sobre el transistor Bipolar.", CR PAUSE 10000 OUT8 = 0 DEBUG "Calentador apagado",CR PAUSE 2000 GOTO Bucle

Anote las lecturas de tensión en la Tabla 3.1.

Tabla 3.1 Mediciones Sobre los Transistores Condición Tensión sobre la carga

en estado activado Tensión de saturación

en estado activado Tensión sobre la

fuente sin activación Bipolar Fig. 3.9c MOSFET Fig. 3.9d El ventilador funcionará a máxima velocidad y el resistor se calentará debido al flujo de corriente que lo atraviesa. Las tensiones de saturación deberían ser menores de 300 mV. La tensión de línea Vin es provista por una fuente de tensión sin regular (en el kit es de 9-Volts 300 mA). La tensión, cuando las cargas no están activadas, es mucho más alta que la nominal. Cuando se energizan las cargas, esta tensión caerá hasta un valor aproximado al nominal de la fuente.

Page 89: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 87878787

En el próximo experimento, usaremos el resistor para simular un calentador. El ventilador simulará una perturbación que enfriará el calentador. Nuestro objetivo será investigar varios tipos de control para mantener una temperatura constante. Deje estos circuitos montados en su protoboard. Antes de dejar este ejercicio, es conveniente mostrar otros sistemas de interfaz que pueden serle de utilidad como diseñador. Vea los circuitos de la Figura 3.10.

Page 90: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 88888888 • Control Industrial Versión 1.1

Figura 3.10: Interfaces de Salida para el BASIC Stamp

(a) La optocupla puede ser usada como interfaz para diferentes tensiones, aislando eléctricamente la salida del microcontrolador como muestra la Figura 3.10a.

(b) La Figura 3.10b puede usarse como interfaz para dispositivos HCMOS o CMOS de la serie 4000. El 74HC4050 puede usarse a bajas tensiones, como interfaz para lógica de +3 Volts.

(c) Hay una gran cantidad de integrados de potencia periféricos. El driver 75452 mostrado en la Figura 3.10c puede absorber una corriente de hasta 300 mA. Su salida de colector abierto permite usarlo con tensiones de hasta 30 Volts.

(d) La Figura 3.10d usa una compuerta 74LS26 (NAND) que pertenece a la familia de compuertas de colector abierto. Con el resistor de pull-up de 10KOhm referenciado a la siguiente etapa del circuito, el BASIC Stamp puede ser conectado a circuitos CMOS de mayor tensión.

Page 91: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 89898989

Preguntas 1. Los dispositivos de salida son los que hacen el ________ en una aplicación de control de proceso. 2. Los dispositivos de campo normalmente necesitan más potencia que la que el BASIC Stamp puede

entregar. Mencione tres dispositivos de interfaz de potencia que puedan controlar circuitos de alta potencia y puedan ser encendidos y apagados por el BASIC Stamp. a. ________________ b. ________________ c. ________________

3. La salida del BASIC Stamp absorbe corriente cuando la carga que está controlando está conectada entre

el pin de salida y ____________. 4. El BASIC Stamp puede entregar hasta __________mA por pin de salida. 5. Los relés eléctricos y electromagnéticos ofrecen una gran protección a los microcontroladores debido a

que proveen aislación _____________ entre el BASIC Stamp y los dispositivos de potencia. 6. El circuito de entrada de un SSR normalmente es un __________ ,que provee la luz que dispara

ópticamente un dispositivo de salida. 7. Las características de corriente de un SSR deberían ser sobredimensionadas como mínimo un _______

por ciento del requerimiento continuo de corriente demandado por la carga. 8. Los valores máximos de corriente de los relés de estado sólido normalmente involucran el uso de un

____________ para lograr una disipación apropiada del calor. 9. El control______________ involucra la ejecución ordenada de operaciones de proceso. 10. Cuando la corriente de salida del BASIC Stamp no es suficiente para encender el dispositivo de control,

un ______________ de salida podría usarse para incrementar la potencia.

Preguntas y Desafíos

Page 92: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 90909090 • Control Industrial Versión 1.1

11. Si un transistor tiene un Beta de 150, un BS2 debe entregar _______ miliamperes de corriente de base

para alimentar una carga de 600 mA. 12. Cuando un MOSFET de potencia está saturado, su resistencia Drenador (Drain) a Fuente (Source) es dada

por la especificación llamada _______. 13. Los contactos de un relé electromagnético se muestran en los esquemas eléctricos en la posición

“normal”. Normal significa que la ___________ del relé está sin energizar. 14. Los “contactos” de un relé de estado sólido de CA en realidad son los terminales principales de un TRIAC.

Estos contactos deberían ser dibujados en un esquema en estado normalmente __________. ¡Diséñelo! 1. Dada la figura de abajo, calcule el valor máximo del resistor de base (Rlimit) que permitiría una corriente

en la bobina de 440 mA cuando la salida P12 del BASIC Stamp está en estado alto.

2. Para asegurar la saturación del transistor Q1, el valor de Rlimit debería ser ____________ que el valor calculado.

Bobina de 12 VCC Corriente de Sostenimiento 440mA

Page 93: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 91919191

3. El diagrama de conexión interna del relé de estado sólido SHARP S101S05V se muestra abajo. Observe que su circuito de entrada es simplemente un LED. La hoja de datos especifica que el LED tiene una caída de tensión en directa de 1,2 Volts y que una corriente de 15 mA por el LED encenderá el relé. Use los siguientes componentes para completar el diagrama de control del SSR con el Pin 14 del BASIC Stamp. Configúrelo de forma que la corriente entre en el BASIC Stamp. Calcule el valor apropiado de Rlimit. Dibuje la lámpara y la fuente de 120 VAC como se deberían conectar a las salidas del SSR.

lámpara

Diagrama interno

1-Salida (Triac T2) 2-Salida (Triac T1) 3-Entrada (+) 4-Entrada (-)

Lógico alto = + 5 V Lógico bajo = 0 V

Page 94: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 92929292 • Control Industrial Versión 1.1

¡Analícelo!

1. Considere los circuitos A y B de abajo. Escriba una línea de código de BASIC Stamp para encender la lámpara en cada circuito.

Circuito A ____________________________. Circuito B __________________________.

Bobina de 4 a 5 VCC Corriente de Sostenimiento 90 mA

Circuito A: Contactos normalmente cerrados

Bobina de 4 a 5 VCC Corriente de Sostenimiento 90 mA

Circuito B: Contactos normalmente abiertos

Page 95: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Control Industrial Versión 1.1 • Página Página Página Página 93939393

2. Estudie los tres circuitos que se muestran abajo. Escriba qué nivel lógico utilizaría en la salida del

BASIC Stamp Para mantener una tensión de salida (Vout) de 12 Volts. Circuito A _______________ Circuito B _______________ Circuito C _______________

Page 96: Industrial Control Version 1.0

Experimento 3: Acondicionamiento de la Señal de Salida Digital

Página Página Página Página 94949494 • Control Industrial Versión 1.1

¡Prográmelo! 1. Dadas las entradas y salidas mostradas en la Figura 3.3b, escriba un programa secuencial que haga lo

siguiente: Al presionar momentáneamente P1 se enciende P3 durante tres segundos y luego se apaga. En cambio si

se presiona P1 durante un segundo, se enciende P4 durante tres segundos y luego se apaga. Cuando P4 se apaga, P5 se enciende hasta que P2 es presionado.

2. Ahora intente este. Usando las mismas E/S, escriba un programa que haga lo siguiente: Si se presiona y se retiene presionado P1, P3 se enciende. Si mientras P1 está presionado se presiona P2,

P3 se apaga y P4 se enciende. Si se libera P1 mientras se retiene presionado P2, se apaga P4 y se enciende P5. Y finalmente, cuando se libera P2 se encienden todos los LEDs durante tres segundos, luego se apagan, reiniciando el proceso desde el principio.

Page 97: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 95959595

El control de un proceso continuo involucra el mantenimiento de las condiciones del proceso deseadas. Calentar o enfriar objetos a cierta temperatura, mantener una presión constante en un caño de vapor, o fijar un valor de flujo de material a un recipiente para mantener un nivel constante de líquido, son ejemplos de control de procesos continuos. La condición que

queremos controlar se denomina “variable de proceso”. Temperatura, presión, flujo y nivel del líquido son las variables de proceso de estos ejemplos. Los dispositivos de salida industrial son los elementos de control. Motores, válvulas, calentadores, bombas y solenoides son ejemplos de dispositivos usados para controlar la energía que determina las salidas de los procesos. La acción de control tomada se basa en la relación dinámica entre la configuración del dispositivo de salida y su efecto sobre el proceso. En general, el control del proceso puede ser clasificado en dos tipos: lazo abierto y lazo cerrado. El control de lazo cerrado determina la configuración de los dispositivos de salida, midiendo y evaluando durante el transcurso del proceso. En el control de lazo abierto, no se realizan controles automáticos para ver si es necesaria alguna acción correctiva. Un ejemplo simple de control de lazo abierto podría ser enfriar su pieza en una noche caliente de verano. Sus opciones son usar un ventilador de ventana o un aire acondicionado. El ventilador de ventana es un dispositivo que puede configurarse a velocidad baja, media o alta al evaluar la situación de su habitación. Esta evaluación involucra comprender la relación causa-efecto entre las condiciones de la habitación y el ajuste de velocidad. También está involucrado un elemento de predicción. Una vez que decide la velocidad que usará, se acostará y dormirá toda la noche. De esta forma está configurando un sistema de control de lazo abierto. Si sus estimaciones fueron correctas, tendrá un muy buen descanso. Caso contrario, podría levantarse tiritando de frío o sudando de calor. Por otro lado, un acondicionador de aire de habitación le permite fijar la temperatura deseada. Un termostato compara continuamente la temperatura deseada con la medición de la temperatura ambiente actual. Cuando la temperatura de la habitación está por encima del valor deseado, el aire acondicionado se enciende. Cuando la habitación se enfría por debajo de este punto, el aire acondicionado se apaga. A medida que avanza la noche y la temperatura externa baja, este sistema de lazo cerrado pasará cada vez menos tiempo encendido que apagado. Este es un ejemplo de control por realimentación a lazo cerrado, debido a que la acción se toma en base a la medición de la temperatura de la habitación. ¿Cuál solución es mejor? Lógicamente, muchas personas prefieren el aire acondicionado, aunque otras no. Si el objetivo es mantener una temperatura agradable para dormir, cada sistema tiene sus ventajas. Desde el punto de vista del control industrial, el bajo costo y la simplicidad de configurar un ventilador de ventana a lazo abierto es muy atractiva. Por otro lado, el control automático a lazo cerrado del aire acondicionado garantiza una temperatura más estable, a medida que la temperatura exterior cambia.

Experimento 4: Control de Procesos Continuos

Page 98: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 96969696 • Control Industrial Versión 1.1

Determinar la mejor acción de control para una aplicación y diseñar el sistema que provea esta acción es de lo que se trata la ingeniería de control de procesos. Los microcontroladores han probado ser una solución económica para agregar cierto nivel de sofisticación a los esquemas de control más simples. Los siguientes tres ejercicios se enfocarán en las características de varios métodos de control continuo. Desarrollaremos un ambiente en el que podremos modelar un control de proceso, tomar datos variables del proceso con el BASIC Stamp y estudiar los principios del control a lazo abierto. Los primeros dos ejercicios llevarán un poco de tiempo y esfuerzo, pero los justificarán, porque esta distribución y su circuito se usarán nuevamente en los Experimentos 5 y 6. La temperatura es por lejos la variable de proceso más común que encontrará. Desde el control de temperatura del metal fundido en una metalúrgica hasta el control del nitrógeno líquido en un laboratorio de criogenia, la medición, evaluación, y control de la temperatura son críticos para la industria. El objetivo de este ejercicio es mostrar los principios del control de procesos basados en microcontrolador e instruirlo en el conexionado con dispositivos de E/S del mundo real. Los ejercicios están limitados a circuitos que entren en la protoboard de su plaqueta y para dispositivos de salida que puedan alimentarse desde su fuente de alimentación (normalmente 9-Volts, 300-mA). A medida que monitorea y controla la temperatura de un ambiente pequeño, tenga en cuenta que a través de un acondicionamiento de señal apropiado, las aplicaciones en las que puede emplear un BASIC Stamp son ilimitadas.

Ejercicio 1: Control ON-OFF de Bucle Cerrado Para armar nuestro pequeño ambiente, necesitará los siguientes componentes:

• Contenedor plástico de película de 35 mm • resistor de 47-Ohm, de medio Watt con prolongación • CI sensor de temperatura LM34DZ con prolongación • Cinta aisladora

Ejercicios

Page 99: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 97979797

Colocará el resistor de 47-Ohm y el sensor de temperatura dentro del envase de película de 35-mm. Los conectores de estos dispositivos se conectarán a la protoboard de su plaqueta. Al colocar la tapa del envase se crea un ambiente cerrado. El paso de mucha corriente por el resistor calentará el ambiente y el sensor convertirá la temperatura en una tensión analógica. Un transistor amplificador de corriente del Experimento 3 alimentará el resistor/calentador y agregará un conversor analógico digital para introducir la información binaria de temperatura al BASIC Stamp. La Figura 4.1 muestra el montaje. Siga los procedimientos de la página siguiente para construir los circuitos de acondicionamiento de señal y del envase de película.

Figura 4.1: Ambiente Calefaccionado en Envase de Película

Page 100: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 98989898 • Control Industrial Versión 1.1

Preparación Preliminar El envase de película de 35-mm tiene dos agujeros. El sensor y el “calentador” deberán colocarse en estos agujeros. En el último ejercicio, controlamos el estado de un resistor de 47-Ohm actuando como calentador. El transistor amplificador de corriente actúa como interruptor, controlando la tensión de la fuente de alimentación sin regular sobre el resistor. Como ya sabe, cuando el transistor se enciende, la tensión de fuente se aplica sobre el resistor calentándolo, dado que la potencia consumida es de P = V2/R= 92/47, o 1,7 Watts, para el caso de una fuente de 9 Volts. Esto está más allá de la capacidad de potencia de un resistor de medio Watt, pero lo estamos usando como calentador. Podría decolorarse, pero seguiría funcionando bien. Coloque el resistor por el agujero inferior del envase. Doble sus pines y encíntelos a la parte exterior del envase de forma que el resistor quede suspendido en el centro del mismo. La punta con el LM34 se usará para medir la temperatura de nuestro sistema. El LM34 es un sensor excelente en términos de linealidad, costo y simplicidad. La tensión de salida del sensor cambia 10 mV por grado Fahrenheit y está referenciada a 0 grados. Con una fuente de alimentación de CC y un voltímetro, ya dispone de un sensor de temperatura Fahrenheit. Vea la Figura 4.2 y la hoja de datos del dispositivo en el Apéndice D.

Page 101: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 99999999

Figura 4.2: Punta de Temperatura LM34

Pruebe su punta de temperatura conectándola a la fuente de +5-Volts Vdd y a masa. Use su voltímetro para controlar la tensión de salida del LM34 de 0,01 Volts por grado F. Simplemente desplace el punto decimal de la lectura dos lugares a la derecha para convertir el valor a temperatura. Por ejemplo; 0,75 V = 75 oF; 0,825 V = 82,5 oF; 1,05 V = 105 oF, etc. Luego haga lo siguiente:

• Mida y anote la temperatura ambiente. • Sostenga el dispositivo entre sus dedos y observe como aumenta la temperatura. • Sosténgalo hasta que la temperatura se estabilice. ¿Cuál es la temperatura de sus dedos? • El LM34 puede medir temperaturas de hasta 300 grados. Pase brevemente una llama por debajo del

sensor y monitoree temperaturas más altas. Ahora, inserte el sensor por el orificio superior del envase. Doble y encinte los pines al envase de forma que el sensor quede suspendido en su interior. Tape el recipiente y su ambiente modelo estará listo. Tenga en cuenta que aunque nuestro laboratorio es pequeño y de baja potencia, simula el control de temperatura de un gran horno, un fermentador de cerveza, etc. Un acondicionamiento de señal apropiado, como se muestra en el Experimento 3 puede permitirle al BASIC Stamp controlar casi cualquier dispositivo industrial.

Page 102: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 100100100100 • Control Industrial Versión 1.1

Luego, centremos nuestra atención en la protoboard y montemos el circuito necesario para el experimento. La Figura 4.3 muestra los cuatro circuitos usados en estos ejercicios. Los cuatro circuitos caben en la protoboard; solamente debe ser eficiente en el uso del espacio. La Figura 4.3a es un pulsador simple activo alto. Se usará para encender y apagar el calentador. El driver de salida mostrado en la Figura 4.3b también es muy simple. Su plaqueta tendrá el transistor amplificador de corriente (del Experimento 3) para alimentar el calentador. Observe que un LED y un resistor limitador de corriente se agregaron para indicar el estado de este circuito. Note también que este circuito se conecta a la tensión regulada de +5 Vdd, y no directamente a la tensión de fuente sin regular. Dado que el microcontrolador BASIC Stamp no puede leer valores analógicos, debemos agregar un conversor analógico a digital para transformar la salida analógica del sensor de temperatura LM34 a datos digitales. Una solución directa es usar el conversor analógico a digital que se muestra en la Figura 4.3c. El integrado National ADC0831 es conveniente para la conversión A/D de nuestra aplicación y probará ser un dispositivo muy útil para esta y otras aplicaciones. Es conveniente realizar una pausa en este momento y revisar las limitaciones y características técnicas de este dispositivo. Este conversor tomará una tensión de entrada y la convertirá en un dato digital de 8-bits con un rango de 256 representaciones binarias posibles. Pueden usarse potenciómetros para fijar externamente el rango de tensión que representará la salida digital de 0 a 25510 del ADC0831. La tensión en Vin(-) Pin 3 determina el valor cero. La tensión Vref en el Pin 5 determina el rango de tensión por encima de Vin(-) sobre el que se aplica la resolución de 255 pasos. Fijando Vin(-) a 0,7 limitará el rango a 70 grados. Vref en 0,5 Volts da como resultado un rango de 50 grados.

Page 103: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 101101101101

Figura 4.3: Circuitos para Control de Proceso

Page 104: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 102102102102 • Control Industrial Versión 1.1

Estas tensiones se utilizan para enfocar el rango del dispositivo A/D de forma que cubra la tensión analógica que necesitamos convertir. Esta aplicación funcionará desde temperatura ambiente (70o) hasta 120 oF. Este rango de temperatura equivale a una salida de tensión del LM34 de 0,70V a 1,20V. Para maximizar la resolución, el rango de interés es 0,5 V (1,2V a 0.7v); y la referencia, llamada offset, es 0,7 V. Dado que nos enfocamos solamente en este rango, cada paso binario representa aproximadamente 0,2 grados. Esto nos permite calcular la temperatura en forma muy precisa. Construya el circuito conversor A/D en la protoboard. Usando potenciómetros de ajuste multivueltas, los niveles de la referencia y el rango de tensión pueden calibrarse con mucha precisión. Mida cuidadosamente y ajuste estas tensiones. Conecte la salida del LM34 a la entrada del conversor A/D. Controlar el ADC0831 es relativamente simple. Una línea de control del programa le dice al dispositivo que haga una conversión. Una vez realizada, el valor binario puede ser enviado un bit a la vez hacia el BASIC Stamp. El flujo serial de datos desde el conversor es controlado por los pines de salida del BASIC Stamp que alimentan las líneas “chip select” (habilitación) y “clock” (reloj). La línea chip select (CS) se pone en bajo, seguido por un pulso de clock de bajo a alto. Esto da inicio a la conversión. Los siguientes pulsos de reloj (clock) inician la transferencia de cada bit binario comenzando por el bit más significativo. Parallax provee una instrucción muy conveniente, llamada SHIFTIN, diseñada específicamente para controlar comunicaciones seriales sincrónicas. Una vez que los datos entraron al BASIC Stamp, se convierten en temperatura, de acuerdo a los valores determinados de referencia y rango. (El uso del ADC0831 está explicado detalladamente en el libro Analógico y Digital Básicos, que puede ser usado para ahondar los conceptos de esta sección.) El Programa 4.1 ha sido escrito para comprobar los circuitos del driver y el conversor, además de practicar con la interfaz StampPlot Lite. La primera sección del programa configura el StampPlot Lite. La sigue una sección que establece variables y constantes. El programa está diseñado para el circuito de la Figura 4.3. Revise dos veces las conexiones a los pines de E/S 1,3,4,5 y 8. Ajuste con precisión las tensiones de Vin y Vref del ADC0831 a 0,7 y 0,5, respectivamente. Cargue el programa. Al ejecutar el programa se abrirá la ventana DEBUG y desplazará valores y mensajes por la pantalla. Cierre la ventana DEBUG y abra la interfaz StampPlot Lite. En este punto, seleccione el puerto COM apropiado y marque “Connect.” Presione momentáneamente el botón “Reset” de la plaqueta en la que se encuentra conectado el BASIC Stamp para cargar la configuración y comience a graficar datos. El recuadro del usuario le informará la temperatura actual y los valores de salida del conversor A/D en binario y decimal. La temperatura y el estado del calentador se dibujarán en esta interfaz. Al presionar PB1 se invertirá (TOGGLE) el estado del calentador entre encendido y apagado (ON y OFF). (Puede omitir los comentarios de este código, si lo desea).

Page 105: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 101010103333

'Programa 4.1: Conversor A/D con interfaz StampPlot 'El pulsador P1 invierte el estado del calentador (ON/OFF). Luego establece las constantes ' y variables usadas para adquirir los datos del ADC0831 serialmente. 'StampPlot es usado para mostrar gráficamente los resultados. El programa asume que 'el circuito está de acuerdo a la Figura 4.3. ADC0831: "chip select" CS = P3, "clock" 'Clk=P4, y "salida serial de datos" Dout=P5. 'Cero y Rango: Digital 0 = Vin(-) = 0,70V y Rango = Vref = 0,50V. 'Configuración del graficador Pause 500 ' Espera que se limpie el buffer DEBUG "!RSET",CR ' Reinicia el gráfico para limpiar datos anteriores DEBUG "!TITL EJEMPLO DE CONTROL DE CALENTADOR",CR ' Título de la ventana DEBUG "!PNTS 6000",CR ' 6000 puntos de datos DEBUG "!TMAX 600",CR ' Max 600 segundos DEBUG "!SPAN 70,120",CR ' 70-120 grados DEBUG "!AMUL .1",CR ' Multiplicar datos por 0,1 DEBUG "!DELD",CR ' Borrar archivo de datos DEBUG "!SAVD ON",CR ' Guardar datos DEBUG "!TSMP ON",CR ' Activar temporizador DEBUG "!CLMM",CR ' Limpiar Min/Max DEBUG "!CLRM",CR ' Limpiar mensajes Debug "PLOT ON”,CR ' Inicio de la gráfica DEBUG "!RSET",CR ' Reinicia tiempo de dibujo a 0 ' Define constantes y variables CS CON 3 ' Chip select del 0831 activo bajo en P3 del BS2 CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial de datos del 0831 al BS2 (P5) Datain VAR byte ' Variable para almacenar el número entrante (0 a 255) Temp VAR word ' Almacena valor convertido que representa la Temp. TempRango VAR word ' Rango completo en décimas de grado. TempRango = 5000 ' Define el rango para Vref = 0,50V Offset VAR word ' Temperatura mínima. @Offset, ADC = 0 Offset = 700 ' Declara Temp. mínima para Vin(-) = 0,7 V ' Offset será 700 décimas de grado. Con esta config., ' la salida del ADC de 0-255 corresponderá a Temp. ' de 700 a 1200 décimas de grado. EspTrabajo1 VAR byte ' Espacio de trabajo para el comando BUTTON de PB1 EspTrabajo1 = 0 ' Limpia el espacio de trabajo antes de usar BUTTON LOW 8 ' inicializa el calentador apagado Principal: GOSUB Obtenerdato GOSUB Calc_Temp

Page 106: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 104104104104 • Control Industrial Versión 1.1

GOSUB Control GOSUB Mostrar GOTO Principal Obtenerdato: ' Adquiere la conversión del 0831 LOW CS ' Selecciona el chip LOW CLK ' Alista la línea clock. PULSOUT CLK,10 ' Envía un pulso de 10 uS al clock del 0831 SHIFTIN Dout, CLK, MSBPOST,[Datain\8] ' Desplaza los datos al BS2 HIGH CS ' Detiene conversión RETURN Calc_Temp: ' Convierte el valor digital a temperatura Temp = TempRango/255 * Datain/10 + Offset ' basándose en las variables Rango y RETURN ' Offset. Control: ' Control manual del calentador BUTTON 1,1,255,0,EspTrabajo1,1,Invertir RETURN Invertir: TOGGLE 8 RETURN Mostrar: ' Grafica Temp, ADC binaria y estado de Temp DEBUG DEC Temp,CR DEBUG IBIN OUT8,CR DEBUG "!USRS Temp.= ", DEC Temp," ADC Data in = %", BIN Datain, " Decimal", DEC Datain, CR RETURN

La interfaz StampPlot Lite le dará una representación dinámica de los cambios de temperatura en su envase de película. Encienda y apague el calentador y observe la respuesta. La Figura 4.4 muestra el envase cerrado calentándose a 120 grados y luego enfriándose después que se apaga el calentador. Juegue con su sistema para familiarizarse con su respuesta; luego, observemos más de cerca las subrutinas que hacen el programa.

Page 107: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 105105105105

Figura 4.4: Ejemplo de Pantalla Obtenida con el Programa 4.1

El bucle principal de este programa simplemente ejecuta tres subrutinas, Obtenerdato, Calc_Temp, y Mostrar. Cuando se ejecuta, el BASIC Stamp salta primero a la subrutina Obtenerdato. La última línea de esta subrutina ordena al procesador que regrese (RETURN) al bucle principal y ejecute la siguiente instrucción, GOSUB Calc_Temp. La subrutina Calc_Temp se ejecuta y finaliza con un return. El BASIC Stamp ejecuta GOSUB Mostrar. Después que Mostrar se ejecuta, su instrucción RETURN hace que el programa salte a la instrucción GOTO Principal y el proceso se repite nuevamente. Esta es una aproximación organizada para estructurar nuestro programa. Luego, cuando incluyamos evaluación y control en nuestro programa, simplemente agregaremos otra subrutina, como GOSUB Control. Miremos más de cerca las dos subrutinas principales del Programa 4.1. La subrutina Obtenerdato comienza con una transición alto a bajo en la línea “chip select”. Esto alista el A/D para funcionar.

Page 108: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 106106106106 • Control Industrial Versión 1.1

Las instrucciones LOW CLK y pulsout CLK,10 le dicen al conversor A/D que haga una conversión de la tensión en Vin(+) en este momento. El ADC0831 es un conversor de aproximaciones sucesivas de 8-bits. Sus 256 combinaciones digitales posibles se distribuyen uniformemente por el rango de tensión determinado por los potenciales en los pines V in(-) y Vref. Vin(-) define la tensión a la cual 0000 0000 se obtendrá de la conversión. Vref define el rango de tensiones de entrada por encima de este punto en el que se distribuirán las otras 255 combinaciones digitales. La Figura 4.5 muestra los valores de Cero y Rango para nuestra aplicación.

Page 109: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 107107107107

Figura 4.5: Configuración de Cero y Rango para Nuestra Aplicación

Page 110: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 108108108108 • Control Industrial Versión 1.1

Con esta configuración, el ADC0831 se enfoca en un rango de temperatura de 70 a 120 grados. Hay una cantidad infinita de valores de temperatura dentro del rango de salida de 0,7 a 1,2 Volts del LM34. Sin embargo, solamente pueden obtenerse unos pocos valores representativos. Dado que el conversor A/D de 8-bits tiene una resolución de 255, en un rango de 50 grados puede detectar cambios de 0,31 grados. La conversión generará un número binario igual a [(Vin – 0,7) /0,5] x 255. Hagamos la prueba para un valor dentro del rango. Digamos que la temperatura es 98,6 F, que resulta en una salida del LM34 de 0,986 Volts. Si Vin = 0,986 V, ¿cuál sería el binario equivalente?

[(0,986-0,7)/0,5] *255 = 145,86. Si truncamos el valor obtenemos el entero 145. El valor binario sería 1001 0010.

Este valor se retendrá y estará listo para la transferencia. LA instrucción SHIFTIN está diseñada para realizar una comunicación sincrónica entre el BASIC Stamp y dispositivos seriales como el ADC0831. La sintaxis para la instrucción es SHIFTIN dpin, cpin, modo, [result\bits]. Los parámetros indican:

• Sobre que pin llegarán los datos (dpin), • Qué pin generará el clock o reloj (cpin), • (modo) identifica qué bit llega primero, el menos significativo (LS) o el más significativo (MS), y en que

flanco del clock debe leerse, ascendente (PRE) o descendente (POST), • y, cuál es el tamaño del dato y dónde se almacenará [Datain\8].

En nuestro sistema, declaramos previamente Pin 5 como dpin y Pin 4 como clock (CLK). El ADC0831 emite el bit más significativo primero en el flanco descendente del clock. Por lo tanto, el modo es MSPOST. Y finalmente, el dato de 8-bits se almacenará en una variable tipo byte declarada como Datain. Después de introducir el dato binario en el BASIC Stamp, está disponible para ser usado por nuestro programa. Sería más conveniente usarlo si estuviese expresado en las unidades de temperatura. En nuestra aplicación, serían grados Fahrenheit. La siguiente subrutina, Calc_Temp, hace exactamente eso. Conociendo la función transferencia del proceso de conversión, usamos la fórmula conocida y = mx + b. Donde: y =Temperatura, m = pendiente de la función transferencia, y b es el offset (desplazamiento del cero o al origen). Se resolverá la temperatura y se expresará en décimas de grado. Revise la fórmula Calc_Temp: Temp = TempRango/255 * Datain/10 + 700

Page 111: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 109109109109

Para aumentar la precisión al resolver la pendiente (m), la variable TempRango se escala (multiplica) por 10, a 5000 centésimas de grado. La pendiente es entonces, 5000/255 ~ 19 o 0,19 grados por bit. Multiplicando 19 por Datain se obtiene el valor dentro del rango, en unidades de centésimas de grado; por lo tanto, dividiéndola por 10 se escala nuevamente a décimas de grado. Al sumar este valor al de referencia de Cero de 700 (70 grados) obtendremos la temperatura actual en décimas de grado. La resolución es de aproximadamente 0,2 grados sobre un rango de 70,0 a 120,0 grados. El gráfico de la Figura 4.6 muestra la función transferencia entre el equivalente decimal del conversor A/D y la temperatura del envase de película. Si se modifica el rango de cobertura, cambia la pendiente de la función transferencia. Si se cambia el valor de Cero se desplaza el punto de intersección con el eje y.

Figura 4.6: Función Transferencia

Page 112: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 110110110110 • Control Industrial Versión 1.1

Una advertencia adicional sobre las operaciones matemáticas con el BASIC Stamp:

• Una fórmula se ejecutará de izquierda a derecha a menos que se usen paréntesis. • Ningún subtotal puede exceder 32.759 o –32.760. • Además, todos los quebrados serán truncados, no redondeados.

Desafío 1: Modifique las tensiones de Cero y Rango y edite el programa de acuerdo a los nuevos valores. 1. Su sistema debería ser capaz de aumentar la temperatura del envase de película cerrado, más allá del

límite de 120-grados del Programa 4.1. Modifique los potenciómetros de Cero y Rango para cubrir de 75 grados a 200 grados. De esta forma obtendrá un rango más amplio, pero ¿cuál es la resolución de su sistema ahora? Sea paciente y deje que su sistema se estabilice. Registre la temperatura máxima alcanzada por su sistema.

2. Ajuste el Cero y el Rango de su sistema para enfocarse en un rango angosto de temperaturas, desde un

grado por debajo de la temperatura ambiente hasta cuatro grados por encima de esta. Ajuste las variables de Calc_Temp para mostrar los valores en centésimas de grado. Registre estos cambios quitando la tapa del envase y tocando el sensor directamente con sus dedos. Como puede ver, la resolución es muy buena, pero se redujo mucho el rango de operación.

El poder controlar el rango y la referencia del ADC0831 nos permite enfocarnos en ciertos valores de una entrada analógica. Esto ayuda a maximizar la resolución y la precisión del sistema. El ejercicio siguiente usará el rango original de 70 a 120 grados. Regrese los potenciómetros de Cero y Rango a 0,7 y 0,5 Volts, respectivamente. Ahora, después de todo lo anterior, podemos regresar al estudio de la teoría de control.

Page 113: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 111111111111

Ejercicio 2: Control a Lazo Cerrado vs. Lazo Abierto Control a Lazo Abierto La forma más simple de control es a lazo abierto. El diagrama en bloques de la Figura 4.7 representa un sistema a lazo abierto básico. La energía se aplica al proceso mediante un actuador. La calibración del actuador determina la cantidad de energía aplicada. El proceso usa esta energía para cambiar su salida. Cambiando la calibración del actuador se modifica el nivel de energía en el proceso y la salida resultante. Si todas las variables que pueden afectar la salida del proceso son estables, ésta será estable.

Figura 4.7: Control a Lazo Abierto

El concepto fundamental del control a lazo abierto es que la calibración del actuador se basa en la comprensión del proceso. Esto incluye conocer la relación de los efectos de la energía sobre el proceso y una evaluación inicial de todas las variables que afectan el proceso. Basándose en este conocimiento, la salida “debería” ser correcta. En oposición a esto, el control a lazo cerrado incorpora la evaluación permanente (medición) de la salida y la configuración del actuador depende de esta realimentación de información. Considere el proceso de control de temperatura de la Figura 4.8. El material que es extraído del tanque debe estar a una temperatura de 101o. Obviamente, esto requerirá que se agregue cierta cantidad de calor al material. (La señal sobre la base del transistor determina la potencia entregada para calentar el elemento.) La pregunta ahora es: “¿Cuánto calor es necesario?”

Page 114: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 112112112112 • Control Industrial Versión 1.1

Figura 4.8: Aplicación de Calefaccionado a Lazo Abierto

Por un momento, considere los factores que podrían afectar la temperatura de salida. Obviamente, la temperatura ambiente es una. ¿Puede mencionar por lo menos otras tres? Por ejemplo:

• La velocidad a la que ingresa material en el tanque. • La temperatura del material que entra al tanque. • Y, la magnitud de las corrientes de aire que rodean al tanque.

Todos estos factores representan energía calórica que se quita del proceso. Por o tanto, también representan energía que debe ser suministrada al proceso si se pretende lograr la salida esperada. Si el calentados se ajustara para entregar la cantidad exacta de energía que se pierde, la salida sería estable.

Page 115: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 113113113113

En teoría, el nivel del calentador podría ajustarse y la salida deseada se mantendría continuamente, mientras las perturbaciones permanezcan constantes. Asumamos ahora que es su objetivo mantener el interior del envase de película a temperatura constante. Un buen ejemplo de la vida real sería una incubadora de huevos. Para empollar los huevos, es importante mantener la temperatura ambiente en 101oF. Al encender el calentador se calentará el interior del envase de película. En un ejercicio anterior, encendió el transistor del calentador y sobrepasó los 101oF. Obviamente, para mantener la temperatura deseada, no necesitará tener toda la potencia aplicada al resistor. Después de algunas pruebas, puede determinar el nivel exacto sería necesario para mantener la temperatura correcta. La señal para el transistor de potencia en la Figura 4.8 está rotulada como PWM. Esto viene de pulse-width modulation o modulación por ancho de pulso. PWM es un método muy eficiente de controlar la potencia promedio que se entrega a cargas tales como calentadores. La onda cuadrada controla la base del transistor, haciendo que actúe como un interruptor. Cuando la base está en estado alto, el transistor se satura y se aplica toda la potencia al calentador. Con la base en bajo el transistor entra en corte; por lo tanto, no circula corriente por la carga. Multiplicando el porcentaje del tiempo total que la carga recibe alimentación por la potencia total, se obtendrá la potencia promedio aplicada a la carga. Este promedio temporal es llamado ciclo de trabajo (duty cycle) y usualmente se expresa como porcentaje. Un ciclo de trabajo del 50% equivale a la mitad de la potencia máxima, un ciclo de trabajo del 75% equivale a tres cuartos, etc. Se mencionó anteriormente que el resistor “calentador” de 47-Ohm recibiría 1,7 Watts cuando se lo alimentara directamente desde una fuente de alimentación de 9-Volts. El pulsador se usó para saltar entre encendido y apagado. Si presionara rápidamente el botón a velocidad constante, el resistor recibiría 1,7 Watts mientras esté encendido y 0 Watts mientras esté apagado. Este ciclo de trabajo del 50% resultaría en un consumo de potencia promedio de 0,85 Watts (Ppromedio = Pmax * ciclo de trabajo). Complete la tabla de la Figura 4.9 con las potencias absorbidas con ciclos de trabajo del 75% y 25% en nuestro sistema.

Figura 4.9: Potencia Promedio

Ppromedio = Pmax * ciclo de trabajo Potencia Máxima (Pmax) Ciclo de Trabajo Potencia Promedio (Ppromedio)

1,7 W 100% 1,7 W 1,7 W 75% 1,7 W 50% 0,85 W 1,7 W 25% 1,7 W 0% 0 W

Page 116: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 114114114114 • Control Industrial Versión 1.1

PBASIC provee una instrucción útil para generar modulación por ancho de pulso. Su sintaxis es: PWM pin, trabajo, duración Donde: pin es el pin de salida que generará la modulación. trabajo es el ciclo de trabajo relativo, siendo 255 el 100%. duración es el tiempo en milisegundos durante el que se generará la modulación. Desafío 2: Graficando ciclo de trabajo de PWM vs. Vout. Use su multímetro para medir la tensión promedio sobre el calentador con distintos comandos PWM. Cambie la variable Trabajo en el Programa 4.2 para que se incremente desde 0 a 255. Grafique la tensión promedio en el gráfico de la Figura 4.10. 'Programa 4.2: PWM vs. Vout ' Modifique Trabajo = 50 en incrementos de 10 entre 0 y 100. Mida la ' tensión de salida promedio que resulte. CicloTrabajo VAR byte Trabajo VAR byte CicloTrabajo = 50 ' Comienza con un ciclo de trabajo del 50% Bucle: Trabajo = (CicloTrabajo * 255/100) ' Escala CicloTrabajo a PWM (0-255) PWM 8, Trabajo, 200 ' Aplica un PWM de “Trabajo” en el calentador DEBUG " Probando un Ciclo de Trabajo de ", DEC CicloTrabajo, "%.", CR GOTO Bucle

Page 117: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 115115115115

Figura 4.10: Gráfico de Tensión sobre el Calentador vs. Ciclo de Trabajo de PWM

Si no está familiarizado con la instrucción PWM, vea el BASIC Stamp Manual Versión 2.0 pp. 247-250. Debe entenderse un aspecto sobre el uso de este comando: PWM aplica pulsos por un período de tiempo definido por su parámetro duración. Durante el tiempo que se ejecuta el resto del programa no se aplica ninguna salida a la carga. Como resultado, la tensión promedio para un ciclo de trabajo del 100% (trabajo=255) generará valores menores que los esperados con tensión máxima. Cuanto más tiempo demore su ciclo de programa, mayor será la diferencia. Para entender mejor la influencia del tiempo de ciclo de programa, coloque una PAUSE 200 en el Programa 4.2. Compare la tensión de salida resultante, con las lecturas anteriores. Cambie la longitud de la pausa y observe los resultados. Revise el circuito Sample and Hold introducido en el Desafío 3 del Experimento 2. Este circuito mantenía la tensión promedio del average PWM sobre el motor durante todo el bucle del programa. Esto fue necesario debido a que el bucle del programa era muy largo y la respuesta del ventilador muy rápida. El circuito Sample

Page 118: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 116116116116 • Control Industrial Versión 1.1

and Hold fue efectivo para entregar la tensión promedio deseada sin importar el tiempo del bucle del programa. En términos de control de potencia, es más eficiente no usar Sample and Hold. Esto puede ser entendido si considera manejar un circuito al 50%. Un ciclo de trabajo del 50% aplicaría ½ de la tensión de la fuente continuamente sobre la carga. Esto es fantástico. ¿No? Bien, si la mitad de la tensión de la fuente está continuamente sobre la carga, la otra mitad estará sobre el transistor. Esta tensión colector-emisor multiplicada por la corriente de colector representa la potencia disipada en el transistor. Cuando la respuesta del sistema es rápida (como el ventilador) no hay otra opción que usar este tipo de control de potencia lineal. El elemento resistivo de calefacción en nuestra incubadora, es un buen ejemplo de sistema de respuesta lenta. El control PWM directo sobre el resistor desperdicia muy poca potencia en el transistor, debido a que éste opera solamente en conmutación. Mientras que el período de PWM sea mucho más largo (>10x) que el tiempo requerido para ejecutar el resto del programa, habrá muy poca variación en el ciclo de trabajo y la tensión promedio esperada.

Page 119: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 117117117117

Desafío 3: Analizando su Sistema a Lazo Abierto El siguiente programa está desarrollado para estudiar la relación entre la modulación PWM sobre el calentador y la temperatura resultante. El programa aplicará niveles PWM en incrementos del 10%. Cada incremento durará aproximadamente cuatro minutos. El programa terminará luego de aplicar un nivel del 100%. StampPlot Lite realizará la representación gráfica de la respuesta de su sistema, junto con información de temporización del Stamp en el recuadro inferior. Si desea profundizar, el archivo de datos del StampPlot Lite puede ser importado a una hoja de cálculo, para ser graficada y analizada.

Figura 4.11: PWM vs. Temperatura

Page 120: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 118118118118 • Control Industrial Versión 1.1

La Figura 4.11 es un ejemplo de la pantalla que se obtendrá con StampPlot Lite al realizar esta prueba. Cargue el Programa 4.3. Antes de ejecutar el programa, asegúrese de que su envase se enfríe a temperatura ambiente. Coloque la tapa en el envase y ejecute el programa. Cuando la ventana DEBUG aparezca, ciérrela y ejecute StampPlot Lite. Conecte el StampPlot Lite y presione el botón "reset" de su plaqueta para reiniciar la ejecución del programa. 'Programa 4.3: PWM vs. Temp con StampPlot ' Este programa verifica el aumento de temperatura del envase debido a los incrementos ' en el PWM. El tiempo de ejecución del programa es de aproximadamente 40 minutos. Esto puede ' ajustarse cambiando los incrementos de "contador" y/o "Porcentaje". ' El programa asume que el circuito está de acuerdo a la Figura 4.3. ' ADC0831: "chip select" CS = P3, "clock" Clk=P4, y datos seriales Dout = P5. ' Pines de Cero y Rango: Digital 0 = Vin(-) = 0,70V y Rango = Vref = 0,50V. ' Configura StampPlot Pause 500 ' Espera que se limpie el buffer DEBUG "!RSET",CR ' Reinicia el gráfico para limpiar datos DEBUG "!TITL PWM vs. Temp ",CR ' Título de la ventana DEBUG "!PNTS 24000",CR ' 24000 puntos de datos DEBUG "!TMAX 6000",CR ' Max 6000 segundos DEBUG "!SPAN 70,120",CR ' 70-120 grados DEBUG "!AMUL .1",CR ' Multiplicar datos por 0,1 DEBUG "!DELD",CR ' Borrar archivo de datos DEBUG "!SAVD ON",CR ' Guardar datos DEBUG "!TSMP ON",CR ' Activar temporizador DEBUG "!CLMM",CR ' Limpiar Min/Max DEBUG "!CLRM",CR ' Limpiar mensajes DEBUG "!PLOT ON",CR ' Iniciar gráfico DEBUG "!RSET",CR ' Reinicia temporizador en 0 ' Definición de constantes y variables CS CON 3 ' 0831 chip select activo bajo a BS2 (P3) CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial del 0831 al BS2 (P5) Datain VAR byte ' Variable para almacenar número (0 to 255) Temp VAR word ' Almacena valor convertido en temperatura TempRango VAR word ' Rango máximo en décimas de grado. TempRango = 5000 ' Declara rango para Vref 0,50V Offset VAR word ' Temp. mínima. @Offset, ADC = 0 Offset = 700 ' Declara el Cero para Vin(-) 0,7 Con estos ' valores, la salida del ADC será de 0 - 255 ' para temps de 700 a 1200 décimas de grado. LOW 8 ' Inicializa calentador apagado

Page 121: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 119119119119

Porcentaje VAR word ' Porcentaje de ciclo de trabajo Trabajo VAR word ' variable para ciclo de trabajo PWM Contador VAR word Porcentaje = 0 ' Inicializa en 0 Contador = 0 Trabajo = 0 ' Obtiene y muestra valores iniciales. GOSUB Obtenerdato GOSUB Calc_Temp DEBUG "Temp = ", DEC Temp, " Trabajo = ", DEC Trabajo,CR DEBUG "!USRS Comenzando la prueba. – Probando al ", DEC Porcentaje, "% Porcentaje.",CR Principal: ' Bucle principal PAUSE 10 GOSUB Obtenerdato GOSUB Calc_Temp GOSUB Control GOSUB Mostrar GOTO Principal Obtenerdato: ' Adquiere conversión del 0831 LOW CS ' Selecciona el chip LOW CLK ' Prepara la línea clock. PULSOUT CLK,10 ' Envía un pulso de 10 uS al 0831 SHIFTIN Dout, CLK, MSBPOST,[Datain\8] ' Recibe los datos HIGH CS ' Detiene la conversión RETURN Calc_Temp: ' Convierte el valor digital a temperatura Temp = TempRango/255 * Datain/10 + Offset ' basándose en las variables Rango y RETURN ' Offset. Mostrar: ' Grafica temperatura actual DEBUG DEC Temp,CR RETURN Control: ' Prueba el sistema a otro % ciclo de trabajo PWM 8,Trabajo,200 ' PWM Contador = Contador + 1 ' Incrementa la variable contador IF Contador = 2000 Then Incrementar ' Ciclos de programa para un mismo porcentaje RETURN Incrementar: ' Incrementa el porcentaje

Page 122: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 120120120120 • Control Industrial Versión 1.1

Porcentaje = Porcentaje + 10 ' Porcentaje se incrementa un 10% Trabajo = (Porcentaje * 255/100) ' Escala el Porcentaje a Trabajo If Trabajo > 256 Then Detener ' Detiene la prueba si porcentaje es 100% DEBUG "Tem. final = ", DEC Temp, " Ahora probando a ", DEC Porcentaje, "% Porcentaje", CR DEBUG "!USRS Probando a ", DEC Porcentaje, "% ",CR Contador = 0 RETURN Detener: ' Detiene el programa e imprime el resumen DEBUG "Fin de la prueba. Temp. final = ", DEC Temp," a 100 % ",CR DEBUG "!USRS Temperatura = ", DEC Temp,"Fin de la prueba",CR END

Page 123: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 121121121121

Desafío 4: Control a Lazo Abierto—Ajuste deseado = 101o Fahrenheit Nuestro objetivo es mantener una temperatura constante de 101o Fahrenheit en el envase. Siga estos procedimientos. Almacene los valores en la tabla de la Figura 4.12.

1. Estudie el análisis de StampPlot Lite luego de ejecutar el Programa 4.2. Del listado del recuadro de texto, anote en la tabla la temperatura ambiente al comenzar la prueba, la temperatura con un ciclo de trabajo del 50% y la temperatura final máxima con el 100% de la potencia.

2. Use su cursor para encontrar el nivel que provocó una temperatura de 101 grados.

3. Luego, modifique la subrutina Control del Programa 4.2 para que el ciclo de trabajo permanezca

constantemente en el valor declarado inicialmente. Hágalo removiendo las dos líneas de código que se muestran abajo.

Control: ' Prueba el sistema a otro % ciclo de trabajo PWM 8,duty,200 ' PWM tick = tick + 1 ' Incrementa la variable contador IF tick = 2000 Then Incrementar ' Ciclos de programa para un mismo porcentaje RETURN 4. Al principio del programa, declare a Trabajo en el valor que generó 101o en la prueba anterior del

StampPlot Lite. Ejecute el programa y espere hasta que el sistema se estabilice. ¿Qué tan cerca estuvo su estimación? Aumente o disminuya el valor de esta variable para encontrar el que genere mejor resultado. En la línea 5 de la tabla, anote el porcentaje que coloque al sistema más cerca de los 101 grados. Déjelo funcionando por un momento y tome notas de la estabilidad del sistema. Una vez que se determina la configuración correcta, un sistema de lazo abierto se estabilizará; y siempre y cuando las perturbaciones que afecten el proceso se mantengan constantes, el proceso permanecerá constante, al igual que la salida.

5. Conecte el ventilador directamente a la fuente de alimentación y apúntelo directamente hacia el envase.

El aire en movimiento representa un cambio en las perturbaciones de su proceso. De acuerdo a la teoría, se removerá calor del proceso a mayor velocidad y el nuevo punto estable de temperatura será menor a 101o. Con el ventilador apuntando hacia el envase, intente encontrar el nuevo valor de porcentaje “correcto” para esta condición. Registre sus datos en la línea 6 de la tabla.

Page 124: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 122122122122 • Control Industrial Versión 1.1

Figura 4.12: Tabla de Control de Lazo Abierto

Línea Condición % Trabajo Temp. #1 Temperatura deseada 101o #2 Temperatura ambiente 0 #3 Temperatura con Ciclo de Trabajo del 50 % 50% #4 Temperatura con Potencia total 100% #5 Ciclo de trabajo apropiado para 101o

Sin perturbación del ventilador 101o

#6 Ciclo de trabajo apropiado para 101o Con perturbación directa del ventilador

101o

#7 Ciclo de trabajo apropiado para 101o Con perturbación parcial del ventilador

101o

6. Finalmente, modifique la posición del ventilador que se pedía en la línea 6, de forma que no sople

directamente sobre el envase. Esto representa un nivel de perturbación medio sobre el sistema. Con esta situación y adivine el valor apropiado de ciclo de trabajo para compensar estos cambios. Programe el BASIC Stamp para este nuevo nivel. Una vez que el sistema se estabilice, registre sus resultados en la línea 7 de la tabla.

Desafío 5: Determinando la Configuración para Lazo Abierto 1. Seleccione una nueva “temperatura deseada” para su sistema. Prediga y programe un valor de lazo

abierto que mantenga esta temperatura.

2. Coloque un par de bolitas de vidrio dentro del envase. Vea como un incremento de la masa del sistema afecta la respuesta y la configuración para mantener esta nueva condición. ¿Qué conclusiones puede obtener del comportamiento del sistema?

Hay muchas variables que pueden afectar la relación entre el ciclo de trabajo y la temperatura en su pequeño ambiente. Después de algún tiempo experimentando y familiarizándose con la relación dinámica entre la temperatura, porcentaje de alimentación y perturbaciones, se volvería muy bueno adivinando las condiciones y la configuración correcta para el sistema de lazo abierto. Como podemos ver sin embargo, si se modifica cualquier condición de nuestro proceso, también lo hará la salida. El control a lazo abierto puede ser muy útil en algunas aplicaciones. Cuando un proceso requiere que su salida permanezca constante bajo cualquier condición, entonces debería emplearse control a lazo cerrado. En el control a lazo cerrado, las acciones se toman evaluando las mediciones y la configuración actual. Esta evaluación genera lo que se denomina “señal de error”. Los Experimentos 5 y 6 lo guiarán por 5 modos de control a lazo cerrado.

Page 125: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Control Industrial Versión 1.1 • Página Página Página Página 123123123123

1. Mencione dos ejemplos de control de proceso continuo que no se hayan mencionado en el texto.

2. ¿Cómo se determina el porcentaje de ciclo de trabajo en un control a lazo abierto?

3. ¿Cuál es la principal ventaja del control a lazo abierto?

4. ¿Cuál es su principal desventaja?

5. El ADC0831 convertirá un rango de entrada analógico a uno de 256 valores binarios posibles. El número 256 identifica la _________ del conversor.

6. El propósito de las líneas chip select y clock del ADC0831 es ____________ el proceso de conversión.

7. Si el LM34 fuese colocado en un ambiente a 98,6-grados, la salida debería ser de _________Volts.

8. En modulación de ancho de pulso, el porcentaje del ciclo de trabajo se obtiene en base a la __________ de tiempo en estado alto, sobre el tiempo total.

9. Si un calentador de 40-Watts recibiera un PWM con un ciclo de trabajo del 75%, la potencia promedio consumida sería de __________ Watts.

10. Cuando las perturbaciones cambian en un proceso a lazo abierto, también lo hace ____________.

Desafío: Control a Lazo Abierto del Ventilador En el Experimento 2, el circuito de la Figura 4.13 se introdujo para controlar la velocidad el ventilador.

Preguntas y Desafío

Page 126: Industrial Control Version 1.0

Experimento 4: Control de Procesos Continuos

Página Página Página Página 124124124124 • Contro

Figura 4.13: PWM con Sample and Hold

Debido a la respunecesario para cpara que sea capCon el ventiladoventilador. ¿Qué

l Industrial Versión 1.1

esta rápida del ventilador a las fluctuaciones de tensión, el circuito de Sample and Hold es ontrolar efectivamente la velocidad, usando la instrucción PWM. Construya este circuito az de variar la velocidad el ventilador. Conecte el calentador directamente a la fuente +Vin. r apuntando directamente al envase, experimente con diferentes valores de PWM en el nivel es necesario para enfriar el envase a 101oF?

Ventilador

Page 127: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 125125125125

Un sistema de control a lazo abierto puede generar la salida deseada si se comprende exactamente el proceso y todas las condiciones que lo afectan permanecen constantes. Sin embargo, el Experimento 4 nos mostró que este tipo de sistemas no pueden garantizar la salida deseada, si el proceso se afecta por variaciones, aunque sean ligeras. No hay ningún

mecanismo en un sistema a lazo abierto que reaccione cuando las perturbaciones afectan la salida. Aunque se pudo encontrar una configuración que mantenía la temperatura deseada en el Experimento 4, cuando se acercó o alejó el ventilador, la configuración fija dejó de ser útil. El control a lazo cerrado ajusta automáticamente un proceso luego de juntar y evaluar datos, generando la respuesta adecuada. Un diagrama de bloques típico de un sistema de control automático se muestra en la Figura 5.1.

Figura 5.1: Control a Lazo Cerrado

En este diagrama, un Sensor apropiado está midiendo la Salida Real. El bloque de Acondicionamiento de Señal toma la salida directa del sensor y la convierte en datos que el bloque Controlador pueda interpretar. La Calibración es un valor de entrada al Controlador que representa la salida deseada del proceso. El Controlador evalúa las dos entradas de datos. Basándose en esta evaluación, el Controlador acciona la Interfaz de Potencia. Este bloque provee el acondicionamiento de señal para la salida del Controlador. En el Experimento 3 se vieron varias opciones de montaje de interfaces de potencia. La Interfaz de Potencia tiene la capacidad de controlar el Actuador. Este puede ser un relé, una válvula solenoide, el driver de un motor, etc. La acción tomada por el Actuador es suficiente para llevar a la Salida Real hacia el valor deseado.

Experimento 5: Control a Lazo Cerrado

Page 128: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 126126126126 • Control Industrial Versión 1.1

Como puede ver, este tipo de control forma un bucle o un lazo cerrado. Más aún, dado que la salida de este proceso está siendo monitoreada y su valor determina la configuración del actuador, podemos decir que se trata de un sistema a lazo cerrado realimentado. La entrada cambia la salida del proceso ! la salida es monitoreada para realizar el control ! la evaluación cambia la entrada ! eso modifica la salida del proceso, etc., etc. El tipo de reacción que se produce luego de la evaluación de la entrada, define el modo de control del proceso. Hay cinco modos de control común. Estos son on-off (encendido- apagado), on-off con banda diferencial, proporcional, integral y derivativo. Las características fundamentales que distinguen cada modo de control están listadas abajo, en la Tabla 5.1.

Tabla 5.1: Cinco Modos de Control Comunes Modo de Control Proceso

Evaluación

Acción

ON-OFF ¿La variable está por encima o por debajo del valor deseado?

La salida se enciende (ON) o apaga (OFF) completamente.

ON-OFF con banda diferencial

¿La variable está por encima o por debajo de un rango definido por los límites superior e inferior?

La salida se enciende (ON) o apaga (OFF) completamente para lograr que el valor medido permanezca dentro de esa rango.

Proporcional ¿Qué tan lejos está la variable medida, del valor deseado?

Toma un grado de acción relativo a la magnitud del error.

Integral ¿El error aún se mantiene? Aumenta la fuerza de la acción mientras persista el error.

Derivativo ¿Qué tan rápido se produce el error? Genera una respuesta basada en la velocidad de cambio de la señal de error (derivada).

Este ejercicio se enfocará en convertir el sistema de control de temperatura a lazo abierto del Experimento 4 en un sistema de control ON-OFF a lazo cerrado. Nuestro sistema mostrará las ventajas y desventajas de este método de control. Las características del sistema que se está controlando determinan la conveniencia del modo de control. El Experimento 6 usará el mismo circuito para explicar y aplicar los modos de control proporcional, integral y derivativo. Deje el circuito montado una vez que complete este ejercicio. La Figura 5.2 muestra el circuito necesario para los siguientes ejercicios. Como puede ver, este es idéntico al del Experimento 4. El envase de película de 35-mm provee el ambiente que controlará. El driver del calentador provee suficiente potencia para desarrollar calor en el resistor. El LED también se controla desde el Pin 8. Recuerde que el LED se alimenta de la fuente de +5-Vdd y el calentador se alimenta directamente desde la fuente de alimentación. El sensor LM34 proveerá los datos sobre temperatura. En control a lazo cerrado, monitorearemos la temperatura, usándola para determinar los niveles de control. Las corrientes de aire del ventilador actuarán como una perturbación del proceso.

Page 129: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 127127127127

Figura 5.2: Circuito de Control a Lazo Cerrado

Page 130: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 128128128128 • Control Industrial Versión 1.1

Si todavía no montó el circuito en su protoboard, hágalo ahora cuidadosamente. Use el espacio eficientemente para que entre todo el circuito. Tómese un tiempo, planee la distribución y sea cuidadoso para evitar cortocircuitos. Vea nuevamente el Experimento 4 para obtener detalles del montaje del envase de película, la operación del LM34, o el uso del conversor analógico a digital ADC0831. Revise cuidadosamente las tensiones en Cero y Rango del ADC0831. Use su voltímetro para ajustar la tensión de Cero (Vin(-)) a 0,7V y el Rango a (V(ref)) a 0,5 Volts. Esto establecerá un rango de medición de escala completa desde 70 hasta 120 grados F.

Ejercicio 1: Estableciendo un Control a Lazo Cerrado Supongamos que nuestro objetivo es mantener la temperatura dentro del envase en 101,50 oF + 1 grado. Esto representaría los requerimientos de una incubadora usada para empollar huevos. Mantener la temperatura en 101,5 oF es perfecto, pero si la temperatura sube hasta 102,50 o baja hasta 100,50 no se causa daño alguno a los embriones. Aunque puede ser difícil imaginarse una incubadora cuando mira a su envase de película, el BASIC Stamp podría ser usado en un incubador grande de tipo comercial. Mantener la temperatura en el valor deseado parece ser una tarea de “sentido común”. Es decir, simplemente mida la temperatura; si está por encima del valor escogido, apague el calentador y, si está por debajo, préndalo. El modo de control más simple es el on-off. Este control tiene algunas desventajas, sin embargo. Durante el siguiente ejercicio, establecerá un control on-off es su incubadora. Preste mucha atención al comportamiento de su modelo. Éste también se aprecia en aplicaciones de control reales. Procedimiento El programa para esta aplicación requiere adquisición de datos, evaluación y acción de control. La rutina que muestra los datos, también almacenará los valores máximo y mínimo del proceso . La estructura y mucho del contenido del Programa 4.1 puede ser usado para adquirir y calcular las mediciones. En lugar de encender el calentador continuamente, se agregará una nueva subrutina para controlarlo. La decisión se basará en la variable tempdeseada. Vea el Programa 5.1 a continuación.

Ejercicios

Page 131: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 129129129129

'Programa 5.1: Control Simple ON/OFF con StampPlot ' Este programa establece un control simple ON/OFF para la incubadora. ' El programa distribuye las E/S de acuerdo a la Figura 5.2. ' Tensiones de Cero y Rango: Digital 0 = Vin(-) =0,70V y Rango = Vref = 0,50V. ' Configura graficador Pause 500 ' Espera que se limpie el buffer DEBUG "!RSET",CR ' Reinicia el gráfico para limpiar datos DEBUG "!TITL Control Simple ON/OFF ",CR ' Título de la ventana DEBUG "!PNTS 60000",CR ' 60000 puntos de datos DEBUG "!TMAX 300",CR ' Máx. 300 segundos DEBUG "!SPAN 70,120",CR ' 70-120 grados DEBUG "!AMUL .1",CR ' Multiplicar datos por 0,1 DEBUG "!DELD",CR ' Borrar archivo de datos DEBUG "!CLMM",CR ' Limpiar Min/Max DEBUG "!CLRM",CR ' Limpiar mensajes DEBUG "!USRS ",CR ' Limpia barra de usuario DEBUG "!SAVD ON",CR ' Guardar datos DEBUG "!TSMP ON",CR ' Activar temporizador DEBUG "!SHFT ON",CR ' Habilita desplazamiento de gráfico DEBUG "!PLOT ON",CR ' Iniciar gráfico DEBUG "!RSET",CR ' Reinicia temporizador de gráfico 0 ' Define constantes y variables CS CON 3 ' 0831 chip select activo bajo a BS2 (P3) CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial del 0831 al BS2 (P5) Datain VAR byte ' Variable para almacenar número (0 to 255) Temp VAR word ' Almacena valor convertido en temperatura TempRango VAR word ' Rango máximo en décimas de grado TempRango = 5000 ' Declara rango para Vref 0,50V Offset VAR word ' Temp. mínima. @Offset, ADC = 0 Offset = 700 ' Declara el Cero para Vin(-) 0,7 Con estos ' valores, la salida del ADC será de 0 - 255 ' para temps de 700 a 1200 décimas de grado Tempdeseada VAR word Tempdeseada = 1015 ' Inicializa tempdeseada en 101.5 grados BanderaMM VAR bit BanderaMM = 0 LOW 8 ' Inicializa calentador apagado Principal:

Page 132: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 130130130130 • Control Industrial Versión 1.1

GOSUB Obtenerdato GOSUB Calc_Temp GOSUB Control GOSUB Mostrar GOTO Principal Obtenerdato: ' Adquiere conversión del 0831 LOW CS ' Selecciona el chip LOW CLK ' Prepara la línea clock. PULSOUT CLK,10 ' Envía un pulso de 10 uS al 0831 SHIFTIN Dout, CLK, MSBPOST,[Datain\8] ' Recibe los datos HIGH CS ' Detiene la conversión RETURN Calc_Temp: ' Convierte el valor digital a temperatura Temp = TempRango/255 * Datain/10 + Offset ' basándose en las variables Rango y RETURN ' Offset. Control: ' control ON/OFF IF Temp > Tempdeseada THEN OFF HIGH 8 ' Calentador encendido (ON) RETURN OFF: ' Calentador apagado (OFF) LOW 8 RETURN Mostrar: ' Grafica temperatura actual IF OUT8 = 0 AND BanderaMM = 0 THEN LimpiaMM ' Limpia Min/Max DEBUG DEC Temp,CR DEBUG IBIN OUT8,CR RETURN LimpiaMM: ' Limpia Min/Max cuando alcanza tempdeseada. DEBUG "!CLMM",CR DEBUG "!USRS Búsqueda de Máximo/Mínimo Lista",CR BanderaMM = 1 RETURN

Page 133: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 131131131131

Ejecute el programa y observe el comportamiento del sistema. StampPlot Lite graficará la respuesta de la temperatura del sistema y el estado on-off de la salida Pin 8. Siga el procedimiento para ejecutar StampPlot Lite, descargando el programa, cerrando la ventana debug, abriendo StampPlot Lite, y presionando el botón “reset”. Cuando inicia su sistema, el calentador se encenderá como indica el LED. El calentador / resistor se calentará bastante cuando se le aplique toda la potencia. Este calor se transfiere a través del ambiente y aumenta la temperatura del sensor. Cuando el sensor se calienta a 101,5 F, el BASIC Stamp apagará el calentador. Durante un tiempo, luego de apagar el calentador, la temperatura continúa subiendo. En este punto, es importante entender la dinámica de su sistema. El calor acumulado en el interior del resistor continuará disipándose en el aire, el aire continuará calentándose y el LM34 reportará este fenómeno. Esto es similar a la inercia mecánica de un objeto móvil, recibiendo el nombre de inercia térmica. El sobrepaso de temperatura es mayor cuando la cantidad de energía térmica contenida en la masa del resistor es más grande, en comparación con la que se encuentra distribuida en el envase. El envase de película de 35-mm es pequeño, pero la masa del resistor de medio Watt también lo es. Como resultado, la temperatura de su sistema probablemente se sobrepasará menos de un grado. Cuando la temperatura se detiene y comienza a caer, al pasar por la temperatura deseada, el calentador se enciende nuevamente. La temperatura seguirá bajando una vez encendido el calentador, por la inercia térmica que describimos antes. Este ciclo en el que la temperatura pasa por encima y por debajo de la deseada es típico del control on-off. La velocidad de este ciclo y la magnitud en que se aleja de la temperatura deseada dependen de las características del sistema. El control ON-off es conveniente para procesos que tienen gran capacidad, pueden tolerar una respuesta lenta y tienen un nivel relativamente constante de perturbaciones. Si nuestra incubadora fuera grande, bien aislada y mantenida dentro de un ambiente a temperatura constante, el uso del control on-off sería aceptable. Luego que el proceso haya repetido algunos ciclos, registre los valores máximo y mínimo que alcanza normalmente la temperatura.

Temperatura Máxima _______________ Temperatura Mínima __________________

Usando su cursor, la duración de cada ciclo. Registre estos tiempos abajo. Tiempo en el que el calentador se apaga por primera vez (T1off): ____________ Tiempo en el que el calentador se vuelve a encender (T1on): ____________ Tiempo en el que el calentador se vuelve a apagar (T2off): ____________ Duración del ciclo = (T2off) – (T1off): ____________

Page 134: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 132132132132 • Control Industrial Versión 1.1

Un problema serio con el control on-off cuando la salida oscila rápidamente cuando las mediciones rondan la temperatura deseada. El ruido que se superponga a la medición del sensor analógico sería interpretado como una fluctuación rápida por encima y por debajo de la temperatura deseada. El diagrama de la Figura 5.3 representa este problema.

Figura 5.3: Control ON-OFF Cuando se Superpone Ruido en los Datos

La oscilación lenta de la temperatura alrededor de la referencia tiene superpuesta una señal de ruido de alta frecuencia. Como puede ver, el efecto de esta superposición es que el valor medido de la temperatura pasa por encima y por debajo de la temperatura deseada varias veces consecutivas. El microcontrolador encenderá y apagará el calentador de acuerdo a esa señal. En una incubadora real donde se controla una gran potencia, esta conmutación rápida podría causar ruido indeseado de RF. También se podrían dañar los elementos electromecánicos de salida tales como motores, relés y solenoides. ¿Puede observar el parpadeo rápido del LED cuando la temperatura se acerca al valor deseado? __________ Quite el capacitor de 10-uF de la salida del sensor. ¿Mejora o empeora este problema? ¿Por qué? La Figura 5.4 una pantalla que se obtuvo con este experimento. La inercia térmica y la oscilación alrededor del valor deseado representan un problema. ¿Puede observar esto en la respuesta de su sistema?

Calentador encendido

Calentador apagado

Temp. deseada

Page 135: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 133133133133

Figura 5.4: Control Simple ON/OFF

Page 136: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 134134134134 • Control Industrial Versión 1.1

¡Desafío! Modifique la Dinámica de su Sistema 1. Conecte su ventilador a la fuente de alimentación y apúntelo hacia el envase de película. Reinicie el

programa y observe la acción de control. Describa cualquier efecto que el nuevo nivel de perturbación tenga sobre el valor pico y/o el ciclo de la temperatura. Resuma como ha cambiado la dinámica de su sistema.

2. Coloque una bolita de vidrio dentro del envase. Reinicie el programa y observe la acción de control. Describa cualquier efecto que el cambio de masa de su sistema tenga sobre el valor pico y/o el ciclo de la temperatura. Resuma como ha cambiado la dinámica de su sistema.

Ejercicio 2: Control de Banda Diferencial La oscilación de alta frecuencia causada por el ruido es la mayor desventaja del control simple on-off. La mayoría de los sistemas de control on-off en la práctica, toleran valores de medición mínimo y máximo. Una incubadora es un buen ejemplo. Aunque la temperatura deseada es de 101,5 grados, se permite una variación de + 1 grado desde ese punto. El control de banda diferencial es un modo de control que genera una acción cuando la medición cruza ciertos límites predefinidos, superior e inferior. Cuando el valor medido va más allá de ese límite, se toma la acción apropiada para enviar la temperatura hasta el límite opuesto. Luego la acción opuesta se toma para regresar el proceso al inicio. La Figura 5.5 grafica la acción tomada por un control de banda diferencial. Cuando el sistema es iniciado y su temperatura está por debajo del límite más bajo, el calentador se enciende y la temperatura subirá. Cuando la temperatura cruza el límite superior, el calentador se apaga, el calor comenzará a abandonar el proceso y la temperatura comenzará a caer hacia el límite inferior. Al cruzar este límite el calentador se enciende nuevamente y el ciclo comienza nuevamente.

Page 137: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 135135135135

Figura 5.5: Acción de Control de Banda Diferencial

El resultado es un tiempo de ciclo on-off más lento y la cancelación de la influencia del ruido. Observe como difiere el diagrama temporal de la Figura 5.6 del anterior, que se había realizado para el modo de control on-off simple. Cuando la medición se encuentra en cualquier punto entre estos límites, el estado del calentador no se modifica. El calentador es activado cuando la señal de la temperatura (+ruido) cruza un límite. Luego, la señal (+ruido) debe llegar hasta el otro límite antes de que se produzca otra conmutación en el calentador. Debido a que la banda diferencial es más ancha que el efecto del ruido, la oscilación de alta frecuencia en la salida es eliminada.

Page 138: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 136136136136 • Control Industrial Versión 1.1

Figura 5.6: Acción de Control de Banda Diferencial Cuando se Superpone Ruido a los Datos

Estas ventajas surgen con el compromiso de permitir que la variable bajo control, se aleje del valor “promedio” deseado. La inercia térmica de nuestro sistema aun genera excesos en los valores límites de la temperatura. En este caso, estamos aceptando una variación más amplia en la temperatura. Cuando los procesos permiten esta variación, el control de banda diferencial normalmente es escogido antes que el control on-off simple. La subrutina Control puede modificarse fácilmente para el control de banda diferencial. Haga las siguientes modificaciones al Programa 5.1. Declare las nuevas variables Limite_superior y Limite_inferior al comienzo del programa e inicialícelas en 102 oF y 101 oF respectivamente. Limite_superior VAR word Limite_inferior VAR word Limite_superior = 1020 '102 grados décimas Limite_inferior = 1010 '101 grados décimas

Calentador encendido

Calentador apagado

Valor Deseado

Límite superior

Límite inferior

Page 139: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 137137137137

Luego, reemplace la subrutina de Control on-off por el siguiente código. Control: IF Temp > Limite_superior THEN OFF ' Sobre el límite superior apaga calefactor. IF Temp < Limite_inferior THEN ON ' Bajo el límite inferior, lo enciende. RETURN ' Regresa dejando el calentador en el último estado OFF: Out8 = 0 ' Apaga el calentador BanderaMM = 1 RETURN ON: ' Enciende el calentador Out8 = 1 RETURN Ejecute el programa y observe el comportamiento de su sistema. ¡Desafío! Observe y Evalúe el Control de Banda Diferencial Permita que el programa realice algunos ciclos. Registre lo siguiente: Registre los valores máximo y mínimo de la temperatura. Temperatura Máxima _______________ Temperatura Mínima __________________ Con su cursor, investigue la duración de los ciclos. Registre estos tiempos abajo. Tiempo en el que el calentador se apaga por primera vez (T1off): ____________ Tiempo en el que el calentador se vuelve a encender (T1on): ____________ Tiempo en el que el calentador se vuelve a apagar (T2off): ____________ Duración del ciclo = (T2off) – (T1off): ____________ Verifique a qué temperatura se apaga el calentador, de acuerdo al gráfico. Quite momentáneamente el capacitor de filtrado de 10-uF. ¿El aumento de ruido en la lectura genera una oscilación de alta frecuencia en la salida, cuando la temperatura está cerca de los límites?

Page 140: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 138138138138 • Control Industrial Versión 1.1

Use el ventilador para modificar las perturbaciones del proceso. Reinicie el programa y observe la acción de control. Describa cualquier efecto que el nuevo nivel de perturbación tenga sobre el valor pico y/o el ciclo de la temperatura. Resuma como ha cambiado la dinámica de su sistema. Coloque una bolita de vidrio dentro del envase. Reinicie el programa y observe la acción de control. Describa cualquier efecto que el cambio de masa de su sistema tenga sobre el valor pico y/o el ciclo de la temperatura. ¿ON/OFF Simple o Banda Diferencial? Afortunadamente, los datos que ha observado y almacenado revelarán algunas características importantes de estos dos modos de control. Ambos tienen ventajas y desventajas. El control on-off simple genera acciones más frecuentes en el calentador. Períodos de ciclo de menos de un segundo podrían presentarse si su sistema tiene recuperación rápida o si hay ruido en la línea de señal analógica. Un ciclo de alta frecuencia no es aceptable si el calentador va a ser controlado por un relé electromecánico. Observe sin embargo, que el sobrepico de temperatura es de cerca de medio grado y que el valor promedio es el valor deseado. Compare esta respuesta de control con la que obtuvo con el control ON/OFF de Banda Diferencial. Con el control de banda diferencial, notará las siguientes diferencias.

1. Los ciclos de alta frecuencia cercanos a la temperatura deseada no se producirán. 2. Todavía se producen picos máximos y mínimos, pero ahora dentro de los límites. 3. El período de los ciclos ON/OFF es más largo.

El aumento del período del ciclo y la inmunidad al ruido cerca de la temperatura deseada, son mejoras evidentes sobre el control simple on-off. La contra sin embargo, está en que la temperatura del proceso se alejará mas del punto deseado. Obviamente, el conocimiento del proceso y su hardware determinará el modo de control apropiado.

Page 141: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 139139139139

Ambos modos tomaron acciones de control apropiadas para mantener la temperatura bajo niveles variantes de perturbación y condiciones de carga. La contra de estos dos modos de control ON/OFF es que la variable bajo control está siempre variando su valor. Las condiciones completamente encendido y completamente apagado del elemento de control final fuerzan continuamente la variable, fuera de los límites. Recuerde el ejercicio de Control a Lazo Abierto del Experimento 3, donde se encontraba un valor de excitación intermedio entre completamente encendido y completamente apagado, para mantener la temperatura en cierto punto. Si todas las perturbaciones del proceso permanecían constantes, la temperatura quedaba en el valor correcto cuando se aplicaba el porcentaje requerido de excitación. También vimos que a medida que las condiciones cambiaban, también lo hacía la temperatura. El Experimento 6 investigará controles que toman una cantidad apropiada de acción basándose en la evaluación de las mediciones. Aplicar la teoría de control Proporcional, Integral y Derivativo nos permitirá maximizar la efectividad del sistema de control. Desafíos de Programación 1. Modifique su programa de forma que una banda diferencial de +1 grado pueda calcularse

automáticamente, basándose en la temperatura deseada. 2. Agregue una variable llamada Banda_diferencial de forma que el operador solamente ingrese la

temperatura deseada y el rango de la banda diferencial. Luego el programa realizará automáticamente las acciones necesarias de control.

Page 142: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 140140140140 • Control Industrial Versión 1.1

1. Escriba una oración completa que indique claramente la diferencia fundamental entre control a Lazo Abierto y control a Lazo Cerrado.

2. El control ON/OFF simple compara la medición de la variable del proceso con el ____________ ____________.

3. Si el elemento de control final de nuestra incubadora fuera un aire acondicionado en lugar de un calentador, ¿qué cambiaría del Programa 5.1?

4. La variable del proceso continua aumentando después de que el elemento de control es apagado, debido a la ________________________.

5. La oscilación rápida que se produce cerca del punto deseado de un sistema de control ON/OFF es el resultado de una señal de __________ montada sobre la señal de datos.

6. Mencione tres dispositivos que no soportarían ciclos de activación de alta frecuencia.

____________________ ____________________ ____________________

7. El período del ciclo del proceso es afectado directamente por la cantidad de ____________ del sistema.

8. El control de banda diferencial actúa cuando la variable del proceso cruza _____________ límite.

Preguntas y Desafío

Page 143: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Control Industrial Versión 1.1 • Página Página Página Página 141141141141

9. El período del ciclo será ______________ si se emplea control de banda diferencial en un sistema en lugar del control ON/OFF simple.

10. La conmutación de alta frecuencia no es un problema en el control de banda diferencial si la magnitud de _________________ es menor que la banda diferencial.

11. Cuando la medición está entre los límites, la salida estará en el modo determinado por el __________ límite que se cruzó.

12. Agregando más masa a un sistema de control de banda diferencial ___________ el sobrepico y ___________ el período de ciclo del proceso.

Desafío de Control: Invierta el Escenario Invierta las posiciones de los dispositivos de salida de la Figura 5.2. Reemplace el calentador de la Figura 5.2b por el ventilador y coloque el calentador directamente a la fuente de alimentación +como se muestra en la Figura 5.2c. Controle la temperatura encendiendo y apagando el ventilador mientras el calentador está permanentemente prendido. Tendrá que modificar el código de tal forma que la salida se encienda para hacer bajar la temperatura y se apague cuando pase por debajo de cierto valor. Puede convenirle acercar el sensor y el calentador y abrir el envase para que el aire pueda circular por alrededor del par. Esto modificará la dinámica del sistema. Podría realizar ciclos más rápidos, tener menos sobrepicos y ser más susceptible a oscilaciones. Experimente con él y anote sus observaciones. Observe que cada sistema con el que trabaja tiene sus propias características dinámicas.

Page 144: Industrial Control Version 1.0

Experimento 5: Control a Lazo Cerrado

Página Página Página Página 142142142142 • Control Industrial Versión 1.1

Page 145: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 143143143143

PID es la sigla para Control Proporcional-Integral-Derivativo. En esta sección, exploraremos cada uno de los métodos y cómo trabajan juntos para controlar eficientemente un sistema.

Introducción al Control PID Un objetivo del control de proceso es mantener constante un sistema. En el ejercicio anterior, usamos varios medios cíclicos para mantener el incubador a la temperatura deseada. Usando banda diferencial, creamos un rango en el que la temperatura puede variar cíclicamente alrededor del valor deseado. En el Experimento 4, vimos como usar modulación por ancho de pulso (PWM) para agregar energía a nuestro sistema con ciclos de trabajo entre 0% (completamente apagado) y 100% (completamente encendido). Mientras que estos tipos de control tienen sus ventajas y desventajas, el control PID nos permite controlar perfectamente un sistema, aunque puede resultar un poco más complejo de implementar y ajustar para un óptimo rendimiento. Mantener un proceso constante involucra agregar continuamente la misma cantidad de energía que pierde el proceso. Si las pérdidas del sistema fueran constantes, el control del proceso sería tan simple como aplicar un nivel continuo de excitación. Sin embargo, los factores que afectan un proceso siempre cambian. Cambian en cantidades y a velocidades impredecibles. Agregado a esto, deben entenderse las demoras en la reacción del sistema. Un cambio instantáneo en las pérdidas, debido a una perturbación, no se notará inmediatamente y tampoco lo hará un cambio en la excitación. El control del proceso puede ser considerado como un arte, además de una ciencia. El primer paso para entender el control PID es que cada sistema tiene ganancias y pérdidas de energía.

Esistema = Ein–Eout

Se dice que un sistema está en equilibrio cuando la energía ganada (in) equivale a la perdida (out).

Equilibrio: Ein = Eout

Una vez en equilibrio, nuestra incubadora mantendría una temperatura constante. Esto sería difícil o casi imposible de lograr. Dependiendo de la excitación del calentador y de las condiciones alrededor de la incubadora, la temperatura subirá o bajará. A medida que cambian las condiciones, como la temperatura ambiente, cambios en el movimiento del aire sobre el envase, rayos de sol iluminando el envase, o el resistor poniéndose viejo, la cantidad de calor agregado y perdido rara vez permanece constante.

Experimento 6: Control Proporcional-Integral- Derivativo

Page 146: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 144144144144 • Control Industrial Versión 1.1

Considere otros ejemplos de sistemas, como el sistema lubricante de un auto. El elemento activo, la bomba de aceite, es controlado para mantener el flujo de aceite deseado. Un cambio rápido en el sistema podría ser una válvula cerrándose para bloquear un sector de la cañería. Un cambio lento en el sistema podría ser la corrosión de las cañerías causando fricción, o el cambio de la temperatura del aceite. La bomba necesita ser ajustada para compensar esas pérdidas. Otro sistema a considerar es el automóvil en sí. Normalmente queremos que el auto mantenga una velocidad constante en la autopista. El motor compensa las pérdidas de fricción de las cubiertas contra el pavimento y de la carrocería contra el aire. Cuando el auto mantiene velocidad constante, el sistema está en equilibrio y nuestro pie mantiene el acelerador en una posición constante. Cuando cambian las condiciones, como cuando hay que subir una loma, la velocidad del auto cambia y comienza a disminuir. La aceleración de la gravedad comienza a influir sobre el auto, haciéndole perder parte de la energía que suministra el motor y el auto comienza a frenarse. ¿Si no apretamos más el acelerador, el auto se detendrá en algún punto de la cuesta? No, reducirá la velocidad hasta un valor constante más bajo donde las pérdidas igualen a la energía suministrada y se encontrará un nuevo equilibrio. Las condiciones o las perturbaciones de nuestro sistema pueden cambiar muy rápidamente, como cuando una ráfaga de viento sopla repentinamente sobre la incubadora, o muy lentamente como cuando el calentador se deteriora por el paso del tiempo. El control PID puede medir y tomar acción observando:

1) Qué tan lejos del punto de equilibro deseado está el sistema, o la magnitud del error. 2) El tiempo transcurrido desde que se presentó el error. 3) Qué tan rápido ocurre el error en el sistema, o la velocidad de cambio.

La suma de estas tres evaluaciones conforma la excitación de salida que intentará mantener el sistema en equilibrio. La Figura 6.1 ilustra la evaluación y control de un sistema con control PID. La fórmula clásica de control PID para calcular la salida del controlador es esta:

∫ ∆∆++= )*()*()*(

tEKdEtKiEKpCopid

Donde: Co = salida del controlador o excitación Kp = ganancia proporcional E = señal de error Ki = ganancia integral Kd = ganancia derivativa La ecuación de excitación basada en la anterior es:

%ExcitaciónTotal = ExcitaciónPROP + ExcitaciónINT + ExcitaciónDERIV

Page 147: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 145145145145

Figura 6.1: Diagrama en Bloques de Control PID

En esta sección, la incubadora será controlada usando control PID, resolviendo la ecuación correspondiente. Construcción del Circuito Usaremos el mismo circuito del Ejercicio 5 (Figura 5.2), pero conectará manualmente el ventilador a la fuente de alimentación sin regular o a los 5V cuando sea requerido para generar las perturbaciones. A continuación se transcribe el programa completo para esta sección. Cambiaremos los valores de Ajuste del Control PID para verificar las distintas áreas de control.

Page 148: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 146146146146 • Control Industrial Versión 1.1

'Programa 6.1: Control PID con StampPlot '********* CONFIGURACIÓN DEL CONTROL PID **************** SP CON 990 ' Temp deseada en décimas de grado Rango CON 20 ' Rango en décimas (20=2F) B CON 50 ' Configuración de excitación de polarización Kp CON 0 ' Ganancia Proporcional en décimas (10= ganancia de 1) Ki CON 0 ' Ganancia Integral en décimas (1= ganancia de 0,1) Ti CON 24 ' Tiempo de Reset Interal (1=~5 segundos) Kd CON 0 ' Ganancia Derivativa MinA CON 75 ' Valor Min. Del eje Y analógico MaxA CON 120 ' Valor Max. Del eje X analógico MaxT CON 600 ' Max. Tiempo en segundos del eje X '************************************************* '***** Configura graficador PAUSE 2000 DEBUG "!TITL Control PID ",CR ' Título DEBUG "!RSET",CR ' Reinicia el gráfico DEBUG "!PNTS 1000",CR ' 1000 puntos de datos DEBUG "!TMAX ",DEC MaxT,CR ' Tiempo max. DEBUG "!AMAX ",DEC MaxA,CR ' Max. analógico DEBUG "!AMIN ",DEC MinA,CR ' Min. analógico DEBUG "!AMUL .1",CR ' Multiplicador analógico 0,1 DEBUG "!TSMP ON",CR ' Habilita temporizador DEBUG "!SAVM ON",CR ' Guarda mensajes en archivo DEBUG "!CLMM",CR ' Limpia min/max en el reset DEBUG "!SHFT ON",CR ' Habilita desplazamiento de gráfico DEBUG "!PLOT ON",CR ' Habilita graficador ' Muestra la configuración del excitador DEBUG "!USRS SP=",dec SP," Kp=",dec Kp," Ki=",dec Ki," Ti=",dec Ti," Kd=",dec Kd,CR DEBUG "!RSET",CR ' Reinicia el gráfico ' ************** Define constantes y variables CS CON 3 ' Chip select del 0831 activo bajo en P3 del BS2 CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial de datos del 0831 al BS2 (P5) Calentador CON 8 ' Pin para controlar el calentador Datain VAR BYTE ' Variable para almacenar el número entrante (0 a 255) Temp VAR WORD ' Almacena valor convertido que representa la Temp. TempRango CON 5000 ' Rango completo en décimas de grado. Offset CON 700 ' Temperatura mínima. @Offset, ADC = 0 Signo VAR WORD ' Almacena el signo de los cálculos Excitacion VAR WORD ' Cantidad de excitación total Err VAR WORD ' Cantidad de Error P VAR WORD ' Cantidad de excitación Proporcional I VAR WORD ' Cantidad de excitación Integral D VAR WORD ' Cantidad de excitación Derivativa ContadorPWM VAR BYTE ' Contador para registrar tiempo de aplicación de PWM

Page 149: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 147147147147

UltimoErr VAR WORD ' Almacena temperatura anterior para control derivativo UltimoErr = 0 ContadorInt VAR BYTE ' Variable para contar ciclos de excitación integral TiempoPWM CON 20 ' Variable que define cuanto durará la excit. PWM ' (20=~5 segundos) Ei VAR WORD ' Error acumulativo para cálculo integral Ei = 0 ' Limpia error acumulativo '*************** Bucle principal Principal: GOSUB Obtenerdato GOSUB Calc_Temp GOSUB Calc_Excitacion GOSUB Grafica_Datos GOSUB Excitacion_Calentador GOTO Principal Obtenerdato: ' Adquiere conversión del 0831 LOW CS ' Habilita el chip LOW CLK ' Prepara línea de clock. SHIFTIN Dout, CLK, msbpost,[Datain\9] ' Lee datos HIGH CS ' conversión RETURN Calc_Temp: ' Convierte el valor digital en Temp. Temp = TempRango/255 * Datain/10 + Offset ' basándose en las variables Rango y RETURN 'Offset. Calc_Excitacion: GOSUB ErrorCalc ' Cálculos de Error GOSUB PropCalc ' Calcula error proporcional GOSUB IntCalc ' Calcula error Integral GOSUB DerivCalc ' Calcula error Derivativo Excitacion = (B + P + I + D) ' Calcula excitación total Signo = Excitacion ' Ajuste de signo para max 100 min 0 GOSUB PoneSigno Excitacion = ABS Excitacion MAX 100 IF Signo = 1 THEN ExcitListo Excitacion = 0 ExcitListo: RETURN '********* Excitacion del calentador Excitacion_Calentador: FOR ContadorPWM = 1 TO TiempoPWM ' Aplica PWM durante 220 mSec por cada repetición PWM Calentador, excitacion * 255/100,220 NEXT RETURN '********* Grafica datos Grafica_Datos:

Page 150: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 148148148148 • Control Industrial Versión 1.1

DEBUG DEC Temp,CR '** Mensaje de salida con formato de las lecturas (4 líneas) DEBUG "Deseada:", DEC SP," Temp:", DEC Temp DEBUG " %Err:",SDEC Err," %B=", DEC B, " %P=", SDEC P DEBUG " %I=",SDEC I," %D=", SDEC D DEBUG " %Excitación:",SDEC Excitacion, CR '** Mensaje de salida separado por comas para importar en hoja de cálculo ' DEBUG ",",DEC Temp,",",SDEC Err,",",SDEC P,",",SDEC I,",",SDEC D,",",SDEC Excitacion,CR RETURN '********** Calcula %Error - Signo ajustado ErrorCalc: Err = (SP - Temp) ' Calcula error de la temperatura Signo = Err GOSUB PoneSigno Err = ABS Err*100/Rango ' Calcula % error Err = Err * Signo RETURN '*********** Excitación Proporcional - Signo ajustado PropCalc: Signo = Err GOSUB PoneSigno P = ABS Err * KP + 5/10 ' Err prop= %Err * Kp /10 por escala, P = P * Signo ' +5 por redondeo RETURN '********** Excitación Integral - Signo ajustado IntCalc: Ei = Ei + Err ' Acumula %err ContadorInt = ContadorInt + 1 ' Incrementa contador IF ContadorInt < Ti Then IntListo Signo = Ei Gosub PoneSigno Ei = ABS Ei / Ti ' Encuentra error promedio Ei = Ei * Ki + 5 /10 ' Int err = Int err * Ki Ei = Ei * Signo I = I + Ei ' Suma error a Int err total Signo = I GOSUB PoneSigno I = ABS I MAX 100 ' limita a 100 I = I * Signo ContadorInt = 0 ' Reinicia contador y acumulador Ei = 0 IntListo: RETURN '*********** Excitación Derivativa DerivCalc: D = (Err-UltimoErr) * KD ' Calcula excitación derivativa ' basándose en la diferencia del último error

Page 151: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 149149149149

DerivListo UltimoErr = Err ' Almacena error actual para el próximo cálculo RETURN '********** Determina el signo de un valor PoneSigno: IF Signo.bit15 = 0 THEN SignoPos ' Si signobit es 1, entonces es negativo Signo = -1 Return SignoPos: Signo = 1 SignoListo: Return

Page 152: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 150150150150 • Control Industrial Versión 1.1

Figura 6.2: Diagrama de Flujo del Proceso Principal

La Figura 6.2 es un diagrama de flujo del bucle principal del programa PID. Cada proceso se discutirá en forma individual a medida que se toque cada tema. Todos los microcontroladores tienen sus limitaciones, así como otros sistemas tales como los Controladores Lógicos Programables (PLCs). Al programar operaciones complejas como en control PID, es importante comprender estas limitaciones y usar sistemas alternativos.

Inicio

Configura Control de Excitación

Configura SPL

Lee ADC

Calcula Temp.

Calcula Excitación

Envía datos SPL

Excita el Calentador

Page 153: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 151151151151

Ya hemos superado la restricción de tener que trabajar con números enteros, como en el caso de la temperatura, trabajando en décimas de grado. Otra limitación que necesitaremos sobrellevar es el uso de números negativos. Si bien el BASIC Stamp puede usar valores negativos, no los puede dividir o usar en instrucciones MIN y MAX para limitar su tamaño. En esta sección ambos problemas serán importantes. Los valores de excitación PID serán negativos o positivos dependiendo de si es necesario agregar o quitar excitación del sistema. También necesitaremos limitar los valores máximos de forma que no excedan el 100% bajo ciertas circunstancias, como con excitación total. Para realizar estas tareas, es usada una subrutina llamada PoneSigno. Varias rutinas la llaman usando GOSUB. El número a ser manipulado, que puede ser negativo, se almacena en una variable tipo word rotulada Signo. Cuando PoneSigno es llamada, el bit de signo (bit15) es verificado. Si el bit de signo es 1, es un valor negativo y la variable Signo se pone en -1. Si el bit de signo es 0, es positivo y Signo se pone en 1. De regreso en la rutina que hizo la llamada, se manipula el valor absoluto del número original. El resultado luego se multiplica por Signo para que recupere su signo original. Los valores consigno pueden ser de–32.768 a +32767. PropCalc: Signo = Err GOSUB PoneSigno P = ABS Err * KP + 5/10 ' Prop err = %Err * Kp /10 por escala, P = P * Signo ' +5 por redondeo RETURN ... PoneSigno: IF Signo.bit15 = 0 THEN SignoPos ' Si el bit es 1, entonces es negativo Signo = -1 Return SignoPos: Signo = 1 SignoListo: RETURN

La primer parte del programa a considerar son los cálculos de excitación total. La Figura 6.3 es un diagrama de flujo para estas rutinas. Como se mencionó anteriormente, la excitación total es la suma de tres evaluaciones diferentes basadas en el error. El porcentaje de excitación total se aplicará entonces al calentador usando PWM durante 5 segundos. Esto permite que el tiempo con el calentador encendido sea mucho mayor que el relativamente corto en el que está apagado, para realizar otras operaciones.

Page 154: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 152152152152 • Control Industrial Versión 1.1

Figura 6.3: Diagrama de Flujo de la Rutina de Excitación

Excitacion_Calentador: FOR ContadorPWM = 1 TO TiempoPWM ' Aplica PWM durante 220 mSec por cada PWM Calentador,drive * 255/100,220 ' repetición NEXT RETURN Calc_Excitacion: GOSUB ErrorCalc ' Cálculos de Error GOSUB PropCalc ' Calcula error proporcional GOSUB IntCalc ' Calcula error Integral GOSUB DerivCalc ' Calcula error Derivativo Excitacion = (B + P + I + D) ' Calcula excitación total Signo = Excitacion ' Ajuste de signo para max 100 min 0 GOSUB PoneSigno Excitacion = ABS Excitacion MAX 100 IF Signo = 1 THEN DriveListo Excitacion = 0 DriveListo: RETURN

Calcular Excitación

Calcular % Error

Calcular % de Excitación

Proporcional

Calcular % de Excitación Integral

Calcular % de Excitación Deriv.

Sumar Excitaciones para % Ex. Total

Ajuste para máximo de 100%

Return

Page 155: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 153153153153

Ejercicio 1: Excitación de Polarización Como se dijo antes, un sistema en equilibrio es donde la ganancia de energía iguala a las pérdidas. Cuando se diseña un sistema normalmente los ingenieros habrán determinado anticipadamente el promedio de pérdidas del sistema. La Excitación de Polarización es la que compensa las pérdidas de energía promedio. Diseñando el sistema de forma que una excitación de polarización del 50% sea suficiente para compensar las pérdidas promedio, nos da la capacidad de agregar o quitar hasta un 50% para compensar otras pérdidas o grandes perturbaciones del sistema. Este punto es el que nos permite ejercer mayor control. Modifique nuestra ecuación ligeramente:

∫ ∆∆+++= )*()*()*(

tEKdEtKiEKpCo Bpid

B = Excitación de Polarización O:

%ExcitaciónTOTAL = %ExcitaciónPOLARIZ + %ExcitaciónPROP + %ExcitaciónINT + %ExcitaciónDERIV Para que los huevos de nuestra incubadora empollen correctamente, una excitación del 50% en el calentador debería proveer suficiente energía para mantener la temperatura de la incubadora alrededor de 101,5F con pérdidas promedio. Desafortunadamente, nuestro sistema no está bien diseñado. Al tratarse de un envase de película si aislar, con un pequeño resistor haciendo las veces de calentador, una excitación del 50% no será suficiente la mayoría de las veces para mantener la temperatura deseada. Algunas limitaciones de nuestra incubadora experimental son:

• Una polarización de la excitación del 50% es insuficiente para mantener una temperatura de 101,5F. • Cada incubadora tendrá una temperatura estable diferente para una excitación de polarización del

50% debido a diversos factores. • Nuestra incubadora es un sistema muy fácil de perturbar. Factores como temperatura ambiente y

ventiladores soplando sobre el envase, modificarán la temperatura. • Al mover o golpear la incubadora se mezclará el aire, afectando la temperatura medida.

Ejercicios

Page 156: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 154154154154 • Control Industrial Versión 1.1

Modificaremos nuestro punto de ajuste óptimo para operar el sistema a una temperatura de polarización del 50%. Observe que esta temperatura de polarización puede variar de acuerdo a las condiciones de la habitación. Se recomienda que el estudiante lea primero todo el Capítulo 6 y luego intente hacer tantas prácticas consecutivas como sea posible.

BpidCo =

%ExcitaciónTOTAL = %ExcitaciónPOLARIZACIÓN Para determinar la temperatura de polarización:

1) Apague su sistema y espere hasta que se enfríe a temperatura ambiente. 2) Verifique que la Configuración del control de Excitación se ajuste a lo siguiente:

'********* CONFIGURACIÓN DE CONTROL PID **************** SP CON 990 ' Inicialice SU temp deseada en décimas de grado Rango CON 20 ' Rango permitido en décimas (20=2F) B CON 50 ' Configuración de excitación de polarización Kp CON 0 ' Ganancia Proporcional en décimas (10= ganancia de 1) Ki CON 0 ' Ganancia Integral en décimas (1= ganancia de 0,1) Ti CON 24 ' Tiempo de Reset Interal (1=~5 segundos) Kd CON 0 ' Ganancia Derivativa MinA CON 75 ' Valor Min. Del eje Y analógico MaxA CON 120 ' Valor Max. Del eje X analógico MaxT CON 600 ' Max. Tiempo en segundos del eje X

Observe que Kp, Ki y Kd están todas en 0 por lo que no proveen ninguna excitación, dejando solamente la excitación de polarización del 50% sobre el calentador.

3) Encienda su sistema y descargue el programa al BASIC Stamp 2. 4) Cierre la ventana debug y conecte StampPlot Lite. 5) Reinicie su BASIC Stamp 2 presionando “reset” en la plaqueta. 6) Permita que la temperatura de la incubadora se estabilice para encontrar la temperatura de

polarización del 50%. 7) Redondee la temperatura estabilizada al grado entero más cercano y fíjela como su constante SP

(setpoint o punto de ajuste, Ej. 98.8 = 990). La Figura 6.4 muestra un ejemplo de este procedimiento.

Page 157: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 155155155155

Figura 6.4: Temperatura de Polarización con el 50% de Excitación

Observe cuánto tiempo le tomó a la temperatura estabilizarse. En nuestra prueba, aproximadamente 450 segundos. En un sistema con una respuesta de primer orden, tal como nuestra incubadora, el sistema necesita 5 constantes de tiempo (5TCs) para estabilizarse (o alcanzar el 99% del valor de equilibrio) como respuesta a un cambio de tipo escalón en las condiciones. En este caso el escalón es un salto en la excitación del 0% al 50%. De esta forma, 1 constante de tiempo (1TC) para nuestro sistema sería 450/5 o 90 segundos. El tiempo de respuesta del sistema es importante cuando se está ajustando un sistema, como verá más adelante. Registre los siguientes datos: Temperatura de Polarización con 50%: ______

Tiempo para 5TCs: _____ Tiempo para 1TC: _____

Page 158: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 156156156156 • Control Industrial Versión 1.1

Ejercicio 2: Control Proporcional (Kp*E)BCopid +=

%ExcitaciónTotal = %ExcitaciónPOLARIZACIÓN +% ExcitaciónPROP La siguiente evaluación en la ecuación PID es el control proporcional del sistema. La cantidad de excitación de control proporcional es una relación directa con la cantidad de error del sistema. A mayor error mayor será la excitación proporcional. Digamos que nuestro setpoint (punto de ajuste o deseado) es 101,5F y una polarización del 50% es suficiente para mantener esta temperatura. Si la temperatura cae a 101,0F, generando un error de –0,5F, ¿querríamos excitar al 100% o a algún valor menor, para regresar la temperatura al punto deseado? En nuestra incubadora, queremos mantener una temperatura de 101.5F. Cuanto más estable sea la temperatura, más saludables serán los pollitos. Igualmente es permisible una variación de 0,5F por encima o por debajo de este punto. De esta forma nuestro setpoint será 101,5 con una tolerancia de +/- 0,5F, o lo que es lo mismo, de 101,0F a 102,0F grados. Si cualquier error alcanza los límites superior o inferior, queremos que se tome una acción total para regresar la temperatura al setpoint. Cualquier error entre el setpoint y los límites de tolerancia proveerá una acción de excitación proporcional. La Figura 6.5 es una representación gráfica de la temperatura de la incubadora vs. la cantidad de excitación necesaria para esa banda.

Figura 6.5: Temperatura vs. Excitación

0102030405060708090

100110

100 100,5 101 101,5 102 102,5 103

Temperatura

Exci

taci

ón P

WM

%

% Excitación

Page 159: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 157157157157

De la Figura 6.5, si la temperatura es de 101,5F, se usará una excitación del 50% para agregar energía a nuestro sistema. Si la temperatura cae a 101 F, se usará una excitación del 100% para aumentar la temperatura y cualquier temperatura intermedia usará una cantidad proporcional de excitación. Si la temperatura sobrepasa los 101,5F, la excitación decrecerá proporcionalmente para disminuir la temperatura. A partir de 102F, la excitación decrece a 0%. Observando el gráfico, ¿cuál sería la excitación a 101,2 grados? ______; ¿y a 101,7 grados? _______. Ahora observemos esto mismo matemáticamente. El error de nuestro sistema es calculado restando la temperatura deseada (setpoint) de la actual:

Error = Setpoint-Actual El porcentaje de error se encuentra dividiendo el valor del error por el rango de temperatura y multiplicando por 100%:

x100%RangoError%Error =

Para nuestra incubadora el rango de temperatura es:

102,0-101,0 = 1,0F. Si la temperatura es 101,2:

Error = 101,5 – 101,2 = 0,3 %Error (E) = 0,3/1,0*100% = 30%

La fórmula general de ganancia es:

∆Entrada∆SalidaGanancia =

En nuestro ejemplo, estamos usando el 100% del rango de excitación sobre el 100% del rango permisible de temperatura:

1%100%100

∆Entrada∆Salidap)Ganancia(K ===

Nuestro sistema tendría una ganancia proporcional (Kp) de 1.

Page 160: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 158158158158 • Control Industrial Versión 1.1

La cantidad de excitación proporcional a 101,2 grados sería: %ExcitaciónPROP = Kp*E = 1 * 30% = 30% La excitación total para nuestro sistema a esa temperatura sería entonces:

%ExcitaciónTOTAL = B+(Kp*E)= 50%+30% = 80%. ¿Corresponde este valor al que se obtiene gráficamente de la Figura 6.3 para una temperatura de 101,2F? Calcule la excitación total para una temperatura de 101,7: __________ Compare ese valor con la Figura 6.3. ¿Son iguales? ________. Un término más a considerar es Banda Proporcional. La Figura 6.3 se denomina Banda Proporcional del 100% debido a que se emplea el rango completo en la excitación, del 100% de la banda permisible (101,0-102,0). ¿Esto significa que la temperatura no excederá los límites superior e inferior? No. Esto simplemente significa que la respuesta dentro de esos límites será total, usando los valores máximos posibles en la acción de respuesta para lograr que la temperatura regrese al setpoint. ¿Qué sucede si queremos un control más ajustado de la temperatura de nuestro sistema? La banda permisible para el incubador sigue siendo 101,0 to 102,0, pero podemos ajustar nuestros valores para que tomen acción total sobre la mitad de ese rango. La Figura 6.6 es un gráfico de este control.

Page 161: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 159159159159

Figura 6.6: Temperatura vs. Excitación Sobre un 50% del Rango

En la Figura 6.6 el sistema está excitando el doble para una misma desviación del setpoint. ¿Cuál sería la ganancia proporcional para este sistema?

2%50%100

∆Entrada∆Salidap)Ganancia(K ===

Observe que el sistema está empleando el rango total de salida sobre solamente el 50% del rango permisible de temperatura. Esto también es conocido como Banda Proporcional del 50% debido a que se toma la acción total de control sobre el 50% del rango permisible. Use las ecuaciones para calcular lo siguiente a 101,7F: Error = __________ %Error = _________ (Pista: la banda permisible aún es 1,0) Excitación Proporcional = ________ Excitación Total = _________. Observe la relación entre ganancia proporcional y banda proporcional:

%50%100*21%100*

alProporcion Ganancia1 alProporcion Banda ===

0102030405060708090

100110

100 100,5 101 101,5 102 102,5 103

Temperatura

Exci

taci

ón P

WM

%

% Excitación

Page 162: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 160160160160 • Control Industrial Versión 1.1

¿Y si quisiéramos un sistema de respuesta más lenta? Podemos definir que el rango de excitación esté por encima de las temperaturas del rango permisible. Si el 100% de la excitación cubriera el doble del rango permisible:

5.0%200%100

∆Entrada∆Salidap)Ganancia(K ===

Calcule la banda Proporcional: ________ Grafique la Excitación vs. Temperatura:

Calcule los siguientes datos para una temperatura de 101,7F: Error = _________ %Error = _________ (Pista: la banda permisible aún es 1,0) Excitación Proporcional = _________ Excitación Total = _________.

0102030405060708090

100110

100 100,5 101 101,5 102 102,5 103

Temperatura

Exci

taci

ón P

WM

%

% Excitación

Page 163: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 161161161161

Controlando la Incubadora: La teoría es muy linda, pero ahora necesitamos tratar con la temperatura real dentro del envase usando control proporcional. Para esto, necesitaremos trabajar con ciertas limitaciones:

1) La temperatura de polarización con una excitación de polarización del 50% no será 101,5F. La temperatura de polarización al 50% de su incubadora se halló en el Ejercicio 1 de este experimento. Si es necesario, busque nuevamente la temperatura de polarización actual. Esto debería hacerse si usted piensa que las condiciones en el interior o el exterior del envase son diferentes de cuando se calculó la temperatura de polarización anterior. Por ejemplo, si la temperatura ambiente es más alta ahora, la temperatura estable con 50% de polarización será mayor.

2) El BASIC Stamp trabaja con matemática entera. Nuestras temperaturas están en décimas de grado (101,5F=1015) y querremos trabajar con ganancias menores que 1.

3) La resolución del conversor A/D es de 0,19 grados, lo que no nos permitirá realizar un control fino con una banda de temperaturas permisible de 101,0 a 102,0. Para estos experimentos incrementaremos la banda permisible a +/-1,0F o 100,5F a 102,5F, obteniendo un rango de 2,0F.

Al realizar estos experimentos, la secuencia general será esperar hasta que la incubadora se estabilice a la temperatura de polarización. Una vez estable, el programa PID con las configuraciones adecuadas se descargará. Después de 1 minuto el ventilador se posicionará a aproximadamente 3 centímetros del envase y se encenderá manualmente, conectando el terminal positivo a la fuente (Vin) durante 10 segundos. La Figura 6.7 es el diagrama de flujo de los cálculos de error y excitación proporcional. Observe que en los cálculos de excitación proporcional el resultado es dividido por 10 para escalar el valor de Kp.

Page 164: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 162162162162 • Control Industrial Versión 1.1

Figura 6.7: Cálculos de Error y Excitación Proporcional

'********** Calcula %Error - Signo ajustado ErrorCalc: Err = (SP - Temp) ' Calcula error de temperatura Signo = Err GOSUB PoneSigno Err = ABS Err*100/Rango ' Calcula % error Err = Err * Signo Return '*********** Excitación Proporcional - Signo ajustado PropCalc: Signo = Err GOSUB PoneSigno P = ABS Err * KP/10 ' Error Prop = %Err * Kp (/10 para escala) P = P * Signo RETURN

Calcular % Error

Error = Setpoint-Temp

% Error = Error/Rango*100

Regresar

Regresar

Calcular % Excit. Prop.

% Error Prop= %Error * Kp

Page 165: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 163163163163

Control PID: Banda Proporcional 100%, Ganancia Proporcional = 1

1) De ser necesario, encuentre la temperatura de polarización de excitación del 50%. Permita que la temperatura se estabilice a la temperatura de polarización.

2) Ajuste la configuración de control PID del programa 6.1 correctamente, usando un valor de SP SP SP SP igual a la temperatura de polarización en décimas igual a la temperatura de polarización en décimas igual a la temperatura de polarización en décimas igual a la temperatura de polarización en décimas y el valor de Kp en 10Kp en 10Kp en 10Kp en 10 para una ganancia de 1para una ganancia de 1para una ganancia de 1para una ganancia de 1.

3) Desconecte SPL, descargue el programa al BS2, cierre la ventana debug, reconecte el SPL y reinicie su BS2.

4) Monitoree la temperatura en el SPL. Cuando haya pasado 1 minuto (60 segundos), encienda el ventilador durante 10 segundos.

5) Monitoree la respuesta de la incubadora a la perturbación.

Figura 6.8a: Respuesta con Kp = 1, Banda 100%

Note como la temperatura sobrepasa el valor límite, luego se detiene y comienza a descender, sobrepasa el límite inferior y va hacia arriba nuevamente. Esto es llamado sobreexcitación (hunting)sobreexcitación (hunting)sobreexcitación (hunting)sobreexcitación (hunting). Se pone y se saca

Page 166: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 164164164164 • Control Industrial Versión 1.1

excitación basándose en la respuesta del sistema hasta que finalmente se alcanza un valor estable. Dependiendo de las necesidades del sistema, el control PID puede ajustarse para evitar la sobreexcitación. El control de velocidad crucero de nuestros autos actuaría muy extraño si hiciera oscilar nuestra velocidad alrededor de la velocidad deseada. El recuadro del usuario en la parte superior de la gráfica muestra la configuración actual para el control PID. La ventana de mensajes muestra el valor del setpoint y la temperatura actual, %Error y la excitación. Realicemos los cálculos para analizar algunos de estos valores. El setpoint es 970 o 97,0F, la temperatura de polarización de nuestra prueba. A una temperatura de 962 (96,2F) la excitación total fue del 90% con un 50% de excitación de polarización y un 40% de la excitación proporcional.

Error = Setpoint – Temperatura = 97,0F-96,2F=0,8F %Error = Error / rango * 100 = 0,8F/2F * 100 = 40% %ExcitaciónPROP = Kd*E = 1*40% = 40% %ExcitaciónINT y ExcitaciónDERIV serán 0 dado que sus ganancias son 0. %ExcitaciónTotal = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónINT + %ExcitaciónDERIV =

= 50% + 40% + 0% + 0% = 90% ¡Los cálculos funcionan! Usando la línea opcional para almacenar un mensaje en un archivo de la subrutina Mostrar, los datos almacenados podrían importarse en una hoja de cálculo como Excel, para su análisis. Es una versión simple, separada por comas, de los datos de la ventana de mensajes, que puede ser importada y graficada en otro utilitario. '** Mensaje de salida separado por comas para importar en hoja de cálculo ' DEBUG ",",DEC Temp,",",SDEC Err,",",SDEC P,",",SDEC I,",",SDEC D,",",SDEC Excitacion,CR

La Figura 6.8b muestra estos datos importados a Excel, mostrando el error, excitación proporcional y excitación total.

Page 167: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 165165165165

Figura 6.8b: Archivo Graficado en Excel

Excitación con Kp=1

-80-60-40-20

020406080

100120

0,44

26,3

52,1

77,9

104

130

155

181

207

233

259

284

310

336

Segundos

% E

xcita

ción

%Err%P% Excitación

Note que con una ganancia proporcional de 1, la línea de %Error no se puede apreciar porque %P (Error Proporcional) está superpuesta, debido a que %ExcitaciónPROP = %Error. La cantidad de error proporcional se suma a la excitación de polarización del 50% y sigue exactamente el mismo patrón que el error.

Page 168: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 166166166166 • Control Industrial Versión 1.1

Control PID: Banda Proporcional 50%, Ganancia Proporcional = 2Control PID: Banda Proporcional 50%, Ganancia Proporcional = 2Control PID: Banda Proporcional 50%, Ganancia Proporcional = 2Control PID: Banda Proporcional 50%, Ganancia Proporcional = 2 Repita el experimento para una banda proporcional del 50% y una ganancia de 2. Cambie Kp = 20Kp = 20Kp = 20Kp = 20 en los ajustes de control y ejecute el programa.

Figura 6.9a: Respuesta con Ganancia = 2, Banda 50%

Con una ganancia de 2, note que la velocidad de respuesta es ligeramente más rápida aunque se observa mayor sobreexcitación (hunting).

Page 169: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 167167167167

Figura 6.9b: Archivo de Datos Graficado en Excel

Excitación con Kp=2

-150

-100

-50

0

50

100

150

200

0,44

26,3

52,1

77,9

104

130

155

181

207

233

259

284

310

336

Segundos

%Ex

cita

ción %Err

%P%Excitación

Observe en la Figura 6.9b que con esta configuración de ganancia la cantidad de excitación proporcional (%P) es el doble que el error (%Err). Verifique los valores de excitación mostrados en la ventana de mensajes de la Figura 6.7a a 96,7F:

Error = __________ %Error = __________ %ExcitaciónPROP = __________ %ExcitaciónTOTAL = __________

Page 170: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 168168168168 • Control Industrial Versión 1.1

Control PID: Banda Proporcional 20%, Ganancia Proporcional = 5 Demasiada ganancia puede ser perjudicial para el control. Repita el experimento para una banda proporcional del 20% y una ganancia de 5. Use Kp = 50Kp = 50Kp = 50Kp = 50 en la configuración de control. La Figura 6.10 es nuestro resultado en el SPL.

Figura 6.10: Respuesta con = 5, Banda 20%

Note que la velocidad de respuesta es nuevamente un poco más rápida, pero se presenta muchísima más sobreexcitación e inestabilidad continua del sistema. Como experimento final, fije una temperatura de referencia (SP) mucho más alta que la temperatura de polarización, pero dentro de un rango controlable con una ganancia proporcional de 1 (Kp=10). Realizamos la prueba para 10F por encima de la temperatura de polarización (107F). Grafique los resultados. La Figura 6.11 muestra el resultado de nuestras pruebas.

Page 171: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 169169169169

Figura 6.11: Setpoint 10F (107F) por encima de la Temperatura de Polarización

Si bien lo intenta mucho, la temperatura no se estabiliza a 107 grados. Si 107F es una temperatura que el sistema podría mantener, ¿por qué no se estabiliza allí? Recuerde que nuestro sistema con una excitación del 50% se estabilizaba alrededor de 97F. Se agrega excitación adicional debido a que existe un error. Si la incubadora fuera capaz de estabilizarse en el setpoint, el error sería 0, proveyendo una excitación proporcional de 0%, quedando solamente la excitación de polarización que no es suficiente para mantener la temperatura, creando un error.

%ExcitaciónTOTAL = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP %ExcitaciónPROP = Kp*E. Si E = 0 entonces %ExcitaciónPROP = 0%. %ExcitaciónTOTAL = 50% + 0%

Si la temperatura deseada no es la de polarización, algún error DEBE existir para proveer excitación adicional del control proporcional. A menor ganancia proporcional, menor será el error restante. En la próxima sección, veremos como puede usarse el Error Integral para generar una excitación que termine con ese error remanente.

Page 172: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 170170170170 • Control Industrial Versión 1.1

¡Desafío!

1. Si la ganancia proporcional se pusiera en 0,5 (Kp=5), ¿qué tipo de respuesta del sistema esperaría? ¿Por qué?

2. si la temperatura está 0,6F por debajo del setpoint, ¿cuál sería la excitación total? 3. Confirma su teoría.

Ejercicio 2: Control Proporcional + Integral

∫++= )*()*( EtKiEKpCo Bpid

%ExcitaciónTotal = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónINT

Anteriormente hemos observado lo que ocurre cuando ocurrían perturbaciones rápidas en nuestro sistema en equilibrio. El control proporcional puede ser usado para llevar a la temperatura de regreso al setpoint. Pero, ¿qué sucede cuando la perturbación afecta el equilibrio de nuestro sistema por un largo período de tiempo? Al final del último experimento se vio lo que ocurre cuando la excitación de polarización no es suficiente para contrarrestar las pérdidas promedio. Debido a que debe existir algún error para que se produzca excitación proporcional, la temperatura deseada no puede ser mantenida. El control Integral puede ser usado para eliminar el error remanente debido a perturbaciones duraderas del sistema. Estas pueden ser producidas por pérdidas o ganancias de energía que persisten por un largo período de tiempo. Considere nuestra incubadora. Encontramos una temperatura de polarización en la que una excitación de polarización del 50% era suficiente para contrarrestar las pérdidas del sistema, manteniéndolo el equilibrio. Pero, que pasaría si el ventilador se apuntara permanentemente a la incubadora? Las pérdidas continuas del sistema serían mayores. La excitación de polarización del 50% no será suficiente para mantener la temperatura y la excitación proporcional responderá al error en un intento de regresar el sistema al. Pero como hemos visto, debido a que debe permanecer algo de error, no se puede mantener el setpoint. El sistema se estabilizará a una temperatura inferior a la deseada. En función del tiempo, la excitación integral puede usarse para eliminar este error remanente, permitiendo que la temperatura alcance el setpoint. La excitación Integral también es usada cuando se necesita realizar una aproximación lenta con tiempos largos de estabilización, para asegurarse que no se produzcan sobrepicos. Considere por ejemplo, la cocción

Page 173: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 171171171171

de una sopa. Después de cocinarla un poco la prueba, agrega la cantidad de sal que le parece que falte para que tenga buen gusto. ¿La prueba inmediatamente después y agrega más sal? No, espera por un rato para que la sal se mezcle, luego la prueba y agrega un poquito más hasta que consigue el gusto que deseaba. ¿Qué sucede si le agrega demasiada sal? ¡Sacar un poco de sal de la sopa le resultaría un poco difícil! Un ejemplo industrial podría ser agregar pigmento a una pintura para lograr el color deseado. Circuitos electrónicos monitorean el color de la pintura y agregan gradualmente el pigmento hasta que se alcanza el color deseado. En la excitación integral, la cantidad de error es integrada con respecto al tiempo. A mayor error y cuanto más dure, mayor será la excitación integral. Como se ve en la Figura 6.12, la cantidad de error bajo la curva se acumula para encontrar el error integrado. Cuanto más tiempo dura el error, mayor será el error total integrado (ET).

Figura 6.12: Integrando el Error

El error integrado es multiplicado por la ganancia integral para encontrar la ganancia integral.

ET = Σ(E1+E2+E3+…) %ExcitaciónINT = Ki* ET/T

Tiempo

Seña

l de

Erro

r

Page 174: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 172172172172 • Control Industrial Versión 1.1

¿Qué tan a menudo se actualiza la ganancia integral? La excitación integral debería basarse en lecturas estables. Dependiendo del tiempo de respuesta del sistema podría tratarse de segundos a horas o incluso días. Al igual que al agregar sal a la sopa, si agregamos más sal antes de que se estabilice la mezcla, sería muy fácil pasarse de la cantidad necesaria. El tiempo de estabilización de nuestra incubadora se halló en el Experimento 1 de esta misma sección y fue de 450 segundos es nuestro caso. La Figura 6.13 es el diagrama de flujo para los cálculos de la integral.

Figura 6.13: Diagrama de Flujo de Cálculo de la Integral

Código para el diagrama de flujo anterior: '********** Excitación Integral - Signo Ajustado IntCalc: Ei = Ei + Err ' Acumula %err ContadorInt = ContadorInt + 1 ' Incrementa contador IF ContadorInt < Ti Then IntListo Signo = Ei Gosub PoneSigno Ei = ABS Ei / Ti ' Encuentra error promedio

Cálculo de % de Excitación Integral

Acumular Error total

Sumar uno al contador integral

Contador < Reset?

Regresar

Si

No

Calcular error promedio

Multip. error prom. por ganancia

Sumar % Excit. Error Integral

Reiniciar eror acumulado

Reiniciar contador

Page 175: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 173173173173

Ei = Ei * Ki + 5 /10 ' Int err = Int err * Ki Ei = Ei * Signo I = I + Ei ' Suma error a Int err total Signo = I GOSUB PoneSigno I = ABS I MAX 100 ' limita a 100 I = I * Signo ContadorInt = 0 ' Reinicia contador y acumulador Ei = 0 IntListo: RETURN

Page 176: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 174174174174 • Control Industrial Versión 1.1

Controlando la incubadora En este ejercicio, se usará el ventilador para producir una perturbación de larga duración sobre el sistema. El ventilador debería ser colocado a aproximadamente 15 centímetros de la incubadora. Será alimentado desde Vdd (5V – Pin 20 o desde el terminal Vdd junto a la protoboard) para proveer un enfriamiento ‘suave' del envase (puede tener que impulsar el ventilador para ayudarlo a arrancar). Esto producirá una perturbación a largo plazo del sistema, en lugar de las perturbaciones fuertes de 10 segundo usadas en el experimento de control proporcional. En la ganancia proporcional usaremos un valor muy pequeño para evitar la sobreexcitación y permitir un rango bastante amplio de error desde el setpoint. El tiempo de actualización integral, o tiempo de reset, será de 120 segundos (450 segundos sería más apropiado para permitir que el sistema se estabilice, pero es muy largo de graficar). La ganancia Integral se fijará en décimas. 1) Ajuste el Programa 6.1 para una Banda Proporcional de 1000%, Ganancia de 0,1 (Kp=1Kp=1Kp=1Kp=1) y Ganancia

Integral de 0(Ki=0Ki=0Ki=0Ki=0) y derivativa en 0 (Kd=0Kd=0Kd=0Kd=0).

2) Apunte el ventilador hacia la incubadora desde una distancia de 15cm (si no ve respuesta después de 30 segundos, acérquelo en incrementos de 2 cm y pruebe otra vez).

3) Conecte el ventilador al Pin 20 (5V) y a masa. Ayude a arrancar el ventilador si es necesario.

4) Permita que el sistema se estabilice con esta nueva pérdida.

5) Cambie la ganancia integral a 0,1 (Ki=1Ki=1Ki=1Ki=1), Ti = 24.

6) Descargue el programa y grafique con los valores nuevos.

La Figura 6.14a muestra los resultados obtenidos con un setpoint de Polarización de 97,0F y la Figura 6.14b es un gráfico de Excel realizado con los datos capturados.

Page 177: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 175175175175

Figura 6.14a: Efectos de Perturbaciones Duraderas

Note que con una temperatura de Polarización de 97,0F y la perturbación del ventilador, la temperatura estable inicial fue de 94,8F. Con el tiempo la excitación, así como también la temperatura, ascendieron lentamente hasta que la temperatura alcanzó el setpoint.

Page 178: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 176176176176 • Control Industrial Versión 1.1

Figura 6.14b: Datos Graficados en Excel

Kp=0,1 Ki=1

-20

02040

60

80100120

140

0,44

26,3

52,1

77,9

104

130

156

181

207

233

259

285

310

336

362

388

Segundos

%Ex

cita

ción %Err

%P%I%Excit.

Note que el error inicial (%Err) fue del 11% a una temperatura estable de 94.8F.

%ExcitaciónTotal = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónINT

%ExcitaciónPROP = Kp * ET = 0,1 * (97,0F-94,8F)/2F * 100 = 11% %ExcitaciónINT = Ki * 0 hasta el primer tiempo de reset. %ExcitaciónTotal = 50% + 11% + 0%

A aproximadamente 120 segundos, se cumple el primer tiempo de reset integral. Todos los valores de error anteriores se suman y promedian en el tiempo. Esto es multiplicado por la ganancia integral para encontrar la excitación integral.

%ExcitaciónPROP = 11% dado que la temperatura es aún 95,8F %ExcitaciónPROP = Kp * ET = 0,1 * (11%+11%+11%….[¡24 veces!])/24 = 11% %ExcitaciónTotal = 50% + 11% + %11% = 72%

Note que a mayor excitación total (%Excitación), la temperatura comienza a aumentar, el error disminuye así como también la excitación proporcional. La excitación Integral permanece constante hasta el próximo tiempo de reset que se produce a los 240 segundos, donde se vuelve a incrementar el valor de acuerdo al promedio de los valores desde el reset anterior.

Page 179: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 177177177177

Eventualmente, la temperatura alcanza el setpoint, el error tiende a cero, la excitación proporcional prácticamente desaparece y la excitación integral junto con la de polarización mantienen la temperatura.

%ExcitaciónTotal = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónINT

%ExcitaciónTotal = 50% -1% + 21% = 70% ¿Pero qué sucede cuando se quita la perturbación?

1) Apague el ventilador.

Figura 6.15: Temperatura Luego de Quitar una Perturbación

La Figura 6.15 muestra lo que sucede cuando se quita la perturbación. La excitación adicional provista por la componente integral desaparecerá lentamente. Puede producirse Sobreexcitación Integral si la excitación integral agregada es insuficiente para forzar el sistema a volver a la temperatura de setpoint. La excitación Integral se incrementaría continuamente. Esto significaría que el error persistiría constantemente y la salida se ‘sobreexcitaría’ a niveles excesivamente

Page 180: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 178178178178 • Control Industrial Versión 1.1

grandes, generando un sistema sin respuesta. Si nuestro programa permitiese que la excitación integral llegara al 20.000%, ¿cuánto tiempo necesitaría para recuperarse, una vez eliminada la perturbación y con un error residual del 10%? Es astuto tomar recaudos en su programa para limitar la excitación integral acumulativa a menos del 100% ¡Desafío!

1. ¿Cuál sería la respuesta del sistema si la ganancia Integral fuese 1 (Ki=10) y el tiempo de reset 60 segundos (Ki=12)? ¿Por qué?

2. Pruebe y confirme su teoría.

Ejercicio 3: Control Proporcional-Derivativo

)*()*(tEKdEKpCo Bpid ∆

∆++=

%ExcitaciónTOTAL = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónDERIV

El Control Derivativo responde a un CAMBIO en el error. La premisa fundamental para determinar la excitación derivativa asume que la velocidad actual de cambio de la señal de error continuará en el futuro a menos que se tome alguna acción. La excitación derivativa, cuando se ajusta apropiadamente, permite que un sistema responda rápidamente a cambios bruscos. La Figura 6.16 ilustra como evaluaríamos la pendiente de una señal de error. Encontrando las diferencias entre muestras de error tomadas a intervalos regulares, podemos encontrar la velocidad de cambio de la variable del proceso. A mayor diferencia, mayor será la pendiente y por lo tanto mayor la excitación derivativa necesaria para contrarrestar el cambio.

Page 181: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 179179179179

Figura 6.16: Error Derivativo

Considere el acto de hacer equilibrio sobre un tronco caído. Normalmente realiza pequeños ajustes para que la posición de su cuerpo mantenga el balance. Usted está respondiendo proporcionalmente a un error que existe en su equilibrio. De pronto, una gran ráfaga de viento lo golpea causándole una rápida pérdida del balance. En respuesta, usted gira velozmente para contrarrestar el viento. Esta acción se basó en un cambio repentino en su equilibrio, en un período de tiempo muy corto. En nuestra incubadora, un cambio rápido de la temperatura será contrarrestado por una reducción inmediata en la excitación.

Tiempo

Seña

l de

Erro

r

Pendiente

Page 182: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 180180180180 • Control Industrial Versión 1.1

Figura 6.17: Diagrama de Flujo y Código para Control Derivativo

Código para este diagrama de flujo: '*********** EXCITACIÓN DERIVATIVA DerivCalc: D = (Err-UltimoErr) * KD ' Calcula excitación derivativa ' basándose en la diferencia sobre el último error DerivListo UltimoErr = Err ' Almacena error actual para el próximo DerivCalc RETURN

En este experimento, repetiremos las perturbaciones en un sistema con ganancia proporcional de 2 del Ejercicio 2, solamente que esta vez se usará excitación derivativa junto con la proporcional. El ventilador se conectará nuevamente a Vin (pin 19) por 10 segundos a 3 centímetros del envase. La Figura 6.18a muestra los resultados de nuestra prueba. La Figura 6.18b es un gráfico de Excel de los datos.

1) Configuración: Ganancia Proporcional de 2 (Kp=20Kp=20Kp=20Kp=20), Ki=0Ki=0Ki=0Ki=0, ganancia derivativa de 1 (Kd=2Kd=2Kd=2Kd=2). 2) Permitir que la temperatura se estabilice en el SPL. 3) Prender el ventilador por 10 segundos. (Para esta prueba, nuestra temperatura de polarización fue de 99,0F)

Cálculo de % de Excit. Derivativa

% Excit. Derivativa = (Err – UltimoErr) * Ganancia

Almacena Error en UltimoErr

Regresa

Page 183: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 181181181181

Figura 6.18a: Respuesta a la Perturbación con Ganancia Proporcional de 2 y Ganancia Derivativa de 2

Compare esta con la Figura 6.9a que usaba solamente excitación proporcional. Note que el sistema se estabiliza mucho más rápidamente con muy pocas oscilaciones y sobrepicos. En la sección de mensajes, hay 2 lecturas consecutivas de 99,0F. Primero se tuvo una excitación %D del 40%, dado que hubo un cambio de error del 20% (0,4F) entre el valor anterior y el actual. El segundo dio %D del 0%, debido a que 2 lecturas consecutivas de 99,0F no representan ningún cambio en el error (una pendiente igual a cero).

Page 184: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 182182182182 • Control Industrial Versión 1.1

Figura 6.18b: Gráfico de Datos

Kp=2 Kd=2

-60-40-20

020406080

100120

0,45

21,1

41,8

62,5

83,1

104

124

145

166

186

207

228

248

269

290

310

331

Segundos

Porc

enta

je %Err%D%Excit.

Note en el gráfico anterior cómo un cambio en %Err genera una excitación derivativa. Cuando el error es constante, aunque sea alto, %D es 0. Cuanto mayor es el cambio en %Err, mayor es %D. Una variación positiva de %Err (temperatura bajando) genera una excitación positiva, en un esfuerzo por detener el cambio. Hagamos algunas cuentas para un cambio de temperaturas entre mediciones de 99,4 a 99,0 con el setpoint en 99,0F:

%ExcitaciónTOTAL = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónDERIV En el momento de la primera medición, T=99,4:

Error = setpoint – actual = 99,0F-99,4F = -4F %Error = Error / rango * 100 = -0,4F/2F * 100 = -20%

La temperatura cayó a 99,0F en el momento de la segunda medición:

Error = setpoint – actual = 99,0F-99,0F = 0F %Error = Error / rango * 100 = 0F/2F * 100 = 0%

Page 185: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 183183183183

%ExcitaciónPROP = %Error * Kp = 0% * 2 = 0% %ExcitaciónDERIV = (Este %Error – Anterior %Error) * Kd= (0%-20%) * 1 = 40% %ExcitaciónTOTAL = %ExcitaciónPOLARIZACIÓN + %ExcitaciónPROP + %ExcitaciónDERIV =

=50%+0%+40% = 90% Incluso aunque la temperatura volvió al setpoint proveyendo un 0% de excitación proporcional, su valor cayó desde la última medición. El control Derivativo entra en acción basándose en el cambio del error, en un intento por detener la caída de la temperatura, agregando excitación. Si la siguiente lectura fuese 99.2%, ¿cuál sería la excitación final?

Error = ________ %Error = ________ %ExcitaciónPROP = ________ %ExcitaciónDERIV = ________ %ExcitaciónTOTAL = ________

¡Desafío!

1. ¿Cuál sería la respuesta del sistema con una ganancia derivativa igual a 5? ¿Por qué?

2. Con un cambio de –0,3 F en la temperatura con respecto al setpoint, ¿cuál sería la excitación total?

3. Pruebe y confirma su teoría.

Resumen del Control Proporcional-Integral-Derivativo Con control PID, 3 evaluaciones de excitación independientes se realizan para calcular la excitación final del elemento de control. La excitación de polarización es usada para estimar la excitación necesaria para mantener un setpoint bajo condiciones normales. La excitación proporcional actúa agregando una cantidad de excitación proporcional a la magnitud del error entre el setpoint y el valor actual. A mayor ganancia proporcional más rápida será la respuesta del controlador, aunque también aumenta la posibilidad de sobreexcitación y sobrepicos. Debe existir algo de error para que actúe la excitación proporcional, dando como resultado en ocasiones una condición estable aunque fuera del valor deseado. La excitación Integral actúa integrando la señal de error en función del tiempo y tomando acción en función del error total. Es usada para eliminar las condiciones de error que persisten en el tiempo. También es una buena opción para una aproximación lenta al setpoint y sin sobrepicos en sistemas lentos.

Page 186: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 184184184184 • Control Industrial Versión 1.1

El control Derivativo actúa basándose en la magnitud de cambio del error, entre lecturas. Evalúa la pendiente de la salida y actúa para oponerse al cambio. El control Derivativo puede prevenir sobreexcitaciones y sobrepicos, pero un exceso de excitación puede llevar al sistema a oscilaciones pronunciadas. Cada modo de control tiene su respuesta característica para mantener la salida deseada. Se han escrito muchos libros sobre el control PID y su ajuste. Ajustar un sistema PID involucra calibraciones de parámetros de software para cada factor. La meta al calibrar el sistema es ajustar las ganancias de forma de obtener el mejor rendimiento bajo condiciones dinámicas. Como se mencionó anteriormente, la calibración es tanto un arte como una ciencia. Los procedimientos básicos para calibrar un control PID son los siguientes. Estos procedimientos suponen que usted puede proveer o simular un cambio en escalón en la señal de error:

1. ponga todas las ganancias en 0

2. Vaya subiendo el valor de la ganancia proporcional hasta que el sistema comience a oscilar.

3. Reduzca la ganancia proporcional hasta que se detenga la oscilación y redúzcala un 20 % más.

4. Incremente la componente derivativa para mejorar la respuesta temporal y la estabilidad del sistema.

5. Luego, aumente la componente integral hasta que el sistema se vuelva inestable y luego redúzcala ligeramente.

A medida que gane experiencia en este tipo de control, verá que las características del proceso determinarán la forma de reaccionar al error. Considere las siguientes tres aplicaciones del mundo real. ¿Cuáles son las características más relevantes de estos procesos que determinarán el esquema de control más conveniente? ¿Qué modo(s) de control siente que trabajaría(n) mejor?

1) Similar a nuestra incubadora, la primer aplicación es un proyecto hogareño que usa el LM34 para medir la temperatura en un acuario de 80 litros. La temperatura del agua es mantenida con una tolerancia de + 1 grado, alrededor de 80 oF variando el ciclo de trabajo de un calentador de 200 Watts. La temperatura ambiente varía de 65 a 75 grados.

2) La segunda aplicación controla la acidez (pH) en la producción de una bebida cola. El agua del

suministro tiene un pH de 7,2 a 7,4. El chorro de agua que ingrese al proceso, debe tener un pH de 6,8. Una válvula regula el agregado de ácido fosfórico para regular el pH del chorro de agua entrante. El sensor de pH sensor es relativamente lento. La cantidad de ácido necesario varía de acuerdo al pH del agua entrante y la velocidad de flujo del chorro de agua.

Page 187: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 185185185185

3) En una planta de investigación científica de la Universidad Estatal de San Diego, se debe mantener constante la temperatura superficial de la hoja de una planta. La planta está dentro de un pequeño invernadero (del tamaño de una caja de zapatos). Un sensor muy rápido del tipo termocupla está apoyado en la hoja midiendo la temperatura. Las perturbaciones como cambios en el viento, luz del sol y metabolismo de la planta, pueden producirse rápidamente y con grandes magnitudes.

Solo hemos rozado la superficie de la teoría del control de procesos con realimentación. Nos hemos concentrado en acciones de control basados en la realimentación de los valores en la salida del proceso. Cuando las perturbaciones afectan nuestro proceso, se detectan cambios en la salida y se genera una señal de error. El PID es ajustado para eliminar el error lo más rápido posible. Se puede efectuar un control ajustado de la variable del proceso usando PID, pero la premisa fundamental del control por realimentación, es responder al error. Se espera y, hasta cierto grado se tolera, un cierto nivel de error. Mientras finalizamos este capítulo, considere otra alternativa al control por realimentación (feedback). Este sería el control por prealimentación (feed-forward). En el control por prealimentación se miden aquellos factores que afectan un proceso. Comprender cómo afectan a la variable que intentamos mantener constante, nos permitirá tomar una acción sobre la salida antes de que aparezca una señal de error. Si pudiese medir los cambios en la temperatura ambiente y la velocidad del viento producida por el ventilador, ¿podría usar esta información para controlar mejor la incubadora? Es un concepto interesante, ¿no?

Page 188: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Página Página Página Página 186186186186 • Control Industrial Versión 1.1

1. ¿Se podría usar control on/off del sistema para realizar un control PID? Explique. 2. ¿Qué tipo de control (proporcional, integral, o derivativo) sería más aconsejable en los siguientes casos?

a. Para regresar un sistema al setpoint basándose en la diferencia entre la temperatura actual y la deseada debida a una perturbación breve: ________________.

b. Para minimizar el efecto de una perturbación rápida en el sistema: ______________. c. Para reducir el efecto de una perturbación duradera sobre el sistema: ______________.

3. Un sistema tiene un setpoint de 101,5 grados y una banda permisible de +/- 0,5 grados. Para una banda

proporcional del 50%, ¿cuál sería la ganancia proporcional? ____________. 4. Un sistema tiene un setpoint de 101,5 con una ganancia de 3. Si la temperatura actual fuese 101,2,

¿cuánto valdría la excitación debida al error proporcional? ___________ 5. Un sistema tiene una ganancia derivativa de 2. Si la temperatura cayó de 101,8 a 101,3 entre lecturas,

con un setpoint de 101,5, ¿cuál sería el error debido a la excitación derivativa? __________.

Preguntas y Desafío

Page 189: Industrial Control Version 1.0

Experimento 6: Control Proporcional – Integral – Derivativo

Control Industrial Versión 1.1 • Página Página Página Página 187187187187

Desafío de Control Final Desde un estado frío (incubadora a temperatura ambiente), encuentre los valores de control PID que lleven la incubadora a una temperatura operativa de 95 grados, lo más rápido posible con mínimos sobrepico y sobreexcitación. Grafique y anote sus resultados (observe las escalas de los gráficos): Kp=____ Ki=____ Ti=____ Kd = ____ Tiempo en el que alcanza 95,0F por primera vez: _________ Valor máximo alcanzado: (Tiempo)_________ (Valor) __________ Valor mínimo siguiente: (Tiempo)__________ (Valor) ___________ Capture esa pantalla (ALT-Prt Scrn) e imprímala usando MS Paint. Encuentre un sistema: Encuentre un ejemplo de un sistema que emplee o pueda emplear control PID. Discuta como implementar el control PID para controlarlo.

Otros sistemas para armar:

1. Use el circuito sample and hold (Figura 2.17) del Experimento 2. Una físicamente el calentador y el sensor con un material apropiado (no conductivo y que transmita el calor). Cambie el tiempo del PWM a 1 debido a que la masa será mucho menor y la salida estará activa todo el tiempo. Encuentre la temperatura de polarización del 50% e intente regularla usando control PID.

2. Use el pin de salida Pin 8 (salida de excitación sin sample and hold) para excitar un relé de estado

sólido que controle una lámpara. Coloque la lámpara y el sensor en un contenedor apropiado. Regule la temperatura de esta incubadora más grande.

Page 190: Industrial Control Version 1.0
Page 191: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 189189189189

Los microcontroladores, como el BASIC Stamp pueden ser buenos para trabajar sobre períodos de tiempo muy cortos, tales como milisegundos o segundos, pero hay muchos procesos que deben mantener un registro preciso del tiempo real (hora del día) y posiblemente incluso la fecha o día de la semana.

Algunos ejemplos incluyen controles de calefacción de edificios que reducen la calefacción fuera del horario de trabajo, para ahorrar energía; templar un metal calentándolo a distintas temperaturas por períodos específicos de tiempo; y adquirir datos sobre largos períodos de tiempo para ser recuperados y analizados posteriormente. Este experimento explorará la generación de aplicaciones que tomen ciertas acciones basándose en la hora del día o en intervalos de tiempo y la adquisición y recuperación de datos. Para esto necesitaremos agregar características de tiempo real al circuito montado en el Experimento 5. Conecte el Reloj de Tiempo Real DS-1302 (Real Time Clock o RTC) como se muestra en la Figura 7.1c y el pulsador de la Figura 7.1d. La Figura 7.2 muestra como podría quedar el circuito distribuido en su protoboard. El DS1302 RTC usa un oscilador a cristal externo de 32,767kHz como base de tiempo. Asegúrese de conectar el cristal lo más cerca posible del CI para maximizar la precisión en la temporización (la distancia aumentará el error debido a los efectos capacitivos de la protoboard). El RTC es similar al BASIC Stamp debido a que los datos se almacenan en registros (memoria RAM) que pueden ser escritos y leídos. Estos registros almacenan el tiempo y la fecha como segundos, minutos, horas, meses, etc. El DS1302 también tiene RAM disponible para almacenamiento general de datos. Para nuestra aplicación solamente usaremos el registro de hora del día del chip. Por favor vea las hojas de datos del DS1302 y las notas de aplicación de Parallax referidas a características adicionales. Al igual que con el conversor A/D ADC0831, los datos se transmiten serialmente del CI al BASIC Stamp 2. Esto nos permite tener acceso a la hora actual que es generada por el DS1302. Para fijar la hora actual por primera vez, podemos poner al CI en el 'modo de escritura' y enviarle datos serialmente desde el BASIC Stamp 2. Los datos de la hora (y fecha) se almacenan en el DS1302 como números Decimales Codificados en Binario (Binary Coded Decimals o BCD). Este es un subconjunto de la base numérica Hexadecimal. En Hexadecimal (base 16) un byte se parte en dos nibbles (alta y baja), y cada una se lee como un dígito.

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Page 192: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 190190190190 • Control Industrial Versión 1.1

Figura 7.1: Circuito Completo con Reloj de Tiempo Real

Page 193: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 191191191191

Figura 7.2: Ejemplo de Distribución de Componentes para el Experimento 7

Tome por ejemplo el número binario: 01000110. En binario, cada lugar es una potencia más alta de 2 y el equivalente decimal sería: 64+4+2 = 70. Con un número binario de 8-bits tenemos un rango máximo decimal de 0 a 255. En Hexadecimal, el byte es partido en dos nibbles y convertido individualmente:

0100 0110 4 6

Page 194: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 192192192192 • Control Industrial Versión 1.1

Este número decimal se escribe normalmente como 86H (formato Intel), $86 (formato Motorola) o 8616

(formato científico). Dado que un solo número representa cada nibble, tenemos un rango en binario de 0000 a 1111, o decimal de 0 a 15. En Hexadecimal los valores de 10 a 15 se representan usando las letras de la A a la F. El rango completo hexadecimal de un byte de datos es de $00 a $FF. El número binario 10101110 se representará en Hexadecimal como $AE.

Decimal Binario Hexadecimal Decimal Binario Hexadecimal 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 10 1010 A 3 0011 3 11 1011 B 4 0100 4 12 1100 C 5 0101 5 13 1101 D 6 0110 6 14 1110 E 7 0111 7 15 1111 F

En Decimal Codificado en Binario, cada nibble es usada nuevamente para representar un solo dígito, pero dado que se trata de un número DECIMAL codificado, el rango válido será de 0 a 9 por cada nibble. Nuestro primer ejemplo de 01000110 es 46BCD (un número BCD válido) y $46 (un número hexadecimal válido). Nuestro segundo ejemplo 10101110 sería $AE (hexadecimal válido), pero un valor BCD INVÁLIDO debido a que A y E no representan números decimales válidos. Nuestros programas usarán la notación hexadecimal al configurar o controlar los tiempos en el RTC. Adicionalmente, el RTC se configura para ser usado en formato 24 horas, de forma que la hora 1:00 PM se mostrará como 13:00. Ejercicio 1: Control de Tiempo Real En este primer ejercicio simularemos la calefacción de un edificio de oficinas. Durante las horas de trabajo, la temperatura se mantendrá a valores más altos que durante la noche, logrando un ahorro de energía. Para simplificar nuestro código, usaremos control ON/OFF en lugar del más apropiado control de banda diferencial. Dado que usaremos nuestra incubadora y para asegurarnos que la temperatura esté por encima de la temperatura ambiente, usaremos los valores 100F para horas de trabajo y 90 F para horario nocturno. El termostato pondrá a funcionar la calefacción en su nivel alto a las 6:00 AM o 06:00 horas y en lo pasará a su nivel bajo a las 6:00 PM o 18:00 horas. El Programa 7.1 es el código para el experimento.

Page 195: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 193193193193

' Programa 7.1 - Control ON/OFF en Tiempo Real. ' Este programa regulará la temperatura a 100F entre las ' 06:00 y las 18:00 y 90F entre las 18:00 y las 06:00. '***** Configuración Inicial ******* Tiempo = $0553 ' Define Tiempo inicial Segundos = $00 CTiempoBajo CON $1800 ' Define hora para bajar temperatura. CTiempoAlto CON $0600 ' Define hora para subir temperatura. TempBaja CON 900 ' Define temperatura baja en décimas de grados. TempAlta CON 1000 ' Define temperatura alta en décimas de grados. '********************************* GOSUB PoneHora ' Ajusta RTC Setpoint = TempBaja ' Carga temperatura inicial CTiempo = CTiempoAlto ' Carga tiempo de cambio inicial Segundos = $00 ' Define constantes y variables del conversor A/D CS CON 3 ' Chip select del 0831 activo bajo en P3 del BS2 CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial de datos del 0831 al BS2 (P5) Datain VAR BYTE ' Variable para almacenar el número entrante (0 a 255) Temp VAR WORD ' Almacena valor convertido que representa la Temp TempRango CON 5000 ' Rango completo en décimas de grado. Offset CON 700 ' Temperatura mínima. @Offset, ADC = 0 Setpoint VAR WORD ' Temperatura deseada ' Define Constantes del RTC ' Valores de Registros en el RTC SecReg CON %00000 MinReg CON %00001 HrsReg CON %00010 CtrlReg CON %00111 BrstReg CON %11111 ' Distribución de pines del BS2 al RTC RTC_CLK CON 12 ' Pin del Clock RTC_IO CON 13 ' Pin de E/S RTCReset CON 14 ' Pin de Reset ' Variables de Tiempo Real RTCCmd VAR BYTE RTemp VAR BYTE Tiempo VAR WORD ' Word para almacenar la hora completa Horas VAR Tiempo.HIGHBYTE ' Byte alto son horas

Page 196: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 194194194194 • Control Industrial Versión 1.1

Minutos VAR Tiempo.LOWBYTE ' Byte bajo son minutos Segundos VAR BYTE ' Tiempo para cambiar variables CTiempo VAR WORD ' Word para almacenar la hora completa CHoras VAR CTiempo.HIGHBYTE ' Byte alto son horas CMinutos VAR CTiempo.LOWBYTE ' Byte bajo minutos CSegundos VAR Byte ' Configura gráfico PAUSE 500 ' Tiempo para limpiar el buffer DEBUG "!RSET",CR ' Reinicia el gráfico DEBUG "!TITL Control ON/OFF Temporizado ",CR DEBUG "!PNTS 4000",CR ' 4000 puntos de datos DEBUG "!TMAX 900",CR ' Max 900 segundos DEBUG "!SPAN 70,120",CR ' 70-120 Grados DEBUG "!AMUL 0.1",cr ' Multiplica datos por 0,1 DEBUG "!CLMM",CR ' Limpia Min/Max DEBUG "!CLRM",CR ' Limpia mensajes DEBUG "!TSMP ON",CR ' Habilita temporizador DEBUG "!SHFT ON",CR ' Habilita desplazamiento de gráfico DEBUG "!PLOT ON",CR ' Inicia gráfica DEBUG "!RSET",CR ' Reinicia el gráfico Principal: PAUSE 500 GOSUB LeerRTC GOSUB ControlTiempo GOSUB Obtenerdato GOSUB Calc_Temp GOSUB Control GOSUB Mostrar GOTO Principal Obtenerdato: ' Adquiere conversión del 0831 LOW CS ' Habilita el chip LOW CLK ' Prepara línea de clock. SHIFTIN Dout, CLK, MSBPOST,[Datain\9] ' Lee datos HIGH CS ' Detiene la conversión RETURN Calc_Temp: ' Convierte el valor digital en Temp Temp = TempRango/255 * Datain/10 + Offset ' basándose en las variables Rango y ' Offset. RETURN Control: ' Mant. la temperatura alrededor del setpoint IF Temp > PuntoAjuste THEN OFF HIGH 8 RETURN OFF: LOW 8

Page 197: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 195195195195

RETURN Mostrar: ' Muestra tiempo real y tiempo para el próx cambio y envía datos a graficador DEBUG "!USRS Hora Actual:", HEX2 Horas,":",HEX2 Minutos,":",HEX2 segundos DEBUG " Siguiente Cambio a las:",HEX2 CHoras,":",HEX2 CMinutos,CR DEBUG DEC Temp,CR DEBUG IBIN OUT8,CR RETURN PoneHora: ' ****** Inicializa el reloj de tiempo real RTemp = $10 : RTCCmd = CtrlReg : GOSUB EscribirRTC

' Borra el bit de protección contra escritura del registro de control RTemp = Horas : RTCCmd = HrsReg : GOSUB EscribirRTC ' Fija hora inicial RTemp = Minutos : RTCCmd = MinReg : GOSUB EscribirRTC ' Fija minutos iniciales RTemp = Segundos : RTCCmd = SecReg : GOSUB EscribirRTC ' Fija segundos iniciales RTemp = $80 : RTCCmd = CtrlReg : GOSUB EscribirRTC

' Activa bit de protección contra escritura en el registro de control Return EscribirRTC: ' Escribe en el DS1202 RTC HIGH RTCReset SHIFTOUT RTC_IO, RTC_CLK, LSBFIRST, [%0\1,RTCCmd\5,%10\2,RTemp] LOW RTCReset RETURN LeerRTC: ' Lee todos los datos del RTC HIGH RTCReset SHIFTOUT RTC_IO, RTC_CLK, LSBFIRST, [%1\1,BrstReg\5,%10\2] SHIFTIN RTC_IO, RTC_CLK, LSBPRE, [Segundos,Minutos,Horas] LOW RTCReset RETURN ControlTiempo: ' Verifica si es hora de cambiar la temperatura IF (Tiempo = CTiempoBajo) AND (Setpoint = TempAlta) THEN TBaja IF (Tiempo = CTiempoAlto) AND (Setpoint = TempBaja) THEN TAlta Return TBaja: ' Cambia a temperatura nocturna Setpoint = TempBaja DEBUG "Tiempo: ", HEX2 Horas,":",HEX2 Minutos,":",HEX2 Segundos DEBUG "-- Setpoint = ", DEC PuntoAjuste/10,".0",CR CTiempo = CTiempoAlto RETURN TAlta: ' Cambia a temperatura diurna Setpoint = TempAlta DEBUG "Tiempo: ", HEX2 Horas,":",HEX2 minutos,":",HEX2 segundos DEBUG "-- Setpoint = ",DEC PuntoAjuste/10,".0",CR CTiempo = CTiempoBajo RETURN

Page 198: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 196196196196 • Control Industrial Versión 1.1

Figura 7.3: Diagrama de Flujo del Control de la Calefacción

Inicio

Inicializa Hora y Constantes

Config. Reloj de Tiempo Real

Config. SPL

Muestra y Grafica Datos

Controla Temperatura

Calcula Temperatura

Obtiene Datos de Temp.

Controla Hora

Lee Hora

Control de Hora

¿Hora de Cambiar a

Alta?

¿Hora de Cambiar a

Baja?

Regresar

Regresar Regresar

Config. Temp. Alta Config. Temp. Baja

Muestra Cambios

Muestra Cambios

Si

No

No

Si

Page 199: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 197197197197

Observe que el programa reiniciará la hora a 05:53 cada vez que el BASIC Stamp reinicia. Esto puede ocurrir cuando se carga el programa, reinicia el Stamp manualmente, se reconecta la alimentación y algunas veces cuando se activa el puerto COM o cuando se reinicia la PC. La ora de inicio es adecuada para esta sección, pero en secciones posteriores puede querer usar los valores reales de hora inicial. '***** Configuración Inicial ******* Tiempo = $0553 ' Define Tiempo inicial Segundos = $00 CTiempoBajo CON $1800 ' Define hora para bajar temperatura. CTiempoAlto CON $0600 ' Define hora para subir temperatura. TempBaja CON 900 ' Define temperatura baja en décimas de grados. TempAlta CON 1000 ' Define temperatura alta en décimas de grados. '********************************* GOSUB PoneHora ' Ajusta RTC

Nota: Si se quita la alimentación del Reloj de Tiempo Real DS1302 se reiniciará con valores impredecibles cuando ésta regrese. Por este motivo se emplea Gosub PoneHora. Las horas a las que se produce el cambio de temperatura se definen en este sector. GOSUB PoneHora pone al reloj de tiempo real en la hora especificada. Una vez configurada correctamente la hora, se puede poner esta línea como comentario y descargar nuevamente el programa para evitar que la hora se reinicie a 05:53 cuando se reinicia el BASIC Stamp. El programa usa dos juegos de variables para la hora, uno para leer / escribir la hora actual y otro para almacenar la hora a la que deseamos cambiar el termostato. Observe que las variables Tiempo y CTiempo se subdividen en Horas y Minutos: Tiempo VAR WORD ' Word para almacenar la hora completa Horas VAR Tiempo.HIGHBYTE ' Byte alto, horas Minutos VAR Tiempo.LOWBYTE ' Byte bajo, minutos

La variable Horas se asigna como el byte alto de la variable Tiempo, obteniendo las posiciones BCD que representan la hora. Lo mismo se realiza para los minutos con las dos posiciones más bajas. Esta es una herramienta muy poderosa cuando se desea tener acceso a distintas partes de una misma variable. El Programa 7.1 inicia la hora 7 minutos antes de que se produzca el cambio a horario de trabajo. Esto debería permitir el tiempo suficiente para que la temperatura se estabilice a la temperatura más baja. La Figura 7.4 muestra el gráfico obtenido.

Page 200: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 198198198198 • Control Industrial Versión 1.1

Figura 7.4: Calefacción Edilicia Controlada por Horario

El recuadro de usuario del StampPlot Lite muestra la hora actual y la hora a la que se producirá el próximo cambio. Puede parecer que la hora del recuadro cambie a intervalos irregulares, pero este es el resultado de diferencias temporales a las que el BS2 muestra los datos y no diferencias en el RTC. El sector de mensajes muestra la hora a la que se produjo el último cambio y el valor para el próximo. La gráfica muestra un control ON/OFF a un setpoint de 90 F y el salto al setpoint de 100 F a las 06:00. Usando el RTC, agregando más dispositivos de salida y expandiendo la sección de control del código, podríamos agregar muchos eventos temporizados en el transcurso del día. Descargue y ejecute el Programa 7.1. Observe con el StampPlot Lite al menos el cambio de las 06:00. Necesitará esperar 12 horas para ver si el setpoint desciende a las 18:00... ¿Tiene tiempo para esperar?

Page 201: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 199199199199

Preguntas y Desafíos: 1) Los datos almacenados en el DS1302 usan el sistema numérico ______.

2) Agregue un setpoint de 95 F entre las 4:00PM (16:00) y 6:00 PM (18:00). Modifique la hora y la

temperatura inicial para verificar su funcionamiento. 3) Use el LED en P8 para simular la lámpara de una casa. Agregue el código necesario para encenderla a las

8:00 PM (20:00) y apagarla a las 11:00 PM (23:00). Modifique la hora inicial del RTC para verificar su funcionamiento.

Ejercicio 2: Temporización por Intervalos En lugar de tener eventos que ocurren a horas definidas del día, a menudo un proceso puede necesitar realizar acciones a ciertos intervalos de tiempo. El templado es un ejemplo de este proceso. En este caso un metal es calentado a cierta temperatura durante una cantidad fija de tiempo, se aumenta a otra temperatura por cierto tiempo y luego se enfría rápidamente a otra temperatura. Esto templa el metal y le otorga ciertas características deseables, tales como dureza y resistencia a la torsión. Dado que estamos trabajando con intervalos de tiempo en lugar de horas absolutas, necesitaremos realizar cálculos para encontrar la hora de finalización de cada intervalo. El intervalo debe sumarse a la hora inicial de la fase de cada temperatura. Esto suena simple, pero no lo es. Si recuerda, nuestra temporización se realiza en BCD, un subconjunto del hexadecimal. Cuando suma valores de tiempo, el BASIC Stamp 2 está trabajando en hexadecimal. Tome el ejemplo de 38 segundos + 5 segundos. Sabemos que deberíamos obtener como resultado 43 segundos, pero como en realidad estamos sumando $38 + $05 (hexadecimal), nuestro resultado sería $3D (contando 5: $39, $3A, $3B, $3C, $3D). Si esperáramos hasta que este valor sea igual que el obtenido del RTC, ¡esperaríamos por siempre!. Necesitamos ajustar el resultado a valores decimales. Esto se logra controlando si un dígito excede el rango BCD ( >9) y sumándole 6 si es así. Pruebe esto con el resultado anterior: $3D + $06 = $43 (contando 6: $3E, $3F, $40, $41, $42, $43). ¡Es un éxito! Ahora tenemos el valor que necesitamos en BCD.

Page 202: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 200200200200 • Control Industrial Versión 1.1

Otro de los temas que necesitamos tratar es que tanto las unidades como las decenas podrían requerir un ajuste. Dependiendo del resultado podríamos tener un acarreo a minutos o horas. Segundos y minutos se cuentan hasta 60, mientras que las horas hasta 24. Esta es la secuencia general, o algoritmo, que nuestro programa usará: • Controlar que las unidades de segundos sea un valor BCD legal (<$A). " No: Agregar 6 a segundos.

• Controlar si los segundos resultantes son menos de 60. " No: Restar 60 a segundos. Sumar uno a minutos.

• Controlar que las unidades de minutos sea un valor BCD legal (<$A). " No: Sumar 6 a minutos

Este es el código: AjustarHora: ' Rutina de ajuste de hora BCD IF CSegundos.lownib < $A THEN DecenaSeg CSegundos = CSegundos + 6 DecenaSeg: If CSegundos < $60 Then UnidadMin CSegundos = CSegundos - $60 CMinutos = CMinutos + 1 UnidadMin: IF CMinutos.lownib < $A THEN DecenaMin CMinutos = CMinutos + 6 DecenaMin: IF CMinutos < $60 THEN UnidadHoras CMinutos = CMinutos - $60 CHoras = CHoras + 1 UnidadHoras: IF CHoras.lownib < $A THEN DecenaHoras CHoras = CHoras + 6 DecenaHoras: IF CHoras < $24 THEN AjustarListo CHoras = CHoras - $24 AjustarListo: RETURN

Hay un caso en el que este algoritmo no proveerá el resultado correcto: Cuando sumamos un valor mayor que 6 en cualquier posición que su valor exceda 7. Tome por ejemplo $58 + $08. Sumando en hex obtenemos $60. Esto genera un valor BCD válido, solamente que no es el correcto. Una solución simple para sumar 8, sumar primero 4, ajustar, luego sumar nuevamente 4 y ajustar otra vez. Más simple aún es escoger intervalos de temporización que no contengan los dígitos 7, 8, o 9.

Page 203: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 201201201201

En esta sección simularemos este proceso con nuestra incubadora, pero teniendo en cuenta que normalmente el templado se realiza a miles de grados. Esta es la secuencia que seguirá nuestro proceso de templado: • Fase 1: Calentar a 95,0 F durante 5 minutos. • Fase 2: Calentar a 100 F durante 15 minutos. • Fase 3: Enfriar a 85,0 F durante 10 minutos. • Proceso completo, comenzar desde el principio con la siguiente muestra de material. Haga las siguientes modificaciones al Programa 7.1 para obtener el Programa 7.2. ' Programa 7.2: Temporización por Intervalos ' Controla 3 niveles de temperatura por cierta cantidad de tiempo '****** Configuración inicial ***** Tiempo = $1200 ' Tiempo para configurar el reloj Segundos = $00 PTemp1 CON 950 ' temperatura de la 1º fase PTemp2 CON 1000 ' temperatura de la 2º fase PTemp3 CON 850 ' temperatura de la 3º fase ' No use dígito 7 o superior PTiempo1 CON $05 ' Duración de la fase 1 PTiempo2 CON $15 ' Duración de la fase 2 PTiempo3 CON $10 ' Duración de la fase 3 '******************************* Gosub PoneHora ' Ajusta reloj Setpoint = PTemp1 ' Setpoint inicial para la 1º fase Gosub LeerRTC ' Obtiene lectura del reloj CTiempo = Tiempo ' Asigna tiempo de cambio CMinutos = Minutos + PTiempo1 ' Suma tiempo fase 1 Gosub AjustarHora ' Ajusta hora BCD ' Define constantes y variables A/D

(La sección intermedia del código queda sin cambios) ControlTiempo: ' Controla si está listo para cambiar IF (Tiempo = CTiempo) AND (Setpoint = PTemp3) THEN Fase1 IF (Tiempo = CTiempo) AND (Setpoint = PTemp1) THEN Fase2 IF (Tiempo = CTiempo) AND (Setpoint = PTemp2) THEN Fase3 Return

Page 204: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 202202202202 • Control Industrial Versión 1.1

Fase1: ' Fase 1 - Debug "Fase 3 completa – Siguiente muestra",CR Debug "!BELL",CR Setpoint = PTemp1 CMinutos = CMinutos + PTiempo1 GOTO Siguiente Fase2: ' Fase 2 - DEBUG "Fase 1 completa",CR Setpoint = PTemp2 CMinutos = CMinutos + PTiempo2 GOTO Siguiente Fase3: ' Fase 3 - DEBUG "Fase 2 completa",CR Setpoint = PTemp3 CMinutos = CMinutos + PTiempo3 Siguiente: GOSUB AjustarHora ' ajusta hora BCD DEBUG "Tiempo: ", hex2 horas,":",hex2 minutos,":",hex2 segundos DEBUG "-- Setpoint: ", dec setpoint,cr RETURN AjustarHora: ' rutina de ajuste de hora BCD IF CSegundos.lownib < $A THEN DecenaSeg CSegundos = CSegundos + 6 DecenaSeg: If CSegundos < $60 Then UnidadMin CSegundos = CSegundos - $60 CMinutos = CMinutos + 1 UnidadMin: IF CMinutos.lownib < $A THEN DecenaMin CMinutos = CMinutos + 6 DecenaMin: IF CMinutos < $60 THEN UnidadHoras CMinutos = CMinutos - $60 CHoras = CHoras + 1 UnidadHoras: IF CHoras.lownib < $A THEN DecenaHoras CHoras = CHoras + 6 DecenaHoras: IF CHoras < $24 THEN AjustarListo CHoras = CHoras - $24 AjustarListo: RETURN

Page 205: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 203203203203

Figura 7.5: Temporización por Intervalos

La Figura 7.5 muestra un ejemplo de la ejecución del programa. Observe que hay tres fases distintas de temperatura que se repiten. Descargue y ejecute el Programa 7.2. Use StampPlot Lite para monitorear su sistema. Preguntas y Desafíos: 1) ¿Por qué es preferible usar el RTC para temporizaciones largas, en lugar del comando PAUSE de PBASIC? 2) Sume los siguientes valores hexadecimales y ajuste el valor decimal de sus resultados (muestre su

trabajo): $15 + $15

Page 206: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 204204204204 • Control Industrial Versión 1.1

3) Modifique el programa agregando una fase 4 de 5 minutos a 80,0 F. Ejercicio 3: Adquisición de Datos (Data Logging) La adquisición de datos no cae dentro del área de control de procesos, pero es un tema importante y dado que ya tenemos un RTC conectado, es el momento apropiado para introducirlo. La mayoría de nuestros experimentos han usado StampPlot Lite para mostrar gráficamente las condiciones actuales de nuestro sistema. Por supuesto, uno de los beneficios más grandes de los microcontroladores es que son autónomos y no necesitan una PC. Todos los experimentos de este libro funcionan apropiadamente, grafiquemos o no los datos en una PC. Simplemente no tendríamos una información actualizada del estado de nuestro sistema. La adquisición de datos se emplea para registrar y almacenar datos dentro del microcontrolador. Esto datos podrán ser recuperados para realizar un análisis posterior. Algunos ejemplos de esto incluyen estaciones meteorológicas remotas y experimentos para el Transbordador Espacial. Debido a la ubicación u otros factores, puede no ser práctico recolectar los datos en una PC en tiempo real. Cuando los datos se almacenan en la memoria, es importante asegurarse que el hardware, el programa y el reloj, sean lo más estable posibles. El data-logger puede no ser controlado por períodos de tiempo muy largos. Un reinicio no intencional del Stamp normalmente eliminará sus datos y comenzará el programa nuevamente. El Stamp se puede reiniciar fácilmente presionando el botón reset, algunas veces al conectarlo a la PC, o incluso debido a una pérdida temporaria de la alimentación. Así como los programas del BASIC Stamp se almacenan en memoria no volátil (permanece aún con pérdida de alimentación) llamada EEPROM, nosotros también podemos escribir nuestros datos allí. El BASIC Stamp 2 tiene 2048 bytes de memoria EEPROM disponibles para el programa y almacenamiento de datos. La Figura 7.6 muestra el mapa de memoria del BASIC Stamp 2. Los programas se almacenan al final de la memoria, permitiéndonos usar la parte superior para almacenar datos.

Page 207: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 205205205205

Figura 7.6: Mapa de Memoria del BASIC Stamp 2

Una vez almacenados los datos, necesitaremos recuperar tanto el valor como la hora a la que se realizó la lectura. Al almacenar los datos, la hora puede almacenarse en la memoria junto con cada valor. Esto requeriría 3 bytes por medición: Horas, Minutos y Valor (opcionalmente, se podrían grabar los segundos, dependiendo de la necesidad de cada caso). O, podemos guardar la hora a la que comenzaron a tomarse mediciones; almacenando los datos en intervalos de tiempo conocidos podemos luego extrapolar la hora de cada medición. De esta forma solamente se requiere 1 byte por medición, grabando la hora solamente al principio. ¿Pero qué sucede si se reinicia inadvertidamente el microcontrolador, como cuando se lo conecta a la PC para recuperar los datos? ¿Qué pasaría si se perdiera la hora de inicio de las mediciones? ¿Qué sucedería si el RTC se reiniciara en algún momento de forma que la hora volviera a cero? También podemos usar la EEPROM para registrar los datos importantes, como la hora de inicio y la siguiente posición de memoria, para evitar la pérdida de datos importantes, en el caso que el microcontrolador se reiniciara. El programa que hemos desarrollado se asegura de no perder datos debido a reinicios accidentales.

Page 208: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 206206206206 • Control Industrial Versión 1.1

Una interrupción en la alimentación es uno de los problemas para los que no está preparado este programa. Ante una pérdida de energía, el BS2 será capaz de recuperar los datos perdidos, pero el RTC probablemente mostrará horas no validas. Soluciones posibles a este problema son hacer funcional el proyecto con una batería o agregar un capacitor de alta capacidad al RTC como muestran las hojas de datos. Un ‘súper-capacitor’ puede mantener el RTC en hora por mucho tiempo, incluso días. Otra opción podría ser escribir continuamente la hora actual en la EEPROM de forma que si se corta la energía, la última hora registrada en el BS2 podría rescribirse en el RTC. Pero las EEPROMs tienen una cantidad limitada de ciclos de escritura. Después de varios miles de ciclos de escritura la EEPROM fallará, así que podríamos preferir no escribir repetidamente sobre la misma ubicación. ¿Cuántos datos podemos almacenar? Después de descargar el programa, quedan aproximadamente 700 bytes de los 2K de EEPROM del BASIC Stamp 2. Esto nos permitirá almacenar 700 datos. A intervalos de 5-minutos, ¿durante cuánto tiempo podremos registrar datos hasta que se llene la memoria? Otras opciones para almacenar datos son los registros del usuario del RTC, o un dispositivo independiente, como una EEPROM serial. Nota: No almacena más datos del que le permita el lugar de la EEPROM; sobrescribir el espacio del código causará que el BASIC Stamp programa comience a fallar. El comando WRITE es usado para escribir los datos en la memoria:

WRITE Dirección de Memoria, valor byte

El comando READ es usado para asignar datos de la memoria a una variable:

READ Dirección de Memoria, variable byte Usaremos el DS1302 como temporizador de intervalos que controlará cuándo se tomaran muestras. Para este experimento recolectaremos la temperatura exterior sobre un largo período de tiempo y luego descargaremos los valores con el StampPlot Lite. El Programa 7.3 es el código para nuestro data logger. Es suficientemente diferente de los otros programas como para requerir que mostremos el listado completo, aunque mucho código viene de otros programas. ' Programa 7.3 - Data Logging en Tiempo Real ' Este programa registrará en la memoria EEPROM la temperatura ' a intervalos definidos usando el reloj de tiempo real. '*** Config. Inic. Hora e Intervalo Toma de Datos ************** Tiempo = $2246 ' Hora inicial

Page 209: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 207207207207

' No usar dígitos > 6 Intervalo CON $05 ' Intervalo de muestreo (en minutos BCD) Muestras CON 500 ' Cantidad de muestras a tomar Stop_Reset CON 0 ' 0=reset, 1 = detiene almacenamiento de datos '****************************************************** ' Define Constantes RTC ' valores de registro del RTC SecReg CON %00000 MinReg CON %00001 HrsReg CON %00010 CtrlReg CON %00111 BrstReg CON %11111 ' Constantes para pines de conexión del BS2 al RTC RTC_CLK CON 12 RTC_IO CON 13 RTCReset CON 14 ' Variables de Tiempo Real RTCCmd VAR BYTE RTemp VAR BYTE ' Variables de hora actual Tiempo VAR WORD Horas VAR Tiempo.HIGHBYTE Minutos VAR Tiempo.LOWBYTE Segundos VAR BYTE ' Variables de Hora de almacenamiento LTiempo VAR WORD LHoras VAR LTiempo.HIGHBYTE LMinutos VAR LTiempo.LOWBYTE LSegundos VAR BYTE ' Variables de hora inicial STiempo VAR WORD SHoras VAR STiempo.HIGHBYTE SMinutos VAR STiempo.LOWBYTE DirecMem VAR WORD ' Ubicación de memoria de almacenamiento actual ' Define constantes y variables A/D CS CON 3 ' Chip select del 0831 activo bajo en P3 del BS2 CLK CON 4 ' Clock del BS2 (P4) al 0831 Dout CON 5 ' Salida serial de datos del 0831 al BS2 (P5) Datain VAR BYTE ' Variable para almacenar el número entrante (0 a 255) Temp VAR WORD ' Almacena valor convertido que representa la Temp TempRango CON 5000 ' Rango completo en décimas de grado Offset CON 700 ' Temperatura mínima. @Offset, ADC = 0 DIR15 = 0 DIR8 = 1

Page 210: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 208208208208 • Control Industrial Versión 1.1

PB VAR IN15 ' Pulsador LED CON 8 ' LED LOW LED ' apaga LED '***** Inicialización ******* INIT: ' Para cargar la hora, mantenga presionado el botón hasta que el LED se apague DEBUG "Mantenga presionado el botón para inicializar el reloj y tomar datos",cr HIGH 8 ' LED encendido PAUSE 2000 IF PB = 1 THEN SalteaInicial ' Si no está presionado, saltea Segundos = $00 GOSUB PoneHora GOSUB RecuperaDatos DEBUG "Suelte el botón",CR SalteaInicial: LOW LED ' LED apagado IF PB = 0 THEN SalteaInicial ' Espera que libere el botón READ 0,DirecMem.HIGHBYTE ' Recupera datos de dirección de memoria READ 1,DirecMem.LOWBYTE ' y hora READ 2,SHoras Read 3,SMinutos ' Inicia las variables de temporización GOSUB LeerRTC ' Lee hora actual LHoras = Horas LMinutos = Minutos LSegundos = $00 LMinutos = LMinutos + Intervalo ' Suma intervalo para hora de medición GOSUB AjustarHora ' Ajuste Decimal del resultado '***** Bucle Principal ******* Principal: PAUSE 500 GOSUB Control GOSUB Obtenerdato GOSUB Calc_Temp GOSUB LeerRTC GOSUB Mostrar GOSUB ControlTiempo GOTO Principal Obtenerdato: ' Adquiere conversión del 0831 LOW CS ' Selecciona el chip LOW CLK ' Alista clock. SHIFTIN Dout, CLK, MSBPOST,[Datain\9] ' Lee datos HIGH CS ' fin de conversión RETURN Calc_Temp: ' Convierte el valor a temperatura basándose Temp = TempRango/255 * Datain/10 + Offset ' en Rango y

Page 211: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 209209209209

RETURN ' Offset. Control: ' Si el botón está presionado, grafica datos IF PB = 0 THEN DescargaDatos ' almacenados RETURN ControlTiempo: ' Verifica si es hora de tomar una lectura IF (Tiempo = LTiempo) AND (DirecMem-4 < Muestras) THEN GuardaDato RETURN GuardaDato: ' Escribe lectura en memoria WRITE DirecMem, DataIn ' Almacena dato en la EEPROM HIGH 8:PAUSE 250:LOW 8 ' Parpadea LED DirecMem = DirecMem + 1 ' Incrementa ubic. de memoria para sig. valor WRITE 0,DirecMem.HIGHBYTE ' Actualiza datos de recuperación WRITE 1,DirecMem.LOWBYTE LMinutos = LMinutos + Intervalo ' Actualiza para el siguiente intervalo IF DirecMem-4 < Muestras THEN AjustarHora ' Si queda lugar, continúa IF Stop_Reset = 1 THEN Sin_Reset ' Sino, reinicia o detiene registro de datos GOSUB RecuperaDatos Sin_Reset: AjustarHora: ' Ajuste decimal de la hora IF LSegundos.LOWNIB < $A THEN DecenaSeg LSegundos = LSegundos + 6 DecenaSeg: If LSegundos < $60 THEN UnidadMin LSegundos = LSegundos - $60 LMinutos = LMinutos + 1 UnidadMin: IF LMinutos.LOWNIB < $A THEN DecenaMin LMinutos = LMinutos + 6 DecenaMin: IF LMinutos < $60 THEN UnidadHoras LMinutos = LMinutos - $60 LHoras = LHoras + 1 UnidadHoras: IF LHoras.LOWNIB < $A THEN DecenaHoras LHoras = LHoras + 6 DecenaHoras: IF LHoras < $24 THEN AjustarListo LHoras = LHoras - $24 AjustarListo: RETURN Mostrar: ' Muestra valores y hora de siguiente lectura DEBUG "!USRS Tiempo:", HEX2 horas,":",HEX2 minutos,":",HEX2 segundos DEBUG " Muestra:",HEX2 LHoras,":",HEX2 LMinutos,":",HEX2 LSegundos DEBUG " # ",DEC DirecMem-4, " Temp actual = ", DEC Temp,CR DEBUG DEC Temp,CR Return

Page 212: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 210210210210 • Control Industrial Versión 1.1

PoneHora: ' ****** Inicializa el reloj de tiempo real RTemp = $10 : RTCCmd = CtrlReg : GOSUB EscribirRTC

' Limpia el bit de protección contra escritura del registro de control RTemp = Horas : RTCCmd = HrsReg : GOSUB EscribirRTC ' Fija hora inicial RTemp = Minutos : RTCCmd = MinReg : GOSUB EscribirRTC ' Fija minutos inicial RTemp = Segundos : RTCCmd = SecReg : GOSUB EscribirRTC ' Fija segundos inicial RTemp = $80 : RTCCmd = CtrlReg : GOSUB EscribirRTC

' Habilita el bit de protección contra escritura del registro de control Return EscribirRTC: ' Escribe en el DS1302 RTC HIGH RTCReset SHIFTOUT RTC_IO, RTC_CLK, LSBFIRST, [%0\1,RTCCmd\5,%10\2,RTemp] LOW RTCReset RETURN LeerRTC: ' Lee todos los datos del RTC HIGH RTCReset SHIFTOUT RTC_IO, RTC_CLK, LSBFIRST, [%1\1,BrstReg\5,%10\2] SHIFTIN RTC_IO, RTC_CLK, LSBPRE, [Segundos,Minutos,Horas] LOW RTCReset RETURN RecuperaDatos: ' Almacena datos de recuperación por reinicio DirecMem = 4 ' Ubicación inicial WRITE 0,DirecMem.HIGHBYTE ' Escribe en la EEPROM WRITE 1,DirecMem.LOWBYTE WRITE 2,Horas ' Guarda hora de inicio en la EEPROM WRITE 3,Minutos Return '*** Descarga y muestra los datos almacenados *** DescargaDatos: 'Configure Plot PAUSE 500 ' Tiempo para limpiar el buffer DEBUG "!RSET",CR ' Reinicia gráfico DEBUG "!TITL Data Logging a Intervalos",CR ' Título DEBUG "!PNTS 2000",CR ' 2000 puntos de muestreo DEBUG "!TMAX ", DEC DirecMem/7+1,CR ' Tiempo basado en cantidad de muestras DEBUG "!SPAN ",DEC offset/10,",",DEC (TempRango/10 + Offset) / 10,CR DEBUG "!AMUL .1",cr ' Multiplica datos por 0,1 DEBUG "!CLMM",CR ' Limpia Min/Max DEBUG "!CLRM",CR ' Limpia mensajes DEBUG "!TSMP OFF",CR ' Tiempo de apagado DEBUG "!SHFT ON",CR ' Habilita desplazamiento de gráfico DEBUG "!DELM",CR ' Borra archivo de mensajes DEBUG "!SAVM ON",CR ' Guarda mensajes (datos almac) a archivo DEBUG "!PLOT ON",CR ' Inicia gráfica PAUSE 500

Page 213: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 211211211211

DEBUG "!RSET",CR ' Reinicia temporizador de gráfico X VAR Word LTiempo = STiempo ' Ajusta hora de muestreo = hora inicio DEBUG "Punto, Tiempo, Temperatura",CR ' título FOR x = 4 to DirecMem-1 ' Bucle por las ubicaciones de memoria READ x,DataIn ' Lee dato almacenado en la memoria GOSUB Calc_Temp ' Calcula la temp basándose en el dato LMinutos = LMinutos + Intervalo ' Suma el intervalo para obtener hora de lectura GOSUB AjustarHora ' Ajuste Decimal de la hora ' Mostrar dato DEBUG DEC X-4,",",HEX2 LHoras,":",HEX2 LMinutos,",",DEC Temp,CR DEBUG DEC Temp,CR ' Grafica temperatura HIGH LED PAUSE 100 ' Pausa de 0,1 seg. para espaciar datos LOW LED NEXT DEBUG "!PLOT OFF",CR ' Desconecta graficador LTiempo = Tiempo LMinutos = LMinutos + Intervalo GOSUB AjustarHora ' Después de descargar datos, tenga presionado el botón para reiniciar ' la captura de datos, o continuará desde el punto actual HIGH 8 ' LED encendido DEBUG "Presione el botón ahora para reiniciar la adquisición ",CR PAUSE 2000 IF PB = 1 THEN SalteaReset ' Si el botón no está presionado, saltea GOSUB RecuperaDatos ' Reinicio – guarda nuevos datos de recuperación DEBUG "Suelte el botón ahora",CR SalteaReset: LOW 8 ' LED apagado If PB = 0 THEN SalteaReset ' Espera que suelte el botón Return

Discutiremos la operación del programa por bloques. Al principio del código está la información de inicialización: '*** Config. Inic.. Hora e Intervalo Toma de Datos ************** Tiempo = $2246 ' Hora inicial ' No use dígitos >6 Intervalo CON $05 ' Intervalo de muestreo (en minutos BCD) Muestras CON 500 ' Cantidad de muestras a tomar Stop_Reset CON 0 ' 0=reset, 1 = detiene almacenamiento de datos '******************************************************

Page 214: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 212212212212 • Control Industrial Versión 1.1

Estos datos definen la hora a colocar en el RTC, cuánto durará el intervalo entre muestras y cuántas muestras se tomarán. Stop_Reset decide detener el registro de datos (1) o reiniciarlo (0) y sobrescribir los datos anteriores destruyéndolos, una vez que se alcanzó la cantidad máxima de muestras. El pulsador tiene varios propósitos:

1. Al energizar o reiniciar el BS2, aparecerá un mensaje avisándole que tenga presionado el botón para inicializar el reloj y la adquisición de datos (también se encenderá el LED para esto). Si el botón se mantiene presionado, el valor de la hora del sector de inicialización se usará para configurar al RTC y la adquisición de datos se reiniciará desde el principio. Se escribirán datos de recuperación en la EEPROM para el siguiente reset.

RecuperaDatos: ' Almacena datos de recuperación por reinicio DirecMem = 4 ' Ubicación inicial WRITE 0,DirecMem.HIGHBYTE ' Escribe en la EEPROM WRITE 1,DirecMem.LOWBYTE WRITE 2,Horas ' Guarda hora de inicio en la EEPROM WRITE 3,Minutos Return

Note que una dirección de memoria es un valor tamaño word y debe guardarse en un byte alto (high) y uno bajo (low).

2. Si se presiona el botón durante la adquisición de datos, éstos serán descargados. Usaremos StampPlot Lite para capturar y graficar los datos a medida que se descargan. Los datos NO son destruidos y el data logger continuará registrando mediciones.

3. Al final de la descarga de datos, si el pulsador se mantiene presionado, el data logger se reiniciará desde el principio destruyendo los datos anteriores e inicializando la hora de toma de datos nuevos.

Si el BASIC Stamp 2 es reiniciado y el botón NO es presionado, el programa leerá los datos de recuperación de la ubicación de memoria actual y tiempo de inicio de la EEPROM. La hora del RTC NO se reiniciará. Debería haber mantenido la hora apropiadamente A MENOS QUE se hubiese cortado la alimentación. La Figura 7.7 muestra el diagrama de flujo de la inicialización del programa.

Page 215: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 213213213213

Figura 7.7: Rutina de Inicialización de Adquisición de Datos

Inicio

Fijar hora y Adquirir Datos

Avisar al usuario que presione el

botón para inicializar hora y

adquisición de datos

¿Botón Presionado?

Si

No

Fijar Hora en RTC

Almacenar Datos de Recuperación en la

EEPROM Bucle Principal

Pedir al usuario que libere el

Botón

¿Botón Liberado?

No Si

Leer Datos de Recuperación

Page 216: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 214214214214 • Control Industrial Versión 1.1

Figura 7.8: Rutinas de Control y Almacenamiento

Control de Tiempo

Tiempo=LTiempo y Ubicac.<Muestras

Si

No

Guardar Datos

Regresar Control de Hora

Control

Botón presionado

Descarg. Datos

Si

No

Guardar Datos

Hacer parpadear LED

Escribir datos en la EEPROM

Escribir Ubicación del Puntero en EEPROM para

Recup. de Datos

Incrementar puntero de Ubicación de Memoria

Incrementar Intervalo de Tiempo

Ubic. < Muestras

Reset

Actualizar los Datos de Recuperación

Ajustar Tiempo BCD

Regresar

Si

No

Si

No

Page 217: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 215215215215

La rutina de Control de Tiempo (Figura 7.8) es usada para determinar si es momento de guardar otro dato en la memoria. Esto se comprueba a la vez que se verifica que la cantidad de muestras tomadas sea menor que la cantidad máxima especificada. ControlTiempo: ' Verifica si es momento de lectura IF (Tiempo = LTiempo) AND (DirecMem-4 < Muestras) THEN GuardaDato RETURN

La rutina GuardaDato es llamada desde ControlTiempo cuando llega el momento de escribir un nuevo valor en la memoria. El valor actual de DataIn (valor leído del ADC) es almacenado en la dirección de memoria actual y la dirección de memoria es incrementada para el ciclo siguiente. Luego se calcula el siguiente horario de muestreo (y después se ajusta a BCD). Si se alcanza la cantidad máxima de muestras, dependiendo del valor de Stop_Reset, la adquisición de datos se detendrá (ver ControlTiempo) o se reiniciará. Note que el valor directo de DataIn del ADC es almacenado y no el valor calculado de la temperatura. Esto nos permite guardar el dato en un byte en lugar de dos en un word. El valor almacenado se convertirá a temperatura cuando se descargue a la PC. GuardaDato: ' Escribe lectura ADC en memoria WRITE DirecMem, DataIn ' Almacena dato en EEPROM HIGH 8:PAUSE 250:LOW 8 ' Parpadea LED DirecMem = DirecMem + 1 ' Incrementa ubicación memoria WRITE 0,DirecMem.HIGHBYTE ' Actualiza datos de recuperación WRITE 1,DirecMem.LOWBYTE LMinutos = LMinutos + Intervalo ' Actualiza para el siguiente intervalo IF DirecMem-4 < Muestras THEN AjustarHora ' Si no completó muestras, sigue IF Stop_Reset = 1 THEN Sin_Reset ' Si completó, reinicia o finaliza GOSUB RecuperaDatos Sin_Reset: AjustarHora:

La Figura 7.9 ilustra el diagrama de flujo de la rutina DescargaDatos. Cuando se presiona el botón, Descarga Datos configura al StampPlot para graficar y crea un bucle que lee los valores almacenados, los convierte en temperatura y envía los valores al graficador y a la ventana de mensajes. Note que la hora de adquisición de datos es la de inicio y el intervalo de temporización se suma en cada repetición del bucle, para determinar la hora original a la que el dato fue almacenado. Una vez que se completa el bucle, se le pide al usuario que presione el botón para reiniciar la captura de datos desde el principio (el LED se encenderá para indicar esto).

Page 218: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 216216216216 • Control Industrial Versión 1.1

Figura 7.9: Diagrama de Flujo de Descarga de Datos

Descarga Datos

Configura SPL

Ltime = Hora de inicio

Puntero = 4

Suma intervalo entre mediciones

Hora de Adquisición = Hora actual

Lee Dato en el puntero

Escala dato para Temperatura

Ajusta Hora BCD

Ajusta Hora BCD

Reinicia Datos de Recuperación

Envía Datos al SPL

Pide que presione el botón para

Reiniciar

Incrementa Puntero

¿Puntero < Dir. Actual?

Pide que suelte el

botón

¿Botón liberado?

¿Botón presionado?

Regresa

Si

No

No Si

Si

No

Page 219: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 217217217217

Una vez completado DescargaDatos, la hora de control se actualizará con el valor de la hora de la siguiente medición y la adquisición continuará desde donde iba, permitiendo la descarga sin afectar los datos almacenados. La Figura 7.10a muestra una ventana con los datos obtenidos con StampPlot Lite.

Figura 7.10a: Muestra de Datos Descargados

El formato de los datos del mensaje sirve para importarlo en una hoja de cálculo para graficarlos, como se muestra en la Figura 7.10b. Una parte del archivo guardado es el siguiente: Punto,Tiempo,Temperatura 0,22:51,787 1,22:56,787 2,23:01,787 3,23:06,787 4,23:11,783 5,23:16,783

Page 220: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 218218218218 • Control Industrial Versión 1.1

Figura 7.10b: Archivo de Datos Importado a Excel

Datos Adquiridos de Temperatura

700725750775800825850875900

22:5

100

:06

01:2

102

:36

03:5

1

05:0

606

:21

07:3

6

08:5

110

:06

11:2

112

:36

13:5

1

15:0

616

:21

17:3

618

:51

20:0

6

21:2

122

:36

23:5

1

Tiempo

Tem

pera

tura

(déc

imas

)

Para obtener estos datos colocamos nuestra incubadora fuera de una ventana y registramos las temperaturas exteriores. Estas temperaturas pueden ser engañosas debido a los efectos del viento, el sol y las capas térmicas que se forman dentro del envase. Obtuvimos algunos picos en las lecturas. ¿Puede hacerlo mejor? Nuestro dibujo muestra temperaturas desde las 22:51 hasta las 22:51 de la noche siguiente. Note las subidas y bajadas en la temperatura a lo largo del día. La máxima esperada del día era 88F y ¡estuvo muy cerca! Por supuesto, no estamos restringidos a rangos de temperatura de 70F a 120F. Revise el Experimento 4. Los valores del rango por software están determinados por las tensiones de rango y offset del ADC0831. TempRango CON 5000 ' Rango máximo (5000 = 50 grados) Offset CON 700 ' Temp. min. Offset. (700 = 70 grados)

Page 221: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Control Industrial Versión 1.1 • Página Página Página Página 219219219219

Preguntas y Desafíos:Preguntas y Desafíos:Preguntas y Desafíos:Preguntas y Desafíos:

1. Realice la adquisición de datos de un sistema: Determine una temperatura que desee registrar durante un largo período de tiempo. Esto puede ser en el exterior, la temperatura ambiente (¿la calefacción / aire acondicionado cambia durante la noche?), o tal vez algún otro sistema de cambios lentos (un tanque de agua bajo el sol, por ejemplo).

1) Determine el rango esperado de valores para la temperatura. Fije las variables rango y offset y

coloque los potenciómetros apropiadamente. 2) Determine cuánto tiempo necesita para adquirir los datos (¿un día? ¿El fin de semana?). Basándose

en un máximo de 50 muestras, calcule el intervalo de tiempo de la adquisición de datos. 3) ¿Listo para programar? Si va a mover su plaqueta, asegúrese de usar una batería que dure todo el

tiempo de la adquisición de datos. 4) También queremos controlar la precisión del RTC en este experimento, así que cuando el programa

esté listo para descargarse:

a) Abra el reloj de Windows y fíjese la hora. b) Coloque una hora de inicio un poco más adelantada de la actual (recuerde usar el formato de

24-horas) Tiempo = $1530

c) 5 segundos antes del tiempo de iniciación, descargue el archivo al BS2 y mantenga presionado el pulsador hasta que el LED se apague o la ventan debug le diga que lo suelte.

d) Use la ventana Debug o el StampPlot para observar la hora del BS2 y la de la PC. BS2: _________ PC: __________ Diferencia: ________

e) Deje funcionar su data logger. Después que tome la primer muestra, puede probar la descarga

de datos presionando el pulsador. f) Después que termine de registrar los datos, ejecute y conecte StampPlot Lite y presione el

pulsador para descargar los datos. g) Use la ventana Debug o StampPlot para controlar la hora del BS2 y de la PC.

BS2:_________ PC: __________ Diferencia: ________

h) Extrapole el error para 24 horas: _________

¿Estos datos colman sus expectativas?

Page 222: Industrial Control Version 1.0

Experimento 7: Control de Tiempo Real y Adquisición de Datos

Página Página Página Página 220220220220 • Control Industrial Versión 1.1

2. Comente sobre el sistema que monitoreó y las conclusiones de sus resultados.

3. ¿Cuánto fue el error calculado sobre un período de 24-horas? ¿Cómo se podría compensar este error en el software?

4. ¿Por qué es importante limitar la cantidad de datos adquiridos por el BS2?

Page 223: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 221221221221

Apéndice A: StampPlot Lite

StampPlot Lite es una aplicación desarrollada por SelmaWare Solutions para el libro Control Industrial. La aplicación permite graficar y capturar datos generales analógicos y digitales.

Descargando e Instalando StampPlot Lite StampPlot Lite puede descargarse del sitio web de Stamps en Clase en http://www.stampsenclase.com. el programa se instala haciendo doble clic en el ícono setup.exe y aceptando los directorios por defecto. Para descargar StampPlot Lite, haga clic en el link “Downloads” de nuestro sitio web y busque la sección “Control Industrial”.

Page 224: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Página Página Página Página 222222222222 • Control Industrial Versión 1.1

Los datos del BASIC Stamp se procesan en una de cuatro formas por la aplicación: Valores Analógicos Cualquier cadena que se envíe que comience con un valor numérico será procesada y graficada como un valor analógico. Debug DEC 100, 13 ' Grafica el número 100

Valores Digitales Cualquier cadena que comience con un '%' se procesará como valor digital. Un dibujo digital separado será comenzado por cada valor binario de la cadena. Por ejemplo, "%1001" dibujará cuatro valores digitales. Se pueden enviar hasta 9-bits. Una vez que se iniciaron los gráficos digitales, debe tenerse precaución en enviar siempre la misma cantidad de bits dado que los gráficos dependen del orden y la posición. Debug IBIN4 INC,13 ' Grafica 4 valores digitales

Configuración de Control Toda cadena que comience con '!' será procesada como configuración de control. La configuración de la aplicación puede controlarse desde el BASIC Stamp usando valores y palabras de control específicas, si es necesario. Debug "!AMAX 200",13 ' Configura máximo analógico del gráfico = 200 Debug "!RSET",13 ' Reinicia el gráfico

Otras cadenas El resto de las cadenas simplemente se agregará al recuadro de mensajes. Debug "¡Hola Mundo!",13

Note que cada ingreso de datos DEBE terminar con un retorno de carro data (13 o CR).

Page 225: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 223223223223

Los pasos para usar programas del BASIC Stamp con StampPlot Lite son los siguientes:

1. Inicie StampPlot Lite haciendo clic en Inicio/Programas/StampPlot/StampPlot Lite. 2. Ingrese y ejecute su programa en el BASIC Stamp usando el editor del BASIC Stamp. 3. Cierre la ventan debug azul del BASIC Stamp presionando el botón “close”. 4. Seleccione el puerto COM y haga clic en la casilla 'Connect'. 5. Haga clic en la casilla 'Plot Data'. 6. Algunos programas pueden requerir que reinicie el BASIC Stamp para tomar la configuración inicial y

los ajustes de control. Hágalo presionando el botón Reset de la plaqueta. 7. Antes de descargar (ejecutar) otro programa en el BASIC Stamp, asegúrese de destildar la casilla

'Connect' del StampPlot o su puerto COM será bloqueado por el StampPlot Lite. El graficador adquirirá los datos digitales y analógicos y los almacenará temporalmente para que puedan ser reajustados o desplazados por la pantalla. La cantidad de puntos de datos recogidos es ajustable. Una vez que los puntos llegan a la cantidad máxima, el graficador puede detenerse o reiniciarse. El siguiente programa realizará algunos ajustes de configuración, graficará en forma continua y mostrará el valor de X en el StampPlot, dibujando sus cuatro bits digitales. Ingrese el programa y use los pasos de arriba para probarlo con el StampPlot Lite. ' Apéndice A Programa ejemplo de StampPlot ' Configura StampPlot Pause 500: Debug "!RSET",CR ' Pausa corta y reset Debug "!SPAN 0, 50",CR ' Rango del valor analógico Debug "!TSMP ON",CR ' Activar temporizador en los mensajes Debug "!TMAX 60",CR ' Configura gráfico 60 segundos max Debug "!RSET",CR ' Reinicia gráfico X var Byte ' Variable contador Bucle: Debug "Comenzando el bucle", CR ' Mensaje que avisa que el bucle está reiniciando. For X = 0 to 15 ' Bucle For-Next para contar hasta 15 Debug DEC X, CR ' Grafica valor analógico de X Debug IBIN4 X, CR ' Grafica bits digitales de X ' Cambia el mensaje de estado de usuario. Debug "!USRS el valor de X es ", DEC X, CR Pause 200 ' Pausa corta Next Goto Bucle ' Reinicia

Page 226: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Página Página Página Página 224224224224 • Control Industrial Versión 1.1

Abajo se muestra un ejemplo obtenido con StampPlot Lite y el programa anterior.

Page 227: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 225225225225

Herramienta de Ayuda Contextual Si StampPlot Lite se está ejecutando en su computadora, podría colocar el cursor sobre cada control para obtener un recuadro de ayuda contextual. A continuación damos una breve explicación de cada control. El comando programable para el BASIC Stamp está entre corchetes, donde sea aplicable:

Sección Superior: Controles Generales

• Com 1: Despliegue hacia abajo las opciones para seleccionar el puerto COM correcto. • Connect: Conecta la aplicación al puerto COM seleccionado. • Plot Data: Activa la graficación de los datos entrantes. Al desactivar este control se detendrá el gráfico

pero continuarán funcionando los mensajes y otras opciones. [ !PLOT ON/OFF] • Reset: Limpia el gráfico, reinicia el tiempo a 0, limpia los valores mínimo y máximo (opcional). [ !RSET ] • Stop Plot: Cuando se alcanza la máxima cantidad de puntos de datos, el gráfico se detiene (Se

deselecciona Plot Data). [!MAXS ] • Reset Plot: Cuando se alcanza la máxima cantidad de puntos de datos, el gráfico se reinicia. [ !MAXR ] • User Status: (mostrando "El valor de X es 9") Mensajes de estado opcionales del BASIC Stamp pueden

colocar datos aquí. [ !USRS mensaje ]

Page 228: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Página Página Página Página 226226226226 • Control Industrial Versión 1.1

Sección Izquierda: Principalmente para configurar el Gráfico Analógico

• Span Drop-Down: Permite la selección de rangos predefinidos. El uso del comando !SPAN del BASIC Stamp agregará un rango a este menú. [ !SPAN valormin, valormax ]

• Botones + y -: Duplican o fraccionan el rango. El valor mínimo no cambia. • Multiplier: Define el valor por el que se multiplicarán los datos analógicos

provenientes del BASIC Stamp antes de ser graficados o guardados en el archivo. [ !AMUL valor ]

• Save Data to File: Guarda los datos entrantes en un archivo de texto en la carpeta del programa, llamado "stampdat.txt.” Si está habilitada la temporización, cada registro incluirá la hora actual del sistema y la cantidad de segundos desde el último reset. Los valores analógicos y digitales también se almacenarán. Cada registro tendrá el siguiente formato:

- Hora del día, segundos desde el último reset, puntos de datos analógicos, valor analógico, puntos de datos digitales, valor digital. Note que cada registro está delimitado por comas para importarlo en una hoja de cálculo, si es necesario.

- Nota: Los datos se guardan SOLAMENTE cuando llegan datos ANALÓGICOS. Para grabar los datos cuando no se registra ningún valor analógico, envíe con debug cualquier valor, como cero por ejemplo ( DEBUG DEC 0, CR).[ !SAVD ON/OFF ]

• Delete Data File: Borra "stampdat.txt.” Si el almacenamiento de datos está habilitado, el archivo será recreado inmediatamente después de ser eliminado. [ !DELD ]

• Valores Analógicos Máximos y Mínimos: Estos pueden ser modificados manualmente. Haga clic sobre el recuadro e ingrese el nuevo valor. [ !AMIN valor !AMAX valor <o> !SPAN valormin, valormax ]

• Time Stamp: Habilita la temporización de los mensajes y datos del archivo. Incluye la hora actual y la cantidad de segundos desde el último reset. [ !TSMP ON/OFF ]

• Clear Messages: Borra los mensajes del recuadro de mensajes. [ !CLRM ] • Save messages to file: Guarda los mensajes en el archivo "stampmsg.txt" en la carpeta del programa.

Los mensajes se guardarán de la misma forma que aparecen en el recuadro de mensajes. [ !SAVM ON/OFF ]

• Delete Msg file: Elimina el archivo "stampmsg.txt" de la carpeta del programa. Si está tildado "Save Messages…", el archivo se recreará inmediatamente. [ !DELM ]

Page 229: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 227227227227

Sección Inferior: Desplazamiento de Gráfico y Rango de Tiempo

• Los tiempos mínimo y máximo pueden fijarse manualmente. Haga clic sobre el campo del valor a ser modificado e introduzca el valor nuevo. [ !TMIN valor y !TMAX valor ]

• Scroll Bar: Si el gráfico se extiende más allá de los límites actuales, puede usarse la barra de desplazamiento horizontal para reposicionar el dibujo (si está almacenando datos, Enable Shift debe estar activada).

• Enable Shift: Le permite al gráfico desplazarse automáticamente cuando se exceda el tiempo de máximo. También habilita la operación de la barra de desplazamiento cuando se recolectan datos. Nota: Desplazamientos del gráfico durante la adquisición de datos pueden causar errores en la temporización de los datos a medida que se actualiza la pantalla. [ !SHFT ON/OFF ]

• +/-: Duplican o reducen el rango de tiempo del gráfico. El valor mínimo del gráfico no cambiará. Sección Derecha: Datos del Gráfico

• Data Points: Para que el gráfico pueda ser manipulado, los datos se almacenan en la memoria. La cantidad máxima de puntos (analógicos o digitales) que pueden ser almacenados se colocan en la casilla Max. ‘Current’ muestra la cantidad de puntos que actualmente se hallan almacenados. Una vez que se alcanza la cantidad máxima, el gráfico se reiniciará o detendrá, de acuerdo con su configuración. [ !PNTS 1000 ]

• Last Analog Data: Muestra el tiempo desde el último reset y el último valor analógico graficado.

• Plot Pointer: Al mover el puntero sobre la pantalla se muestran las magnitudes correspondientes al tiempo y valor analógico de ese punto del gráfico.

• Maximum: Registra el valor analógico máximo y el tiempo en el que se produjo.

• Minimum: Registra el valor analógico mínimo y el tiempo en el que se produjo.

• Clear Min/Max: Borra los valores máximo y mínimo registrados. [ !CLMM ] • Clear min/max on reset: Al tildar esta casilla, el programa borrará los

registros máximo y mínimo cuado se presente el reset. [!CMMR]

Page 230: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Página Página Página Página 228228228228 • Control Industrial Versión 1.1

Control de Pantalla y Zoom

• Al mover el cursor sobre el gráfico se mostrarán los valores correspondientes a la posición del puntero.

• Haciendo doble clic se cambia el modo de fondo de pantalla de amarillo a blanco y las líneas finas por gruesas, para obtener mejor calidad al imprimir (ALT-Print Screen captura la pantalla y la coloca en el portapapeles) o al proyectar la pantalla.

• Si selecciona una zona haciendo clic con el mouse mientras tiene presionado Shift (mayús.) puede seleccionar un sector del gráfico para realizar un zoom.

Controles del BASIC Stamp y Comandos de Configuración La mayoría de los controles y configuración del gráfico pueden ajustarse desde el programa del BASIC Stamp. Para usar estos comandos, simplemente colóquelos en un comando debug desde BASIC Stamp. Todos los comandos deben terminar con CR (ASCII 13): DEBUG "!PLOT ON", CR.

Comando Descripción !TITL mensaje Título de la ventana !USRS mensaje Muestra un mensaje en el recuadro User Status !BELL Emite un sonido por la PC !AMAX valor Fija el valor analógico máximo !AMIN valor Fija el valor analógico mínimo !SPAN minValor, maxValor

Fija los valores analógicos máximo y mínimo cono arriba (también agrega el rango al recuadro Rango Drop-Down).

!AMUL valor Fija el factor de multiplicación de los datos entrantes !TMAX valor Fija el tiempo máximo (segundos) !TMIN valor Fija el tiempo mínimo (segundos) !PNTS valor Fija la cantidad de puntos de datos a adquirir !PLOT ON/OFF Habilita / deshabilita el gráfico de datos !RSET Reinicia el gráfico y todos los datos !CLRM Limpia la lista de mensajes !CLMM Limpia los valores min/max registrados !CMMR ON/OFF Habilita / deshabilita el borrado del registro de valores Min/Max en el reset !MAXS Detiene el gráfico cuando se completa la cantidad máxima de puntos de datos !MAXR Reinicia el gráfico cuando se completa la cantidad máxima de puntos de datos !SHFT ON/OFF Habilita / deshabilita el desplazamiento del gráfico cuando se registran datos

(puede causar pérdida de precisión en los datos si se habilita)

Page 231: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Control Industrial Versión 1.1 • Página Página Página Página 229229229229

!TSMP ON/OFF Habilita la temporización de la lista de mensajes y los datos almacenados !SAVD ON/OFF Activa la grabación en archivos de los datos digitales y analógicos !SAVM ON/OFF Activa la grabación de mensajes en un archivo !DELD Borra el archivo de datos !DELM Borra el archivo de mensajes

Notas de Aplicación Adicionales El tamaño del gráfico que se usa depende de la cantidad de puntos de datos y de la velocidad a la que se transmiten. Por ejemplo, si desea que 60 segundos de datos ocupen toda la pantalla y se transmiten desde el BASIC Stamp a una velocidad máxima de 100 ms (Pause 100 + tiempo de procesamiento): 60/0,1 = 600 puntos de datos. La aplicación necesita una pausa regular mínima en la recepción de datos para completar el proceso. Una pausa de 10 ms normalmente es suficiente para una computadora bastante rápida. Si la aplicación detecta que recibir correctamente los datos, aparecerá un mensaje en un recuadro y se desconectará. Algunas indicaciones que la computadora no da abasto con los datos son: datos desparejos, no hay gráfico y la incapacidad de responder a los controles (se cuelga). A mayor cantidad de puntos y cuanto mayores sean los valores, más tiempo demorará el graficador para actualizar o desplazar la imagen. Para obtener una configuración más rápida o conveniente al iniciar el BASIC Stamp, estas son las configuraciones recomendadas:

• Pausa de 500ms al inicio para que se limpie el buffer del StampPlot. • Realice un RESET del StampPlot (!RSET) antes de realizar cambios de configuración para permitir que

los puntos de datos se eliminen, evitando que se produzca una actualización de la pantalla (redibujado).

• Reset (!RSET) al finalizar la configuración, pone el tiempo en 0. Como con cualquier aplicación, la mejor forma de aprender a usarla es jugando con ella. ¡Diviértase!

Page 232: Industrial Control Version 1.0

Apéndice A: StampPlot Lite

Página Página Página Página 230230230230 • Control Industrial Versión 1.1

Upgrade a StampPlot Pro para sus experimentos de Control Industrial Algunas de sus características son:

• Gráfico de múltiples canales analógicos. • Almacenamiento de gráficos e imágenes. • Características de adquisición avanzadas. • Capacidad de dibujar gráficos. • Macros basadas en PC para instrucciones, incluyendo manipulación de datos. • Capacidades interactivas para realizar ajustes funcionando.

La ventana de StampPlot Pro de abajo muestra el ejercicio de control PID del Experimento 7 graficando la temperatura actual y la deseada junto con el %Excitación (barras inferiores).

Los valores de ganancia pueden ingresarse en la ventana de datos y luego serán leídos por su BS2. Una macro basada en la PC muestra la temperatura en el termómetro. Ejemplos basados en el libro Control Industrial están publicados en los tutoriales online. Descargue el programa y evalúelo gratis.

http://www.selmaware.com/

Page 233: Industrial Control Version 1.0

Apéndice B: Codificador de Ventilador

Control Industrial Versión 1.1 • Página Página Página Página 231231231231

Apéndice B: Plantillas Codificadorasdel Ventilador

Estas plantillas son de tamaño real y podrían ser usadas como interruptores digitales en el Experimento 2.

Page 234: Industrial Control Version 1.0

Apéndice B: Codificador de Ventilador

Página Página Página Página 232232232232 • Control Industrial Versión 1.1

Page 235: Industrial Control Version 1.0

Apéndice C: Hoja de Datos del SSR

Control Industrial Versión 1.1 • Página Página Página Página 233233233233

Apéndice C: Hoja de Datos del SSR

El Apéndice C muestra las hojas de datos del relé de estado sólido “Hockey Puck”. Éstas pueden descargarse de http://www.pandbrelays.com/.

Page 236: Industrial Control Version 1.0

Apéndice C: Hoja de Datos del SSR

Página Página Página Página 234234234234 • Control Industrial Versión 1.1

Page 237: Industrial Control Version 1.0

Apéndice C: Hoja de Datos del SSR

Control Industrial Versión 1.1 • Página Página Página Página 235235235235

Page 238: Industrial Control Version 1.0

Apéndice C: Hoja de Datos del SSR

Página Página Página Página 236236236236 • Control Industrial Versión 1.1

Page 239: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Control Industrial Versión 1.1 • Página Página Página Página 237237237237

Apéndice D: Hoja de Datos del LM34

El Apéndice D muestra las hojas de datos de National Semiconductor del LM34. Este apéndice incluye las primeras cinco (5) páginas de las 12. Si desea ver más aplicaciones del LM34 que las que aparecen en este apéndice, el documento completo puede descargarse de http://www.national.com/ds/LM/LM34.pdf.

Page 240: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Página Página Página Página 238238238238 • Control Industrial Versión 1.1

Page 241: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Control Industrial Versión 1.1 • Página Página Página Página 239239239239

Page 242: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Página Página Página Página 240240240240 • Control Industrial Versión 1.1

Page 243: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Control Industrial Versión 1.1 • Página Página Página Página 241241241241

Page 244: Industrial Control Version 1.0

Apéndice D: Hoja de Datos del LM34

Página Página Página Página 242242242242 • Control Industrial Versión 1.1

Page 245: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Control Industrial Versión 1.1 • Página Página Página Página 243243243243

Apéndice E: Hoja de Datos del LM358

El Apéndice E muestra las hojas de datos del LM358 de National Semiconductor. Este apéndice muestra las primeras cinco (5) páginas de las 23. Si desea ver más aplicaciones del LM358 que las que se muestran en este apéndice, puede descargar el documento completo de http://www.national.com/ds/LM/LM158.pdf.

Page 246: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Página Página Página Página 244244244244 • Control Industrial Versión 1.1

Page 247: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Control Industrial Versión 1.1 • Página Página Página Página 245245245245

Page 248: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Página Página Página Página 246246246246 • Control Industrial Versión 1.1

Page 249: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Control Industrial Versión 1.1 • Página Página Página Página 247247247247

Page 250: Industrial Control Version 1.0

Apéndice E: Hoja de Datos del LM358

Página Página Página Página 248248248248 • Control Industrial Versión 1.1

Page 251: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Control Industrial Versión 1.1 • Página Página Página Página 249249249249

Apéndice F: Hoja de Datos del DS 1302

El Apéndice F muestra las hojas de datos del 1302 de Dallas Semiconductor. Este apéndice incluye las primeras cinco (5) páginas de las 23. Si desea ver más aplicaciones del DS1302 que las que se muestran en este apéndice, el sitio web de Parallax incluye la documentación del AppKit para este componente.

Page 252: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Página Página Página Página 250250250250 • Control Industrial Versión 1.1

Page 253: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Control Industrial Versión 1.1 • Página Página Página Página 251251251251

Page 254: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Página Página Página Página 252252252252 • Control Industrial Versión 1.1

Page 255: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Control Industrial Versión 1.1 • Página Página Página Página 253253253253

Page 256: Industrial Control Version 1.0

Apéndice F: Hoja de Datos del DS1302

Página Página Página Página 254254254254 • Control Industrial Versión 1.1

Page 257: Industrial Control Version 1.0

Apéndice G: Listado de Componentes y Suministros

Control Industrial Versión 1.1 • Página Página Página Página 255255255255

Apéndice G: Listado de Componentes y Suministros

Todos los componentes (página siguiente) usados en los experimentos de Control Industrial pueden encontrarse fácilmente en comercios de componentes electrónicos. Los clientes que deseen comprar el kit completo, pueden hacerlo en

Parallax. Para usar este libro necesita tres partes principales: (1) un módulo BASIC Stamp II (suelto o junto con la Plaqueta de Educación- Full Kit); (2) una Plaqueta de Educación (suelta o con la Plaqueta de Educación -Full Kit); y 3) el Kit de componentes de Control Industrial. Kits de la Plaqueta de Educación El BASIC Stamp II (BS2-IC) se vende suelto o incluido en Plaqueta de Educación Full Kit. Si ya posee el módulo BS2-IC, entonces solamente debería comprar la Plaqueta de Educación. También se pueden ordenar componentes individuales empleando los códigos de stock que aparecen abajo.

Plaqueta de Educación – Full Kit (#28102) Parallax # Descripción Cantidad 28150 Plaqueta de Educación 1 800-00016 Cables de Interconexión 10 BS2-IC BASIC Stamp II 1 750-00008 Fuente de Alimentación, 300 mA 9 VCC 1 800-00003 Cable Serial 1

Plaqueta de Educación (#28150)

Parallax # Descripción Cantidad 28102 Plaqueta de Educación y cables de interconexión 1 800-00016 Cables de Interconexión 6

La siguiente documentación impresa es muy importante para obtener información adicional:

Documentación sobre el BASIC Stamp Parallax # Descripción Internet 27919 Manual BASIC Stamp Versión 2.0 http://www.stampsinclass.com 27341 Manual Control Industrial http://www.stampsinclass.com

Page 258: Industrial Control Version 1.0

Apéndice G: Listado de Componentes y Suministros

Página Página Página Página 256256256256 • Control Industrial Versión 1.1

Los experimentos de Control Industrial requieren el Kit de Componentes de Control Industrial (#27340) Al igual que con el resto de los manuales de Stamps en Clase, necesita una Plaqueta de Educación con un BASIC Stamp y el Kit de Componentes. El contenido de este Kit se muestra abajo, por experimento. Componentes de reemplazo pueden ordenarse a http://www.stampsinclass.com.

Kit Control Industrial (#27340)

Stock# Descripción #1 #2 #3 #4 #5 #6 #7 Total/Kit 150-01020 resistor 1K ¼ Watt 1 1 2 150-01030 resistor 10K ¼ Watt 1 2 1 1 2 150-02030 resistor 20K ¼ Watt 1 1 1 1 150-02210 resistor 220 Ohm ¼ Watt 1 2 3 1 1 1 1 4 150-04710 resistor 470 Ohm ¼ Watt 1 1 1 1 1 4 152-01031 Potenciómetro

multivueltas 10K ¼ Watt 1 2 2 2 2 2 2 2

153-00001 Diodo Zener 5.1 V .5 W 1 1 1 1 153-00002 MOSFET BS170 1 1 1 200-06840 Capacitor .68uF 1 1 1 1 201-01050 capacitor 1uF 1 1 201-01060 capacitor 10uF 10V 1 1 1 1 1 251-03230 Cristal 32.768 kHz 1 1 350-00001 LED verde 1 1 1 1 350-00006 LED rojo 1 1 1 1 1 1 1 350-00007 LED amarillo 1 1 350-00017 IR Led con

termocontraíble 1 1

350-00018 Fototransistor infrarrojo 1 1 400-00002 Pulsador 1 2 2 1 1 2 500-00001 Transistor 2N3904 1 1 1 1 1 1 2 604-00005 Chip DS 1302 1 1 602-00015 Op-Amp Dual LM358 1 1 1 1 700-00039 Envase película 35 mm 1 1 1 1 1 1 700-00040 Ventilador 12 VDC 1 1 1 1 1 1 1 800-00027 Punta de Temp. LM34 1 1 1 1 1 800-00028 Resistor Calentador 47

Ohm 1 1 1 1 1 1

ADC0831 ADC 0831 8-bit A/D 1 1 1 1 1

Page 259: Industrial Control Version 1.0

Apéndice H: Desafío de Incubadora Comercial

Control Industrial Versión 1.1 • Página Página Página Página 257257257257

Este texto lo ha introducido en la selección y conexión apropiada de dispositivos industriales. La incubadora de envase de película proveía para el modelado de estrategias básicas de control de procesos. El BASIC Stamp está en condiciones de

monitorear y controlar aplicaciones hogareñas hasta controles críticos de procesos industriales. Un buen proyecto para un aficionado serio o para el laboratorio de una escuela es el desarrollo de una incubadora real basada en microcontrolador. Hay sistemas en venta a partir de los $20.00. GQF Manufacturing de Savanna, Georgia (http://www.gqfmfg.com) es uno de los tantos fabricantes que tienen una completa línea de incubadoras y equipos. Una incubadora con un calentador de 25 Watt 120 VAC y un ventilador de 120 VAC – 500 mA con una bandeja gira huevos Modelo 1611 tiene un costo total de aproximadamente $90.00.

Mfg #1611

Apéndice H: Desafío de Incubadora Comercial

Page 260: Industrial Control Version 1.0

Apéndice H: Desafío de Incubadora Comercial

Página Página Página Página 258258258258 • Control Industrial Versión 1.1

El Experimento 3 mostró como emplear relés para controlar cargas de gran tensión y potencia. El ventilador y la bandeja gira huevos se encienden y apagan frecuentemente y podrían ser controlados por un relé electromecánico dimensionado adecuadamente. El calentador debería ser revisado muy seguido, controlándolo mediante un relé electrónico de estado sólido. Radio Shack vende una gran variedad de relés que serían apropiados. Un termostato bimetálico mecánico normalmente controla el calentador de la incubadora. Este podría dejarse en su lugar como un elemento de seguridad y ajustándolo 2 grados por encima de la temperatura deseada. De esta forma interrumpirá la alimentación si su termostato electrónico o su relé de estado sólido fallan. El circuito sensor LM34/ADC 0831 y el amplificador de corriente del calentador usados en los Experimentos 4 a 7 servirían para nuestra aplicación real. Sin embargo, en lugar de activar un resistor de 47-Ohm podría activar un relé de estado sólido. Éste a su vez, controla el calentador de alta tensión. La temperatura de incubación depende del tipo de huevos. Por ejemplo, los huevos de pollo deberían incubarse a 101,5F mientras que la mejor temperatura para los de pato y ganso es 100,5F. El rango del ADC0831 podría enfocarse sobre estas temperaturas como se explicó en el Experimento 4. Al hacer esto obtendrá una mejor resolución y datos más precisos. La estrategia de control del calentador podría basarse en cualquiera de los cinco modos que se discutieron en los Experimentos 5 y 6. Las pruebas y gráficas con StampPlot Lite le darán la información necesaria para analizar y evaluar los pros y contras de cada método. Sería bueno agregarle una alarma audible para que se active cuando la incubadora se sale de los rangos permitidos. El parlante piezoeléctrico de 108 dB de Radio Shack (# 273-057) mostrado abajo definitivamente le llamará la atención. Éste puede conectarse directamente a la fuente del BASIC Stamp. El MOSFET BS170 usado en la Figura 3.9d sería un excitador adecuado para entregar los 150 mA requeridos.

La alarma debería activarse por temperaturas muy altas o muy bajas. Le convendrá agregar un par de pulsadores para desactivar la alarma mientras se calienta por primera vez la incubadora. Repase el Experimento 2 para ver los circuitos apropiados y la programación de las entradas digitales.

Page 261: Industrial Control Version 1.0

Apéndice H: Desafío de Incubadora Comercial

Control Industrial Versión 1.1 • Página Página Página Página 259259259259

Un recipiente con agua, dentro de la incubadora, asegura que la humedad se mantenga suficientemente alta para mantener los huevos hidratados. ¿Cómo podría el BASIC Stamp agregar inteligencia a este aspecto de nuestra incubadora? Tal vez podría hacer titilar un LED para recordarle que controle la cantidad de agua. O incluso mejor, el laboratorio de medición de humedad del libro Mediciones Ambientales del programa Stamps en Clase podría ser modificado para detectar como se seca el agua del recipiente. Esta condición podría hacer parpadear una lámpara o sonar la alarma. Para automatizar el proceso, la salida del sensor de humedad podría comparase con una tensión de referencia a la entrada del LM358. La salida alta / baja del comparador sería una entrada digital para el Stamp. Cuando la humedad cae por debajo del valor deseado, enciende un humidificador y bombea vapor de agua. Agregando el temporizador DS1302 introducido en el Experimento 7 puede darle todas las características de una incubadora comercial de última generación. Se controlaría la temperatura y la humedad. Reportes diarios de las variaciones de temperatura pueden almacenarse en el Stamp y pasarse luego a la PC. Los huevos pueden rotarse a intervalos programados. Se podrían programar variaciones de temperatura como una rampa ascendente de 1 grado, en las 24 horas anteriores a la eclosión. Cada ejercicio del Experimento 7 puede modificarse para realizar estas tareas. Los pollitos saludables de la fotografía de abajo son el resultado exitoso de haber mantenido el proceso por 21 días.

Si dedica una computadora a este sistema, StampPlot Lite podría graficar continuamente y reportar las condiciones del sistema. Si desea realizar algo más elaborado, el software StampPlot Pro agrega muchas más opciones de cómputo. Gráficos analógicos múltiples, capacidad de realizar gráficos propios, interacción bidireccional en tiempo real y la capacidad de manejar archivos .jpg y .wav son algunas de sus opciones. El StampPlot Pro permite monitorear la incubadora remotamente por internet. La versión de evaluación del Stamp Plot Pro se puede descargar de Parallax en el sitio web de Stamps en Clase.

Page 262: Industrial Control Version 1.0

Apéndice H: Desafío de Incubadora Comercial

Página Página Página Página 260260260260 • Control Industrial Versión 1.1

Como puede ver, esta aplicación de incubadora comercial incorpora los conceptos vertidos en cada sección de este manual. No cabe duda que muchos de ustedes se detendrán en este punto y se convertirán en criadores de pollitos. A medida que continúe experimentado con los BASIC Stamps y los use en sus proyectos y en aplicaciones industriales reales, tenga estos conceptos en cuenta y guarde este libro en su biblioteca como referencia.