Está en la página 1de 41

3.

Programacin del autmata


3.1 Especificaciones del PLC......................................................... Pag. 15
3.2 Configuracin en Unity ............................................................ Pag. 15
3.3 Vista general del programa....................................................... Pag. 21
3.4 Escalado.................................................................................... Pag. 22
3.5 Seleccin de salida.................................................................... Pag. 27
3.6 Estados y transiciones............................................................... Pag. 31
3.7 Procedimientos en caso de emergencia .................................... Pag. 36
3.8 Algoritmos propios................................................................... Pag. 43
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.14
3.1 Especificaciones del PLC
Para el control de la planta se utiliza un PLC M340 de Modicom. El autmata
est formado por mdulos o tarjetas con diversas funciones: entradas, salidas,
comunicacin, CPU Estos mdulos se distribuyen a lo largo del bastidor, que cuenta
con su fuente de alimentacin. Es posible (aunque no es necesario para este proyecto)
utilizar ms de un bastidor, conectndolos travs de sus mdulos de ampliacin. Cada
bastidor incluye su propia fuente de alimentacin, pero slo el principal necesitar el
mdulo de la CPU. Esta estructura de bastidor y tarjetas (tipo armario) hace del
autmata un elemento compacto y fcil de alojar en el cuadro de mandos.
Para la presente aplicacin se requieren como mnimo los siguientes mdulos en
el bastidor:
CPU con conexin a red
Mdulo para, al menos, 9 entradas digitales
Mdulo para, al menos, 4 salidas digitales a rels
Mdulo para, al menos, 5 entradas analgicas de termopares tipo J
Mdulo para, al menos, 6 entradas analgicas de propsito general
Mdulo para, al menos, 3 salidas analgicas de propsito general.
El autmata del que se dispone en el laboratorio cuenta con un bastidor BMX
XBP de 12 ranuras con las siguientes tarjetas (por orden numrico):
0. BMX P34 2020 que alberga la CPU, y permite comunicaciones va Modbus, o
por conexin Ethernet TCPIP.
1. BMX DDI 3202 K para 32 entradas digitales a 24V de tensin continua con
positivo comn.
2. BMX DDO 3202 K para 32 salidas digitales a transistor con negativo comn.
3. BMX ART 0414 para 4 entradas TC/RTD con separacin de potencial
compatible con termopares tipo J.
4. BMX ART 0414 igual al mdulo nmero 3.
5. BMX AMI 0410 para 4 entradas analgicas U/I con separacin de potencial de
alta velocidad.
6. BMX AMI 0410 igual al mdulo nmero 5.
7. BMX AMO 0210 para 2 salidas analgicas U/I con separacin de potencial.
8. BMX AMO 0210 igual al mdulo nmero 7.
9. Libre
10. Libre
11. Libre
La fuente de alimentacin del bastidor es de la gama BMX CPS 3500, diseada
para alimentar todos los mdulos del bastidor.
3.2 Configuracin de Unity
Para la programacin del autmata se utiliza Unity Pro XL, un software de
programacin diseado por Schneider Electric compatible con varios tipos de PLCs.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.15
Unity Pro permite usar hasta 5 lenguajes de programacin: lista de instrucciones (IL),
lenguaje estructurado (ST), grafcet (SFC), lenguaje de contactos (LD) y flujo de datos
(FBD). Antes de poder usar ninguno de ellos, es necesario establecer la configuracin
de Unity, indicndole qu tipo de PLC estamos usando, cmo nos conectamos a l, etc.
En primer lugar se debe crear un nuevo proyecto para lo cual se debe hacer clic
en el men Fichero -> Nuevo. Aparecer la siguiente ventana, en la que se pide escoger
el PLC que se programar.
En este caso, el PLC es el Modicom M340, con CPU BMX P34 2020. Una vez
seleccionado aparecer en la parte izquierda de la pantalla el explorador de proyectos.
Como se puede observar, el
proyecto de Unity se estructura en:
Configuracin
Variables y tipos de datos
Movimiento
Comunicacin
El propio programa
Tablas de animacin y
pantallas de operacin
Documentacin
El siguiente paso es indicarle
al programa qu mdulos de entrada
y salida tiene instalado el PLC. Para
ello se debe desplegar toda la
carpeta de configuracin, y hacer
doble clic en 0: Bus PLC. La
ventana que aparece muestra un
esquema del PLC y de sus ranuras.
Por defecto se considera que el PLC
slo dispone de 8 ranuras. Para cambiar este valor, se hace doble clic en el bastidor del
PLC, y se selecciona BASTIDOR PRINCIPAL DE 12 SLOTS.
Fig. 3.1: Configuracin del PLC.
Fig. 3.2: Explorador de proyectos.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.16
Tambin es necesario cambiar el tipo de fuente de alimentacin. Esto se
consigue haciendo clic con el botn derecho sobre la fuente y seleccionando Eliminar
mdulo. A continuacin, se hace doble clic sobre el espacio libre que queda y se
selecciona BMX CPS 3500.
Por ltimo, se debe hacer clic sobre cada uno de los mdulos en las ranuras de la
1 a la 8 para indicar el mdulo que est instalado en cada una. En la ventana que
aparecer en cada caso, se escoge segn la siguiente tabla:
Mdulo Tipo Referencia Comentario
1 Binario BMX DDI 3202K 32 entradas digitales de 24 VCC comn
negativo
2 Binario BMX DDO 3202K 32 salidas digitales transistor comn
negativo
3-4 Analgico BMX ART 0414 4 entradas TC/RTD con separacin de
potencial
5-6 Analgico BMX AMI 0410 4 entradas analgicas U/I con separacin
de potencial de alta velocidad
7-8 Analgico BMX AMO 0210 2 salidas analgicas U/I con separacin de
potencial
En el caso de los mdulos 3 y 4, adems es necesario indicar el tipo de termopar
utilizado. Esto se hace seleccionando los mdulos (doble clic sobre ellos) y
seleccionando Termo J en el rango.
Bastidor del PLC
Fuente de alimentacin
Fig. 3.3: Configuracin del bastidor del PLC.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.17
Una vez configurado el PLC, se debe configurar la red. Para esto se despliega la
carpeta de comunicaciones (en el explorador de proyectos), se hace clic con el botn
derecho sobre redes y se selecciona la opcin nueva red. En la lista de redes
disponibles se escoge (para este PLC) Ethernet, y se elije un nombre para la red.
Luego, haciendo doble clic sobre el icono de la nueva red, se hacen los cambios
Fig. 3.4: Seleccin de mdulos o tarjegas.
Fig. 3.5: Tipos de termopares.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.18
pertinentes. En el caso de la red del laboratorio, slo hay que cambiar la IP y la mscara
de subred.
La direccin IP
asociada al autmata es 84-
3-54-82. La mscara de
subred que debe emplearse
es 255-255-255-0.
Para terminar con la
configuracin del autmata,
an deben que asociarse las
direcciones de lectura y
escritura con las variables
correspondientes a sensores
y actuadores. Por ejemplo, si
un termopar del mdulo 3
mide la temperatura del
agua caliente y su direccin
es %IW0.3.0, se deber
aadir una variable conla direccin %IW0.3.0 llamada Temperatura_agua_caliente o
con un nombre similar y en cualquier caso fcil de reconocer. Esto se hace abriendo la
ventana de variables (doble clic en variables elementales) y escribiendo los nombres,
direcciones y tipos de datos en la tabla que aparece.
El campo nombre sirve para dar un nombre a cada variable (no puede haber dos
variables con nombres iguales), el campo tipo, indica el tipo de variable (entera, binaria,
real) y en el direccin se asigna una direccin de lectura, escritura o marca a la
variable (si no se indica nada, se trata como una marca interna). En la columna valor
se puede aadir un valor inicial para esa variable, y la columna comentario, cualquier
comentario de inters. Las variables de entrada y salida para este proyecto son:
Fig. 3.7: Ventana de variables.
Fig. 3.6: Configuracin de la red.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.19
Nombre Tipo Direccin Comentario
RESISTENCIA_DISPARO EBOOL %I0.1.0
Disparo de las
protecciones de la
resistencia
TERMO_DISP EBOOL %I0.1.1
Disparo de las
protecciones del grupo
caliente
GRUPO_FRIO_DISP EBOOL %I0.1.2
Disparo de las
protecciones del grupo
fro
BOMBA_RECIR_DISP EBOOL %I0.1.3
Disparo de las
protecciones de la
bomba de recirculacin
BOMBA_RECIR_CONF EBOOL %I0.1.4
Confirmacin de
marcha de la bomba de
recirculacin
BOMBA_ALIM_DISP EBOOL %I0.1.5
Disparo de las
protecciones de la
bomba de alimentacin
BOMBA_ALIM_CONFM EBOOL %I0.1.6
Confirmacin de
marcha de la bomba de
alimentacin
TERMO_TERMOS EBOOL %I0.1.8
Termostato del grupo
caliente
BOMBA_RECIR_MARCHA EBOOL %Q0.2.0
Orden de marcha de la
bomba de recirculacin
BOMBA_ALIM_MARCHA EBOOL %Q0.2.1
Orden de marcha de la
bomba de alimentacin
RESISTENCIA_MARCHA EBOOL %Q0.2.14
Orden de marcha de la
resistencia del depsito
TERMO_MARCHA EBOOL %Q0.2.15
Orden de marcha del
grupo caliente
TEM_CIRCUITO_AGUA_CALIENTE INT %IW0.3.0
Temperatura del agua
del circuito caliente
TEM_CIRCUITO_AGUA_FRIA INT %IW0.3.1
Temperatura del agua
del circuito fro
TEM_CIRCUITO_SALIDA_DEPOSITO INT %IW0.3.2
Temperatura del agua
del circuito de salida
TEM_RECIRCULACION INT %IW0.3.3
Temperatura del agua
del circuito de
recirculacin
TEM_INTERIOR_DEPOSITO INT %IW0.4.0
Temperatura del agua
del depsito
CAUDAL_CIRCUITO_AGUA_CALIENTE INT %IW0.5.0
Caudal de agua caliente
de entrada
CAUDAL_CIRCUITO_AGUA_FRIA INT %IW0.5.1
Caudal de agua fra de
entrada
CAUDAL_CIRCUITO_SALIDA_DEPOSITO INT %IW0.5.2
Caudal de agua de
salida
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.20
NIVEL_AGUA_INTERIOR_DEPOSITO INT %IW0.5.3
Nivel de agua del
depsito
PRESION_INTERIOR_DEPOSITO INT %IW0.6.0
Presin del interior del
depsito
CAUDAL_CIRCUITO_RECIRCULACION INT %IW0.6.3
Caudal de agua de
recirculacin
VAL_AGUA_CALIENTE INT %Q0.7.0
Apertura de la vlvula
de agua caliente
VAL_AGUA_FRIA INT %Q0.7.1
Apertura de la vlvula
de agua fra
VAL_CIRCUITO_RECIRCULACION INT %Q0.8.0
Apertura de la vlvula
de recirculacin
Esta configuracin es propia de la planta, y ser la misma sea cual sea el
programa. Por lo tanto en caso de reprogramacin del autmata, se puede copiar la
configuracin de esta aplicacin o de cualquier otra que se haya usado en la misma
planta.
3.3 Vista general del programa
A continuacin se describe la programacin del autmata, detallando las tareas
que ste llevar a cabo y la forma en que lo har. En el anejo 1 se adjunta todo el cdigo
del programa.
El programa del autmata se consta de una nica tarea (la tarea maestra) que se
estructura en 17 secciones. Una de estas secciones (la llamada GuiaGemma) est
programada en Grafcet, mientras que todas las dems estn en lenguaje de contactos
(LD). La tarea maestra se repite peridicamente cada 10ms, aunque no todas las
secciones se ejecutan en todos los ciclos. Las secciones se ejecutan en el orden que se
ha considerado ms lgico. Aunque es posible alterar este orden, hacerlo podra
provocar comportamientos no deseados al cambiar el estado o la configuracin de las
variables
2
. Estas secciones son las siguientes:
1. Escalado_var_entrada
2. Simulacion
3. Transiciones
4. GuiaGemma
5. EMERGENCIA
6. LISTO
7. MANUAL
8. AUTO_P1
9. AUTO_P2
10. AUTO_M
11. Control_de_caudales
12. Control_de_nivel
13. Control_de_temperatura
2
Este comportamiento estar limitado a los 2 3 ciclo inmediatamente posteriores al cambio de estado o
de configuracin.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.21
14. Control_nivel_temperatura
15. Seleccion_de_salida
16. PWM_Resistencia
17. Escalado_var_salida
A lo largo de la tarea maestra, el autmata lleva a cabo distintas acciones. La
primera de estas acciones es escalar las variables de entrada y de salida, de modo que la
lectura de los sensores y las rdenes de los actuadores se traduzcan a una medida del
sistema internacional. Este es el objetivo de las secciones 1, 2 y 17, que establecen una
relacin lineal entre las magnitudes reales y las variables de entrada y salida. Estas
secciones tambin permiten hacer una distincin entre las simulaciones y el
funcionamiento real de la aplicacin.
La segunda de estas acciones consiste en identificar el modo de funcionamiento
en el que se encuentra el proceso. Existen 5 modos de funcionamiento (o estados) en los
que el proceso puede encontrarse: Listo, Manual, Automtico en Parada, Automtico en
Marcha y Emergencia. El autmata se inicia siempre en el estado Listo, lo que lleva
todas las bombas, vlvulas y resistencias a un estado conocido. A lo largo de la
ejecucin del programa, el usuario podr cambiar a los modos Manual, Automtico
en Parada y Automtico en Marcha. En caso de emergencia, se pasar al estado
Emergencia, y una vez resuelto el fallo, se volver al estado Listo. Las secciones 3
y 4 controlan el paso de un estado a otro, mientras que las funciones 5 a 10, llevan a
cabo las acciones especficas de cada modo de funcionamiento.
Las secciones 11 a 14 ejecutan distintos algoritmos de control cuando se ha
seleccionado el modo automtico. Nunca se ejecuta ms de una en el mismo ciclo de la
tarea. En funcin de cmo se configuren las variables de salida, se pueden desconectar
partes de estos algoritmos de control, o combinarlos con funciones de MATLAB
programadas por el usuario.
Por ltimo, las secciones 15 y 16 permiten al usuario escoger la forma en que se
controlan las bombas, vlvulas y resistencias. El autmata registra 3 variables para cada
actuador: una para MATLAB otra para la aplicacin SCADA (en donde se configura
manualmente) y otra con el valor real que se le da. sta ltima recibir su valor de una
de las anteriores o bien de los algoritmos de control. Para cada salida existen dos
variables binarias (tres para la resistencia del depsito) que permiten escoger cul de los
tres mtodos se utilizar. En el caso de la resistencia del depsito, se puede escoger
tambin controlar con una modulacin por ancho de pulsos (PWM).
3.4 Escalado
Escalado de variables analgicas
Las secciones de escalado se utilizan para interpretar las medidas de los
transductores. Se han creado dos secciones para escalar variables (una para las variables
de entrada y otra para las de salida) ambas en lenguaje de contactos LD. El motivo de
esta divisin en dos secciones est en la primera ejecucin de la tarea maestra: Si todo el
escalado se hace al empezar el programa, estaremos dando una salida indeterminada
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.22
durante la primera ejecucin del programa (ya que no se ha escogido ninguna). Si por el
contrario se escalan todas las variables al final de cada ciclo de la tarea maestra, los
algoritmos no contarn con la informacin necesaria para ejecutarse durante el primer
ciclo. As pues las variables de entrada se interpretan en la primera seccin
(Escalado_var_entrada) y las de salida, en la ltima (Escalado_var_salida).
El escalado de variables analgicas se hace mediante
el bloque SCALING de Unity. Una vez colocado y habilitado
este bloque en el programa, se le debe indicar qu variable se
va a escalar (IN), dnde se va a guardar el resultado (OUT) y
cul es la relacin entre ambas (PARA). Opcionalmente se
puede guardar una palabra de estado (STATUS) que indicar
si la conversin se est ejecutando de forma correcta y, en
caso contrario, qu error se est produciendo. IN y OUT son
variables reales, lo cul no coincide con las variables de entrada y salida definidas para
los sensores (que se interpretan como nmeros enteros). Para solventar este problema,
se usa un bloque de conversin de tipo. De esta forma el clculo de todas las medidas de
entrada (excepto las de temperatura) se hace as:
En este ejemplo la variable entera CAUDAL_CIRCUITO_AGUA_CALIENTE
se pasa a real, se escala siguiendo los parmetros indicados en ParaScCaudalCaliente, y
el resultado (que es una variable real) se guarda en caudal_caliente.
De forma similar, el clculo de las actuaciones de salida se hace as:
En este segundo ejemplo la variable real val_caliente se escala segn los
parmetros de ParaScValvulas, y el resultado (real) se pasa a entero para guardarlo en
VAL_AGUA_CALIENTE, que corresponde con el actuador de vlvula del circuito de
agua caliente.
Fig. 3.9: Escalado variables de salida (ejemplo con la apertura de la vlvula de agua caliente).
Fig. 3.8: Escalado de variables de entrada (ejemplo con el caudal de agua caliente).
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.23
As pues, a cada variable entera de entrada y salida le corresponde una variable
real interna, y una estructura de parmetros de acuerdo con la siguiente tabla. Las
flechas indican las variables de origen y destino de cada conversin.
Variable entera o salida (transductor o
actuador)
Variable real
(interna)
Estructura de parmetros
CAUDAL_CIRCUITO_AGUA_CALIENTE caudal_caliente ParaScCaudalCaliente
CAUDAL_CIRCUITO_AGUA_FRIA caudal_frio ParaScCaudalFrio
CAUDAL_CIRCUITO_SALIDA_DEPOSITO caudal_salida ParaScCaudalSalida
CAUDAL_CIRCUITO_RECIRCULACION caudal_recirculacion ParaScCaudalRecirculacion
NIVEL_AGUA_INTERIOR_DEPOSITO niv_deposito ParaScNivel
PRESION_INTERIOR_DEPOSITO presion_deposito ParaScPresion
VAL_AGUA_CALIENTE val_caliente ParaScValvulas
VAL_AGUA_FRIA val_fria ParaScValvulas
VAL_CIRCUITO_RECIRCULACION val_recirculacion ParaScValvulas
Cada estructura de parmetros PARA es del tipo Para_SCALING, que contiene
5 variables: in_min, in_max, out_min, out_max y clip. Las 4 primeras representan dos
puntos de una funcin lineal: out_min es la salida ms baja, in_min es la entrada
asociada a esta salida y out_max e in_max son las correspondientes variables para la
salida ms alta. La ltima variable, clip, es del tipo BOOL, y cuando est a 1 evita que
la variable de salida quede fuera de rango mediante una saturacin. Los valores que se
han tomado para estas variables son los de la siguiente tabla, en la que tambin se
muestran las unidades de las variables internas (las reales).
Estructura in_min in_max out_min out_max clip Unidades
ParaScCaudalCaliente 0.0 10000.0 0.0 20.0 0 l/min
ParaScCaudalFrio 0.0 10000.0 0.0 16.5 0 l/min
ParaScCaudalSalida 0.0 10000.0 0.0 19.8 0 l/min
ParaScCaudalRecirculacion 0.0 10000.0 0.0 10.6 0 l/min
ParaScNivel 0.0 10000.0 10.0 90.0 0 cm
ParaScPresion 0.0 10000.0 0.0 5.0 0 bar
ParaScValvulas 0.0 100.0 0.0 10000.0 1 %
Para el caso de la temperatura, los propios mdulos ART realizan la conversin
por s solos (siempre que el termopar se haya configurado correctamente). Para los
termopares tipo J, el valor de las variables de entrada es la temperatura en dcimas de
grado Celsius (1/10 C). Sabiendo esto, basta dividir las variables entre 10 para obtener
el resultado en C.
Fig. 3.10: Escalado de temperaturas.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.24
En este caso, las variables intermedias que se corresponden con las originales
son las siguientes:
Variable entera (transductor) Variable real (interna)
TEM_CIRCUITO_AGUA_CALIENTE tem_caliente
TEM_CIRCUITO_AGUA_FRIA tem_fria
TEM_CIRCUITO_SALIDA_DEPOSITO tem_salida
TEM_CIRCUITO_RECIRCULACION tem_recirculacion
TEM_INTERIOR_DEPOSITO tem_deposito
Siguiendo este procedimiento se puede hacer todo el escalado de variables
analgicas correspondiente a las secciones Escalado_var_entrada y
Escalado_var_salida.
Copia de variables digitales
Adems de escalar las variables de entrada, la seccin Escalado_var_entrada y
Simulacion copian el estado de las entradas binarias a variables intermedias que se
puedan exportar a MATLAB:
Las variables intermedias que se corresponden con las entradas digitales son:
Variable de entrada Variable interna
RESISTENCIA_DISPARO disp_resistencia
TERMO_DISP disp_grupo_caliente
GRUPO_FRIO_DISP disp_grupo_frio
BOMBA_RECIR_DISP disp_bomba_R
BOMBA_RECIR_CONF conf_bomba_A
BOMBA_ALIM_DISP disp_bomba_A
BOMBA_ALIM_CONFM conf_bomba_R
Simulacin
Existe una seccin ms (Simulacion) que da un valor a las variables de entrada
cuando los sensores no estn activados (es decir, cuando se est ejecutando una
simulacin del programa en lugar de usar el propio autmata). En el caso de que el
autmata no est conectado, pero an as se deba realizar una simulacin del programa,
se deber poner a 0 la variable SimEstandar, inhabilitando as la ejecucin de
Fig. 3.11: Copia de variables digitales.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.25
Escalado_var_entrada. Al hacer esto, los valores de las variables intermedias no se
actualizarn, y podrn ser forzadas desde una pantalla de operador.
La seccin Simulacin y la pantalla de operador fueron creadas en un
principio para la depuracin del cdigo. Sin embargo, ms tarde se decidi dejarlas en el
programa para permitir la ejecucin de simulaciones del cdigo. Durante una
simulacin, la pantalla Entradas_simulador podr poner a uno o a cero las seales de
alarma (disparo de las protecciones) y dar cualquier valor a las seales analgicas. La
seccin Simulacion simular la seal de confirmacin de las bombas cuando se les da
la orden de marcha.
Termostato y sensor de nivel
Al comienzo de la programacin del autmata, se consider que el sensor de
nivel se encontraba conectado al mismo. Sin embargo, algo ms tarde, se supo que este
sensor estaba desconectado (estando el escalado de su seal ya programada). Puesto que
algunos algoritmos propios del autmata requieren el uso de este sensor, se ha aadido
la opcin de ignorar o no la lectura de este sensor en lugar de eliminarla por completo.
La variable asociada puede manipularse desde la pantalla de operador.
Por otro lado, en la documentacin del proyecto anterior, el termostato del grupo
caliente se consideraba una seal para desconectar la resistencia de dicho grupo. Sin
Fig. 3.13: Simulacin de nivel del depsito.
Fig. 3.12: Pantalla de operador.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.26
embargo, aparentemente, la resistencia se conecta y desconecta automticamente sin
necesidad de intervencin por parte del autmata. Ante la duda, se han dado las dos
opciones aadiendo una casilla ms a la pantalla de operador. Si se marca la casilla
Forzar TERMO, se ignorar el comportamiento de esta seal y se bloquear la salida
a esta resistencia.
3.5 Seleccin de salida
Uno de los cambios fundamentales de este proyecto frente a su predecesor es la
posibilidad de controlar diferentes dispositivos por mtodos distintos simultneamente.
En concreto, es posible controlar cada una de las bombas, vlvulas y resistencias por
separado bien de forma manual, bien mediante un algoritmo propio o bien desde
MATLAB, sin influir en las otras. As pues, es posible (por ejemplo) controlar la
vlvula de recirculacin desde MATLAB, mientras las otras vlvulas se regulan de
forma automtica para mantener un nivel determinado de agua en el depsito de trabajo.
Con este motivo se ha aadido al programa la seccin 15 (Seleccion_de_salida).
La seccin de seleccin de salida est pensada para ejecutarse despus de que se
escoja el valor de cada variable de salida, y por lo tanto debe estar cerca del final.
Colocar esta seccin antes de las secciones correspondientes a los algoritmos de control
producir retardos en la actuacin de los mismos. Tampoco se debera emplazar esta
seccin despus del escalado de variables de salida, ya que en este caso las rdenes de
apertura de las vlvulas se ejecutaran un ciclo ms tarde que las de las bombas.
Para cada bomba y para cada vlvula se han creado dos variables de tipo BOOL
en las que se indica qu aplicacin tendr el control sobre la variable:
Bit 1 Bit 2 Abreviatura Origen del control
1 1 MAT Salida controlada desde MATLAB.
1 0 MAN Salida controlada desde la aplicacin SCADA.
0 1 AUTO Salida controlada mediante un lazo de control interno.
0 0 BLQD Dispositivo bloqueado. Generalmente debido a una
alarma o al estado de emergencia.
Los nombres de estas variables binarias son:
Salida Bit 1 Bit 2
Vlvula de agua caliente
VAL_CALIENTE_BIT1 VAL_CALIENTE_BIT2
Vlvula de agua fra
VAL_FRIA_BIT1 VAL_FRIA_BIT2
Vlvula de recirculacin
VAL_RECIRCULACION_BIT1 VAL_RECIRCULACION_BIT2
Bomba de alimentacin
BOMBA_A_BIT1 BOMBA_A_BIT2
Bomba de recirculacin
BOMBA_R_BIT1 BOMBA_R_BIT2
El valor de estas variables puede modificarse desde la pantalla de la aplicacin
SCADA siempre que las salidas no se encuentren bloqueadas. En determinados estados,
o ante la presencia o ausencia de alguna alarma, estos valores podrn ser modificados
por el propio autmata. Por ejemplo, si el proceso se encuentra en el estado de
emergencia, todas las salidas se codificarn como BLQD, si se pasa al estado manual,
todas las variables pasarn a MAN, etc.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.27
En el caso de las variables analgicas (las vlvulas), es necesario crear dos
variables ms, en las que se almacenen los valores dictados respectivamente por VIJEO
y por MATLAB:
Salida VIJEO MATLAB
Vlvula de agua caliente
VAL_CALIENTE_VIJEO VAL_CALIENTE_MAT
Vlvula de agua fra
VAL_FRIA_VIJEO VAL_FRIA_MAT
Vlvula de recirculacin
VAL_RECIRCULACION_VIJEO VAL_RECIRCULACION_MAT
Cada una de estas dos aplicaciones podr modificar el valor de su variable
asociada, pero no la variable final de salida. El trabajo de la seccin 15 es asociar a la
variable de salida el valor de una de las anteriores (o ninguna) segn su configuracin.
As pues, si la vlvula de agua caliente (por ejemplo) est configurada como MAN, en
la seccin 15, el valor de VAL_CALIENTE_VIJEO se copiar sobre val_caliente,
que una vez escalada en la seccin 17 se enviar a la vlvula de agua caliente. De forma
similar, cuando la vlvula est configurada como MAT, ser VAL_CALIENTE_MAT
la que se copie sobre val_caliente.
En caso de que la salida se configure como AUTO, ser el mismo algoritmo
seleccionado el que modifique la variable val_caliente. Por ltimo, si la salida se
encuentra bloqueada, ser la seccin que la bloque la que seleccione un valor para esta
variable (por lo general 0). Lo mismo se repite con las otras dos vlvulas.
Para el control de las bombas, las variables intermedias sern de tipo EBOOL en
lugar de analgicas, y los resultados se enviarn directamente a las bombas (ya que las
variables binarias no se escalan), pero el procedimiento de seleccin de salida ser el
mismo:
Salida VIJEO MATLAB
Bomba de alimentacin BOMBA_ALIM_VIJEO BOMBA_ALIM_MAT
Bomba de recirculacin BOMBA_RECIR_VIJEO BOMBA_RECIR_MAT
En la siguiente figura se observa el caso de la bomba de alimentacin. El de la
bomba de recirculacin es idntico.
Fig. 3.14: Seleccin de salida para la vlvula de agua caliente.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.28
El control de salida de las resistencias es similar al de las bombas, pero en este
caso hay que tener en cuenta tambin factores como las alarmas de temperatura (por las
que deben desconectarse las resistencias) y la posibilidad de modulacin por ancho de
pulsos (PWM). Al igual que con las bombas, existen variables binarias con las rdenes
de VIJEO y de MATLAB:
Salida VIJEO MATLAB
Resistencia del depsito RESISTENCIA_VIJEO RESISTENCIA_MAT
Resistencia del grupo
caliente
TERMO_VIJEO TERMO_MAT
La resistencia del grupo caliente
3
debe ser desconectada si se activa la seal de
alarma del termostato (AA_alarma_termostato), pero mientras esta seal no est activa,
seguir cumpliendo con su configuracin de MAN, MAT, AUTO o BLQD.
Para la resistencia del depsito, ante la posibilidad de emplear una modulacin
PWM, se hacen necesarias ms opciones de configuracin, por lo que se aade un tercer
bit:
Bit 1 Bit 2 Bit 3
RESISTENCIA_BIT1 RESISTENCIA_BIT2 RESISTENCIA_BIT3
El tercer bit habilita o no la modulacin PWM:
3
Como ya se mencion en la seccin de escalado, esta resistencia puede autorregularse en funcin del
termostato. En caso de estar autorregulada, se configurar como BLQD y se inhabilitar la alarma. Para
esto debe marcarse la casilla Forzar TERMO en la pantalla de operador.
Fig. 3.15: Seleccin de salida para la resistencia del grupo caliente.
Fig. 3.14: Seleccin de salida para la bomba de alimentacin.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.29
Bit 1 Bit 2 Bit 3 Abreviatura Origen del control
1 1 1 MAT PWM PWM con parmetros escogidos desde MATLAB
1 1 0 MAT Todo-Nada controlado desde MATLAB
1 0 1 MAN PWM PWM con parmetros escogidos desde VIJEO
1 0 0 MAN Todo-Nada controlado desde VIJEO
0 1 1 AUTO PWM Lazo de control interno con PWM
0 1 0 AUTO Control interno del tipo Todo-Nada
0 0 0/1 BLQD Bloqueado
Al igual que ocurra con la resistencia del grupo caliente, existe una alarma que
prohbe el uso de la resistencia del depsito (AA_alarma_nivel_res). En este caso la
alarma se activa cuando el nivel de agua del depsito no cubre la resistencia. Si no hay
modulacin PWM, la seleccin de salida es similar a la de la resistencia del grupo
caliente:
Si, por el contrario, s hay modulacin por ancho de pulsos, se pondr a 1 la
variable PWM_RES_Conf (confirmacin de PWM en la resistencia). Siempre que
esta variable est a 1, se ejecuta la seccin 16: PWM_Resistencia. Cuando la
resistencia se encuentre en el modo AUTO PWM, ser la seccin del algoritmo
correspondiente la que active o desactive la variable PWM_RES_Conf.
Una vez confirmado que se est modulando con la resistencia, el siguiente paso
es obtener el tiempo de encendido. Al igual que ocurra con las vlvulas, esta variable
debe obtenerse de MATLAB, de VIJEO o de un algoritmo propio. Segn el caso, se
escoger una u otra.
Variable entera VIJEO MATLAB
PWM_RESISTENCIA PWM_RESISTENCIA_VIJEO PWM_RESISTENCIA_MAT
Es necesario recalcar que la variable entera PWM_RESISTENCIA representa
el tiempo de encendido de la resistencia como una fraccin del periodo. Esta variable
almacena el valor de esta fraccin en tanto por mil, mientras que las variables flotantes
PWM_RESISTENCIA_VIJEO y PWM_RESISTENCIA_MAT lo hacen en tanto
por ciento. As pues ser necesario multiplicar las variables flotantes por 10 y pasarlas a
enteros.
Fig. 3.16: Seleccin de salida para la resistencia del depsito de trabajo.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.30
Conocido el tiempo de encendido, slo falta aplicar la modulacin. Para ello se
emplea el mdulo PWM_INT.
INP es una variable entera con la
fraccin de tiempo de encendido en tanto
por mil (PWM_RESISTENCIA).
PW_O es la salida binaria del mdulo,
que debe conectarse directamente a la
variable del dispositivo (en este caso, a la
resistencia). PARA es una tabla de 5
enteros en los que el primero contiene el periodo de modulacin en centsimas de
segundo. Este periodo debe ser un mltiplo entero de la tarea maestra. Se ha escogido
un periodo de la tarea maestra de 10ms. El periodo de la modulacin ser de 1 segundo,
con lo que la resolucin mxima ser del 1%. A pesar de ello, en VIJEO y en MATLAB
se aceptar una precisin del uno por mil por si fuera posible bajar el periodo de la tarea
maestra.
3.6 Estados y transiciones
Mquina de estados
El funcionamiento del autmata se rige por una mquina de estado. Existen 5
estados posibles en los que puede encontrarse el autmata siempre que el programa est
Fig. 3.18: Uso del bloque PWM_INT.
Fig. 3.17: Tiempo de encendido de la modulacin PWM.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.31
en ejecucin. Estos estados son: Listo, Manual, Automtico en Parada,
Automtico en Marcha y Emergencia. A continuacin se describe el
comportamiento del autmata en cada estado.
Listo: ste es el estado de inicio, y tambin aquel al que se vuelve al cambiar
entre manual y automtico o al salir del estado de emergencia. Mientras el
sistema est Listo, las bombas las resistencias permanecen paradas y las
vlvulas se mantienen cerradas. Desde el estado Listo se puede pasar a
Manual o a Automtico en Parada.
Manual: En el estado manual todas las variables de salida (bombas, vlvulas y
resistencias) pueden ser modificadas desde la pantalla de Vijeo Citect. No se
pueden iniciar ningn algoritmo de control propio del programa, ni tampoco
modificar las variables desde MATLAB. Desde el estado manual slo se puede
volver al estado Listo.
Automtico en Parada: Este estado es parecido al Manual en lo que respecta
a los algoritmos de control propios del autmata (que se mantienen parados).
Una vez en este estado se puede escoger el programa que controla cada variable
de salida. Cada vlvula, bomba y resistencia puede controlarse desde la pantalla
de Vijeo Citect, desde MATLAB o desde un lazo automtico de control (ver 3.5
seleccin de salida). Adems, se puede escoger cul de los algoritmos de control
se utilizar al pasar a marcha. ste es el nico estado desde el que se pueden
configurar los PIDs para los algoritmos de control. De este estado se puede
volver a Listo o se puede pasar a Automtico en Marcha. Los algoritmos de
control no se pondrn en marcha hasta que se pase a Automtico en Marcha,
pero las salidas configuradas como MAN o MAT pueden modificarse desde
Vijeo o desde MATLAB
4
.
Automtico en Marcha: Al llegar a este estado se activan los PIDs y dems
algoritmos de control de salida. Las variables que estn en configuradas para
ello, se pueden seguir controlando desde MATLAB o desde la aplicacin
SCADA. Cuando el usuario lo considere oportuno, puede volver al estado
Automtico en Parada, pero no se puede volver directamente a Listo hasta
detener el algoritmo de control.
Emergencia: Este ltimo estado se activa cuando se da cualquier condicin de
alarma que requiera parar la planta o ejecutar una rutina de emergencia. Cuando
la condicin de alarma deje de darse, se indicar en la pantalla de Vijeo Citect y
el usuario podr volver al modo Listo. Mientras haya alguna condicin de
alarma que active el estado de emergencia, el autmata ignorar la orden de
volver al modo Listo. El usuario puede activar este estado poniendo a 1 la
variable Pulsador_Emergencia. Una vez hecho esto, la variable debe ponerse a
0 antes de intentar volver al modo Listo. La variable Pulsador_Emergencia
acta como la seta o botn de pnico de otros dispositivos, forzando a que ste
se pare inmediatamente. En el PLC no existe como tal un botn de emergencia,
4
Aunque la programacin del autmata permite la modificacin de una variable desde MATLAB en este
estado, la interfaz grfica programada en MATLAB no har modificaciones en las bombas, vlvulas y
resistencias hasta que se pase a Automtico en Marcha. S es posible modificar el estado de estos
dispositivos de forma manual desde la pantalla de comando de MATLAB.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.32
pero en todas las pantallas de Vijeo Citect aparecer el smbolo del pulsador con
la misma funcin.
Para controlar los cambios entre estos 5 estados se utilizan dos secciones
consecutivas. La primera se denomina Transiciones, y est programada en lenguaje de
contactos. La segunda recibe el nombre de GuiaGemma, y est programada en
grafcet. En GuiaGemma se ha programado la red de Petri asociada a la Gua Gemma
de la planta. Cada lugar corresponde con un estado y tiene asociada una variable, y de la
misma forma cada transicin tiene asociada una variable. Todas estas variables se
exportan a Vijeo para que el usuario pueda conocer el estado actual y escoger el
siguiente.
El procedimiento para cambiar entre estados distintos del de emergencia es el
siguiente: Primero la aplicacin SCADA pone a 1 la variable asociada a la transicin
correspondiente (ver figura), una vez que el cambio se ha hecho efectivo la seccin
Transiciones pone a 0 la misma variable. De esta manera se evita que el usuario deje
una transicin a 1 por descuido.
Fig. 3.19: Grafcet de la Gua Gemma..
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.33
La seccin Transiciones, por lo tanto, debe poner a 0 el valor de cualquier
transicin que no parta del lugar asociado al estado actual. Por ejemplo: si estamos en el
estado Listo, deben ponerse a 0 las variables Cond_Emergencia_2, Boton_Modo
y Boton_Auto_Marcha, pero deben dejarse libres (para que el usuario las modifique)
las variables Cond_Manual y Cond_Auto. En la siguiente tabla se muestran las
variables que se deben modificar en cada estado:
Emergencia Listo Manual A.
Parada
A.
Marcha
Cond_Emergencia Libre Libre Libre Libre Libre
Cond_Emergencia_2 Libre 0 Libre Libre Libre
Cond_Manual 0 Libre 0 0 0
Cond_Auto 0 Libre 0 0 0
Boton_Modo Libre 0 Libre Libre 0
Boton_Auto_Marcha 0 0 0 Libre Libre
La seccin Transiciones tambin se usa para la deteccin de alarmas, por lo
que debera ejecutarse antes de la seccin GuiaGemma para as asegurar que se pasa
al estado de emergencia en el mismo ciclo en que se detecta.
Deteccin de alarmas
La seccin transiciones tambin debe identificar las situaciones de emergencias
y gestionar la variable Cond_Emergencia. Para ello, adems de las entradas asociadas
al disparo de las protecciones y de la marca Pulsador_Emergencia, se comprueban
diversas alarmas que requieren ejecutar alguna subrutina despus de entrar en el estado
Emergencia. Ms informacin en 3.6 Procedimientos en caso de emergencia.
Acciones asociadas a los estados
Hay ciertas acciones que deben llevarse a cabo siempre que se est en
determinados estados. En general estas acciones se limitan a restablecer los permisos de
uso de las seales de salida, es decir, a permitir a Vijeo o a MATLAB usar estas
Fig. 3.20: Desactivacin de las transiciones.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.34
variables. Sin embargo, las acciones propias del estado de emergencia son bastante ms
diversas, ya que en la seccin Transiciones se definen varias formas de llegar a este
estado. Cada estado tiene asociada una seccin (salvo en el caso de Automtico en
Parada, que tiene asociadas dos secciones), que lleva a cabo los cambios pertinentes.
Las secciones asociadas a estos estados pueden colocarse en cualquier orden entre ellas
(ya que nunca se ejecutan a la vez) pero se aconseja colocarlas despus de la seccin
GuiaGemma para que sus acciones asociadas se ejecuten lo antes posible. Las
acciones propias de cada estado son las siguientes:
Listo: Este estado representa la parada del sistema en el estado inicial, por lo
que debe asegurarse que todos los dispositivos de salida (bombas, vlvulas y
resistencias) se encuentren en un estado conocido. Para ello, se configuran todas
las salidas como BLQD y se les asigna un valor de 0. Para las bombas y
resistencias esto significa que estn desconectadas, mientras que para las
vlvulas indica que estn cerradas a tope.
Manual: En este estado todas las salidas deben ser modificables desde la
aplicacin SCADA, por lo que lo nico que debe hacerse es configurarlas como
MAN. Hay dos excepciones que corresponden a las resistencias. Si el nivel de
agua del depsito no cubre totalmente la resistencia del mismo, sta se quedar
bloqueada. De igual manera, si salta el termostato del grupo caliente (o si se ha
marcado la casilla Forzar TERMO), la resistencia de ste grupo tambin se
quedar bloqueada.
Automtico en Parada: Las acciones de este estado son algo ms complejas
que las anteriores. En primer lugar, se paran las bombas que se hayan dejado en
AUTO, ya que ningn algoritmo est en funcionamiento. Lo mismo ocurre con
la resistencia del depsito, aunque no con la del grupo caliente. En segundo
lugar se actualizan los parmetros de los PIDs. Esta operacin consiste en recibir
o enviar a Vijeo los parmetros actuales de estos mdulos, para lo cual se usa
una marca auxiliar: PidConfig. Si esta marca se encuentra a 1, los valores
pasan de la pantalla del SCADA al PLC, mientras que si est a 0, se envan del
PLC al SCADA. La misma operacin se repite con cada parmetro de cada PID,
transmitiendo un total de 31 variables. En tercer lugar, se configura como MAN
cualquier salida que estuviera configurada como BLQD. Al igual que en el
modo manual, las resistencias pueden dejarse bloqueadas si hay alarma. En este
caso, una salida que se configure como AUTO o MAT se mantendr como tal.
Por ltimo se comprueba si hay dos o ms algoritmos seleccionados
simultneamente y, en caso de que los haya, se selecciona uno solo. Al haber
tantas acciones previstas para este estado, se necesitan 2 secciones en lugar de
una sola.
Automtico en Marcha: Como en el estado anterior, cualquier salida
configurada como BLQD (excepto las resistencias) se pasa a MAN. Tambin
hay que garantizar que no se activa ms de un algoritmo. Si se detectan 2 ms
algoritmos activos, se desactivan todos menos uno, ya que no hacerlo causara
interferencias entre ellos. En este estado no se puede recibir la configuracin de
los PIDs (puesto que ya estn en marcha) de modo que la variable PidConfig
se pone a 0. An as, no se podrn recibir desde Vijeo los parmetros de los
PIDs. Por ltimo, si no hay activo ningn algoritmo, y an as se han
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.35
configurado las bombas o la resistencia del depsito como AUTO (o AUTO
PWM), estos dispositivos se paran.
Emergencia: En el estado de emergencia todas las salidas se bloquean y todos
los algoritmos se detienen. A continuacin se trata la alarma correspondiente.
Ver 3.6 Procedimientos en caso de emergencia para ms detalle.
3.7 Procedimientos en caso de emergencia
A lo largo de la ejecucin del programa pueden darse diversos problemas o
pueden alcanzarse situaciones peligrosas. Para todos los casos conocidos existe una
rutina en dos etapas: Detectar el fallo (alarma) y Eliminarlo (procedimiento de
emergencia). La deteccin se lleva a cabo en la seccin 3, Transiciones, mientras que
el procedimiento de emergencia se lleva a acabo en la seccin 5, EMERGENCIA.
Alarmas y prioridades
En la planta se prevn las siguientes situaciones que se consideran motivo de
alarma:
1. Salto en las protecciones: En el cuadro de control existen varios dispositivos de
proteccin. Si cualquiera de ellos corta la corriente, la planta debe pararse
inmediatamente. A estos efectos el smbolo del pulsador de emergencia (en las
pantallas de Vijeo Citect) se considera una proteccin ms.
2. Temperatura excesiva: La temperatura y la presin del depsito de trabajo no
deben ser superiores a los valores mximos que los sensores pueden medir. An
cuando el depsito aguantara varios grados ms, y aunque los sensores no se
estropearan, trabajar con temperaturas o presiones desconocidas es un peligro
que debe evitarse. Por este motivo, cuando se alcance el mximo valor de
temperatura o de presin, se iniciar una rutina de refrigeracin.
3. Bombas y caudales: En ocasiones, por descuido, el operario podra poner en
marcha una bomba sin abrir la vlvula correspondiente. Para el caso de la bomba
de recirculacin, esta situacin se puede detectar. En caso de que esto ocurra la
bomba debe pararse. Tambin deben pararse las bombas si los caudales
sobrepasan los valores mximos que los caudalmetros pueden detectar. Esto
ltimo es poco probable si el caudalmetro se ha seleccionado bien, y se podr
considerar como un fallo en el propio caudalmetro o en el escalado.
4. Nivel: El depsito de trabajo tiene una altura de 1 metro y puede almacenar
hasta 30 litros
5
de agua. Sin embargo slo es posible medir la el nivel de agua
cuando ste est a una altura de entre 10 y 90 centmetros desde la base. Si el
nivel del depsito baja de 10 cm, se deber activar una rutina de llenado, y si
sube de 90 cm, se deber parar la planta e indicar al operario que vace un poco
el depsito.
5
Valor aproximado.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.36
5. Resistencias: La resistencia del depsito no debe ponerse en marcha si el nivel
de agua del mismo no la cubre completamente. De forma similar, la resistencia
del grupo caliente no debe encenderse mientras el termostato indique que la
temperatura del tanque es muy alta
6
. Estas alarmas no requieren parar los
ensayos que se estn realizando sobre la planta. Bastar con bloquear las
variables.
En el caso de que dos o ms alarmas se dieran simultneamente, se atender a la
ms prioritaria (ignorando las otras). Una vez que la alarma ms prioritaria se haya
neutralizado, se comprobar si persiste alguna otra alarma y se proceder de igual
manera. El orden de prioridad es el expuesto anteriormente: Protecciones >
Temperaturas > Bombas y caudales > Nivel > Resistencias.
Protecciones
La deteccin de un fallo en las protecciones se realiza a partir de las variables
digitales de disparo: disp_bomba_A, disp_bomba_R, disp_grupo_frio,
disp_grupo_caliente y disp_resistencia. El pulsador de emergencia realiza la misma
accin que cualquiera de estas alarmas. Puesto que todas las variables de disparo son
activas a nivel bajo, se considera que hay alarma cuando alguna de estas variables est a
0:
6
Las alarmas del termostato y de la resistencia del grupo caliente no se tendrn en cuenta si el grupo se
autorregula. En este caso, bastar con marcar la casilla Forzar TERMO en la pantalla de operador.
Fig. 3.21: Situaciones que provocan el estado de emergencia.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.37
En caso de alarma debido a las protecciones, se pararn todas las bombas y
resistencias, y se cerrarn las vlvulas a tope. Adems se activar la seal
correspondiente al pulsador de emergencia (as se asegura la permanencia en el estado
de emergencia cuando se rearmen las protecciones). Puesto que durante esta parada el
usuario podra abrir la vlvula de salida del depsito, tambin ser necesario comprobar
si el nivel del depsito baja lo bastante como para desactivar una alarma de nivel que se
hubiera dado con anterioridad. No es necesario comprobar aqu si el nivel de agua baja
del mnimo, ya que esto sigue detectndose en la seccin de transiciones.
Una vez rearmadas las protecciones, se saldr de este estado desactivando el
pulsador de emergencia y activando la condicin de vuelta al estado Listo.
Temperaturas
Fig. 3.22: Procedimiento en caso de disparo de protecciones (segunda parte) .
Fig. 3.22: Procedimiento en caso de disparo de protecciones (primera parte).
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.38
La deteccin de una temperatura excesiva se hace en la seccin Transiciones
comparando la temperatura del depsito con una temperatura mxima de 80 C. Por
seguridad, tambin se comprueba si la presin llega a 5 bares.
Una vez que se ha dado la alarma de temperatura, se procede a enfriar el tanque.
En primer lugar se desconecta la resistencia del depsito. A continuacin se cierran las
vlvulas de entrada de agua fra y caliente (para que no entre ms agua en el tanque, que
podra producir ms vapor de agua) y se abre al mximo la vlvula de agua de
recirculacin. Se compara la presin y la temperatura con unos niveles de seguridad a
los que se pretende llegar (definidos como 4 bar y 50C) y se mantienen ambas bombas
encendidas hasta que se alcance esa situacin. Una vez que se llega a 50C ( menos) y
4 bares ( menos), se paran las bombas. Una vez comprobado que las bombas estn
paradas y que la presin y temperatura del depsito son aceptables, se desactiva la
alarma.
Cuando la alarma se haya desactivado, el usuario deber dar la seal de pasar al
modo Listo desde la pantalla de Vijeo Citect para salir del estado de emergencia.
Si durante el enfriamiento del depsito se produjera un fallo en las protecciones
(o si el usuario pulsara el botn de pnico) se suspendera esta secuencia de
enfriamiento. Una vez que las protecciones se hubieran rearmado, se reanudara el
enfriamiento del depsito (incluso cuando ste ya no se encuentre a 80C 5 bares). Si
Fig. 3.24: Procedimiento en caso de temperatura o presin excesiva en el depsito.
Fig. 3.23: Comprobacin de temperatura y presin del depsito de trabajo.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.39
por algn motivo fuera necesario abortar el algoritmo de enfriamiento (bajo la
responsabilidad del usuario), se deber hacer lo siguiente.
1. Pulsar el botn de pnico en la aplicacin SCADA.
2. Entrar en la pantalla de operador de Unity Pro.
3. Desmarcar la casilla Modo estndar (este paso no es necesario durante una
simulacin).
4. Bajar los controles analgicos de P Depsito y T Depsito hasta unos
valores inferiores a 4 bar y 50 C respectivamente.
5. Volver a la aplicacin SCADA y pulsar el botn de rearme de protecciones.
6. Esperar aproximadamente 1 segundo hasta que aparezca el botn de pasar al
estado Listo, pero no pasar a este estado todava.
7. Volver a la pantalla de operador de Unity Pro y marcar la casilla Modo
estndar (este paso debe omitirse durante una simulacin).
8. Volver una vez ms a la aplicacin SCADA y pasar al estado Listo.
Bombas y caudales
La deteccin de caudales excesivos se hace comparando los caudales con los
mximos valores posibles que los caudalmetros pueden medir. Si alguno de los 4
caudales (caliente, fro, de salida o de recirculacin) llega al mximo, se da la alarma de
caudales.
Para la bomba de recirculacin, se considera que hay una alarma si la bomba
permanece encendida durante 1 segundo mientras la apertura de la vlvula de
recirculacin es menor del 1%.
En ambos casos se pararn todas las bombas y resistencias, y se cerrarn las tres
vlvulas automticas:
Fig. 3.26: Comprobacin de bomba de recirculacin.
Fig. 3.25: Deteccin de caudales excesivos.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.40
Las alarmas se desactivarn cuando todas las bombas y resistencias se hayan
cerrado adems se confirme que el caudal de agua de salida es menor que el mximo
posible. No es necesario comprobar los otros tres caudales, ya que las vlvulas se han
cerrado. Si la alarma persistiera durante varios ciclos del programa, estando cerrada la
vlvula de salida de agua del depsito (o sabiendo que este caudal es normal) se podr
asumir que los caudalmetros no estn bien configurados.
IMPORTANTE: Con las seales que llegan al autmata no es posible saber si la
bomba de alimentacin est bloqueada o no. Por seguridad, se aconseja mantener las
vlvulas V1, V2 y V3 abiertas.
Nivel
El nivel de agua del depsito debe encontrarse entre 60 y 90cm para un
funcionamiento normal. Si el nivel de agua baja de 60cm, la resistencia del depsito
debe pararse (ya que el agua no la cubre completamente). Si el nivel se sale del rango
medible (10 a 90cm) debe corregirse este nivel. Para comprobar en qu rango se
encuentra el nivel se usan comparaciones en la seccin de transiciones.
Fig. 3.28: Comprobacin del nivel del depsito.
Fig. 3.27: Procedimiento en caso de caudales excesivos o bomba bloqueada
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.41
En caso de que el nivel sea mayor al mximo o menor al mnimo, se declarar el
estado de emergencia, no as cuando el nivel no sea suficiente para cubrir la resistencia.
Dependiendo de si el nivel es muy alto o muy bajo se llevarn a cabo unas acciones u
otras.
En la (imagen) se observan las acciones tomadas ante un nivel demasiado bajo
(a la izquierda) o demasiado alto (a la derecha). En el primer caso se abre la vlvula de
agua fra y se mantiene encendida la bomba de alimentacin hasta que el nivel sube por
encima de 30cm. En el segundo caso, se deja la vlvula cerrada y se enva un mensaje al
usuario para que la vlvula V6 hasta que el nivel baje de 70cm. En ambos casos, se
mantienen las otras bombas, vlvulas y resistencias paradas o cerradas segn
corresponda. Una vez que el nivel es aceptable, se desactiva la alarma, y se espera a que
el usuario de la seal de pasar al estado Listo.
Si durante el llenado o vaciado del depsito se diera otra alarma ms prioritaria
(fallo en las protecciones, exceso de temperatura o bloqueo de la bomba de
recirculacin), se suspender el llenado o vaciado hasta que se haya atendido a esta otra
alarma. Una vez hecho esto se continuar el llenado o vaciado del depsito incluso si el
nivel de agua est entre 10 y 90cm. Si por algn motivo fuera necesario abortar el
algoritmo de llenado o vaciado del depsito (bajo la responsabilidad del usuario), se
deber hacer lo siguiente.
1. Pulsar el botn de pnico en la aplicacin SCADA.
2. Entrar en la pantalla de operador de Unity Pro.
3. Desmarcar la casilla Modo estndar (este paso no es necesario durante una
simulacin).
4. Ajustar el control analgico L Depsito a un valor entre 30 y 60 (valores
superiores a 60 podran permitir el uso de la resistencia del depsito sin que el
agua la cubriera totalmente).
5. Volver a la aplicacin SCADA y pulsar el botn de rearme de protecciones.
6. Esperar aproximadamente 1 segundo hasta que aparezca el botn de pasar al
estado Listo, pero no pasar a este estado todava.
Fig. 3.29: Procedimiento en caso de nivel insuficiente (izquierda) o excesivo (derecha).
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.42
7. Volver a la pantalla de operador de Unity Pro y marcar la casilla Modo
estndar (este paso debe omitirse durante una simulacin).
8. Volver una vez ms a la aplicacin SCADA y pasar al estado Listo.
Resistencias
Cuando se recibe la seal del termostato, se bloquea la resistencia del mismo
grupo. Una vez que el termostato deja de enviar la seal, se esperan 5 minutos antes de
volver desactivar la alarma. Las secciones correspondientes a los estados Manual,
Automtico en Parada y Automtico en Marcha se encargan de desbloquear la
resistencia cuando la alarma se desactiva. Esta alarma no fuerza al sistema a pasar al
estado de Emergencia, ya que esta seal no es tanto una alarma como una manera de
mantener la temperatura del agua en el grupo caliente.
Cuando el nivel de agua es menor de 60cm, la seccin transiciones activa la
alarma AA_alarma_nivel_res y bloquea la resistencia del depsito y la desconecta.
Las secciones correspondientes a los estados Manual, Automtico en Parada y
Automtico en Marcha se encargan de desbloquearla igual que en el caso anterior.
Tampoco aqu se pasa al estado de Emergencia, pues en muchos casos ser posible
seguir trabajando sin necesidad de usar la resistencia.
3.8 Algoritmos propios
Uno de los cambios principales en la programacin de la planta son los
algoritmos propios del autmata. En ocasiones el usuario podra estar interesado slo en
parte de la planta (como el depsito o el intercambiador de calor), pero an necesitar
que otros dispositivos de la misma entren en funcionamiento. Por ejemplo: un
determinado ensayo podra estar enfocado en el depsito de la planta, sin tener en
cuenta las vlvulas, pero el ensayo podra requerir un cierto caudal de agua de entrada o
de salida neta. En este caso el usuario podr aplicar uno de los algoritmos programados
en el autmata para regular el caudal de entrada en el depsito.
Para este propsito se han programado 4 algoritmos que controlan los caudales
de agua fra, caliente y de recirculacin, la temperatura del depsito, su nivel, o alguna
combinacin de los anteriores.
Fig. 3.30: Deteccin y procedimiento en caso de disparo del termostato.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.43
Cada algoritmo tiene asociada una seccin que se ejecuta slo cuando el
algoritmo ha sido seleccionado. Se puede seleccionar el algoritmo desde el estado
Automtico en Parada, pero no se llevar a cabo ninguna accin hasta que se pase a
Automtico en Marcha. Las 4 secciones pueden ubicarse en cualquier posicin entre
el escalado de variables de entrada y el escalado de variables de salida. Se ha preferido
colocarlas despus de las secciones asociadas a los estados para asegurar que se dejan
de ejecutar en el mismo ciclo en que se cambia de estado.
Caudales
ste es el algoritmo bsico, y su propsito es controlar el caudal de cada circuito
de agua a partir de la vlvula asociada. Adicionalmente, tambin se puede utilizar la
resistencia del depsito (con o sin modulacin PWM) para controlar la temperatura del
depsito. ste es algoritmo a emplear cuando se desee mantener un caudal constante
durante un ensayo o cuando se pretenda usar el caudal (y no la apertura de una vlvula)
durante un ensayo. La posibilidad de mantener el depsito a una temperatura
determinada (sin variar su nivel) permite tambin hacer ensayos que tengan como
escenario el intercambiador de calor, ya que la temperatura de entrada de agua ser
constante.
Variable en AUTO Magnitud controlada
Vlvula de agua caliente Caudal de agua caliente
Vlvula de agua fra Caudal de agua fra
Vlvula de recirculacin Caudal del circuito de recirculacin
Resistencia del depsito Temperatura del depsito
El control de caudales se realiza mediante un PID para cada caudal:
Se considera que los tres caudales son suficientemente independientes como
para controlarse por separado, es decir, se ignoran los cambios de presin que el caudal
de agua caliente pueda producir sobre el caudal de agua fra y viceversa.
Fig. 3.31: Esquema del algoritmo utilizado para cada caudal.
PID Planta -
Ref Caudal Caudal Vlvula
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.44
El bloque que se utiliza como PID es el siguiente:
PV representa la medida del proceso (en este caso el caudal actual), SP es el
valor de referencia, FF permite aadir una accin de Feed Foreward, OUT es la salida
del PID (en este caso la apertura de la vlvula) y PARA es una estructura de parmetros
de configuracin para el PID. El resto de las entradas y salidas permiten aadir
funciones extra que no se necesita utilizar en este proyecto. Para desactivarlas es
necesario conectar un 1 lgico en MAN_AUTO (para desactivar el modo manual) y un
0 en TR_S (para indicar que no copie los parmetros de inicializacin).
Fig. 3.31: Esquema del controlador.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.45
Los valores para los parmetros de PARA que se han tomado han sido los
siguientes:
Parmetro Valor Significado del valor seleccionado
id (Automtico) Identificacin de la estructura.
pv_inf 0
pv_sup mximo valor que el
caudalmetro puede medir
Valores mnimo y mximo que el proceso
puede tomar.
out_inf 0 (1 para la vlvula de
recirculacin)
out_sup 100
Valores mnimo y mximo que la salida del
PID puede tomar.
rev_dir 0 Realimentacin negativa.
mix_par 0 Estructura del PID.
aw_type 0 Filtro de contencin deshabilitado.
en_rcpy 0 RCPY deshabilitado.
kp
ti
td
kd
(A determinar por el
usuario)
Parmetros de sintonizacin: ganancia total,
tiempo integral, tiempo derivativo y ganancia
diferencial.
pv_dev
0 1 segn el algoritmo
Derivada de la salida o derivada del error
respectivamente.
bump 1 Transicin bumpless desactivada.
dband 0 Zona muerta desactivada.
gain_kp 1 Ganancia en zona muerta.
ovs_att 0 Sin reduccin de desborde.
outbias 0 Sin compensacin manual.
out_min 0 (1 para la vlvula de
recirculacin)
Valores lmite mnimo y mximo que puede
tomar la salida antes de compensacin
Fig. 3.32: Conexin del bloque PIDFF (ejemplo con la vlvula de recirculacin).
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.46
out_max 100 manual.
outrate 100 Mxima variacin de la salida en un ciclo
ff_inf 0
ff_sup 1
Valores mximo y mnimo que pueden tomar
las entrada de feed foreward.
otff_inf 0
otff_sup 1
Valores escalados mximo y mnimo
asociados a la entrada de feed foreward.
Para este algoritmo, puesto que las referencias en caudales son proporcionadas
por el usuario, la accin derivativa se calcular a partir del valor del proceso (no a partir
del error).
En lo que respecta a la resistencia, existen dos maneras de utilizarla para regular
la temperatura: mediante un control todo-o-nada con histresis o con una estructura
PID-PWM. Se escoge una o la otra dependiendo de si se ha habilitado la funcin PWM
en la seleccin de salida (ver 3.5 seleccin de salida).
En el caso de control todo o nada con histresis, se acta de una u otra manera
segn la temperatura T del depsito.
a) T es mayor que la referencia ms el margen de error: Se para la resistencia.
b) T es menor que la referencia menos el margen de error: Se pone en marcha la
resistencia.
c) Ninguno de los casos anteriores es cierto: No se modifica la resistencia.
Si por el contrario se habilita la modulacin PWM, se utilizar un bloque de PID
para regular el tiempo de encendido. El bloque PWM_INT utilizado en la seleccin de
salida indica que est preparado para funcionar con un bloque PID_INT que tenga por
tiempo de muestreo el periodo de modulacin. Por este motivo se ha escogido el bloque
Fig. 3.35: Control todo o nada con histresis.
Fig. 3.34: Calculo de la derivada para el algoritmo.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.47
PID_INT para la resistencia (en lugar del bloque de PID completo utilizado para las
vlvulas).
TAG y UNIT son entradas opcionales para indicar las unidades y el nombre del
PID. PV es la salida del proceso. A diferencia del bloque anterior, este bloque slo
utiliza valores enteros (por lo que ser necesaria una conversin de tipo). AUTO debe
recibir un 1 lgico en formato EBOOL para funcionar de forma automtica (un 0 deja al
bloque en manual). PARA es una matriz de 43 enteros (numerados de 0 a 42) con los
parmetros del bloque y el espacio suficiente para que ste haga sus clculos
intermedios. Los primeros valores de estos parmetros son:
# Parmetro Valor Significado del valor seleccionado
0
SP
Valor de referencia Valor de referencia (Set Point).
1
OUT_MAN
0 Valor de salida en manual.
2
KP
3
TI
4
TD
(A determinar por el
usuario)
Parmetros de sintonizacin: ganancia total
(en tanto por ciento) y tiempos integral y
derivativo (en dcimas de segundo).
5
TS
100
Tiempo de muestreo en centsimas de
segundo. Debe coincidir con el periodo de
la modulacin PWM.
6
OUT_MAX
1000
7
OUT_MIN
0
Salidas mxima y mnima del bloque PID.
8
CONFIG
2#1111111100000000 Otros parmetros (ver bajo la tabla).
9
10
PV_SUP
0
11
12
PV_INF
0
13
14
PV_MMI
0
15
16
SP_MMI
0
Valores relacionados con la interfaz
hombre mquina de este bloque. Estos
parmetros no se usan en esta aplicacin.
El registro Config es un nmero de 16 bits que establece la configuracin de
la derivada (bit 0), el modo bumpless (bit 4) y la interfaz hombre mquina (bit 8). La
derivada se hace sobre la variable del proceso cuando el bit 0 est a 0, y sobre el error
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.48
cuando est a 1. El modo bumpless se activa cuando el bit 4 est a 1 (y se desactiva en
caso contrario). Por ltimo, la interfaz hombre-mquina se activa poniendo el bit 8 a 0 o
se inhibe poniendo este bit a 1. En caso de activarse, se debe configurar con los enteros
9 a 16. El resto de los enteros de la tabla no deben modificarse.
Para no perder precisin, las temperaturas se envan al PID en dcimas de grado.
Como puede observarse el PID recibe la temperatura del depsito y su referencia como
enteros.
Por ltimo, las bombas se ponen en marcha cuando los caudales solicitados son
mayores que 0, no reaccionando ante cambios de apertura de vlvulas en modo manual.
Se recomienda dejar la bomba de alimentacin en manual o controlada por
MATALB a no ser que las dos vlvulas de agua de entrada (fra y caliente) estn en
AUTO.
Nivel
El algoritmo de control de nivel est pensado para ensayos que requieran
mantener un determinado nivel de agua en el depsito de trabajo. Se incluye la
posibilidad de renovacin de agua del depsito, lo que permite ensayar controladores
Fig. 3.37: Toma de decisiones para las bombas.
Fig. 3.36: Control con PID.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.49
para mantener la temperatura de un sistema abierto (con renovacin de agua). Esta es
una situacin comn en un reactor de tipo tanque.
Este algoritmo es una modificacin del anterior en la que se asignan las
referencias de caudal de entrada (fro y caliente) para mantener un nivel en el depsito.
La estructura de control es, por lo tanto, en cascada:
El usuario proporciona una referencia de nivel y la proporcin de agua caliente
en el caudal de entrada, el primer PID genera una referencia en caudal, a la que se aade
como Feed Foreward el caudal de salida. Una vez hecho esto se divide el caudal de
entrada entre las entradas de agua fra y caliente segn la proporcin dada por el
usuario. Por ltimo se controlan estos caudales mediante los PIDs utilizados en el
algoritmo de control de caudales.
Los parmetros del PID de nivel son idnticos a los de caudales, excepto por los
valores lmites del valor del proceso, la salida del PID y la entrada de Feed Foreward,
que corresponden a respectivamente a los lmites del sensor de nivel, las sumas de los
caudales mximos y mnimos de entrada, y los lmites del caudal de salida.
Fig. 3.39: Esquema general del algoritmo.
Fig. 3.38: Esquema de control de nivel en cascada.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.50
En caso de que una de las vlvulas de agua de entrada est en AUTO y la otra en
MAN o MAT (o BLQUD), el reparto se reajustar el reparto del caudal. Por ejemplo, si
la vlvula caliente est en MAN, y el caudal de agua caliente Q
1
, el caudal fro que se
tomar como referencia ser el total menos Q
1
. En este caso se ignorar la referencia de
proporcin.
Fig. 3.41: Proporcin de caudales de entrada.
Fig. 3.40: Conexin del bloque PID para el control de nivel.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.51
Los bloques de PID de caudales de agua fra y caliente se mantienen sin
cambios, sin embargo ahora la derivada se hace sobre el error, ya que la referencia no es
fija. El control de la vlvula de recirculacin y de la resistencia del depsito se mantiene
igual que en el primer algoritmo.
Nivel y Temperatura
sta es una variante del algoritmo de control de nivel en la que la proporcin de
caudales fro y caliente se decide para mantener una consigna de temperatura. Este
nuevo algoritmo est pensado para ensayos que requieran una entrada de agua a
temperatura constante en el intercambiador de calor cuando (por algn motivo) no se
pueda usar la resistencia del depsito.
Fig. 3.43 y 3.44: Esquemas del algoritmo.
Fig. 3.42: Calculo de la derivada.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.52
En este caso el usuario proporciona la consigna de temperatura para el depsito
y un PID ajusta la proporcin de caudales fro y caliente. Puesto que el caudal de
entrada es variable, la ganancia de este PID se autoajusta de acuerdo con la siguiente
frmula:
L
Q
K K
0

