Anejo 3: Guía para el usuario investigador -...

23
Anejo 3: Guía para el usuario investigador Instalación Además del presente documento, el CD debe contener una carpeta con el nombre “DirectorioDeTrabajo”, así como un archivo llamado “Planta_.ctz”. La carpeta contiene los archivos de programación del autómata y las funciones de MATLAB. El archivo Planta_.ctz es una copia comprimida de la aplicación SCADA. Para instalar la aplicación creada en este proyecto, después de tener instalados Unity Pro, Vijeo Citect, OPC y MATLAB, siga estos pasos. 1. Cree una nueva carpeta en la que instalar el programa. Por ejemplo “C:\Automata”. Puede escoger cualquier ubicación para esta carpeta, pero la ruta completa no puede contener espacios, tildes ni caracteres de ASCII extendido (como “ñ” o “ç”). En adelante llamaremos a esta carpeta directorio de trabajo . 2. Copie el contenido de la carpeta DirectorioDeTrabajo al nuevo directorio de trabajo que ha creado en el paso 1. Por ejemplo, si su disco está en la unidad D y su directorio de trabajo es C:\Automata, entonces debe copiar todo el contenido de D:\DirectorioDeTrabajo a C:\Automata. Copie el contenido de la carpeta, no la carpeta en sí. 3. Inicie Vijeo Citect de la forma habitual. En la ventana Explorador de Citect, haga clic en el botón restaurar, que tiene este aspecto: . Se abrirá la ventana de restauración de proyectos de Vijeo: Fig. A.1: Ventana de restauración del proyecto. Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.163

Transcript of Anejo 3: Guía para el usuario investigador -...

Anejo 3: Guía para el usuario investigador

Instalación

Además del presente documento, el CD debe contener una carpeta con el nombre “DirectorioDeTrabajo”, así como un archivo llamado “Planta_.ctz”. La carpeta contiene los archivos de programación del autómata y las funciones de MATLAB. El archivo Planta_.ctz es una copia comprimida de la aplicación SCADA. Para instalar la aplicación creada en este proyecto, después de tener instalados Unity Pro, Vijeo Citect, OPC y MATLAB, siga estos pasos.

1. Cree una nueva carpeta en la que instalar el programa. Por ejemplo “C:\Automata”. Puede escoger cualquier ubicación para esta carpeta, pero la ruta completa no puede contener espacios, tildes ni caracteres de ASCII extendido (como “ñ” o “ç”). En adelante llamaremos a esta carpeta directorio de trabajo.

2. Copie el contenido de la carpeta DirectorioDeTrabajo al nuevo directorio de trabajo que ha creado en el paso 1. Por ejemplo, si su disco está en la unidad D y su directorio de trabajo es C:\Automata, entonces debe copiar todo el contenido de D:\DirectorioDeTrabajo a C:\Automata. Copie el contenido de la carpeta, no la carpeta en sí.

3. Inicie Vijeo Citect de la forma habitual. En la ventana Explorador de Citect, haga

clic en el botón restaurar, que tiene este aspecto: . Se abrirá la ventana de restauración de proyectos de Vijeo:

Fig. A.1: Ventana de restauración del proyecto.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.163

En “Restaurar desde” haga clic en Examinar y seleccione el archivo Planta_ctz del disco. Siguiendo el ejemplo anterior, puesto que el disco está en la unidad D, el archivo de copia de seguridad es D:\Planta_.ctz. En “A” indique que se copia a un Nuevo proyecto, y que el Nombre del mismo es Planta_. A continuación pulse Aceptar.

4. En el Editor Gráfico de Vijeo Citect (la tercera ventana que se abre al iniciar Vijeo Citect) abra el menú Archivo y seleccione Abrir. Utilizando el cuadro de diálogo emergente, abra la página Configuración de PIDs del proyecto Planta_.

5. Haga clic con el botón derecho en cualquier parte de la página y seleccione Propiedades de la página. En la ventana que aparecerá, pulse sobre la solapa Eventos.

Fig. A.3: Propiedades de la página (ficha eventos).

Fig. A.2: Menú para abrir página.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.164

En la parte derecha de la ventana podrá ver las siguientes dos líneas de texto:

Path_escritura="C:\";Path_excel= "C:\Archivos de programa\Microsoft Office\Office11\EXCEL.EXE";

En la primera línea sustituya “C:\” por la ruta completa de su directorio de trabajo seguido de \ParametrosPID\. Por ejemplo, si su directorio de trabajo era C:\Automata, entonces la primera línea deberá quedar así:

Path_escritura="C:\Automata\ParametrosPID\";

Observe que la ruta está entre comillas, no hay espacios en blanco entre los caracteres y la línea termina con el signo “;”.

