Laboratorio de Control por Computador 4º Curso. Ingeniería...

73
Laboratorio de Control por Computador 4º Curso. Ingeniería de Telecomunicación Libro de Prácticas y Exámenes Manuel López Martínez Mercedes Pérez de la Parte Francisco Gordillo Álvarez Ing. Sistemas y Automática © 2001-2005

Transcript of Laboratorio de Control por Computador 4º Curso. Ingeniería...

Page 1: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Laboratorio de Control porComputador

4º Curso. Ingeniería deTelecomunicación

Libro de Prácticas y Exámenes

Manuel López MartínezMercedes Pérez de la ParteFrancisco Gordillo Álvarez

Ing. Sistemas y Automática© 2001-2005

Page 2: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 3: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Índice

ENUNCIADOS DE PRÁCTICAS

Práctica 1: Introducción a Labview. Configuración de una tarjeta de adquisición de datos..................... 7

Práctica 2: Análisis de un sistema y diseño de Controladores PID ............................................ 13

Práctica 3: Microcontroladores programables......................17

Práctica 4: Implementación digital de un PID......................23

Práctica 5: Regulador lineal óptimo cuadrático (LQR)..........25

Práctica 6: Control predictivo generalizado (GPC)................27

Práctica 7: Introducción al Scada WinCC............................29

Manual de referencia rápida...............................31

Práctica 8: Identificación y control adaptativo.....................57

Práctica 9: Bibliotecas de funciones de enlace dinámico (DLL)...................................................59

EXÁMENES DE PRÁCTICAS

Examen 01.........................................................................67

Examen 02.........................................................................69

Examen 03.........................................................................71

Examen 04.........................................................................73

Page 4: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 5: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Enunciados de Prácticas

Page 6: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 7: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

LABORATORIO DE CONTROL POR COMPUTADOR

PRACTICA 1

Introduccion a LabView.Configuracion de una tarjeta deadquisicion de datos

1 Objetivos

El objetivo fundamental de esta practica es enfrentar al alumno con los problemas queaparecen a la hora de trabajar por primera vez con una tarjeta de entradas y salidastanto analogicas como digitales(Tarjeta de Adquisicion de Datos y Control). Para elloemplearemos un software especıfico para el control de instrumentacion. Este software sedenomina LabView y se caracteriza por ser un lenguaje de programacion grafica. Sepretende desarrollar un programa con este software que permita configurar, leer y escribiren la tarjeta. De igual modo se realizara un interfaz grafico para poder visualizar losdatos leıdos y escritos.

2 Equipo Necesario

Cada puesto de trabajo estara formado por:

• Un PC equipado con una tarjeta de adquisicion de datos

• Una fuente de tension.

• Un generador de onda.

• Un osciloscopio.

3 Introduccion a LabView

LabView es un entorno de desarrollo de programas basado en un lenguaje de programaciongrafico (G) que genera los programas en forma de diagramas de bloques.

LabView dispone de bibliotecas para adquisicion de datos, analisis, presentacion y alma-cenamiento de datos. Ademas dispone de herramientas convencionales de desarrollo deprogramas y depuracion de errores, tales como puntos de ruptura, ejecucion paso a pasoy animacion del flujo del programa.

Los programas en LabView se denominan instrumentos virtuales (extension *.vi). Un VIconsiste en una interfaz de usuario interactiva denominada Panel y un diagrama de flujode datos. Cada VI podra tener acceso a otros VIs, bien para hacer nuevas pantallas obien para que trabajen como subprogramas, esto se hara a traves de la generacion delicono del VI y de sus entradas y salidas. Se comenzara programando el VI de mayor niveldefiniendo las entradas y salidas para la aplicacion deseada.

Student Student
Student Student
Student Student
© Manuel López Martínez
Student Student
7
Page 8: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

3.1 Conceptos basicos del lenguaje G

1. VIs

2. Panel Frontal: Controles e Indicadores

(a) Controles: Dispositivo a traves del cual el usuario introduce datos para su proce-samiento.

(b) Indicador: Dispositivo a traves del cual el usuario lee los resultados que da elprograma.

Figura 1: Panel

3. Diagrama de Programacion: Funciones

(a) Terminales: Cada Control e indicador del panel frontal tendra asociado un ter-minal de conexion en el diagrama de programacion. A traves de este terminalfluiran los datos hacia otros terminales de conexion o hacia funciones.

(b) Cableado: Camino para los datos desde un terminal a otro. Su color indica el tipode datos que circula por el. Azul=enteros, verde=booleanos, naranja=flotantes,rosa=cadenas de caracteres, Marron=Clusters.Arrays: Conjunto de elementos del mismo tipoCluster: Conjunto de elementos de distinto tipo

Student Student
8
Page 9: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Figura 2: Diagrama Librerıas Tarjeta

Estructuras

Figura 3: Estructuras

• While:Terminal de iteracion(i) y terminal condicional.Shift Register: Registros de desplazamiento. Variables locales que permitentransferir los valores del final de una iteracion al principio de la siguiente.Tiempo de Espera: Cuando es necesario ejecutar un bucle while cada ciertotiempo, se anade un tiempo de espera. Con esto podremos definir el Tiempode Muestreo.

Student Student
9
Page 10: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Figura 4: Espera un tiempo (en ms)

• For: Hay dos terminales asociados. Terminal contador(N) y el terminal de it-eracion(i). Hay tambien registros de desplazamiento.

• Estructura Case: Selector del caso(?).Identificador del caso.

• Estructura Secuence

3.2 Ejemplo: Funcion Seno

En el siguiente ejemplo se muestra un vi en el que se aplica un filtro a una senal senoidal.El filtro es yk = uk + a ∗ yk−1, donde uk es una senal senoidal de frecuencia w. En esteejemplo se hace notar la importancia del uso del registro de desplazamiento(shift register)ya que nos permitira tener acceso a las variables de iteraciones anteriores.

Figura 5: Panel y Diagrama Funcion Seno

Student Student
10
Page 11: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

4 Desarrollo

Haciendo uso de la biblioteca de funciones para la tarjeta de entrada salida, y de los driverspara LabView, se tendra que realizar un VI, tanto el panel frontal como el diagrama debloques de programacion para conseguir realizar:

• Inicializacion de la Tarjeta.

• Lectura de los canales de la Tarjeta.

• Escritura en los canales de la Tarjeta.

Para comprobar el correcto funcionamiento del VI, se utilizara un generador se senal, yun osciloscopio.

4.1 Funciones de la Biblioteca

Figura 6: Funciones para Inicializacion

Figura 7: Funciones para Lectura

Figura 8: Funciones para Escritura

Student Student
11
Page 12: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 13: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

INGENIERO DE TELECOMUNICACIONLABORATORIO DE CONTROL POR COMPUTADORDepartamento de Ingenierıa de Sistemas y Automatica

Practica 2Analisis de un sistema y diseno de

controladores PID

1. Analisis del sistema

Se pretende aquı observar el comportamiento del motor ante cambios en elvoltaje de entrada a la excitacion del mismo. Usaremos el ordenador comomonitor para dicha observacion en bucle abierto con una aplicacion en Lab-view.El conexionado se muestra en el anexo de este documento.Una vez hecho el conexionado y utilizando la aplicacion de Labview disponible,se realizaran varios experimentos usando distinta magnitud de escalon. Losresultados se guardaran en archivos de disco flexible (se procurara apuntarel contenido de cada archivo para evitar confusiones en su estudio posterior).

1.1. Experimentos

Para distintos valores de u (tension de excitacion), se mediran la evolucionde y (tension proporcional a la posicion) y de yv (tension proporcional ala velocidad). Los valores de u seran tıpicamente bajo, medio y alto. Seobservara la existencia de zona muerta y de saturacion en la senal de mandoy se tomara nota de los resultados.IMPORTANTE: Para los experimentos no se debe variar la posicion delmando del atenuador ni del amplificador.Los ficheros obtenidos se utilizaran en el punto siguiente.

1.2. Calculo de parametros

La salida de la planta yv (velocidad) ante una entrada en escalon se asemejaa la de un sistema de primer orden. Tales sistemas quedan caracterizadospor una ganancia estatica y una constante de tiempo. Aunque nuestrosistema no es de primer orden, podemos hacer tal aproximacion.

1

Student Student
Student Student
13
Page 14: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

La posicion angular del eje y resulta de integrar la velocidad multiplicadapor cierta constante (debido a la conversion de grados a voltios).La dinamica de la planta completa se aproxima, por tanto, a:

u→ k1

1 + τs

yv−→ k2

s→ y

donde las variables son:

u: Senal de mando en voltios.

yv: Velocidad de giro, expresada en voltios de la senal medida.

y: Posicion angular, expresada en voltios de la senal medida.

Se obtendran los parametros del sistema k1, τ y k2 haciendo uso de los datosobtenidos en los experimentos (por ejemplo de forma grafica). Los valoresseran diferentes en las zonas baja, media y alta de u, por lo que se hara unamedia.

2. Diseno de un regulador PI para el control

de velocidad

Con los parametros k1, y τ obtenidos anteriormente se pueden disenar re-guladores para el control de la velocidad (no confundir con el control de laposicion) en bucle cerrado. Para el programa MATLAB es de gran ayuda.

2.1. Especificaciones

Se podra usar la transformada en s (aunque es una aproximacion ya que seva a trabajar en tiempo discreto) para obtener un PI que cumpla:

El cero del PI cancelara el polo del sistema.

La constante de tiempo sera la mitad de la del sistema sin compensar.

2

Student Student
Student Student
14
Page 15: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

2.2. Experimentos

Se probara la eficacia del controlador disenado mediante una serie de experi-mentos en los cuales la referencia del sistema en bucle cerrado sufrira escalonesen distintas zonas. Los resultados se archivaran en ficheros.Se moveran los parametros del PI de su punto de diseno, y se vera comoafecta a la respuesta del bucle cerrado.

3. Diseno de un regulador PID para el con-

trol de posicion

