Está en la página 1de 27

CONTROL AUTOMATICO DE LLENADO DE TANQUE

Ing. Fabin Ortiz


INTRODUCCION:
En el presente ejercicio se propone realizar el control automtico del llenado de un tanque, para
lo cual se debe tener las siguientes consideraciones:
-

Existen 2 sensores de nivel, 1 de mnimo y uno de mximo, los cuales podrn ser
cambiados de valor durante el funcionamiento del sistema.
El sistema de bombeo de entrada es automtico, es decir, basado en los niveles
establecidos por los sensores de nivel, la bomba de llenado debe o no enviar liquido al
tanque.
El sistema de descarga, si es de control manual, ya que existe una seal tipo switch,
pero nos permitir realizar el proceso de descarga del tanque.
Para el control, existir un Panel de Control, con un Pulsador de Inicio, un Pulsador de
Paro, un Boton/Switch de Emergencia y una llave para rearmado del sistema.
Se debe tener una pantalla de interfaz HMI para el manejo y visualizacin del sistema.

SOLUCION:
Para la solucin al problema, se utilizo el software TIA PORTAL V11, de SIEMENS, se realizo
una interfaz HMI dentro del mismo software, en donde se colocaron indicadores de nivel de
lquido, controles, grficas y sistemas de avisos y alarmas.

EJ_TANQUE_FABORTIZV_FIG1

Tambin se realizo el programa del PLC S7-300, el cual estar conectado al HMI y permitir la
simulacin del proceso.

EJ_TANQUE_FABORTIZV_FIG2

PROGRAMA EN KOP - TIA PORTAL SIEMENS


El programa lo he dividido en 4 partes, la MAIN OB1 que es la principal, y he creado 3 sub
bloques de funcin, con los cuales he organizado mejor el programa, para mantener un mejor
orden. Estos bloques de funcin, son los encargados de inicializar y control los botones de
start, stop, emergencia y rearmado; as como los que nos permiten generar las seales de reloj
o clock, para simular los procesos de LLENADO y DESCARGA del tanque.
Antes de explicar cada bloque del programa, se muestra la TABLA DE VARIABLES DEL PLC,
en donde se puede ver que se han utilizado algunas variables, y los Tags o nombres, han sido
cambiados para tener un mejor control sobre nuestro proceso.

TABLA VARIABLES DEL PLC:

EJ_TANQUE_FABORTIZV_FIG2

Estas variables y su uso, sern explicadas en cada seccin del programa del PLC, que se
muestra a continuacin.

BLOQUES DE PROGRAMA DEL PLC:


Se muestra en detalle cada bloque del programa

BLOQUE DE FUNCION NIV_INF_INIT


SEGMENTO 1:
Este bloque de programa nos permite empezar el proceso, lo que debemos es esperar la seal
del botn de inicio, correspondiente a la variable BTN_INICIO en la direccin M1.0, (ver tabla
de variables anterior).
Una vez que el botn BTN_INICIO, ha sido pulsado, seteamos la variable de control de inicio
de proceso FLAG_INIT en la direccin M0.0. y cuando es la primera vez que hemos pulsado

BTN_INICIO, tambin cargamos los valores iniciales de las variables de control de nivel inferior
NIV_LIM_INF(MW5) en 20, y la del control de nivel superior NIV_LIM_SUP(MW10) en 60.
Como la FLAG_INIT queda seteada, su contacto normalmente cerrado M0.0, se abre, entonces
aunque pulsemos nuevamente BTN_INICIO, esta rutina no se vuelve a ejecutar.

SEGMENTO 2:
Este segmento nos permite realizar el paro del proceso, ya que una vez que el proceso se
inicio la FLAG_INIT(M0.0) esta seteada por lo que sus contactos N/A estn ahora cerrados.
Por lo que esperamos la seal del botn de Paro BTN_PARO (M1.1), que cuando sea pulsado,
nos reseteara la FLAG_INIT (M0.0), por lo que el proceso de detendr.
Tambin tenemos la seal de la FLAG_EMERGENCIA (M0.1), que cuando se active tambin
har que el proceso de detenga, pero esta flag estar seteada hasta realizar el proceso de
rearmado del proceso.

SEGMENTO 3 Y 4:

En estos segmentos lo que hacemos es una vez que sea ha seteado FLAG_INIT, se setea
tambin la MEM_VALORES, que nos permite escribir una sola vez los valores iniciales de las
variables de nivel NIV_LIM_INF y NIV_LIM_SUP (ver segmento 1).

En el segmento 4, podemos ver como al recibir seal del botn o switch de emergencia
BTN_EMERG (M1.2), se setea la marca FLAG_EMERG (M0.1) que nos permitir parar el
proceso y bloquearlo su funcionamiento, hasta realizar el proceso de rearmado de todo el
sistema.

SEGMENTO 5 Y 6:

En estos segmentos podemos ver el proceso de REARMADO del sistema, ya que esperamos
la seal de la llave de rearmado, SW_REAR (M1.3), que nos permitir resetear la marca de
FLAG_EMERG(M0.1) con lo que nuestro proceso podr volver a funcionar.
Tambin con la misma seal de SW_REAR (M1.3), reseteamos la marca MEM_VALORES
(M2.0), con la que al volver a dar inicio a un proceso, volveremos a cargar los valores iniciales
por defecto de las variables de nivel NIV_LIM_INF y NIV_LIM_SUP.

BLOQUE DE FUNCION T1_CLOCK

En este bloque de funcin, lo que obtenemos es la generacin de la seal de clock, que nos va
a permitir simular el proceso de llenado de nuestro tanque.
Vamos a obtener una seal de pulsos cuadrada, con un periodo de 300 ms, con un ciclo de
trabajo de 50%, ya que el tiempo en bajo y el tiempo en alto del clock, son de 150 ms.
Para lograr la seal de clock, se uso 2 timers; uno configurado como ODTS, usado para dar el
tiempo de espera en LOW_STATE o T1_LOW, y el otro timer como PEXT, para generar el
tiempo en alto HIGH STATE o T1_HIGH.
Esta seal del clock est controlada por una marca EN_LLENADO (M7.0), que ser seteada en
el programa del PLC segn las condiciones de los sensores de nivel. (Recordar que el llenado
es automtico, por lo que la marca EN_LLENADO, deber saber cundo ponerse en SET y
cuando en RESET, teniendo en cuenta las seales de los sensores de nivel).
Para resetar el timer ODTS, se usa la misma seal generada por el timer PEXT, y del mismo
modo para desconectar el sistema de usa un contacto N/C del timer PEXT, pues cuando
termina su tiempo, este se cierra, volviendo a dar la seal de inicio de conteo al timer ODTS.
La salida de la seal de clock o reloj, dada en la marca T1_OUT_CLK (M4.0), es la seal que
nos servir para realizar el incremento del contador de nivel.

BLOQUE DE FUNCION T2_CLOCK

Este bloque es similar al anterior en su estructura y funcionamiento, solamente difiere en que


este timer de clock ser usado para el proceso de descarga o vaciado, por lo que su periodo es
mayor es de 1 segundo (T2_LOW =>500 ms + T2_HIGH =>500 ms).
La marca de activacin de este timer ser EN_VACIADO (M7.1) y la salida de clock ser
T2_OUT_CLK (M4.1); que ser usada para descontar el contador del nivel de lquido.

PROGRAMA PRINCIPAL MAIN OB1

En el Main OB1, estn incluidos los llamados a las subrutinas T1_CLOCK, T2_CLOCK y
NIV_INF_INIT, y tambin los segmentos de control de activacin de las marcas de
EN_LLENADO, EN_VACIADO, as como los controles de las marcas que hacen referencia al
estado de los sensor de nivel frente al nivel instantneo, su control y su activacin.

SEGMENTO 1:

Incluimos la subrutina NIV_INF_INIT explicada con anterioridad, y como tenemos definidas sus
entradas y salidas dentro de la misma subrutina no debemos colocar ningn contacto de
habilitacin o reseteo.

SEGMENTO 2:

En este segmento habilitamos la salida del LLENADO del tanque, para esto usamos una
estructura SET / RESET, con el nombre SET_RESET_LLENADO.
Para SETEAR la marca de LLENADO, necesitamos que la seal del FLAG_INIT(M0.0) se haya
cerrado (al pulsar botn de inicio); adems con un contacto NC de la FLAG_EMERG (que no
debe estar abierto), y que la seal del sensor del nivel inferior este activada, SENS_NIVEL_INF,
al darse estas condiciones la marca EN_LLENADO (M7.0) se setea.
Para RESETEAR la seal de LLENADO, se deben dar 1 de las 3 condiciones siguientes:
a) Que la marca FLAG_EMERG, haya sido activada con su botn BTN_EMRG.
b) Que se haya dado la orden de PARO con el BTN_PARO, con lo que la FLAG_INIT, se
resetea y su contacto NC usado se vuelve a cerrar reseteando EN_LLENADO.
c) Que el nivel actual dado por la variable NIVEL_CONT (MW20), sea mayor o igual al
nivel determinado por el sensor de nivel superior NIVEL_LIM_SUP.
Recordar que cuando la salida EN_LLENADO, est en estado SET, esta seal nos permite
activar el reloj de clock T1_CLOCK, o si EN_LLENADO est en RESET, el reloj T1_CLOCK,
queda desactivado.

SEGMENTO 3:

En este segmento controlamos de manera MANUAL, el proceso de DESCARGA, VACIADO o


SALIDA del lquido.
Para poder proceder con el proceso de DESCARGA, se debe activar la marca EN_VACIADO
(M7.1), para lo cual deben darse las siguientes condiciones:
a) Que el proceso de haya iniciado, es decir FLAG_INIT(M0.0) est seteada, que la
FLAG_EMERG(M0.1) no haya sido encendida, y que el SWITCH MANUAL de
descarga SW_DESCARGA (M0.7) haya sido cerrado de manera manual. Por
seguridad he colocado un contacto en paralelo con el SW_DESCARGA, que lo que
nos determina es que si el nivel actual de NIVEL_CONT es mayor que el nivel de
limite superior NIV_LIMI_SUP, este contacto se cierra, produciendo una
DESCARGA AUTOMATICA. Esta condicin se dar por ejemplo cuando el proceso
este PARADO, y desde el HMI se setee el valor del sensor de nivel superior con un
valor menor al que tiene en ese momento la variable de nivel NIVEL_CONT.
Recordar que cuando la salida EN_VACIADO, est en estado SET, esta seal nos permite
activar el reloj de clock T2_CLOCK, o si EN_VACIADO est en RESET, el reloj T2_CLOCK,
queda desactivado.
SEGMENTO 4:

Este segmento es el que nos ayuda a realizar el proceso de LLENADO Y/O VACIADO, ya que
nos permite incrementar y/o decrementar el contador del nivel NIVEL_CONT.
Usamos una estructura contador UP/DOWN, y usamos las ramas de CU count UP, CD count
DOWN, y reset R.
Para la estructura de COUNT UP CU funcione se deben dar las siguientes condiciones:
a) Que la salida del T1_OUT_CLK est habilitada (cada 300 ms), que la marca de
EN_LLENADO este en SET, determinada en el segmento 2 del programa; y que el nivel
actual del contador NIVEL_CONT sea menor o igual que el nivel del limite superior
seteado NIV_LIM_SUP. Cuando se den estas condiciones el nivel actual NIVEL_CONT
se incrementar en una unidad (cada 300ms por T1_CLOCK)
Para la estructura de COUNT DOWN CD funcione se deben dar las siguientes condiciones:
a) Que la salida del T2_OUT_CLK est habilitada (cada 1000 ms), que la marca de
EN_VACIADO este en SET, determinada en el segmento 3 del programa; y que el nivel
actual del contador NIVEL_CONT sea mayor o igual que el nivel del limite inferior
seteado NIV_LIM_INF. Cuando se den estas condiciones el nivel actual NIVEL_CONT
se decrementar en una unidad (cada 1000ms por T2_CLOCK)
Para la estructura de RESET R funcione se deben dar las siguientes condiciones:

a) Para que el contador NIV_CONT se resetee solo se debe cerrar el contacto de la


memoria RST_CONT, la cual estar manejada desde un botn en el HMI.

SEGMENTO 5 Y 6:

Estos segmentos son los de inclusin de las subrutinas de los timers de Clock T1_ CLOCK y
T2_CLOCK. No se necesitan contactos ni nada similar pues en las subrutinas estn los
contactos de habilitacin / reseteo necesarios.