La segunda línea deberá indicar la ubicación de Microsoft Excel. Si instaló el paquete de Office en el directorio por defecto, entonces no debe hacer ningún cambio en esta línea. Pulse Aceptar, guarde la página (Archivo -> Guardar) y salga de Vijeo Citect. La instalación ha concluido.

Arranque y operación

En esta sección se explica cómo arrancar la aplicación. Se incluye la transmisión y ejecución del programa del autómata, así como el manejo de la planta con el SCADA.

Arranque del programa y transmisión de variables

En primer lugar arranque Unity Pro, abra el menú Fichero -> Abrir y use el cuadro de diálogo para abrir el archivo “programaautomata.stu” del directorio de instalación. Si el programa se ha abierto recientemente, es posible que aparezca directamente en el menú Fichero.

Fig. A.4: Apertura del programa de Unity.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.165

A continuación, abra el menú PLC y seleccione “Establecer dirección”. La dirección del PLC es (para la red del laboratorio) 84.3.54.82, y la del simulador, 127.0.0.1. Haga los cambios pertinentes y pulse Aceptar. Esto sólo es necesario en la primera ejecución del programa o cuando se cambie la conexión de red.

Debe elegir si conectará con el PLC o si solamente hará una simulación usando los botones del menú. Entre estos dos botones, el de la izquierda pasa al modo estándar (conectado al autómata real) y el de la derecha al modo simulación. Compruebe que está pulsado el botón correcto y a continuación conéctese al autómata (o al simulador). Para ello use estos otros botones: El izquierdo conecta y el derecho desconecta. Una vez conectado, transfiera el proyecto al

autómata pulsando en el botón de transferir.

Fig. A.6: Menú de transferencia del proeycto.

Fig. A.5: Menú (arriba) y ventana (abajo) para establecer la dirección IP del PLC.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.166

En el cuadro de diálogo que aparecerá, pulse transferir. No marque la casilla “Ejecución del PLC después de la transferencia”. Antes de ejecutar el programa, es necesario transferir las variables y hacer algunos cambios en la pantalla de operador.

En el explorador de proyectos, haga doble clic en “Variables elementales” y en “Entradas simulador”. Con esto se abrirán la pantalla de variables y la pantalla de operador. Primero vaya a la de variables.

Para cambiar de una pantalla a la otra, puede hacer clic en las solapas situadas en la parte inferior de las mismas. En la ventana de variables (o editor de datos) haga clic en “Comentario” para ordenar las variables por comentario. Seleccione todas las variables cuyo comentario empiece por X_ o _Y_ (debe haber 129 con X_ y 2 con Y_). Pulse con el botón derecho en esta selección y haga clic en exportación seleccionada.

Se le pedirá que escoja un nombre y una ubicación para el archivo al que se exportan las variables. Guarde el archivo con formato XVM seleccionando en tipo

Fig. A.8: Pantalla de variables.

Fig. A.7: Explorador de proyectos.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.167

“Asignación de datos (*.XVM)”. Aunque no es necesario, se recomienda guardar el archivo en el mismo directorio de trabajo en que se encuentra el programa de Unity.

Pase ahora a la pantalla de operador (“Entradas simulador”). El cuadro superior izquierdo contiene una serie de casillas de verificación que gestionan las protecciones y algunas opciones relativas al grupo caliente y al sensor de nivel.

Si ha seleccionado la modalidad estándar, marque la casilla “Modo estándar”,o déjela desmarcada si ha seleccionado la modalidad simulación. Esto indica de dónde se obtienen las entradas del autómata (de la planta o de la propia pantalla de operador). Debe pulsar el botón “Habilitar variables de escritura” ( ) para poder marcar las casillas.

Para la ejecución del modo estándar, debe marcar “Forzar TERMO” para indicar que el grupo caliente es autorregulado. Si el sensor de nivel no está conectado, marque también “Sensor de Nivel en By Pass”. Si lo hace, deberá seleccionar el nivel igual que se hace en el modo simulación. Aunque no es necesario (ya que las protecciones se gestionarán por sí solas), se recomienda marcar también las otras 5 casillas para un arranque más seguro.

Si seleccionó la modalidad simulación, marque todas las demás casillas. Las 5 primeras sirven para simular el estado de las protecciones. Mientras la casilla está marcada, se ignorarán las alarmas correspondientes. La 6ª

casilla, Forzar TERMO, indica que el termostato se usa para regular el grupo caliente, y que esta regulación ocurre de forma automática. Si no se marca se activará una alarma cuando el termostato mande una señal. La última casilla (Sensor de Nivel en By Pass) se marca para indicar al autómata que no lea el nivel real del autómata, sino que tome los datos de la pantalla de operación.

El resto de la pantalla de operación consiste en una serie de controles analógicos con los que se puede simular el valor de cualquier magnitud de la planta: caudales, nivel, temperatura. Si activa la casilla “Modo estándar”, estos controles no se podrán utilizar, pero si la