Notese que en este caso se desea controlar la posicion. Se disenara el PIDde forma empırica: en primer lugar se observara el efecto de cada uno de losterminos del PID (proporcional, integral y derivativo) sobre el comportamien-to del bucle cerrado modificando los parametros Kp, Ti y Td. Se efectuarandiversos experimentos correspondientes a distintos valores de los parametros.Un procedimiento para sintonizar el PID es el siguiente:1. Elegir (a base de prueba y error) un valor de Kp que haga que no hayamucha sobreoscilacion ni tampoco oscilaciones. Los efectos integral y deriva-tivo seran aquı nulos (piense los valores que hay que asignarles a Ti y Td paraque esto ocurra).2. Bajar algo Kp y anadir termino integral para anular el error en regimenpermanente (producido por la zona muerta).3. Anadir ahora termino derivativo con objeto de suavizar la sobreoscilacionque puede haber aparecido en el punto 2.Se tomara nota de los valores de los parametros en cada prueba.

4. Memoria

Se detallara en la memoria aquellos puntos que se indicaron mas arriba comoimportantes para la observacion. Asimismo se incluira en la memoria todotrabajo desarrollado por el alumno, como: programa de control, ecuaciones,analisis, etc. y todo fichero de resultados (en forma grafica si se puede). Sepuntuara una explicacion de los efectos observados en el ajuste del PID.

3

Student Student
Student Student
15
Page 16: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

ANEXO

Conexiones de los servomotores

1. Motores modulares Feedback 150

����������������������������������������������������

����������������������������������������������������

+15 0 -15

+15 0 -15

AU 150B

1

3

4

1 2

MT 150F

PA 150C

OP 150K

PS 150ESA 150D

Velocidad: AI1

Posición: AI0

Actuación: AO1

Divisor de tensiones

GND

2. Motores compactos Feedback

A estos motores simplemente hay que conectarles la alimentacion (IMPOR-TANTE: hay que asegurarse de que se hace correctamente) y lasentradas y salidas a traves del conector de cable plano:

ALIMENTACIÓN

15 V 15 V

Fuente

+15 +5 -150V

- + + GND 5 V-

1 2 3 4 5 6

�������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������

1: GND

3: Referencia

6: N/A

Cable plano

2: Posición: AI0

4: Actuación: AO15: Velocidad: AI1

Student Student
16
Page 17: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

1

Práctica 3: Microcontroladores programables. Objetivos 1) Conocer y conectar un nuevo equipo comercial para controlar sistemas mediante un microprocesador y una memoria autónomos. 2) Programar con las herramientas de programación ofrecidas y nuestro PC, el microcontrolador para un control PID. 3) Conectar el microcontrolador al servomotor empleado en prácticas anteriores, controlar y comentar los resultados prácticos obtenidos. 1) Conocimientos básicos del microcontrolador PK2100 de Z-World Utilidad. Los controladores industriales basados en circuitos electrónicos son de gran utilidad en la actualidad dado su bajo coste, su confiabilidad y la gran cantidad de herramientas informáticas y de desarrollo que proporcionan una fácil implementación de algoritmos de control. Los circuitos microcontroladores cada día son más rápidos, pequeños y con más potencia de cálculo. Presentación. El microcontrolador industrial de propósito general de la firma Z-World que emplearemos en la práctica es el modelo PK2100. Está basado en el microprocesador Z180 de Zilog de 8 bits. Descripción técnica.

- Toda la aritmética flotante debe realizarse haciendo uso de funciones programadas porque el hardware es de 8 bits sólo. Por tanto, operaciones como multiplicaciones de flotantes en 32 bits son operaciones muy costosas en cuanto a tiempo de ejecución.

- La frecuencia de reloj es de 6,144 MHz. La memoria EPROM o FLASH puede ser desde 32K hasta 128K. La capacidad de memoria RAM, de 32K hasta 512K. Se alimenta con una fuente de 24 voltios y consume aproximadamente 5,5 W.

- La tarjeta que reúne todos los circuitos que componen el microcontrolador se muestra en la figura 1. - Interfaces:

• 6 entradas universales que pueden ser usadas como entradas digitales, o entradas analógicas. El rango de tensión entrada es desde 0 a 10 V con 10 bits de resolución y una protección contra sobretensiones de +-48 voltios.

• Una entrada analógica diferencial con rango de 0 a 10 V con 10 bits de resolución. • 7 entradas digitales. 3 de ellas pueden funcionar como contadores. • 2 canales para usar como entrada a contadores. • 2 salidas a relés con intensidad de 3 A a 48 V. • 10 salidas de corriente para dirigir relés o solenoides. • 1 salida analógica que puede ser en tensión (0 a 10 V) o en corriente (0 a 20 mA). • Un puerto RS485/RS422 y un puerto RS232. • Un bus de expansión para dispositivos PCL-BUS de ZILOG.

Student Student
Student Student
17
Page 18: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Figura 1. Placa del microcontrolador industrial PK2100. Aplicabilidad. Los microcontroladores se emplean con sistemas en entornos industriales y domésticos. Este microcontrolador se puede emplear para controlar maquinaria de empaquetado o sistemas de procesado de material, para detectar contactos, contar pulsos, medir valores analógicos como temperatura, presión o posición (caso de nuestra práctica). Se conecta directamente a muchos sensores y dispositivos periféricos. Conexión del controlador PK2100 al PC. Para llevar a cabo la conexión del controlador PK2100 al PC donde se ejecuta el software de desarrollo Dynamic-C se deben realizar las siguientes tareas:

• Conectar el cable rojo (o negro(-) y blanco(+)) de la fuente de alimentación de 24 Vdc al conector atornillable marcado con las letras +24. Conectar el otro cable de la fuente al conector atornillable marcado con las letras GND dos posiciones por debajo del primero. Todas los conectores atornillables marcados con GND están unidos eléctricamente.

• Comprobar que el controlador no tiene tensión ( fuente no conectada a toma de red). • Conectar el controlador al puerto serie del PC (COM) mediante al cable serie y el adaptador RJ-DB9

que se proporcionan. • Conectar la fuente de alimentación a una toma de red y arrncar en el PC el software de desarrollo

Dynamic-C. Comprobar que el puerto configurado en la aplicación Dynamic-C (Serial en el menú), tiene la misma velocidad que la indicada en la configuración del PC.

En este momento el controlador está listo para ser programado. La comunicación entre el PC y el microcontrolador comienza cuando se arranca en el PC el programa Dynamic-C ( el PC intenta comunicarse con el controlador cada vez que se comienza a ejecutar el software). Si el controlador no está presente o no se le ha dado tensión se mostrará un mensaje de error por pantalla: Target not responding.

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

2

Student Student
Student Student
18
Page 19: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Situación de los conectores atornillables. En la figura 2 puede verse la situación en la tarjeta del controlador de cada uno de los conectores atornillables. Aparecen los correspondientes a las entradas universales y a la salida analógica así como los conectores para la entrada y salida adicionales (A/D+ y UEXP respectivamente). Todos los conectores marcados con GND están unidos eléctricamente y es en ellos donde deben conectarse los polos comunes de cada entrada y de la salida. Para nuestra práctica se utilizarán la salida analógica (DAC Ouput), la entrada universal U1 para la medida de posición y la entrada universal U2 para la entrada de la señal de referencia. Conectar también los conectores con las letras GND.

Figura 2. Situación de los conectores atornillables y las entradas y salidas.

Tarjetas de adaptación de señal para nuestro sistema particular. La tarjeta de entrada al controlador se alimenta con +-15 V. Se utilizará el terminal marcado como OUT1 para unirlo a U1. INI1 irá conectado a la medida de posición en el sistema. La tarjeta de salida del controlador es la de tamaño más pequeño. También se alimenta con +-15 V. Se une la salida DAC del microcontrolador al terminal marcado como IN en la tarjeta. El terminal OUT se une a la entrada de control del sistema. La tarjeta de salida deberá ser ajustada en offset y en ganancia. Para ello se ajustarán los potenciómetros 1 (ajuste de offset) y 2 (ajuste de ganancia) mostrado en la figura 3.

ALIMENTACIÓN

ENTRADA

5 V

SALIDA

0 V

POTENCIÓMETRODE AJUSTE DE

OFFSET

ALIMENTACIÓN

ENTRADA SALIDA

-10 V

POTENCIOMETRODE AJUSTE DE

GANANCIA

0 V

Figura 3. Ajuste de la tarjeta de conversión de tensiones de salida del controlador.

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

3

Student Student
Student Student
19
Page 20: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

4

Situación de los puentes de configuración (Jumpers y Headers) en el controlador. Para la práctica sólo hay que comprobar el jumper J1. Si el microprocesador lleva una memoria EPROM, conectar los pines 4-5 y 8-9. Si el microcontrolador lleva una memoria FLASH, conectar los pines 7-8 y 12-13. 2) Programación del PK2100 Introducción. El PK2100 se programa a través del puerto serie RS232 que debe conectarse al puerto serie de un IBM PC o compatible en el que se tenga instalada la aplicación Dynamic-C 5.25 de Z-world que se utiliza para desarrollar los programas. Se emplearán las librerías que proporciona este software de desarrollo para el manejo de las entradas/salidas. La programación es en lenguaje C ya que éste genera un código compacto y eficiente de alto nivel que permite también utilizar el código máquina. Las funciones principales de Dynamic C son la Edición, Compilación, Lincado, Carga y Depuración del código que genera el usuario. Los programas se compilan, lincan y descargan en la memoria del microcontrolador en un solo paso. También se permite compilar generando un fichero ejecutable sin necesidad de tener conectado el microcontrolador. Diferencias entre Dynamic-C y lenguaje C.

• Las variables que al ser declaradas son inicializadas se consideran constantes almacenándose en memoria ROM y por tanto se considera un error el intentar cambiar su valor.

• El modo de almacenamiento por defecto es static y no auto como en el estandar. • No existe la directiva #include sino #use. • Dynamic-C no soporta el tipo enumerado. • Las palabras reservadas extern y register tienen un significado diferente. • Se permite incluir instrucciones en ensamblador intercaladas en el código. • Dynamic-C permite la simulación de tareas ejecutándose “en paralelo” en un mismo programa