SEGMENTO 7 Y 8:

En estos segmentos, solamente seteamos las marcas SENS_NIVEL_SUP


y
SENS_NIVEL_INF, que nos permitirn en el HMI el manejo de los LEDS INDICADORES del
estado de los sensores de NIVEL.
En el segmento 7, podemos ver el contacto de inicio FLAG_INIT, un contacto que nos
determina si el nivel actual NIV_CONT es menor o igual que el nivel superior NIV_LIM_SUP, y
finalmente un contacto NC, que depende del estado de la marca SENS_NIVEL_INF.
En el segmento 8, vemos que la SENS_NIVEL_INF, estar seteada mientras, se haya dado
inicio (FLAG_INIT seteada) y mientras el nivel del contador actual NIV_CONT sea menor que el
nivel limite inferior NIV_LIM_INF.

INTERFAZ HMI

La interfaz HMI consta de tres pantallas, las cuales sern explicadas a continuacin.

IMAGEN INICIO:

Esta pantalla es la pantalla INICIAL, con la que arranca la interfaz del HMI, como se puede ver,
est compuesta de algunos dispositivos de entrada y salida, a saber:

PANEL DE CONTROL:
-

Pulsador de INICIO o START.


Pulsador de PARO o STOP
Switch Paro de EMERGENCIA
Switch o Llave de REARMADO.

PANEL DE DESCARGA
-

Switch de Control de DESCARGA.

GRAFICA NIVEL VS TIEMPO.


LEDS INDICADORES DE ESTADO:
-

Sensor nivel superior


Sensor nivel inferior
Bomba de ingreso de lquido
Bomba de salida de lquido.

VISUALIZACION
-

Nivel mximo seteado


Nivel mnimo seteado
Nivel Actual Instantneo

BOTONES DE CONTROL
-

Subir / bajar nivel mximo


Subir / bajar nivel mnimo
Reseteo de contador de nivel actual.
Boton de salida de Runtime.

BOTONERAS DEL PLC


-

Funciones en botones F1 y F2.

FUNCIONAMIENTO DEL HMI INICIO


Para poder interactuar con el HMI, el programa del PLC debe estar cargado y corriendo en el
S7-PLCSIM.
Al pulsar el Boton de START, se inicia el proceso de llenado, y los leds de la bomba de llenado
indican en color verde que la bomba ha empezado a funcionar y llenar el tanque. Hay una
animacin de flechas que indican el sentido del lquido hacia el tanque.

PROCESO INICIADO

ESTADO INICIAL

Los leds indicadores del estado de los sensores de NIVEL siguen el proceso siguiente:
-

Si el nivel actual esta por debajo del nivel minimo, se encienden los LEDS ROJOS
indicando que el nivel esta fuera del rango de trabajo optimo.

DEBAJO NIVEL MINIMO

Cuando el nivel ha alcanzado el nivel minimo, el LED del SENSOR INFERIOR, cambia
de Rojo a VERDE, indicando que esta por encima del limite inferior y como esta dentro
del rango de histresis de trabajo,el LED del Sensor superior tambin cambia de Rojo a
Verde y se mantendrn asi dentro del proceso.

NIVEL HISTERESIS INICIO


-

NIVEL HISTERESIS MEDIO

Si el nivel actual sobrepasa el nivel Maximo Seteado, se produce un proceso de


descarga automtica hasta que el nivel del lquido vuelva a estar dentro del rango de
trabajo determinado entre los niveles mnimo y mximo.

NIVEL SUPERIOR SUPERADO


(DESCARGA AUTOMATICA)

N
IVEL HISTERESIS ALTO ALCANZADO
DENTRO DE RANGO DE TRABAJO

La interfaz HMI nos permite a travs de los botones laterales colocados a un lado de cada visor
de los niveles mximo y mnimo, setear sus valores, para realizar un control dinamico de los
rangos de trabajo del sistema de LLENADO y DESCARGA.

P
MODIFICAR VALORES MINIMO Y MAXIMO

ROCESO VUELVE A BUSCAR ESTAR


DENTRO DE RANGO DE TRABAJO

Para el proceso de Descarga, se debe activar el switch de DESCARGA, este es un proceso