Fig. A.9: Paneles de modos y alarmas.

Fig. A.10: Controles analógicos.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.168

deja desmarcada, sustituirán a los sensores.

Una vez marcadas las casillas correspondientes, pulse el botón ejecutar para que la planta pase al estado inicial. Si se detectara un fallo en las protecciones, la planta pasará al estado de emergencia, y es posible que esto ponga en marcha las bombas antes de que usted esté preparado. Si esto ocurriera, pulse el botón parar y revise las protecciones.

Importante: Si no marca la casilla “Modo estándar” estando la planta en modo estándar, los sensores serán ignorados, y el programa estará “ciego” ante situaciones de peligro. Recuerde marcar esta casilla siempre que vaya a trabajar con la planta.

Abra ahora OFS configuration tool, seleccione el alias “Planta_” y compruebe que la dirección del dispositivo (Device address) es la correcta. La dirección debe ser 84.3.54.82 para el autómata real y 127.0.0.1 para el simulador.

Si la dirección es incorrecta cámbiela (pulsando en el botón ), guarde los cambios ( ) y salga de la aplicación.

Abra el programa Vijeo Citect. En el explorador de citect compruebe que está seleccionado el proyecto “Planta_”. En el menú Herramientas selecciones Importar Tags.

Fig. A.11: Configuración de OPC.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.169

En la ventana emergente marque la casilla “Eliminar los tags de todos los dispositivos de E/S antes de importar. En Tipo de base de datos, seleccione OPC, y haga clic en Examinar. Seleccione el alias “Planta_”, y acepte, después haga clic en importar.

Si no hay ningún error en las comunicaciones, se importarán las 131 variables marcadas con X_ e Y_ en el comentario de Unity.

A continuación abra el menú Archivo y seleccione “Ejecutar”.

Trabajo con la aplicación SCADA

Tras unos segundos aparecerá la pantalla de bienvenida. En el menú Pages (páginas) que aparece en todas las páginas de la aplicación se puede seleccionar una u otra página para pasar a ella. Abra el menú y pase a la página Guía Gemma.

Esta página contiene la Guía Gemma de la aplicación. En ella se puede escoger el modo de funcionamiento. También deberá volver a esta página cuando se produzcan fallos en las protecciones. Como puede observar la pantalla cuenta con 6 recuadros con los nombres de los estados posibles. Al arrancar el programa debe estar marcado el

Fig. A.13 y A.14: Selección de tipo de base de datos (izquierda) y progreso de la importación

Fig. A.12: Importación de variables.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.170

recuadro azul con la etiqueta “Parada en estado inicial”. Con las flechas de la página y los botones situados en el lateral izquierdo de la misma se puede pasar a otros estados.

Pasa a Parada en estado inicial.

Pasa a Modo manual

Pasa a Parada de configuración.

Las palancas cambian entre Parada de configuración y Ensayo en marcha.

Desde cualquier ventana se puede pasar al estado de emergencia pulsando en el botón de pánico, situado en la esquina superior izquierda de todas las páginas. Esto detendrá la planta incluso si está ejecutando un algoritmo de emergencia (para enfriar el depósito o llenarlo de agua).

Por norma general, le interesará pasar al estado “Parada de configuración” antes de hacer nada más. En este estado se pueden configurar los algoritmos internos del programa y configurar la ejecución de controladores en MATLAB. Si va a utilizar algún algoritmo propio de la aplicación, pulse en el botón correspondiente del panel inferior. Recuerde que si el sensor de Nivel está en “by pass”, los algoritmos de control de nivel no funcionarán correctamente, y su uso puede ser peligroso.

Fig. A.15: Guía Gemma de la aplicación.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.171

Una vez que haya pasado a Parada de configuración y seleccionado un algoritmo (o ninguno) pase a la página Configuración de PIDs.

Desde esta página puede configurar los parámetros de los controladores utilizados en los algoritmos del programa. En el centro de la página se muestra un esquema de la estructura de control seleccionada. Para modificar los parámetros de los controladores debe pulsar sobre el interruptor situado en la esquina superior derecha para ponerlo en la posición “enviar”. Después debe escoger la forma de interpretar los controladores. Puede hacerlo como PID completo, como PID simplificado o como Red de Avance de fase en paralelo con un integrador. Para escoger una vista u otra, haga clic en la casilla de verificación correspondiente. Estas casillas se encuentran en el lado izquierdo, debajo del botón de pánico. Aunque la última casilla indique que hay un PI además de la red de avance, la realidad es que sólo se añade el término integral de ese PI, ya que la red añade el término proporcional.