Donde K es la ganancia del controlador, Q es el caudal total de entrada, L es el


nivel de agua del depsito (que al ser cilndrico es proporcional a la masa de agua que
ste contiene) y K
0
es la ganancia base proporcionada por el usuario. Las unidades de
K
0
son
K cm
l
min
litros por minuto, centmetro y grado kelvin.
A diferencia del algoritmo de nivel, ste slo puede aplicarse cuando ambas
vlvulas estn configuradas como AUTO. Adems, para que el algoritmo funcione
correctamente, la vlvula de salida de agua (V6) debe estar abierta, de modo que el agua
del depsito se renueve constantemente.
La vlvula de recirculacin, la resistencia y las bombas se regulan igual que en
el algoritmo de nivel.
Temperatura
Todos los algoritmos anteriores tienen la posibilidad de mantener la temperatura
del agua del depsito usando la resistencia para calentarla. Sin embargo, ninguno de
ellos es capaz de enfriar el agua del depsito sin vaciarlo. Puesto que es posible que
varios ensayos consecutivos necesiten utilizar un mismo volumen de agua, y que sta se
encuentre a una temperatura ms fra en la situacin inicial que en la final. Si varios de
estos ensayos se hacen consecutivamente, se precisar un algoritmo para enfriar el agua
entre un ensayo y el siguiente. ste es el motivo por el que existe este ltimo algoritmo.
Los caudales de agua fra y caliente se regulan igual que en el algoritmo de
control de caudales. El caudal de agua de recirculacin, por el contrario, se calcula para
mantener una consigna de temperatura en el depsito. La resistencia del depsito
tambin puede usarse para alcanzar la referencia de temperatura (cuando sta es mayor
que la actual). La resistencia y el circuito de recirculacin no deben emplearse
simultneamente para mantener una determinada temperatura, ya que la accin de cada
una cancelara (en parte) la de la otra, lo que podra dar lugar a una saturacin de una de
las dos acciones de control. Para evitar que esto ocurra, se pone en marcha la bomba de
recirculacin o la resistencia en funcin de la desviacin en temperatura:
T
Ref
- M T
Ref
T
Ref
+ M