Manual, pero la descarga funcionar solamente si el nivel actual del lquido esta dentro del
rango de trabajo que deseamos.

P
PROCESO DE DESCARGA INICIO

ROCESO DESCARGA MEDIO

Cuando el proceso de descarga, ha llegado al nivel minimo, se produce el encendido de la


BOMBA DE LLENADO, y como el LLENADO es mas rpido que la DESCARGA aunque siga
abierta la descarga, el proceso de LLENADO seguir llenando el tanque hasta volver a
alcanzar el nivel mximo, y se quedar en un ciclo constante dentro del rango de trabajo.
Cuando la descarga de deshabilita, y como el sistema est dentro del rango de histresis, no
se produce un proceso de llenado.

PROCESO LLENADO / DESCARGA


CONTINUO - INICIO LLENADO

PROCESO LLENADO DESCARGA CONTINUO


FIN LLENADO / INICIO DESCARGA

Con los botones del PLC:

F1: Se activa la imagen CURVA


F2: Se activa la imagen ALARMAS.

PROGRAMACION:
Para la programacin de esta pantalla de HMI se utilizaron, animaciones de Visibilidad, y
Eventos anexados a los distintos tipos de controles utilizados, por lo que se hizo necesario
anexar algunas variables del HMI con las Variables del PLC.

EVENTOS DE BOTONES

TABLA VARIABLES HMI

En la grafica anterior, se puede ver como realizamos el control de la variable NIVEL_CONT,


que esta ligada a las variables NIV_LIM_SUP y NIV_LIM_INF.

PROGRAMACION VISOR TIPO TANQUE


En esta grfica observamos cmo se asigna al VISOR TIPO TANQUE del nivel la variable
NIVEL_CONT, que ser la que se incrementa y/o decrementa segn la funcin de cmo este el
proceso. (llenado y/o descarga)

IMAGEN CURVA:

HMI IMAGEN CURVA

En esta imagen del HMI, podemos ver de mejor manera la Grfica de Nivel de Liquido Vs.
Tiempo. Y tenemos controles de los niveles mximo y minimo, similares a los utilizados en la
pantalla anterior del HMI, asi como los visores donde vemos los valores de estos niveles y el
nivel actual del NIVEL_CONT.
Tenemos tambin un par de LEDS indicadores que nos muestran si el Proceso se encuentra en
de estado de LLENADO Y/O DESCARGA.
Y un botn de Stop Runtime, para salir de la aplicacin.
Con los botones del PLC:

F1 Retornamos a la pantalla anterior del HMI INICIO


F2 Nos abre la imagen de ALARMAS.

FUNCIONAMIENTO:
Cuando el proceso arranca veremos una imagen similar a la siguiente, dependiendo del estado
del proceso.

IMAGEN ALARMAS:

HMI ALARMAS
En esta imagen del HMI, podemos ver de una pantalla de AVISOS o ALARMAS y ERRORES,
que nosotros podemos programar dentro de las propiedades de una variable, para tener un
mejor control sobre el proceso. Se tiene adems un botn de Stop Runtime, para salir de la
aplicacin.
Con los botones del PLC:

F1 Retornamos a la pantalla anterior del HMI INICIO


F2 Nos abre la imagen de CURVA.

PROGRAMACION
Para la programacin de los eventos de avisos de alarma o errores, se usa la tabla de variables
del HMI y en la variable que se desea realizar el control, se le genera los eventos deseados:

FUNCIONAMIENTO:
Cuando el proceso arranca veremos una imagen similar a la siguiente, dependiendo del estado
del proceso.

CONCLUSIONES:

El presente ejercicio, nos ensea la manera correcta de poder realizar la


automatizacin de un proceso usando un PLC, y con la ayuda de la interfaz visual
de un HMI, para posibilitar al usuario una clara idea del proceso que se automatiza y
adems poder controlarlo.
Es ms sencillo utilizar nuestra propia denominacin en los Tags de los contactos y
variables, ya que as nos ayuda a tener una programacin ms ordenada.
Estos ejercicios, a pesar de ser introductorios, nos dan las bases para poder seguir
aprendiendo y profundizando conocimientos sobre las ltimas tecnologas para
automatizar procesos.