En la parte inferior de la página se encuentran los parámetros de los controladores. Por comodidad, los parámetros se encuentran agrupados en paneles por controlador y el color de cada panel correspondiente es el mismo que el del símbolo en el esquema. Para cambiar el valor de un parámetro, haga clic en él, escriba el nuevo valor y pulse ENTER. Las ganancias se encuentran en tanto por 1, mientras que los tiempos se dan en segundos. Se admite una precisión de 0.01 para las ganancias y las temperaturas, y de 0.001 para los tiempos y el parámetro de la red.

Los valores aquí añadidos se pueden guardar en un fichero de Excel y cargarse en una sesión posterior. Bajo el interruptor para enviar y recibir se encuentran dos botones destinados a este fin. Al pulsar el botón Guardar, se abrirá una ventana en la que se le pedirá un nombre para el archivo. Escriba el nombre y pulse aceptar. Se abrirá

Fig. A.16: Configuración de PIDs.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.172

el fichero en Excel, donde debe guardarlo y cerrarlo manualmente. Para cargar estos valores en una sesión posterior, una vez que el interruptor esté en la posición “enviar”, pulse cargar. Se abrirá una nueva ventana pidiendo el nombre del fichero. Puede escribirlo o seleccionarlo de entre la lista de ficheros guardados. Cuando lo haya hecho pulse Aceptar.

Se abrirá el archivo en Microsoft Excel y se le pedirá que confirme si este archivo es el correcto.

Pulse sí para cargar los datos.

Cuando los controladores hayan sido configurados, pase a la página Mímico 2D.

Fig. A.19: Ventana de confirmación.

Fig. A.17 y A.18: Ventanas para guardar (arriba) y cargar (abajo) archivo.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.173

Desde esta página se pueden controlar manualmente los actuadores o bien dar permisos a MATLAB o a los algoritmos internos para controlarlos. Esta pantalla está descrita con algo más de detalle en la sección 4.5 de la memoria (Mímico de la planta).

En la esquina inferior izquierda, aparecerá un panel siempre que la planta se encuentre en Parada de configuración o en Ensayo en marcha. Las casillas de cada línea indican qué aplicación tiene acceso a cada controlador: El autómata con algún algoritmo propio (AUTO), la misma página de la aplicación SCADA (MAN) o cualquier función de MATLAB que el usuario programe (MAT). Si algún actuador no puede utilizarse (por ejemplo la resistencia del depósito porque el agua no la cubra totalmente) su línea no se

mostrará.

En el modo manual, el panel no aparece, ya que todos los actuadores se controlan desde la página del SCADA. Tampoco se muestra durante en las paradas de emergencia o en el estado inicial, en las que el usuario no puede influir sobre los actuadores.

Las bombas y las resistencias se controlan con los botones situados cerca de ellas. Los botones verdes situados bajo las bombas, las ponen en marcha, y los botones azules las paran. La bomba aparecerá en el mismo color que el botón pulsado. Los botones rojos ponen en marcha (o paran) las resistencias del depósito y del grupo caliente. El botón amarillo con las letras

Fig. A.20: Mímico 2D de la planta.

Fig. A.21: Paneles de selección de salida

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.174

PWM activa o desactiva la modulación PWM de la resistencia del depósito. El tiempo de encendido de la resistencia se puede regular desde la misma página. Hay dos botones más en la página. Estos botones muestran u ocultan las variables auxiliares de MATLAB y los controles analógicos.

En el lado derecho del depósito se pueden ver algunos de los indicadores mostrados a la izquierda. Los indicadores TT5 y PT1 siempre están visibles, y muestran respectivamente la temperatura y la presión del interior del depósito. Debajo de estos dos, siempre que la modulación PWM de la resistencia esté activada (porque se haya pulsado el botón amarillo antes indicado), podrá verse un tercer indicador (TON) con el porcentaje de tiempo de encendido de la resistencia. Dependiendo de si la resistencia está en AUTO, MAN o

MAT, y de si se ha activado la modulación PWM, puede mostrarse o no uno de los indicadores amarillos (SP). Estos indicadores representan la referencia de temperatura de agua o de tiempo de encendido de la resistencia. Puede modificar estas referencias en cualquier momento (siempre que sean visibles) haciendo clic sobre ellas y escribiendo un nuevo valor. Debe pulsar la tecla ENTER después de escribir el nuevo valor para hacerlo efectivo. Puede modificar el valor de todos los indicadores con números en amarillo de la misma manera: haciendo clic, escribiendo el nuevo valor y pulsando ENTER. Al otro lado del depósito puede ver los indicadores de nivel. El nivel del depósito se representa numéricamente en LT1 y gráficamente sobre el dibujo del depósito (la zona azul vista a través de la mirilla llega más alto cuanto mayor es el nivel). Si ha seleccionado algún algoritmo de control de nivel, podrá ver también el “Set Point” para el nivel como un indicador amarillo encima de LT1. Puede ajustar el valor de este indicador haciendo clic en él, escribiendo el nuevo valor y pulsando ENTER.