usando una estructura denominada costatement. Las tareas programadas así son multiplexadas en el tiempo de ejecución. Esto se denomina Procesamiento Concurrente

Procesamiento Concurrente. Esto puede ser interesante en el caso de controladores conectados a varios dispositivos externos. El hecho de usar programación multitarea para controlar un sistema de estas características permite la posibilidad de pensar en el control de cada dispositivo por separado haciendo más fácil el proceso de desarrollo. Dynamic C proporciona dos tipos de programación multitarea para desarrollar aplicaciones: cooperativa (costatements) y por prioridad (preemtive).

• Cooperativa (costatements): en un entorno de programación multitarea cooperativa cada tarea abandona

voluntariamente el control para que otra tarea entre a ejecutarse. En este caso no es necesario tener un “kernel” o núcleo para controlar el proceso puesto que las tareas colaboran entre sí. Esta filosofía presenta las ventajas de que es más fácil la comunicación entre las tareas, es más fácil predecir la interacción entre las tareas y su programación es muy simple.

• Por prioridad (preemtive): en este caso las tareas son interrumpidas. Una tarea deja el control a favor de otra que entra a ejecutarse. Una tarea es sustituida por otra que puede tener más prioridad. Las tareas no tienen control del momento en que serán sustituidas. En esta filosofía se necesita un núcleo o kernel que para y da entrada a las tareas. Normalmente se usa un timer para generar el periodo durante el que está activa una tarea. Por el hecho de que las tareas no controlan el momento en que son interrumpidas se debe tener cuidado al usar variables compartidas. La comunicación entre tareas es el mayor problema.

Student Student
Student Student
20
Page 21: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

5

Costatements. El recurso de la estructura “costatement” proporciona la posibilidad de generar código que se ejecuta hasta que encuentra un punto donde es necesario esperar a la ocurrencia de un evento o esperar simplemente un determinado intervalo de tiempo. El hecho de esperar conlleva el acto de conmutar de tarea para pasar a ejecutar otra. La conmutación entre tareas se puede llevar a cabo mediante las siguientes funciones y comandos que proporciona el software:

• Waitfor( ) : a la espera de un evento o cuando es necesario detener la ejecución de la tarea durante un

determinado intervalo de tiempo. Sólo se continua ejecutando la tarea cuando la condición que se da como parámetro se ha cumplido. Sólo puede usarse dentro de una estructura costatement.

• Yield : provoca la conmutación inmediata de tarea. • Abort : finalización de la tarea.

Cuando tenemos más de una tarea, una forma más práctica de resolver este tipo de problemas es usar una estructura de bucle más amplia donde cada tarea puede ceder el control a otra tarea cuando deba esperar. Se consigue así aprovechar de forma más eficiente la capacidad de proceso. El resultado es que cada tarea se ejecuta en los tiempos de espera de las demás tareas. Con la función waitfor( ) se comprueba si se cumple la condición que se da como parámetro y, si no es así, se conmuta a otra tarea. Cuando la tarea es retomada se vuelve por el punto en el código donde se quedó ejecutando cuando se conmutó y se vuelve a comprobar la condición y si es el caso se continúa ejecutando. Driver virtual. El driver virtual que proporciona Dynamic-C consta de un conjunto de funciones que proporcionan una serie de servicios. Entre ellos están la inicialización global del sistema y las interrupciones periódicas de los timer. Una llamada a la función VdInit debe ser hecha al comienzo de la ejecución. De esta forma se inicializan todos los recursos del sistema así como las estructuras de datos necesarias (Codata) correspondientes a la costatement definidas si las hay. Librerías que incluir. Para poder invocar a las funciones del driver virtual debe incluirse en código la librería vdriver.lib, la librería pk21xx.lib del micro PK2100 y la librería drivers.lib. Tiempo de muestreo. Se ha de tener en cuenta el valor mínimo del tiempo de muestreo (Pmin) que se calcula como el tiempo máximo que tarda en ejecutarse el bucle del PID programado. Una forma sencilla de calcularlo es con una estimación ejecutando el bucle durante por ejemplo 10 s y contabilizar el número veces que se ejecuta el bucle PID. Dividiendo obtenemos una estimación de Pmin. Aplicación. Desde la pantalla principal del entorno de desarrollo se abre el menú File y se selecciona New. En pantalla aparece una ventana de edición de texto donde escribir el código del programa. A continuación compilamos el programa pulsando F3 o seleccionando Compile to Target dentro del menú Compile. Dynamic-C compila el programa y lo descarga automáticamente en la RAM del controlador. Ahora se puede ejecutar el programa pulsando F9 o seleccionando Run del menú Run. Durante la ejecución del programa se puede pulsar Ctrl+Z para detener la ejecución. Pulsando de nuevo F9 se continúa la ejecución. También se puede resetear el controlador pulsando Ctrl+Y o seleccionando Reset Target dentro del menú Run. Para volver a modificar un programa ya compilado y cargado en el microcontrolador, seleccionamos en el menú Edit Mode. Si no tenemos el micro conectado, se puede generar el ejecutable en el PC con Compile to File. Una vez desarrollados, los programas pueden residir en tres soportes distintos:

• RAM con soporte de batería.

Student Student
Student Student
21
Page 22: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

• ROM, programada aparte y que sustituya a la ROM estándar de Z-world. • Memoria FLASH que puede ser reprogramada sin necesidad de ser extraída de la tarjeta.

Durante la ejecución de los algoritmos el microcontrolador permanece conectado físicamente al PC. 3) Diagrama del sistema en bucle cerrado

Línea RS232

Consignas

Controlador PK2100

A/D D/ACPU Z180

Actuador Sistema

Sensores

Tarjetas de adaptaciónde señal

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática

6

Student Student
Student Student
22
Page 23: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

LABORATORIO DE CONTROL POR COMPUTADOR

IMPLEMENTACION DIGITAL DE UN PID:ASPECTOS PRACTICOS

1. Objetivos

En la implementacion digital de un controlador PID hay que tener en cuenta diversosaspectos como:

Conmutacion control manual/automatico

Saturacion del actuador.

En esta practica se pretende que el alumno controle un motor de cc usando un controlpid digital teniendo en cuenta estos aspectos. La programacion se llevara a cabo usandoLabVIEW.

2. Equipo Necesario

Apuntes de clase

Cada puesto de trabajo estara formado por:

Un PC equipado con una tarjeta de adquisicion de datos

Un motor de cc.

3. Desarrollo

Se pretende realizar un control en velocidad del motor de cc haciendo uso de un PIDdigital.

En la practica se analizaran los siguientes aspectos en la implementacion del PID digital.

1. Fenomeno Wind-Up

2. Conmutacion Manual/Automatico.

Student Student
© Manuel López Martínez
Student Student
Práctica 4
Student Student
23
Page 24: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

3.1. Anti-wind up

Con el PID basico implementado hay que realizar el siguiente experimento.

Experimento:

Introducir una referencia de velocidad inalcanzable (el motor satura)

Usar el freno magnetico para introducir una perturbacion.

Llevar la referencia hasta un valor normal de funcionamiento.

Tras realizar este experimento se observa un fenomeno de ”wind up”.

Se pretende implementar un PID (PI) que tenga en cuenta la aparicion del fenomeno dewind up como consecuencia de la saturacion del motor y de la existencia de un terminointegral en el controlador.

El controlador disenado ha de ser capaz de evitar el fenomeno de wind-up.

Usar los metodos descritos en clase y describir el funcionamiento del conjunto.

3.2. Conmutacion Manual/Automatico

En esta parte de la practica, se pide realizar el siguiente experimento

Experimento:

En primer lugar el motor sera controlado de forma manual con una senal de controldistinta de cero.

En un instante determinado se realizara una conmutacion de manual a automatico.

Se pide modificar el PID de forma que la conmutacion manual/automatico no se realicede forma abrupta.

El controlador ha de ser capaz de realizar una conmutacion suave.

Usar los metodos descritos en clase y describir el funcionamiento del conjunto.

NOTA: Para la realizacion de la practica son necesarios los apuntes de clase

Student Student
24
Page 25: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Práctica 5 - Regulador Lineal Óptimo Cuadrático (LQR) 1) Identificar el sistema

- En Modo MANUAL de control y CONTROL EN VELOCIDAD. - Encontrar la zona muerta y la zona de saturación rango efectivo de operación - Dividir el rango efectivo de operación de entrada en tres escalones, e identificar el

sistema, en los tres escalones de entrada, la respuesta de primer orden (ganancia K1 y constante de tiempo TAO al 63%) : K11, K12, K13, τ1, τ2, τ3. Encontrar K1 y τ como la media de los tres cálculos en cada caso. Utilizar el botón GUARDAR del panel de PRACTICA.VI para generar un fichero para disponer de los datos generados en la ejecución.

- CONTROL EN POSICIÓN. Encontrar K21, K22, K23 midiendo la pendiente de la posición para tres velocidades constantes de entrada. Hacer la media para hallar K2.

∫ ==t

VtKVdtKtp0

22)(

11

+TAOsK

sK2

V(S) P(S)U(S)

Ejemplo: K1=0.6, K2=6.5, τ=0.8

2) Regulación. Considerando los estados x1 = posición y x2 = velocidad, obtener la representación interna discreta del sistema con mantenedor de orden cero y tiempo de muestreo de al menos un décimo de la constante de tiempo efectiva del sistema. Obtener los parámetros del vector de realimentación de estados para Q = I*{0.1,1,10,30} y R = {0.1, 1, 10, 30}. Simular con Simulink con referencia nula y condiciones iniciales no nulas y comentar el efecto de la elección de R sobre el desempeño del controlador.

3) Modificar Práctica.vi a un nuevo practica5.vi, de forma que se sustituya el bloque de control PID

por un bloque de control LQR con parámetros de entrada K1 y K2, componentes del vector de ganancias de realimentación del vector de estados. Comparar los resultados obtenidos por simulación con los obtenidos con el control real.

4) Seguimiento. Añadir a la ley LQR un término de realimentación de la referencia tal que