Bomba en parada
Sin cambios en la
bomba
Bomba en marcha
Resistencia
encendida
Sin cambios en la
resistencia
Resistencia apagada
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.53
T
Ref
es la temperatura de referencia, y M es un margen de temperatura
proporcionado por el usuario. De esta forma se mantiene la temperatura mediante un
control con histresis.
Cuando se regula con la resistencia, sta puede mantenerse encendida de forma
fija, o con modulacin PWM (igual que en los algoritmos anteriores). En cuanto al
circuito de recirculacin, la vlvula puede dejarse con una apertura fija (configurada en
MAN) o regular su apertura (en AUTO). En ste ltimo caso, se utilizan dos PIDs en
cascada: uno regula la temperatura devolviendo una consigna de caudal, mientras el otro
regula el caudal abriendo ms o menos la vlvula. Este segundo PID es el mismo que se
utiliza para el control de caudales.
Puesto que la consigna de caudal es ahora variable, en el PID de caudal se
deber hacer la derivada en el error, no en la variable del proceso.
Fig. 3.47: Clculo de las derivadas en el altorirmo.
Fig. 3.46: Esquema del control de temperatura mediante el circuito de recirculacin.
Fig. 3.45: Esquema del algoritmo.
Programacin y Supervisin de Planta Piloto Utilizada como Plataforma de Ensayo de Controladores Diseados en MATLAB Pag.54

También podría gustarte