También podrá encontrar varios indicadores sobre las válvulas. Los valores marcados como TT1, TT2 y TT4, representan respectivamente las temperaturas del agua de los circuitos de agua caliente, fría y de recirculación.

Los indicadores FT1, FT2 y FT4, marcan los caudales de agua de estos mismos circuitos. La apertura de las válvulas puede verse en los indicadores V4, V5 y V8, para las válvulas de agua caliente, fría y de recirculación respectivamente.

Dependiendo del algoritmo seleccionado y de si las válvulas están en AUTO, MAN o MAT, aparecerá uno o ninguno de los indicadores amarillos de referencia de caudal o de apertura de válvula. Todos estos indicadores amarillos están marcados como

Fig. A.22: Indicadores de válvulas, caudales y temperaturas.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.175

SP (Set Point), y se sitúan siempre encima del indicador con el valor real de la variable a la que hacen referencia. Por ejemplo, la referencia de caudal de agua fría se sitúa encima del indicador de caudal de agua fría. En el circuito de agua caliente sólo se muestran el caudal (FF3) y la temperatura (TT3), ya que no hay una válvula automática que pueda usarse para regular la salida de agua del depósito. Para los algoritmos de control de

nivel del depósito, también aparecerá un indicador con la proporción de agua caliente a la entrada del depósito. Según el algoritmo, este indicador podrá ser modificado por el usuario (amarillo) o no (verde).

Por último, existen 5 variables más sin ninguna utilidad determinada, pero que ofrecen la posibilidad de comunicarse con MATLAB en

tiempo de ejecución. Estas variables pueden utilizarse, por ejemplo, como parámetros de un controlador programado en MATLAB, o para conocer el valor de alguna variable intermedia del mismo.

Cuando haya hecho configurado las variables pertinentes como AUTO, MAN o MAT, puede ejecutar la interfaz gráfica de MATLAB (ver Control de la Planta mediante MATLAB en este mismo anejo). Una vez que haya hecho los ajustes necesarios en el bucle de control, pulse ejecutar y vuelva a esta pantalla.

Cuando todo esté listo, haga clic en la palanca para poner el ensayo en marcha. Durante la marcha del ensayo, los indicadores amarillos siguen siendo susceptibles de ser modificados.

Para visualizar una gráfica de la evolución de las magnitudes más importantes de la planta, pase a la página Gráficos de tendencias.

El lateral izquierdo del la página contiene los mismos indicadores que había en la página anterior (el mímico en 2D). Puede hacer clic en cualquiera de ellos para ver su descripción en el panel inferior de la página.

El centro de la página está ocupado por varios paneles con distintos gráficos. Encima y debajo de los mismos se pueden encontrar sendas barras de herramientas con las que cambiar la vista, la escala y las propiedades del panel.

Fig. A.23: Panel de puesta en marcha.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.176

La barra de herramientas superior cuenta con los siguientes botones:

Cargar y guardar vista. Se adjunta un archivo con la vista estándar.

Imprimir, copiar o exportar a Excel los gráficos de la vista actual.

Añadir o quitar líneas y paneles.

Cambiar ejes horizontal y vertical, o volver a la vista original.

Mostrar u ocultar el panel inferior con los nombres y escalas de las líneas.

Mostrar la ventana de propiedades del gráfico.

Sincronizar la pantalla con la recepción de datos.

Abre la ventana de ayuda sobre gráficos.

La barra de herramientas inferior por su parte cuenta con las siguientes opciones:

Tiempo total mostrado, desde 1 minuto hasta 13 semanas.

Bloquear eje de tiempo.

Moverse por el eje de tiempos y sincronizar.

Fig. A.25: Barra de herramientas inferior.

Fig. A.24: Barra de herramientas superior.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.177

Cambiar el zoom.

En el panel inferior se pueden cambiar individualmente las escalas entre las que se representan las líneas. Haciendo clic sobre una línea se puede ver su escala en el lateral izquierdo del panel correspondiente.

Aunque se puede exportar la gráfica a Excel, se recomienda utilizar la interfaz gráfica de MATLAB para hacer esto, ya que con el botón de la barra de herramientas sólo se exportan los datos de la zona visible.

Control de la Planta mediante MATLAB

Para la programación de controladores en MATLAB existen 2 posibles formas de comunicarse con la planta: de forma manual o mediante la interfaz gráfica creada a este efecto. La diferencia fundamental, es que en el segundo caso las entradas y salidas del autómata se pueden interpretar como variables globales, mientras que en el primero deben usarse las funciones read y write de MATLAB para leer y escribir en las mismas.

Método manual

Para conectar con OPC use la función conectar (sin argumentos de entrada ni de salida). Esta función creará varias variables globales y las conectará con OPC. Las variables creadas por esta función son:

Nombre Descripción BombaAlim Orden de marcha de la bomba de alimentación