uk = N*SP – K*Xk

donde SP es la referencia o Set Point. Utilizar la siguiente función, cuyos parámetros de entrada son las matrices de la dinámica discreta del sistema Ad y Bd, y el vector K de realimentación de estados obtenido en el apartado 2), para encontrar el valor de N compensador

function salida = rscale_discreto(F,G,K) S=solve('F(1,1)+F(1,2)*y+G(1)*N=1+G(1)*(K(1)+K(2)*y)',... 'F(2,1)+F(2,2)*y+G(2)*N=y+G(2)*(K(1)+K(2)*y)','N,y'); salida=eval(S.N);

5) Modificar practica5.vi para realizar el seguimiento de una referencia distinta de cero. Comparar

los resultados obtenidos por simulación con los obtenidos con el control real.

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática 1

Student Student
25
Student Student
Page 26: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Student Student
Page 27: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Control Predictivo Generalizado. 1) Identificar el sistema

- En Modo MANUAL de control y CONTROL EN VELOCIDAD. - Encontrar la zona muerta y la zona de saturación rango efectivo de operación - Dividir el rango efectivo de operación de entrada en tres escalones, e identificar el

sistema, en los tres escalones de entrada, la respuesta de primer orden (ganancia K1 y constante de tiempo TAO al 63%) : K11, K12, K13, TAO1, TAO2, TAO3. Encontrar K1 y TAO como la media de los tres cálculos en cada caso. Utilizar el botón GUARDAR del panel de PRACTICA.VI para generar un fichero para disponer de los datos generados en la ejecución.

- CONTROL EN POSICIÓN. Encontrar K21, K22, K23 midiendo la pendiente de la posición para tres velocidades constantes de entrada. Hacer la media para hallar K2.

∫ ==t

VtKVdtKtp0

22)(

11

+TAOsK

sK2

V(S) P(S)U(S)

Ejemplo: K1=0.6, K2=6.5, TAO=0.8

2) Discretizar con un tiempo de muestreo de al menos un décimo de la constante de tiempo efectiva del sistema

Ejemplo: ss

sG)18.0(

4)(+

= 21

21

9048.09.110149.0015.0)( −−

−−

+−+

=zzzzzG

3) Programar en Matlab el cálculo de los parámetros del GPC y la simulación del bucle cerrado

utilizando el modelo discreto del proceso para generar las y(t). Realizar varias simulaciones con varios parámetros N=[3 50] y λ=[0.05 5] y comentar los efectos de aumentar o disminuir los parámetros. Seleccionar una buena sintonización del controlador en cuanto a rapidez y sobreoscilación. Para estos parámetros, obtener los correspondientes Ky, Ku y Kr de la expresión explícita de la ley de control para realizar el apartado siguiente.

u1 u2 r1 y1 p y2 p y3 pu(t) = K (u(t-1)-u(t-2)) + K (u(t-2)-u(t-3)) + K ref(t)+K y (t) + K y (t-1) + K y (t-2)∆

4) Modificar Practica.vi a un nuevo practica6.vi, de forma que se sustituya el bloque de control

PID por un bloque de control GPC con parámetros de entrada Ky, Ku y Kr. Comparar los resultados obtenidos por simulación con los obtenidos con el control real.

Laboratorio de Control por Computador Dpto Ingeniería de Sistemas y Automática 1

Student Student
Práctica 6
Student Student
27
Student Student
Page 28: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 29: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

LABORATORIO DE CONTROL POR COMPUTADOR 4º CURSO DE INGENIERO DE TELECOMUNICACIÓN

Introducción a un SCADA: WinCC

Objetivo Conocer un sistema comercial de supervisión, adquisición y tratamiento de datos. Se utilizará el Windows Command Center (WinCC) de Siemens. Desarrollo Programar un SCADA mediante WinCC para supervisar una aplicación domótica. Primera parte. Gestión de alarma, de iluminación y de movimiento. En esta primera aplicación, la entrada del exterior se produce mediante un sensor de movimiento en una habitación. Cuando el SCADA recibe una entrada que indica movimiento, indica en la pantalla al operario que se está detectando movimiento, y acto seguido enciende la luz de dicha habitación. El operario debe poder supervisar a través del interfaz gráfico si la luz de la habitación está encendida o apagada. El operario debe tener además a su disposición un pulsador para activar una alarma y otro pulsador para desactivarla, o bien un conmutador que pueda tomar los valores “encendido” y “apagado”. Este conmutador activa o desactiva una alarma. El estado de la alarma debe estar visible en todo momento para el operario. Cuando el SCADA detecte movimiento en la habitación y además la alarma se encuentre encendida, encenderá un altavoz. El estado de este altavoz (sonando o en silencio) debe estar también visible en todo momento. La pantalla debe constar de los siguientes elementos:

Dos pulsadores o bien un conmutador para activar/desactivar la alarma.

Un indicador de alarma activada/desactivada. Un indicador de movimiento detectado/no detectado. Un indicador de altavoz de alarma sonando/no sonando. Un indicador de luz en la habitación encendida/apagada.

Student Student
Práctica 7
Student Student
29
Page 30: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Segunda parte. Gestión de temperatura en la habitación. En esta segunda aplicación, la entrada del exterior se produce mediante un sensor de temperatura en una habitación. La pantalla debe mostrar en todo momento la temperatura a la que se encuentra la habitación. Además, el operario debe tener a su disposición un pulsador para activar un climatizador y otro pulsador para desactivarlo, o bien un conmutador que pueda tomar los valores “encendido” y “apagado”. Este conmutador activa o desactiva el climatizador. Cuando el climatizador está encendido, se muestra éste en la pantalla. Cuando se encuentra apagado, éste no debe mostrarse en pantalla. El climatizador consta de una barra de desplazamiento asociada a un indicador de dígitos. El operario, cuando el climatizador se encuentre encendido, podrá modificar el número reflejado en el indicador de dígitos a través de la barra de desplazamiento. El climatizador debe además modificar la temperatura de la habitación a la requerida por el operario pero de forma gradual, es decir, que cada ciclo de 500 milisegundos que transcurra se modificará en un grado la temperatura de la habitación para acercarse a la temperatura deseada. La pantalla debe mostrar los siguientes elementos:

Dos pulsadores o bien un conmutador para activar/desactivar el climatizador.

Una barra deslizante con indicador de dígitos para modificar la temperatura deseada.

Un indicador que muestre la temperatura actual de la habitación. Primera y segunda parte. En ambos apartados de la práctica se deben mostrar dos botones. Uno que haga que la pantalla cambie a la otra parte de la práctica, es decir, que si se encuentra en la primera parte, haga que aparezca la pantalla de la segunda parte y viceversa. El otro botón debe servir para salir de la aplicación.

Student Student
30
Page 31: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 1

LABORATORIO DE CONTROL POR COMPUTADOR 4º Curso de Ingenieros de Telecomunicación

INTRODUCCIÓN AL SCADA WinCC

Un sistema SCADA es un programa que nos va a permitir la supervisión, adquisición y tratamientos de datos que provienen de un proceso. 1. Creación de un proyecto nuevo Para la creación de un nuevo proyecto seguiremos los siguientes pasos: 1. Abrir el SCADA desde el menú “Inicio”. 2. A continuación desplegamos el menú “File” y seleccionamos “New”, de manera que aparecerá una pantalla donde le daremos nombre al proyecto y pulsaremos el botón “Create”. 3. Una vez hecho esto aparecerá el proyecto creado con la siguiente estructura:

Veamos cada elemento del árbol jeráquico: Computer: Seleccionaremos que aplicaciones o tareas que queremos que arranquen cuando nuestro proyecto se active. Para ello haremos lo siguiente:

Student Student
31
Page 32: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 2

1. Seleccionamos “Computer” y con el botón izquierdo del ratón hacemos doble

clic sobre el icono que aparece en la ventana derecha. 2. A continuación elegimos el tabulador “Startup” y habilitamos las aplicaciones que queremos que arranquen con nuestro proyecto.

Pulsaremos el botón “Aceptar” una vez seleccionado lo deseado.

Tag Management: En este elemento se definirán las variables internas del SCADA, las variables externas y los drivers de comunicación y conexión con el autómata. Data Types: Cuando se expande aparecerá todos los posibles tipos de datos de manera que cuando seleccionemos uno, en la ventana derecha aparecerán las variables del proyecto cuyo formato es el seleccionado. Editor: Cuando se expande aparecerá los distintos tipos de editores disponibles. Para abrir alguno de los editores bastará seleccionarlo con el botón derecho del ratón y elegir “Open”. 2. Creación de una variable interna. Son variables localizadas en memoria del SCADA. Para su creación haremos lo siguiente: · Expandimos la rama “Tag Management” y seleccionamos “Internal tags” con el botón derecho del ratón.

Student Student
32
Page 33: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 3

· Seleccionamos “New” de manera que aparecerá una ventana donde configuraremos la variable.

Por último pulsaremos el botón “Aceptar” para salvar la configuración.

3. Creación de una variable externa. Una variable externa es aquella que está directamente relacionada con el proceso. Antes de crear las variables externas es necesario configurar los drivers de comunicación entre el autómata y el SCADA. · Seleccionar “Tag Management” con el botón derecho del ratón y elegir “Add New Driver”. Aparecerán los drivers disponibles y seleccionaremos el deseado.

A continuación pulsaremos el botón “Abrir”, de manera que el driver aparecerá en el árbol jerárquico.

DRIVER ELEGIDO

· A continuación expandimos el driver que aparece en el árbol y seleccionamos el tipo de conexión, en

Student Student
33
Page 34: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 4

nuestro caso MPI, con el botón derecho del ratón y elegimos “New Driver Connection”. · Por último introduciremos el nombre de la conexión (PLC1) y los parámetros.

Para crear una variable externa: · Seleccionar la conexión PLC1 con el botón derecho del ratón y elegir “New tag”. Aparecerá una ventana donde elegiremos el nombre y el tipo de dato, pulsando por último “Aceptar”. · A continuación seleccionamos con el botón derecho del ratón la variable creada que aparece en la ventana derecha y elegimos el comando “Addresing” (Fig.1). En la ventana que aparece elegiremos el tipo de dato y la dirección que corresponde en el autómata.(Fig.2)