BombaAlimConf Señal de confirmación de la bomba de alimentación BombaRecir Orden de marcha de la bomba de recirculación

BombaRecirConf Señal de confirmación de la bomba de recirculación CaudalCaliente Caudal del circuito de entrada de agua caliente

CaudalFrio Caudal del circuito de entrada de agua fría CaudalSalida Caudal del circuito de salida de agua CaudalRecir Caudal del circuito recirculación

NivelDeposito Nivel de agua del interior del depósito de trabajo PresionDeposito Presión del interior del depósito de trabajo

Resistencia Orden de marcha de la resistencia del depósito de trabajo ResistenciaPWM Porcentaje de tiempo de encendido de la modulación PWM

ResTermo Orden de marcha de la resistencia del grupo caliente ValvulaCaliente Apertura de la válvula del circuito de entrada de agua caliente

ValvulaFria Apertura de la válvula del circuito de entrada de agua fría ValvulaRecir Apertura de la válvula del circuito de recirculación TempCaliente Temperatura del circuito de entrada de agua caliente

TempFria Temperatura del circuito de entrada de agua fría TempSalida Temperatura del circuito de salida de agua TempRecir Temperatura del circuito de recirculación

TempDeposito Temperatura del agua del interior del depósito

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.178

AuxMat1AuxMat2AuxMat3AuxMat4AuxMat5

Variables auxiliares de propósito general. Sus valores se muestran en el mímico de Vijeo Citect, lo que permite al usuario cambiar parámetros sin necesidad de reprogramar todo el algoritmo. En el mímico de Vijeo aparecen como A, B, C, D y E.

RefCaudalCaliente Referencia de caudal de agua caliente RefCaudalFrio Referencia de caudal de agua fría

RefCaudalRecir Referencia de caudal de agua de recirculación RefNivel Referencia de nivel de agua del depósito RefRatio Porcentaje de agua caliente de entrada para el algoritmo de nivel RefTemp Referencia de temperatura del agua del depósito

Las variables de lectura y escritura están subrayadas. Las otras, son de sólo lectura.

Cualquier función que vaya a utilizar estas variables (aparte de read y write) debe tener una cabecera en la que se declaren. Por ejemplo, si se llama a una función que utiliza la válvula de recirculación y el caudal de recirculación (y ninguna más), la función debe empezar así:

function [VariablesDeEntrada]=NombreDeLaFuncion(VariablesDeSalida)

global ValvulaRecir CaudalRecir;

Para escribir en una variable (suponiendo que no es de sólo lectura), se debe usar la función write. La función tiene dos argumentos: el primero es la variable en la que se va a escribir, y el segundo es el valor que se le quiere dar. Por ejemplo, si queremos darle a la válvula de recirculación una apertura del 50%, llamamos a la función write así:

write(ValvulaRecir, 50);

Para leer el estad de una variable, se usa la función read. Esta función sólo tiene un parámetro de entrada, la variable que se pretende leer, y devuelve una estructura:

estructura=read(CaudalRecir);

La estructura contiene varios campos, pero en general sólo interesa el valor devuelto:

FF4=estructura.Value; %FF4 es ahora el valor del caudal de recirculación.

Cuando haya terminado de usar las variables, llame a la función desconectar para cerrar la conexión y eliminar todas las variables globales creadas.

Programación para la interfaz gráfica

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.179

La interfaz gráfica de MATLAB contiene un programa creado para eliminar la necesidad de llamar a write y read. En lugar de esto, determinadas variables se asocian directamente a los sensores y actuadores.

Variable Tipo Significado FT1 Sólo lectura Caudal de entrada de agua caliente FT2 Sólo lectura Caudal de entrada de agua fría FT3 Sólo lectura Caudal de agua de salida FT4 Sólo lectura Caudal de agua de recirculación LT1 Sólo lectura Nivel de agua del depósito TT1 Sólo lectura Temperatura de agua caliente TT2 Sólo lectura Temperatura de agua fría TT3 Sólo lectura Temperatura de agua de salida TT4 Sólo lectura Temperatura de agua de recirculación TT5 Sólo lectura Temperatura de agua del depósito V4 Lectura y escritura Válvula del circuito de agua caliente V5 Lectura y escritura Válvula del circuito de agua fría V8 Lectura y escritura Válvula del circuito de recirculación

PWM Lectura y escritura Porcentaje de tiempo de encendido de la PWM PT1 Sólo lectura Presión del depósito B1 Lectura y escritura Bomba de alimentación B2 Lectura y escritura Bomba de recirculación

RES Lectura y escritura Resistencia del depósito TERMO Lectura y escritura Resistencia del grupo caliente AUX_A Lectura y escritura AUX_B Lectura y escritura AUX_C Lectura y escritura AUX_D Lectura y escritura AUX_E Lectura y escritura