Student Student
34
Page 35: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 5

Por último pulsaremos el botón “Aceptar”. 4. Creacion de imágenes. Para la creación de imágenes haremos uso del editor gráfico, Graphic Designer”, donde definiremos nuestras animaciones las cuales estarán controladas por variables internas y externas del SCADA. Para crear una imagen se hará lo siguiente: · Con el botón derecho del ratón pulsaremos el editor “Graphic Designer” y seleccionaremos “New Picture”. · En la ventana derecha aparecerá “NewPdl0.Pdl” de manera que lo seleccionaremos con el botón derecho del ratón y elegiremos el comando “Rename” para darle el nombre que deseemos. · Para abrir la imagen haremos doble clic sobre ella apareciendo lo siguiente:

INDICAMOS SI EL OBJETO ESTÁ EN PRIMER O SEGUNDO PLANO

LIBRERÍA DE OBJETOS

5. Tipos de animaciones. Pasamos a definir una serie de animaciones básicas: 5.1 Configuración de un campo de entrada/salida. Dicho campo de entrada/salida se puede utilizar para representar el valor de alguna variable. Para ello haremos lo siguiente:

Student Student
35
Page 36: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 6

· En el editor gráfico seleccionamos el campo “I/O field” del grupo “Smart Object” y a continuación lo arrastramos a la posición deseada donde haremos clic con el ratón, apareciendo una ventana donde configuraremos dicho campo.

VARIABLE REPRESENTADA

TIEMPO DEACTUALIZACIÓN DEL VALOR

Por último pulsaremos el botón “OK”.

· Una vez hecho esto seleccionamos el objeto con el botón derecho del ratón y elegimos “Properties”. Seleccionamos la propiedad “Output/Input” y en la ventana derecha seleccionamos el atributo “Data Format” para elegir el formato de representación de la variable. 5.2 Cambio de una pantalla a otra mediante pulsador.

Student Student
36
Page 37: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 7

· En el editor gráfico seleccionamos el campo “Button” del grupo “Windows Object” y lo arrastramos hasta la posición deseada. Una vez allí hacemos clic con el ratón apareciendo una ventana como la mostrada a continuación donde configuraremos el botón.

NOMBRE DEL BOTÓN

A continuación pulsamos el botón (1) de manera que aparecerá una ventana donde elegiremos la pantalla a la que saltaremos. Por último pulsaremos el botón “OK” para validar la configuración.

1

5.3 Configuración de un botón para salir de la aplicación. · En el editor gráfico seleccionamos el campo “Button” del grupo “Windows Object” y lo arrastramos hasta la posición deseada. Una vez hecho esto lo seleccionamos con el botón izquierdo del ratón. · A continuación hacemos doble clic sobre la función “Exit WinCC Runtime” que aparece en la ventana “Dynamic Wizard”. Aparecerá un asistente de manera que en la primera pantalla pulsamos “Siguiente”, en la segunda elegimos “Left mouse key” y pulsamos “Siguiente” y en la última pulsamos “Finalizar”. De esta manera cuando pulsemos el botón con el botón izquierdo del ratón, saldremos de la aplicación. 5.4 Forzado del valor de una variable mediante pulsadores. · En el editor gráfico seleccionamos el campo “Slider Object” del grupo “Windows Object”. A continuación colocamos el cursor en la posición deseada y pulsamos el botón izquierdo del ratón, apareciendo una ventana donde configuraremos el objeto.(Fig.1)

Student Student
37
Page 38: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 8

· Por último pulsaremos el botón “OK” para validar la configuración.

1

2

Fig.1 En la figura 2 se muestra el elemento configurado. Fig.2 1:Variable cuyo valor forzaremos. 2: Tiempo de actualización. 5.5 Animación de una variable en forma de barra gráfica. · En el editor gráfico seleccionamos el campo “Bar” del grupo “Smart Object”. A continuación colocamos el cursor en la posición deseada y pulsamos el botón izquierdo del ratón, apareciendo una ventana donde configuraremos el elemento.

VARIABLE REPRESENTADA

Student Student
38
Page 39: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 9

Fig.1 Fig.2 · Una vez configurado el elemento, pulsaremos el botón “OK” obteniéndose el elemento como se muestra en la figura 2. 5.6 Hacer visible o no un objeto dependiendo del valor de una variable tipo bool · Seleccionamos el objeto con el botón derecho del ratón y elegimos el comando “Properties”. A continuación seleccionamos la propiedad “Miscellaneous” y elegimos con el botón derecho del ratón la columna “Dynamic” del atributo “Display”.

A continuación seleccionamos el comando “Dynamic Dialog” para configurar el elemento.

· Aparecerá una ventana como la mostrada a continuación donde configuraremos el elemento.

CON EL BOTÓN DERECHO DEL RATÓN ELEGIMOS EL RANGO DE FUNCIONAMIENTO

ELEGIMOS EL TIPO DE DATO

PULSAMOS EL BOTÓN PARA ELEGIR LA VARIABLE

Student Student
39
Page 40: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 10

· A continuación pulsaremos el botón para configurar el trigger. Aparecerá una ventana como la mostrada a continuación donde lo configuraremos.

El ciclo de disparo será elegido seleccionando la columna “Standard cycle” con el botón derecho del ratón. Una vez configurado pulsaremos el botón “Aceptar”, de esta manera volveremos a la ventana anterior y pulsaremos el botón “Apply”.

5.7 Cambios de color de un objeto. En esta animación veremos como un objeto cambia de color dependiendo del valor de una variable tipo bool. · Seleccionamos el objeto con el botón derecho del ratón y elegimos el comando “Properties”. A continuación seleccionamos la propiedad “Colors” y elegimos con el botón derecho del ratón la columna “Dynamic” del atributo “Background Color”.

A continuación elegiremos el comando “Dynamic Dialog” de manera que aparecerá una ventana donde configuraremos el elemento.

Student Student
40
Page 41: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 11

De la misma manera que en la animación anterior seleccionaremos la variable, el tipo de dato y el rango de funcionamiento. Para ello elegiremos la columna “Valid range” con el botón derecho del ratón y seleccionaremos el rango. De la misma manera elegiremos la columna “Background Color” y elegiremos los colores deseados.

· Para terminar configuraremos el trigger tal y como se describió en la animación anterior y por último pulsaremos el botón “Apply” para validar la configuración. 5.8 Cambios de tamaño de un objeto. En esta animación se mostrará como podremos cambiar la altura y la anchura de un objeto. Veremos el caso de la variación de altura ya que la variación de anchura se hará de forma idéntica. · Seleccionamos el objeto con el botón derecho del ratón, elegimos el comando “Properties” y seleccionamos la propiedad “Geometry”. · A continuación seleccionamos con el botón derecho del ratón la columna “Dynamic” del atributo “Height”, apareciendo una ventana como en los casos anteriores donde realizaremos la configuración. En este caso cuando seleccionemos el tipo de dato elegiremos “Direct” de manera que el atributo seleccionado tomará el valor de la variable asociada la cual irá modificando su valor dentro de una “Acción” programada por nosotros. En apartados posteriores veremos como se programan estas “Acciones” en el editor “Global Script”. · Por ultimo configuraremos el trigger de la misma forma que en los casos anteriores y pulsaremos el botón “Apply” para guardar la configuración.

Page 42: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 12

5.9 Movimientos de objetos. En este apartado dotaremos a un objeto de movimiento según la dirección X, sabiendo que de la misma manera podremos dotarlo de movimiento según Y. · Seleccionamos al objeto con el botón derecho del ratón, elegimos el comando “Properties” y seleccionamos la propiedad “Geometry”. · A continuación seleccionamos la columna “Dynamic” del atributo “Position X” y elegimos el comando “Dynamic Dialog”, de manera que aparecerá una ventana donde configuraremos el objeto.

En esta ventana elegiremos la variable asociada al atributo y el tipo de dato que al igual que en el caso anterior elegiremos un tipo de dato “Direct” de manera que dicho atributo variará conforme lo vaya haciendo el valor de la variable dentro de la “Acción” que nosotros hayamos programado en el editor “Global Script”. (Apartados posteriores)

VARIABLE ASOCIADA AL ATRIBUTO

· Por último configuraremos el trigger como se describió en el punto 5.7 y pulsaremos el botón “Apply” para validar la configuración. 5.10 Evolución del nivel de un depósito. · Seleccionamos el depósito de la librería disponible en el editor gráfico. Para ello pulsamos el botón de la barra de herramientas y expandimos la carpeta “SMART Object” donde seleccionamos la carpeta “Tank”, eligiendo el depósito deseado, siendo arrastrado con el ratón hasta la posición deseada. · A continuación seleccionamos el depósito con el botón derecho del ratón, elegimos el comando “Properties” y seleccionamos la propiedad “Tag Assigment”. · Luego seleccionamos la columna “Dynamic” del atributo “Fill level” con el botón derecho del ratón, elegimos “Dynamic Dialog” y aparecerá una ventana, como en los casos anteriores, donde configuraremos el objeto. Al igual que en el caso anterior elegiremos el tipo de dato “Direct” de manera que la variable

Student Student
42
Page 43: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 13

asociada al nivel del depósito evolucionará dentro de una “Acción” programada en el editor “Global Script”. La ventana de configuración queda:

1

A continuación pulsaremos el botón 1 para configurar el trigger. Por último pulsaremos el botón “Apply” para validar la configuración.

Nota: Es posible realizar animaciones de objetos los cuales están constituidos por agrupación de varios objetos. Para agrupar varios objetos haremos lo siguiente: · Con el botón izquierdo del ratón pulsado encerramos los objetos en un recinto y a continuación pulsamos el botón derecho del ratón.

· A continuación seleccionamos el comando “Group”.

Page 44: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 14

6. Programación de una “Acción”. Una “Acción” es una función en C que únicamente podremos utilizar en el proyecto donde ha sido creada y será ejecutada según un trigger que hayamos programado. Para programar una “Acción” haremos lo siguiente: · Con el botón derecho del ratón seleccionamos el editor “Global Script” y lo abrimos. · A continuación expandimos “Actions” y seleccionamos con el botón derecho del ratón “Actions- New- Action”.

En la parte derecha se abrirá una ventana donde programaremos nuestra “Acción”. En la “Acción” que creemos podremos utilizar funciones ya creadas, “Standard function” e “Internal function”, e incluso podremos programar nuestras propias funciones seleccionando “Project function”.

Las funciones más utilizadas son las funciones internas “Get” y “Set”. Con la función “Get” le asignaremos a una variable de la “Acción” el valor de una variable del SCADA y con la función “Set” le asignaremos a una variable del SCADA el valor de una variable de la “Acción”. Para introducirla en la “Acción” bastará con hacer doble clic sobre ellas en la ventana izquierda y a continuación asignarle los parámetros adecuados.

Student Student
44
Page 45: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 15

· A continuación pasaremos a compilar la “Acción” creada pulsando el botón

que aparece en la barra de herramientas. · Ahora configuraremos el trigger de la “Acción”. Para ello pulsaremos el botón

que aparece en la barra de herramientas y seleccionamos el tabulador trigger.

A continuación seleccionamos “Cyclic” y pulsamos el botón “Add”, de manera que aparecerá una ventana en la que seleccionaremos el trigger y una vez configurado pulsaremos el botón “Aceptar”

Ventana 1 · Una vez configurado el trigger, volveremos a la ventana 1 donde pulsaremos el botón “Aceptar” para validar la configuración.

· Por último seleccionamos “Save” en el menú “File” y a continuación saldremos del editor “Global Script”.

Page 46: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 16

7. Creación de gráficas y tablas. En este apartado nos encargaremos de adquirir datos del proceso y representarlos en tablas y gráficas. Lo primero que haremos es abrir el editor “Tag Logging” : 7.1 Creación de un archivo de datos. Para la creación de este archivo haremos uso del asistente “Archive Wizard”: 1. Seleccionamos “Archives” con el botón derecho del ratón y elegimos “Archive Wizard”: 1ª pantalla: Pulsamos “Next”. 2ª pantalla: Introducimos el nombre del archivo de datos, p.e “NIVEL_DEP”, y el tipo de archivo, p.e “Process Value Archive”, y pulsamos “Next”. 3ª pantalla: Pulsamos “Select” y elegimos la variable del proceso que vamos a representar y pulsamos “Finish”.

VARIABLE DEL PROCESO

2. A continuación seleccionamos la variable del proceso en la ventana inferior con el botón derecho del ratón y elegimos “Properties”. Aparecerá una ventana en la que introduciremos “NIVEL_ARCH” como nombre de la variable

Student Student
46
Page 47: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 17

archivada. Luego seleccionamos el tabulador “Parameter” e introduciremos las propiedades del ciclo: Acquisition: 500 ms. Archiving: 1*500 ms Pulsamos el botón “OK”. Con esto conseguimos que la variable del proceso “NIVEL” sea adquirida cada 500 ms y archivada como una variable llamada “NIVEL_ARCH”.

VARIABLE ARCHIVADA

3. Por último desplegamos el menú “File” y seleccionamos “Save” para salvar la configuración. 7.2 Creación de una gráfica. Para la representación de la gráfica utilizaremos valores de la variable archivada. · Seleccionamos con el botón derecho del ratón “Trend window templates” y elegimos “New”, apareciendo una ventana como la mostrada:

· Seleccionamos el botón “Template” e introducimos “EVOL_NIVEL” como el nombre de la plantilla y pulsamos “OK”.

Student Student
47
Page 48: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 18

· En el tabulador “General Information” introducimos “NIVEL_DEP” como el nombre de la tendencia (Name of the trend) que vamos a representar. · En el tabulador “Tag” haremos doble clic sobre el nombre del archivo “NIVEL_DEP” y seleccionaremos la variable archivada que vamos a representar.

VARIABLE ARCHIVADA

· En el tabulador “X Axis” introduciremos el nombre del eje X , “Tiempo”, y habilitaremos el casillero “Autorange” introduciendo 200 como el valor a escalar.

· En el tabulador “Y Axis” introduciremos el nombre del eje Y, “Nivel”, habilitaremos el casillero “Coarse grid” con un valor de 20, deshabilitaremos el casillero “Autorange” e introduciremos “0” como valor inicial y “100” como valor final y por último seleccionaremos “Connect dots linearly” en el casillero “Trend Display”.

Student Student
48
Page 49: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 19

· Por último pulsaremos el botón “OK” para salvar la configuración. 7.3 Insertar una gráfica en una imagen. · En primer lugar abrimos el editor gráfico y a continuación la imagen donde queremos insertar la gráfica. · Seleccionamos el objeto “Application Window” del grupo “Smart Object” que se encuentra en la ventana “Object Palette”. · Una vez seleccionado movemos el cursor hasta la posición deseada de la imagen y pulsamos el botón izquierdo del ratón apareciendo una ventana llamada “Windows Contents” de la cual seleccionamos “Tag Logging”, pulsando a continuación “OK”. · Aparecerá una ventana llamada “Template” de la que seleccionaremos la plantilla “EVOL_NIVEL” que vamos a representar, y pulsaremos “OK”. · Por último le daremos a la ventana, la cual aparece con el nombre que le hemos dado a la plantilla, el tamaño deseado y salvaremos la configuración. 7.4 Creación de una tabla de valores. En este apartado crearemos una tabla de valores de una variable del proceso. · Seleccionamos con el botón derecho del ratón “Table window templates” en el editor “Tag Logging” y elegimos “New”, apareciendo una ventana como la mostrada:

Student Student
49
Page 50: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 20

· Seleccionamos el botón “Template” e introducimos “VALOR_NIVEL” como el nombre de la plantilla, pulsando a continuación “OK”. · En el tabulador “General Information” introduciremos “NIVEL” como el encabezado de la tabla. · En el tabulador “Tag” haremos doble clic sobre el nombre del archivo, “NIVEL_DEP” y seleccionaremos la variable “NIVEL_ARCH”. A continuación pulsaremos el botón “OK”. · Por último desplegamos el menú “File” y seleccionamos “Save” para salvar la configuración. 7.5 Insertar una tabla en una imagen. · En primer lugar abrimos el editor gráfico y a continuación la imagen donde queremos insertar la tabla. · Seleccionamos el objeto “Application Window” del grupo “Smart Object” que se encuentra en la ventana “Object Palette”. · Una vez seleccionado movemos el cursor hasta la posición deseada de la imagen y pulsamos el botón izquierdo del ratón apareciendo una ventana llamada “Windows Contents” de la cual seleccionamos “Tag Logging”, pulsando a continuación “OK”. · Aparecerá una ventana llamada “Template” de la que seleccionaremos la plantilla “VALOR_NIVEL” que vamos a representar, y pulsaremos “OK”. · Por último le daremos a la ventana, la cual aparece con el nombre que le hemos dado a la plantilla, el tamaño deseado y salvaremos la configuración. 8. Configuración de mensajes. En este apartado se pretende mostrar como se configuran mensajes y los textos asociados a los mismos. · En primer lugar abrimos el editor de mensajes llamado “Alarm Logging” apareciendo una pantalla como la mostrada:

Student Student
50
Page 51: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 21

· A continuación arrancaremos el asistente de mensajes desplegando el menú “File” y seleccionando el comando “Start Message Wizard”: 1ª pantalla: Pulsamos “Next”. 2ª pantalla: Seleccionamos Date, Time, Number en bloques del sistema y Msg, Error Location en los bloques de texto de usuario y pulsamos “Next”. 3ª pantalla: Pulsamos “Next” dejando el casillero preseleccionado. 4ª pantalla: Seleccionamos “Without Bars” y pulsamos “Next”. 5ª pantalla: Pulsamos “Next” dejando el casillero preseleccionado. 6ª pantalla: Seleccionamos “Short- Term Archive for 250 Message” y pulsamos “Next”. 7ª pantalla: Pulsamos “Next”. 8ª pantalla: Pulsamos “Finish”. · Si queremos añadir otros bloques a nuestro mensaje que no han sido añadidos por el asistente, haremos lo siguiente: 1. Seleccionamos la linea “Message line format” en la ventana izquierda del editor. 2. Con el botón derecho del ratón seleccionamos “Message Line Example” que aparece en la ventana derecha del editor y seleccionamos “Properties”. 3. Aparece una ventana en la cual podremos añadir los bloques “Message Text” y “Point of Error” a nuestra línea de mensaje.

Una vez hecho esto, pulsaremos el botón “OK”.

· Si queremos modificar el número de caracteres asociados al bloque “Message text”, haremos lo siguiente: 1. Expandimos la línea “Message Blocks” y seleccionamos la línea “User Text Block”. A continuación seleccionamos con el botón derecho del ratón “Message text” en la ventana derecha del editor.

Page 52: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 22

2. Seleccionamos el comando “Properties” de manera que aparecerá una ventana donde podremos introducir 30 como el número de caracteres asociados al bloque y pulsaremos “OK”. Decir que de la misma manera podremos cambiar el número de caracteres asociados al bloque “Point of Error”. · Si queremos modificar la ventana de mensajes haremos lo siguiente: 1. Seleccionamos la línea “Message window templates” y a continuación con el botón derecho del ratón seleccionamos “Message Window Example” en la ventana derecha del editor. 2. Seleccionamos el comando “Properties” de manera que se abrirá una ventana con varios tabuladores: - General Information: Introduciremos el nombre de la ventana, el título de la ventana y elegiremos “Short- Term Archive Window” como tipo de ventana. - Parameters: Habilitaremos los casilleros “Line Title” y “Column Title”. - Status Bar: Habilitaremos los casilleros “Mostrar barra de estado”, “Fecha”, “Hora” y elegiremos “Bottom” como alineación. - Toolbar: Habilitaremos todas las funciones de teclado excepto “City Call”, habilitaremos “Mostrar barra de herramientas” y elegiremos “Top” como alineación. 3. Por último pulsaremos el botón “OK”. · Para configurar el texto de un mensaje haremos lo siguiente: 1. Seleccionamos con el botón derecho del ratón la columna “Number” de la ventana inferior y elegimos “Append a New Line”. De esta manera añadiremos una nueva fila y así tantas filas como mensajes tengamos.