Variables definidas por el usuario para comunicaciones con Vijeo. Se corresponden con A, B, C, D y E en el mímico en 2D.

Fig. A.26: Esquema de la planta con las variables de MATLAB.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.180

FC1 Lectura y escritura Referencia de caudal de agua caliente FC2 Lectura y escritura Referencia de caudal de agua fría FC4 Lectura y escritura Referencia de caudal de recirculación LC1 Lectura y escritura Referencia de nivel TC5 Lectura y escritura Referencia de temperatura del depósito Ratio Lectura y escritura Referencia de proporción de agua caliente (porcentaje)

Para conocer el valor de un sensor, basta leer su variable asociada, y para dar la orden a un actuador, sólo hay que escribir en su variable el nuevo valor. Siguiendo el ejemplo anterior, para abrir la válvula de recirculación al 50%, basta indicar ejecutar V8=50, y el valor del caudal de recirculación está directamente almacenado en FF4.

Además, la propia interfaz gráfica llamará periódicamente al algoritmo de control, de modo que no es necesario incluir un bucle en el controlador. De hecho, puesto que MATLAB es considerablemente lento, se recomienda no usar ningún ciclo de duración indeterminada (como while o similares). Así pues para usar la interfaz gráfica, debe crear una función de control que se ejecutará cada cierto tiempo y que controlará la planta con las variables antes expuestas.

En la primera ejecución de la función (el ciclo de inicialización) la función recibirá como entrada la cadena de caracteres ‘inicio’. En cada llamada a la función, a partir de la segunda, se le dará como parámetro de entrada aquel que hubiera devuelto como salida en la ejecución anterior. Es decir la salida del ciclo n será la entrada del ciclo n+1. De esta manera puede almacenar valores de un ciclo al siguiente. Otra forma de hacer esto es crear más variables globales que sólo la función de control pueda utilizar (al ser globales, su valor permanece intacto cuando la función termina).

Por lo tanto, la función de control debe: 1. Declarar las variables globales que vaya a utilizar 2. Comprobar si la entrada es la cadena de caracteres ‘inicio’

a. Si sí lo es, llevar a cabo la inicialización oportuna b. Si no lo es, ejecutar un paso del algoritmo