Student Student
52
Page 53: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 23

2. En la fila 1 configuraremos el primer mensaje. Haciendo doble clic sobre la la columna “Event tag” seleccionaremos la variable que me va a provocar el mensaje. Si dicha variable es una variable de 16 bits y el bit tercero es el bit que cuando pase de 0 a 1 me va a producir el mensaje, en la columna “Event bit” colocaremos un 2.(16..................2 1 0). Si dicha variable es de tipo bit, en la columna “Event bit” no se pondría nada. 3. A continuación introduciremos en la columna “Messsage text” el mensaje que queremos que aparezca, por ejemplo “Depósito vacío”. De igual manera podremos introducir mensajes en la columna “Point of Error”. · A continuación dotaremos a nuestros mensajes de un color dependiendo si es un mensaje vigente, de otro color si el mensaje ha dejado de estar vigente y de otro color si es un mensaje reconocido. Para ello haremos lo siguiente: 1. Expandimos “Message Classes” y seleccionamos la línea “Error”. 2. A continuación seleccionamos con el botón derecho del ratón el icono “Alarm” que aparece en la ventana derecha y elegimos “Properties”. 3. Aparecerá una ventana en la que configuraremos el color del texto y el color de fondo sin más que seleccionando el carácter del mensaje y pulsando los botones “Text Color” y “Background Color” para elegir los colores.

Por último pulsaremos el botón “OK” para validar la configuración.

Student Student
53
Page 54: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 24

· Una vez hecho todo esto, desplegaremos el menú “File” y seleccionaremos “Save” para salvar la configuración. 8.1 Insertar una ventana de mensajes en una imagen. · En primer lugar abrimos el editor gráfico y a continuación la imagen donde queremos insertar la ventana de mensajes. · Seleccionamos el objeto “Application Window” del grupo “Smart Object” que se encuentra en la ventana “Object Palette”. · Una vez seleccionado movemos el cursor hasta la posición deseada de la imagen y pulsamos el botón izquierdo del ratón apareciendo una ventana llamada “Windows Contents” de la cual seleccionamos “Alarm Logging”, pulsando a continuación “OK”. · Aparecerá una ventana llamada “Template” de la que seleccionaremos la plantilla “NIVEL_DEPOSITO” que vamos a representar, y pulsaremos “OK”. · Por último le daremos a la ventana, la cual aparece con el nombre que le hemos dado a la plantilla, el tamaño deseado y salvaremos la configuración. 9. Arranque de una aplicación. Para arrancar la aplicación y ver como va evolucionando el proceso tenemos dos posibilidades: 1. Actuar desde el “Control Center” activando o desactivando los iconos situados en la barra de herramientas. 2. Actuar desde el “Graphic Designer” activando el icono localizado en la barra de herramientas. 10. Uso del simulador del SCADA. WINCC está provisto de un simulador llamado WinCC Simulator con el cual podremos comprobar si nuestra aplicación funciona correctamente sin necesidad de tener un autómata físico que nos genere señales externas. En este caso no trabajaremos con variables externas sino con variables internas a las cuales les asociaremos una determinada evolución de manera que simule un comportamiento real. Veamos los pasos que tenemos que seguir para realizar una simulación: 1. En primer lugar abrimos el simulador como se muestra en la figura:

Page 55: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 25

Hay que decir que la imagen que vamos animar debe estar activada antes de configurar el simulador. 2. Una vez abierto el simulador pasaremos a definir las variables que queremos simular. Para ello seleccionamos “Edit” de la barra de menú y elegimos “New Tag”. 3. En el tabulador “Properties” introducimos el nombre de la tag deseada y a continuación elegimos la forma de evolución de la variable. Vemos que podemos elegir entre distintos tipos de evolución las cuales tendremos que parametrizar: - Senoidal: En este tipo de evolución especificaremos los parámetros de una función senoidal como son la amplitud, donde se especificará el rango de valores, el periodo de la función y el offset.

- Evolución oscilatoria: Introduciremos el parámetro “Setpoint” donde indicaremos el valor que tomará después del fenómeno transitorio, el parámetro “Overshoot” donde indicaremos cuanto se pueden alejar los valores del setpoint, el periodo de oscilación y el parámetro “Damping”. - Evolución aleatoria: Aquí especificaremos el rango de valores que nuestra

variable. - Evolución lineal creciente: Especificaremos el valor de comienzo y el valor final. - Evolución lineal decreciente: De la misma manera especificaremos los valores de comienzo y final. - Evolución con un slider: Especificaremos el valor de comienzo y final. Elegiremos una evolución lineal decreciente para la variable NIVEL_DEP1 y una evolución lineal creciente para la variable NIVEL_DEP2. 4. A continuación habilitaremos el casillero “active”. (Fig.1)

Student Student
55
Page 56: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Manual de referencia rápida: SCADA WINCC 26

5. Una vez hecho todo esto, nos iremos al tabulador “List of Tags” y veremos como las variables que hemos seleccionado para la simulación van variando sus valores. (Fig.2)

Fig.1

Fig.2

Student Student
56
Page 57: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Laboratorio de Control de Procesos por ComputadorSimulacion del control adaptativo

Se desea realizar un programa en MATLAB que simule la identificacion de un sistema ymodificarlo para simular el comportamiento de un controlador auto-ajustable. Para ello:

1. Se simulara el comportamiento de un sistema con funcion de transferencia G(z) =0.2

z−0.8. La entrada sera del tipo PRBS de amplitud 1 (una senal que toma solamente

los valores 1 o -1, conmutando entre ellos con una probabilidad dada, por ejemplo0.2). Esta entrada se puede programar en MATLAB inicializando u=1 y dando laorden: if rand<0.2 u=-u;end;.

2. Programar un identificador por mınimos cuadrados recursivo con factor de olvidopara este sistema. Comparar la evolucion de los parametros estimados con los reales.

3. Repetir la identificacion anadiendo un ruido al sistema con distribucion uniformeentre -0.025 y 0.025 (rand*0.05-0.025). Este ruido es una primera aproximaciona los problemas que aparecen en un caso real. Se debe observar un empeoramientoen la convergencia del identificador.

4. Repetir la identificacion haciendo que los parametros a1 y b1 varıen de forma linealdesde [−0.8 0.2] en k = 50 hasta [−0.5 0.1] en k = 75. Realizar las simulaciones convarios valores del factor de olvido (0.95 ≤ γ ≤ 1). sin ruido y con ruido.

5. Simular un controlador autoajustable. Se elegira un PI que cancele el polo delsistema y multiplique por 0.8 la constante de tiempo del sistema en bucle abierto.Introducir una referencia que cambie entre -1 y 1 cada 50 periodos de muestreo(if (rem(k,50)==0) r=-r;). Comparar los resultados con los de un controladorPI fijo sintonizado para el sistema inicial.

Sugerencia para trabajo con caracter voluntario:

6. En lugar del sistema anterior simular uno de orden 2 e identificarlo con un modelode orden 1 (es decir, el identificador serıa igual al del punto 2). Se podran observarlos problemas del control adaptativo cuando no se estima correctamente el ordendel sistema.

Nota: Ecuaciones del identificador recursivo por mınimos cuadrados para el sistemay(k) = m(k)θ

θ(k + 1) = θ(k) + K(k)(y(k + 1)−m(k + 1)θ(k))

K(k) =P (k)mT (k + 1)

γ + m(k + 1)P (k)mT (k + 1)

P (k + 1) =1

γ(I −K(k)m(k + 1))P (k)

Student Student
Práctica 8
Student Student
57
Page 58: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 59: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

LABORATORIO DE CONTROL POR COMPUTADOR

LABVIEW-Bibliotecas de funciones de enlace dinamico(DLL)

1. Objetivos

Esta practica tiene como objetivo aprender a crear DLL’s, y a hacer uso de ellas enLabView.

Las DLL’s son bibliotecas de funciones de enlace dinamico.

2. Creacion de una DLL

La DLL es una biblioteca de funciones de enlace dinamico. Crearemos una dll usandolenguaje C. Seran necesarios los siguientes archivos:

cpcdll.def: En el se definen las funciones que va a exportar la dll para que puedanser usadas por los programas que la carguen.

cpcdll.h: En el se incluiran los prototipos de las funciones que componen la biblio-teca. En el prototipo de las funciones incluiremos la palabra WINAPI para indicaral compilador el metodo de llamada a las funciones llevado a cabo.

cpcdll.cpp: Se definen las funciones que han sido declaradas en cpcdll.h.

3. Ejemplo de DLL

A continuacion se van a mostrar los tres ficheros correspondientes a una dll que contienelas funciones suma y resta de dos parametros. Tanto para la suma como para la resta sehan creado dos funciones. En una el paso de parametros es por valor, y en la otra el pasode parametros es por referencia, por lo que se hara uso de punteros.

A continuacion se muestra el contenido del archivo cpcdll.def

;--------------------------------------;; Nombre del Fichero:cpcdll.DEF;;--------------------------------------

LIBRARY CPCDLL

DESCRIPTION ’Ejemplo de Creacion de una DLL’

EXPORTS

Sumar @1Restar @2Sumar_Ref @3Restar_Ref @4

Student Student
© Manuel López Martínez
Student Student
Práctica 9
Student Student
59
Page 60: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

A continuacion se muestra el contenido del archivo cpcdll.h

/* Nombre del fichero:cpcdll.h*/

/* Funciones prototipo */

#ifdef __cplusplus /* si los ficheros fuente son .cpp*/

extern "C" {

#endif

double WINAPI Sumar(double Param1, double Param2);

double WINAPI Restar(double Param1, double Param2);

void WINAPI Sumar_Ref(double *Param1,double *Param2, double *Suma);

void WINAPI Restar_Ref(double *Param1,double *Param2, double *Resta);

#ifdef __cplusplus /*si el compilador es C++ */

}