3. Devolver una variable como salida (que se recibirá como entrada en el próximo ciclo.

Se adjunta una plantilla (arvhivo plantilla.m) en el directorio de trabajo para facilitar la creación de funciones de control.

Interfaz gráfica

Para lanzar la interfaz gráfica, ejecute control_planta desde la pantalla de comando. Se conectará con OPC, se crearán todas las variables globales (incluidas también las del modo manual) y se abrirá la ventana mostrada a la derecha. Como puede observar la ventana contiene varios campos para rellenar.

El primer campo pide el nombre de la función de control. Se llamará periódicamente a esta función durante la ejecución del programa. La función debe cumplir las características que se indican en Programación para la interfaz gráfica. El segundo campo controla el periodo con el que se llama a la función. En este cuadro

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.181

debe escribir el número de segundos que hay desde el inicio de un ciclo hasta el inicio del siguiente. Recuerde que debe dar tiempo suficiente a MATLAB para ejecutar su función y comunicarse con OPC. El tiempo debe ser de aproximadamente 1.5 segundos más que lo se tarda en ejecutar la función de control (se permiten tiempos fraccionarios). En el tercer campo se debe introducir el número de ciclos de control que durar el experimento. Se puede dejar en 0 para ignorar este parámetro. En cualquier caso, la ejecución se detiene cuando se sale del estado de Ensayo en marcha.

Si quiere guardar los resultados en un archivo de Excel, indique en “Archivo de Excel” el nombre del archivo en el que se guardarán los resultados. El archivo debe existir con anterioridad. MATLAB añadirá una página y escribirá los resultados en ella. Puede hacer varias simulaciones consecutivas con el mismo archivo y los resultados de cada una se guardarán en una página separada. MATLAB le dejará un espacio en la celda C1 para ponerle nombre al ensayo.

En el campo inferior, debe escoger el número de ciclos que tardará el programa en enviar datos al histórico. Por ejemplo, si este número es 1, se escribirá una nueva fila de la hoja tras cada ejecución del programa; si es 2, cada 2 ejecuciones etc. Entre las casillas de verificación de la zona inferior de la ventana, marque aquellas cuyas variables quiere historiar.

Cuando todo esté listo, pulse ejecutar. Si la planta se encuentra en Parada de configuración, MATLAB esperará a que cambie al estado Ensayo en marcha. Si ya se encuentra en este estado, empezará a ejecutar el algoritmo. Cuando se vuelva a parada de configuración (o a cualquier otro estado), la ejecución del programa se detiene. En cualquier caso, si se pasa a un estado distinto de Parada de configuración y de Ensayo en marcha, la ejecución será abortada y aparecerá un mensaje de error.

Para cerrar la interfaz gráfica, pulse el botón salir. Al hacerlo la conexión con OPC se cerrará y las variables globales se eliminarán. Si cierra la ventana sin pulsar el botón salir, la conexión se quedará en el modo manual, y será posible controlar la planta desde MATLAB con el método manual. En este caso, ejecute la función desconectar cuando termine.

Fig. A.27: Interfaz gráfica de MATLAB.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.182

Calibración de sensores

En la calibración utilizada para los sensores, se ha asumido que no ha habido cambios desde el la realización del proyecto anterior. Si se modifican los sensores, será necesario reajustar la calibración de los mismos como se describe a continuación.

Tras instalar físicamente los nuevos sensores abra Unity Pro y abra el archivo “programaautomata.stu” tal como haría al arrancar la aplicación. En el explorador de proyectos haga doble clic en Variables derivadas.

Comprobará que en la pantalla que se abre, las variables tienen un signo + situado a la izquierda de su nombre. Esto se debe a que son estructuras compuestas por varias variables. Puede hacer clic en estos signos + para visualizar y modificar las variables internas de estas estructuras. En concreto, se deben cambiar los valores de las variables de escalado y de los parámetros de PIDs tal como se muestran a continuación.

Para cada sensor, modifique las variables que se indican escribiendo el valor indicado en la columna Valor. Recuerde que estos valores son flotantes, y que debe indicar al menos 1 decimal.

Después de hacer todas las modificaciones oportunas, pulse el botón regenerar ( ) de la barra de menús.

Caudalímetro del circuito de agua caliente

Llamaremos CCMIN al valor mínimo que el caudalímetro puede medir (típicamente 0.0), y CCMAX al máximo valor que puede medir. CCMIN y CCMAX van en litros por minuto, y sus valores originales son respectivamente 0.0 y 20.0.

1. ParaScCaudalCaliente a. out_min: CCMIN b. out_max: CCMAX

2. ParaPidCalientea. pv_inf: CCMIN b. pv_sup: CCMAX

Fig. A.28: Pantalla de variables derivadas de Unity Pro.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.183

Caudalímetro del circuito de agua fría

Llamaremos CFMIN al valor mínimo que el caudalímetro puede medir (típicamente 0.0), y CFMAX al máximo valor que puede medir. CFMIN y CFMAX van en litros por minuto, y sus valores originales son respectivamente 0.0 y 16.5.

1. ParaScCaudalFrioa. out_min: CFMIN b. out_max: CFMAX

2. ParaPidFrioa. pv_inf: CFMIN b. pv_sup: CFMAX

Caudalímetro del circuito de agua de salida

Llamaremos CSMIN al valor mínimo que el caudalímetro puede medir (típicamente 0.0), y CSMAX al máximo valor que puede medir. CSMIN y CSMAX van en litros por minuto, y sus valores originales son respectivamente 0.0 y 19.8.

1. ParaScCaudalSalidaa. out_min: CSMIN b. out_max: CSMAX

2. ParaPidNivelc. ff_inf: CSMIN d. ff_sup: CSMAXe. otff_inf: CSMINf. otff_sup: CSMAX

Caudalímetro del circuito de agua de recirculación

Llamaremos CRMIN al valor mínimo que el caudalímetro puede medir (típicamente 0.0), y CRMAX al máximo valor que puede medir. CRMIN y CRMAX van en litros por minuto, y sus valores originales son respectivamente 0.0 y 10.6.

1. ParaScCaudalRecira. out_min: CRMIN b. out_max: CRMAX

2. ParaPidRecirc. pv_inf: CRMIN d. pv_sup: CRMAX

3. ParaPidTempRecirculaciona. out_inf: CRMIN b. out_sup: CRMAXc. out_min: CRMINd. out_max: CRMAXe. outrate: CRMAX – CRMIN (la diferencia entre los dos)

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.184

Sensor de nivel

Llamaremos NMIN al valor mínimo que el caudalímetro puede medir, y NMAX al máximo valor que puede medir. NMIN y NMAX van en centímetros, y sus valores originales son respectivamente 10.0 y 90.0. El nuevo sensor deberá contener todo el rango de 10 a 90 centímetros.

1. ParaScNivela. out_min: NMIN b. out_max: NMAX

2. ParaPidNivela. pv_inf: NMIN b. pv_sup: NMAX

Sensor de presión

Llamaremos PMIN al valor mínimo que el caudalímetro puede medir y PMAX al máximo valor que puede medir. PMIN y PMAX van en grados Celsius, y sus valores originales son respectivamente 0.0 y 5.0.

1. ParaScNivela. out_min: PMIN b. out_max: PMAX

Sensores de temperatura

No es necesario cambiar ninguna variable al cambiar los termopares. Basta con que sigan siendo del tipo J.

Programación y Supervisión de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseñados en MATLAB Pag.185