#endif

Y por ultimo el archivo cpcdll.cpp

//--------------------------------------------------------------// Nombre del fichero: CPCDLL.CPP////--------------------------------------------------------------#include <windows.h>

#include "cpcdll.h"

/* Funcion DllMain es llamada por Windows no por el usuario*/

BOOL WINAPI DllMain(HANDLE hModule, DWORD dwReason, LPVOIDlpReserved) {

switch(dwReason){

case DLL_PROCESS_ATTACH: break;

case DLL_THREAD_ATTACH: break;

case DLL_THREAD_DETACH: break;

case DLL_PROCESS_DETACH: break;

}

return TRUE; //DLL_PROCESS_ATTACH satisfactorio

}

/*Funcion Sumar con paso de parametros por Valor*/

double WINAPI Sumar(double Param1,double Param2){

return(Param1+Param2);}

/*Funcion Restar con paso de parametros por Valor */

double WINAPI Restar(double Param1,double Param2){

return(Param1-Param2);}

/*Funcion Sumar con paso de parametros por Referencia*/

void WINAPI Sumar_Ref(double *Param1,double *Param2, double *Suma){

*Suma=(*Param1)+(*Param2);}

/*Funcion Restar con paso de parametros por Referencia*/

Student Student
60
Page 61: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

void WINAPI Restar_Ref(double *Param1,double *Param2,double*Resta){

*Resta=(*Param1)-(*Param2);}

4. Uso de la DLL en LabVIEW

En el siguiente modelo de labVIEW hemos incluido 2 controles y 2 indicadores numericos.Si se observa el diagrama de conexiones, se vera que se conectan a un bloque que es elque realiza la llamada a las dll’s.

Figura 1: Interfaz y Diagrama

Si pulsamos 2 veces sobre dicho bloque aparecera un menu para configurar que dll se vaa cargar, ası como que funcion se va exportar y cual es su prototipo (ver figuras 2 y 3).Para ello habra que declarar los tipos de los distintos parametros de entrada y de salidade la funcion, ası como si el paso de los mismos se hace por valor o por referencia.

5. Desarrollo de la practica

Se pide:

1. Anadir a la biblioteca de funciones proporcionada una funcion que contenga un con-trolador PI, al cual se le han de pasar los valores Kp, Ki, el valor del error y ha dedevolver la senal de control.

2. Sustituir el PID del archivo practica.vi por el bloque de llamada a la dll. Configurardicho bloque para llame a la funcion PI y se comporte como el bloque de control.

3. Anadir a la biblioteca de funciones una funcion que estime los parametros del motorhaciendo uso del algoritmo de mınimos cuadrados recursivo. Para simplificar el pro-

Student Student
61
Page 62: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Figura 2: Menu de configuracion. Paso de parametros por valor

Figura 3: Paso de parametros por referencia

Student Student
62
Page 63: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

ceso de identificacion, obtendremos el valor del retardo d de forma experimental, ylo introduciremos en el modelo de primer orden a identificar.

y(k) = −a1·y(k − 1) + b1·u(k − d − 1) (1)

Nota: Ecuaciones del identificador recursivo por mınimos cuadrados para el sistemay(k) = m(k)θ

θ(k + 1) = θ(k) + K(k)(y(k + 1) − m(k + 1)θ(k))

K(k) =P (k)mT (k + 1)

γ + m(k + 1)P (k)mT (k + 1)

P (k + 1) =1

γP (k)(I − K(k)m(k + 1))

Student Student
63
Page 64: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 65: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Enunciados de Exámenes

Page 66: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 67: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

EXAMEN DEL LABORATORIO DE CONTROL DE PROCESOS POR COMPUTADOR

21 de junio de 2001

1. Explicar el procedimiento que se empleó para verificar el funcionamiento de las funciones en C de manejo de la tarjeta A/D-D/A realizadas en la práctica 1.

2. Explicar el experimento que se realizó para poner de manifiesto el efecto del wind-up en el PID.

3. Comentar los efectos del parámetro R observados en la práctica de LQR. 4. Dibujar un esquema en Labview que calcule la ley predictiva

)1(*)(*)(*)1(*)( 21 −+++−= kypKkypKkrKkuKku yyru 5. ¿Qué valores iniciales para la matriz de covarianzas P y para el vector de

parámetros θ se utilizaron en la práctica de simulación del control adaptativo? 6. Explicar para qué se utiliza la función waitfor( ) en el programa de control PID

implementado con el microcontrolador PK2100 de Z-World.

Student Student
67
Page 68: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 69: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Examen del Laboratorio de Control por Computador4◦Curso Ingenieros Telecomunicacion. Plan 98

(6 de junio de 2002)

Tiempo: 45 minutos.

1. Explique brevemente como se implementa en Labview la senal yk−1 a partirde la senal yk.

2. La biblioteca de funciones 8316.dll es usada en LabView para poder trabajarcon la tarjeta de adquisicion de datos usada en las practicas. Explique deforma general para que sirven las funciones que se utilizaron en la primerapractica.

3. Explique brevemente un experimento con el motor de continua de las practicasen el que se pueda observar el efecto integral wind-up.

4. Dibuje un diagrama de bloques generico que represente un control PI autoa-justable, que controle en bucle cerrado la velocidad de un motor de continua.

5. ¿Que es una DLL? Explique brevemente el metodo visto en clase para crearuna DLL, extensiones de los archivos usados y utilidad de cada uno de losarchivos.

6. Explique que procedimiento (funciones de Matlab y/o bloques de Simulink)empleo para realizar las simulaciones del control LQR discreto del sistemaP (s)U(s)

= K1

τs+1K2

s.

7. Dibuje el diagrama de bloques en bucle cerrado del sistema controlado conel microcontrolador PK2100 (apartado final del enunciado de la practica),indicando ademas los niveles de tension que adaptan las tarjetas adicionalesque se utilizaron en la practica.

Student Student
69
Page 70: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 71: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Examen del Laboratorio de Control por Computador 4º Curso Ingenieros Telecomunicación

4 de junio de 2003

Tiempo: 1 hora

1. ¿Cómo se puede acceder desde Labview a la tarjeta de conversión A/D-D/A? 2. Indique brevemente cómo se calcularon analíticamente los parámetros del PI de la práctica de

control del motor. 3. En la práctica en la que se analizó el problema del wind-up, ¿cuál fue la solución que programó su

grupo? 4. Explique cómo se simulaba el sistema en la práctica de simulación de control adaptativo. 5. Comente brevemente cómo se programa en el WinCC un elemento que cambie de color en

función del valor de una variable lógica. Responda a las siguientes cuestiones rodeando con un círculo la respuesta correcta (sólo una por cuestión): 6. En la práctica del microprocesador PK2100

a. las tarjetas de adaptación de salida del micro proporcionan un rango de 0 a 10 v. b. los programas sólo pueden residir en RAM con soporte de batería. c. la función VdInit es fundamental al inicio de un programa para activar los jumpers. d. Se pueden emplear 3 entradas digitales como contadores.

7. En la programación multitarea por prioridad en Dynamic C

a. la prioridad de cada tarea la establece cada “costatement”. b. una tarea finaliza cuando se produce un evento determinado. c. se utiliza un “timer” para establecer el tiempo de actividad de una tarea. d. una tarea cede la prioridad a otra hasta que se produce un evento determinado.

8. En la práctica de LQR observamos que

a. si se utiliza el modelo continuo hay que incluir un mantenedor en el gráfico de simulink. b. al aumentar R el comportamiento en bucle cerrado es más brusco. c. la matriz C de un modelo del sistema es siempre la matriz unidad. d. los parámetros calculados mediante simulink en tiempo continuo son los que hay que

emplear en el control con LabView. 9. En la práctica de GPC

a. el parámetro ganancia del modelo influye en el error en régimen permanente. b. el rango de variación del parámetro de control N propuesto no influye al resultado. c. el rango de variación del parámetro de control λ propuesto no influye al resultado. d. la ley de control propuesta no depende del orden del sistema a controlar.

10. Las DLL

a. son bibliotecas de funciones de paso por referencia de parámetros. b. pueden contener funciones para identificar los parámetros de la planta en línea. c. siempre llevan la palabra WINAPI en la declaración y definición de funciones para

indicar el método de llamada de éstas. d. se componen de 4 archivos escritos en C.

Student Student
71
Page 72: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,
Page 73: Laboratorio de Control por Computador 4º Curso. Ingeniería ...mlm/CPC/Libro_PracticasExamenes_LCPC0105.pdf · LabView dispone de bibliotecas para adquisici´on de datos, an´alisis,

Examen del Laboratorio de Control por Computador4◦Curso Ingenieros Telecomunicacion

12 de junio de 2004

Tiempo: 45 minutos.

1. Indique (no es necesario dar valores numericos) la estructura de la funcion detransferencia que se utiliza para modelar el motor de corriente continua.

2. Indique como se identifica la constante que relaciona la velocidad con laposicion en el motor de corriente continua.

3. Describa un experimento con el motor de las practicas que ponga de manifiestoel efecto del wind-up y a continuacion explique brevemente un metodo por elque se pueda resolver dicho problema.

4. El control GPC esta gobernado por dos parametros basicos, el horizonte decontrol N y la penalizacion del esfuerzo de control λ. Describa cualitativa-mente como afecta al comportamiento del sistema en bucle cerrado (carac-terısticas de la senal de control y respuesta del sistema) el valor de λ.

5. Trabajando con el SCADA WinCC, explique como implementarıa:

(a) Una barra de desplazamiento que modificase el valor de un numero mostradoen un indicador de dıgitos.

(b) Un boton que haga visible/invisible alternativamente, cada vez que sepulse, la barra de desplazamiento ademas del indicador de dıgitos.

(c) Un boton para incrementar en una unidad el valor del numero mostradoen el indicador de dıgitos.

6. Indique brevemente la estructura del programa utilizado para la simulacion deun controlador PI autoajustable para un sistema simulado de primer orden.

Student Student
73