Anda di halaman 1dari 103

MONITORIZACIÓN DE

COLUMNAS DE
DESTILACIÓN

Proyectistas
Manuel González Diosdado
Enrique Pérez Zanón

Especialidad
Química Industrial

Profesor ponente
Moisés Graells Sobre

Barcelona, 22 de Junio de 2004


MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

2 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

RESUMEN
El proyecto que se describe a continuación trata sobre la aplicación de la tecnología
informática a procesos químicos, como los que se realizan en la planta piloto del
laboratorio de Ingeniería Química de la EUETIB.
El proceso químico escogido en este caso es la destilación con rectificación, ya que
en el laboratorio se dispone de columnas que lo realizan.
En una primera parte del proyecto se realiza el diseño de la columna virtual con la
que se simula el proceso real que se lleva a cabo en la planta piloto del laboratorio,
usando el software de simulación HYSYS.
Posteriormente se crean dos aplicaciones con el software de programación Delphi
que permiten acceder a los datos de la simulación, variarlos para crear un entorno
dinámico, y transmitirlos, utilizando el protocolo de comunicación TCP/IP, desde un
computador en contacto directo con la columna a cualquier otro computador con acceso
a Internet que monitorizará los datos procedentes de la columna simulada permitiendo al
usuario ver la evolución del sistema.
Finalmente se describe la posibilidad de adaptar el sistema de comunicación a la
columna real del laboratorio mediante dispositivos electrónicos.

3 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

RESUM
El projecte que es descriu a continuació tracta sobre l’aplicació de la tecnologia
informàtica a processos químics, com els que es realitzen a la planta pilot del laboratori
d’Enginyeria Química de l’EUETIB.
El procés químic triat en aquest cas es la destil·lació amb rectificació, degut a que
en el laboratori es disposa de columnes que el realitzen.
En una primera part del projecte es realitza el disseny de la columna virtual amb la
qual es simula el procés real que es porta a terme a la planta pilot del laboratori, fent
servir el software de simulación HYSYS.
Posteriorment es creen dues aplicacions amb el software de programació Delphi
que premeten accedir a les dades de la simulació, variarles per crear un entorn dinàmic,
y transmetre’ls, utilitzant el protocol de comunicació TCP/IP, des d’un computador en
contacte directe amb la columna fins a cualsevol altre computador amb accés a Internet
que monitoritzarà les dades procedents de la columna simulada permetent a l’usuari
veure l’evolució del sistema.
Finalment es descriu la posibilitat d’adaptar el sistema de comunicació a la columna
real del laboratori mitjançant dispositius electronics.

4 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

SUMMARY
The project that is described next deals with the application of the computer
technology to chemical processes, as those in the plant pilot of the laboratory of
Chemical Engineering of the EUETIB.
The chemical process selected for this study is the distillation with rectification,
since the laboratory has several columns of this type.
In the first part of the project a virtual column is designed by simulating the real
process carried out in the pilot plant of the laboratory. The HYSYS simulation software
is used for this purpose.
In the second part, two applications are developed to allow accessing and changing
the simulation data within a dynamic environment. A column directly linked to a server
computer is allowed to be monitored by any other client computer with access to
Internet. Therefore a remote user will be able to record the data coming from the
simulate column and allowed to see the system evolution. The Delphi software and the
communication protocol TCP/IP will be used for achieving this goal.
Finally the opportunities for adapting the communication system developed to a
real column monitored by means of electronic devices are analysed and described.

5 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

AGRADECIMIENTOS
En primer lugar queremos expresar nuestro más sincero agradecimiento a Moisés
Graells y a Gerard Escudero por la ayuda que nos han prestado durante toda la
realización del proyecto, ofreciéndonos sus conocimientos sobre el tema, su experiencia
y su tiempo.
Queremos dar las gracias también a Javier Castel, Iris Bargalló, David Alemany,
Anna Subirana, Carles Soldevila, Beatriz Corzo, Beatriz Gallego, Rubén Fernández,
Esther De Miguel, Lidia Hernández y Javier Vizcaya, compañeros de la universidad,
por habernos dado su apoyo y por bajar al laboratorio a visitarnos cuando han podido.

Por último agradecer al resto de profesores y compañeros de la EUETIB el


habernos soportado durante tres años.

Barcelona, 22 de Junio de 2004 Manuel González Diosdado


Enrique Pérez Zanón

6 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

ÍNDICE
1. INTRODUCCIÓN ............................................................................................................................9
1.1. ANTECEDENTES..................................................................................................................11
1.1.1. INTRODUCCIÓN...............................................................................................................11
1.2. MÉTODOS DE CÁLCULO PARA EL DISEÑO DE COLUMNAS ......................................15
1.3. ESQUEMA GENERAL DE UNA COLUMNA DE DESTILACIÓN.....................................15
1.4. DESCRIPCIÓN DE LAS COLUMNAS .................................................................................16
1.4.1. Columna de rectificación (10 platos) .................................................................................16
1.4.2. Columna de rectificación (anillos Dixon) ..........................................................................18
1.4.3. Columa de rectificación (anillos Raschig) .........................................................................19
1.4.4. Columna modelada por ordenador ....................................................................................21
1.5. CONTROL DE VARIABLES.................................................................................................22
1.5.1. Variables del sistema..........................................................................................................22
1.5.1.1. Variables de medición............................................................................................................. 24
1.5.1.2. Variables de actuación ............................................................................................................ 26
2. OBJETIVOS....................................................................................................................................27
3. INTRODUCCIÓN A LOS SIMULADORES ...............................................................................29
3.1. LOS SIMULADORES EN LA INDUSTRIA..........................................................................29
3.2. PROGRAMAS DE SIMULACIÓN ........................................................................................29
4. DESCRIPCIÓN Y CARACTERÍSTICAS DE HYSYS ..............................................................31
4.1. ÁMBITO DE APLICACIÓN ..................................................................................................31
4.2. CARACTERÍSTICAS GENERALES.....................................................................................31
4.3. TIPOS DE SIMULACIÓN CON HYSYS...............................................................................31
4.4. HYSYS EXTENSIBILITY .....................................................................................................32
5. SIMULACIÓN DE COLUMNAS DE DESTILACIÓN ..............................................................33
5.1. INTRODUCCIÓN A LA SIMULACIÓN CON HYSYS ........................................................33
5.2. COLUMNA DE DESTILACIÓN-RECTIFICACIÓN ............................................................33
5.2.1. Parámetros iniciales...........................................................................................................33
5.2.2. Diseño de la columna .........................................................................................................35
5.2.3. Creación de la columna......................................................................................................40
5.2.4. Adaptación de la columna real a la simulación .................................................................44
6. COMUNICACIÓN .........................................................................................................................46
6.1. INTRODUCCIÓN...................................................................................................................46
6.2. LENGUAJES DE PROGRAMACIÓN ...................................................................................48
6.2.1. Lenguajes imperativos........................................................................................................48
6.2.2. Lenguajes funcionales ........................................................................................................49
6.2.3. Lenguajes lógicos ...............................................................................................................49
6.2.4. Lenguajes concurrentes, paralelos y distribuidos ..............................................................50
6.2.5. Lenguajes orientados a objetos ..........................................................................................51
6.3. CRITERIOS DE SELECCIÓN................................................................................................53
6.4. INTRODUCCIÓN A DELPHI 7 .............................................................................................55
6.4.1. Ventana principal ...............................................................................................................55
6.4.2. Ventana de programa (Form).............................................................................................56
6.4.3. Inspector de objetos (Object Inspector)..............................................................................57
6.4.4. Editor de código fuente (Unit)............................................................................................58

7 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.5. COMUNICACIÓN HYSYS-DELPHI ....................................................................................59


6.5.1. Objetos OLE en HYSYS ......................................................................................................59
6.5.1.1. Acceso a HYSYS .................................................................................................................... 60
6.5.1.2. Lectura de HYSYS.................................................................................................................. 61
6.5.1.3. Escritura en Excel ................................................................................................................... 61
6.5.1.4. Escritura en HYSYS ............................................................................................................... 62
6.5.2. Objetos OLE en Delphi.......................................................................................................63
6.5.2.1. Acceso a HYSYS .................................................................................................................... 63
6.5.2.2. Lectura de HYSYS.................................................................................................................. 64
6.5.2.3. Escritura en Delphi.................................................................................................................. 64
6.5.2.4. Escritura en HYSYS ............................................................................................................... 65
6.6. COMUNICACIÓN TCP/IP.....................................................................................................66
6.6.1. Introducción al protocolo TCP/IP......................................................................................66
6.6.2. Comunicación TCP/IP en Delphi .......................................................................................67
6.6.2.1. Indy Client .............................................................................................................................. 69
6.6.2.2. Indy Server.............................................................................................................................. 73
6.7. CREACIÓN Y DISEÑO DE LA APLICACIÓN “SERVIDOR” ............................................74
6.7.1. Introducción .......................................................................................................................74
6.7.2. Interfaz de usuario..............................................................................................................74
6.7.2.1. Simulación .............................................................................................................................. 75
6.7.2.2. Condiciones del flujo de entrada ............................................................................................. 75
6.7.3. Funcionalidad ....................................................................................................................76
6.7.4. Comandos auxiliares ..........................................................................................................77
6.8. CREACIÓN Y DISEÑO DE LA APLICACIÓN “CLIENTE”................................................78
6.8.1. Introducción .......................................................................................................................78
6.8.2. Interfaz de usuario..............................................................................................................78
6.8.3. Funcionalidad ....................................................................................................................80
6.8.4. Comandos auxiliares ..........................................................................................................80
6.9. DIAGRAMA RESUMEN .......................................................................................................81
7. ADAPTACIÓN DEL SISTEMA A COLUMNAS REALES ......................................................82
7.1. SENSORES DE TEMPERATURA.........................................................................................82
7.2. REGULADORES DE POTENCIA .........................................................................................82
7.3. VÁLVULAS ...........................................................................................................................83
8. DEMO..............................................................................................................................................84
9. EVALUACIÓN ECONÓMICA.....................................................................................................85
9.1. DETALLE DE LOS GASTOS ................................................................................................85
10. CONCLUSIONES......................................................................................................................87
10.1. ESQUEMA RESUMEN..........................................................................................................89
11. BIBLIOGRAFIA........................................................................................................................90

8 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1. INTRODUCCIÓN
Hoy en día las principales industrias químicas hacen operar a gran escala todo tipo
de instrumentación para llevar a cabo procesos químicos como destilaciones,
absorciones, intercambios iónicos, extracciones, etc. Pero gracias al avance tecnológico
estas plantas, y cada vez con más frecuencia, son controladas remotamente desde
computadores, mucho más potentes que los que normalmente se usan a nivel de usuario,
que permiten que los ingenieros que llevan a cabo las operaciones se introduzcan dentro
del entorno del proceso.
El entorno del proceso es algo que el ingeniero debe conocer para poder tener una
visión lo más detallada posible de lo que se lleva a cabo. Esto es difícil de realizar ante
las dimensiones que suele presentar la instrumentación de los procesos industriales,
como son tanques con grandes volúmenes o columnas con grandes longitudes. Esta
tarea se puede facilitar si trasladamos la realidad de los procesos industriales, con todo
su instrumental, a un monitor que refleje todos los detalles del mismo, de manera que
se pueda controlar cualquier parte del proceso operando desde el computador.
La monitorización de procesos industriales permite crear este entorno idóneo para
obtener el máximo rendimiento y fiabilidad del proceso. La monitorización tiene su
fundamento en convertir las señales físicas que proceden del instrumental del proceso,
como puedan ser temperaturas, presiones, caudales, composiciones, conductividades,
etc. y convirtiéndolas en señales electrónicas capaces de ser leídas por un computador.
El paso de la señal física a la señal electrónica es tarea de instrumentos con capacidad
de hacer esta conversión, como sensores de temperatura, medidores de caudal,
conductímetros, etc.
Pero no solo la monitorización facilita la tarea de los ingenieros, sino que otros
métodos de trabajo como son las simulaciones de procesos permiten facilitar más si
cabe esta tarea. La simulación de un proceso consiste básicamente en reproducir de
manera virtual la realidad de un proceso o aproximarse lo máximo posible a esta
realidad. El principal objetivo de una simulación es obtener la mayor cantidad de
información posible sobre el proceso para disminuir en la medida que se pueda los
errores que se deriven del mismo, así como hacer una previsión del rendimiento del
proceso y conocer su rentabilidad, tanto material o energética como económica.
Tanto la simulación de procesos como la monitorización de los mismos es sin duda
una ventaja para los ingenieros; además esta ventaja irá aumentando conforme avance la
tecnología que permita realizar este tipo de tareas como son computadores más potentes
y como consecuencia de ello simuladores más eficientes.

9 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El proyecto que se lleva acabo en este estudio trata sobre la simulación de un


proceso de destilación con rectificación y la monitorización de las variables del mismo
para su control. Para la transmisión de los datos desde la simulación hasta el
computador que los monitorizará se ha introducido otro de los campos que más rápido
avanzan con las nuevas tecnologías como es la comunicación a través de redes
informáticas, es decir, a través de Internet.
La motivación que ha dado pie a la realización de este proyecto es la de iniciar un
proceso de monitorización de la planta piloto del departamento de química de la
EUETIB. La planta piloto del laboratorio es el lugar donde se reúne todo el instrumental
necesario para reproducir procesos similares a los que se puedan dar en una industria
química, y como ya se ha dicho, la mayoría de ellas trabaja con computadores que
controlan estos procesos.
La idea del proyecto surge por la necesidad de hacer llegar al máximo número de
personas, en este caso estudiantes, las nuevas tecnologías de las que se dispone
actualmente, como el uso Internet con fines docentes o el manejo de programas
informáticos aplicados a procesos químicos. De esta manera se pretende dar un primer
paso en la implementación de estos recursos.

Figura 1.1 Figura 1.2

10 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.1. ANTECEDENTES
Se ha introducido en este apartado parte de la memoria del anteproyecto iniciado
anteriormente, con el objetivo de no volver a repetir conceptos que se van usando a lo
largo de todo el documento.

1.1.1. INTRODUCCIÓN
La destilación es una operación unitaria que básicamente consiste en la separación
o fraccionamiento de los componentes de una mezcla, en función de sus temperaturas de
ebullición y aprovechando las diferentes volatilidades de dichos componentes.
En el proceso de destilación tienen lugar fenómenos de transferencia de materia
mediante el contacto entre la fase liquida y la fase vapor, de manera que en el vapor se
concentran los componentes más volátiles y en el líquido los menos volátiles.
Existen varios tipos de destilación dependiendo de cómo se lleve a cabo la
operación. De esta manera podemos distinguir entre los siguientes.

Destilación simple
Consiste en la vaporización parcial del líquido con producción de una cantidad de
vapor más rica en componente volátil que el líquido inicial y un residuo más
concentrado en los componentes menos volátiles. Hay dos tipos, la flash (o cerrada) y la
abierta (o diferencial).

Destilación flash o cerrada


También denominada destilación de equilibrio consiste en vaporizar una
determinada fracción del líquido de manera que el vapor generado esté en equilibrio con
el líquido residual, separar el líquido del vapor y condensar finalmente este vapor. Para
la realización de este tipo de destilación es necesaria una instalación adjunta, donde se
calienta el producto a destilar hasta la temperatura deseada y se descarga luego en un
recipiente de presión reducida donde se produce la vaporización y la consiguiente
separación. Este tipo de destilación suele realizarse forma continua.

Destilación diferencial o abierta


Este tipo de destilación se caracteriza por la retirada continua de los vapores
producidos del espacio gaseoso y que posteriormente son llevados a un condensador
para su recogida, con esto se consigue un empobrecimiento en componente más volátil
del líquido a tratar.

11 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Rectificación
Este tipo de destilación se diferencia del resto en que por el interior de la columna
de rectificación se hace circular en contracorriente con el vapor ascendente una fracción
de este que ha sido condensada en la parte superior de al columna, esto permite el
contacto entre ambos con la intención de que este vapor y el líquido descendente
circulen en equilibrio.
En la parte inferior de la columna existe un calderín donde se hace hervir
continuamente la mezcla con los componentes a separar, aportando vapor ascendente a
la columna. En la parte superior de la columna encontramos un condensador que es el
que suministra el líquido descendente también llamado reflujo; el funcionamiento
correcto del condensador es imprescindible para que haya rectificación.
Existen dos tipos de columnas de rectificación, la de platos y la de relleno. La
primera es una cámara cilíndrica vertical subdividida a intervalos regulares por platos.
En cada uno de estos platos se pone el contacto el líquido con el vapor y se les obliga a
seguir caminos distintos, uno ascendente y el otro descendente. Los platos teóricos o
platos de equilibrio son una variable esencial en el diseño de columnas de rectificación,
ya que los platos teóricos, como se ha dicho en la introducción, son los que
determinaran el tiempo de contacto entre el líquido evaporado y el vapor generado,
cuantos más platos tenga la columna mejor rendimiento y eficacia se sacara de ella y
más “puro” será el vapor obtenido en la parte superior de la columna.
La rectificación en columnas de relleno es igual que la anterior pero en este caso se
substituye la columna de platos por una torre vertical rellena de un material de forma
apropiada para el buen contacto entre el líquido y el vapor. Este material puede tener
diversas formas, de anillo, de silla de montar, etc. y puede ser diversos materiales como
porcelana, vidrio, carbón o metal. Este relleno ejerce una función equivalente a la de los
platos pero no igual, ya que en la columna de platos la variación de la concentración es
discontinua, varia al pasar de plato a plato, y en la torre de relleno lo hace de forma
continua a lo largo de la columna. Las principales ventajas de la columna de relleno son
su sencillez constructiva y la pequeña perdida de presión a su través.
En toda columna de destilación existen dos zonas claramente diferenciadas:

• La zona de enriquecimiento, que comprende desde el plato de entrada de la


alimentación hasta la cabeza de destilación, y es la zona en la que el líquido
se va enriqueciendo en componente más volátil.
• La zona de agotamiento, que comprende desde el plato de entrada de la
alimentación hasta el calderón, y es la zona en que el líquido se va
empobreciendo en componente más volátil.

12 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

De estos diferentes tipos de destilación la más usada actualmente en la mayoría de


industrias es la rectificación debido entre otras cosas por su importancia económica y su
eficiencia a la hora de contrastar resultados.
La característica más importante que diferencia una destilación simple de una
rectificación es que en la rectificación una fracción del vapor que sale por la parte
superior de la columna es condensada y reintroducida en ella como reflujo.
La rectificación puede dividirse en diferentes procesos según el flujo de materia con
el que se trabaja en la columna. Si el proceso trabaja por cargas y no entra ni sale
materia durante él, hablamos de un proceso discontinuo. En cambio si el proceso tiene
lugar con una alimentación que hace que la composición del calderín se mantenga
constante, hablamos de un proceso continuo.
El reflujo de las columnas consiste en volver a condensar parte del vapor que sale
por la parte superior de la columna, este condensado desciende por la columna
arrastrando con el los componentes más pesados, mientras que los más volátiles son
arrastrados por el vapor hacia arriba. La relación entre el caudal de reflujo y el caudal
del producto final obtenido es conocida como relación de reflujo y se simboliza con
L/D.
Esta relación de reflujo hace que las columnas de rectificación tengan dos límites:

Reflujo mínimo
Bajo estas condiciones no vuelve suficiente líquido a la columna como para
enriquecer el vapor que sube por la misma respecto a los componentes más ligeros, de
esta manera entre un piso y otro no existe ninguna transferencia de materia, ya que las
corrientes que se cruzan están en equilibrio y así permanecerán. Haría falta un número
infinito de platos para que en cada uno de ellos hubiera un cambio infinitesimal de las
composiciones, proceso que se considera como ideal.

Reflujo total
En este caso todo el vapor obtenido en la parte superior de la columna seria
devuelto como condensado, de manera que no se obtendría ningún producto.
Trabajando a reflujo total la posición de la entrada del caudal de alimentación no influye
en los posteriores cálculos.

Reflujo óptimo
Si la relación L/V (entendiéndola como la relación entre el caudal de líquido que
desciende por la columna y el caudal de vapor ascendente) aumenta, disminuye el
número de platos de la columna, con lo que también se reduce la altura de esta pero su
diámetro aumenta. En este caso, para obtener un mismo caudal de destilado, aumenta el
consumo de calor y con ello se encarece el proceso, aumenta el coste de
funcionamiento.

13 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Si la relación de reflujo disminuye acercándose al reflujo mínimo, serian necesarios


muchos platos de menor diámetro, con ello se encarecería la construcción de la
columna, aumentando el coste inicial.
El reflujo óptimo es la relación de reflujo que corresponde al coste total mínimo:

Coste total = Coste inicial + Coste de funcionamiento

14 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.2. MÉTODOS DE CÁLCULO PARA EL DISEÑO DE


COLUMNAS
Los dos métodos más usados para el diseño de columnas son el método de
McCabe-Thiele y el método de Ponchon-Savarit. Ambos son métodos de cálculo
gráfico para procesos de múltiples etapas.
El método de McCabe-Thiele se fundamenta en la aplicación de los balances de
materia y de energía en la unidad de rectificación, sin tener en cuenta la entalpía del
proceso y aceptando una serie de hipótesis prefijadas con anterioridad:
• Los calores molares son aproximadamente constantes e iguales.
• Los calores latentes molares son constantes e iguales.
• La columna trabaja en condiciones adiabáticas.
• El calor de mezcla es despreciable.
• En cada uno de los platos se alcanza el equilibrio después del contacto entre
el líquido y el vapor.
El método de Ponchon-Savarit, a diferencia del método de McCabe-Thiele, se
fundamenta en balances de materia y energía, pero teniendo en cuenta las variaciones de
entalpía que se producen durante la rectificación.

1.3. ESQUEMA GENERAL DE UNA COLUMNA DE


DESTILACIÓN
CONDENSADO

BIDÓN DE
REFLUJO
ZONA DE REFLUJO
ENRIQUECIMIENTO

DESTILADO
ALIMENTACIÓN

ZONA DE
AGOTAMIENTO SUMINISTRO
DE CALOR

CALEFACTOR

RESIDUO PERDIDA DE
CALOR

Figura 1.3

15 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.4. DESCRIPCIÓN DE LAS COLUMNAS


1.4.1. Columna de rectificación (10 platos)
Esta columna es una columna de rectificación de platos (será la única columna de
platos reales que se usará en el estudio) de aproximadamente 1 metro de longitud,
contando el refrigerante y el balón o caldera donde irá la mezcla, hecha de vidrio y
esmerilada por sus extremos para facilitar su adaptación a balones, matraces o
refrigerantes.
La columna (figura 1.4) está dotada de 10 platos de borboteo de tipo campana en
los que se produce el contacto entre el líquido y el vapor. Tiene instaladas a lo largo del
cuerpo de la columna dos pequeñas llaves para toma de muestras en los platos quinto y
décimo, para poder llevar analizar la composición de la mezcla en dos puntos del
proceso.

H2O
10

H2O
11 1, 2. Tubulares laterales para la
8 instalación de termómetros (cuarto y
3 noveno plato)
1
3, 4. Llaves para toma de muestras
(quinto y décimo plato)
4 5. Calderin
2
6. Manta calefactora

7. Regulador de potencia de la manta

8. Cabezal

9. Refrigerante Dimroth

10. Entrada de agua de refrigeración


5

11. Salida de agua de refrigeración

6
7

Figura 1.4
16 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

También posee dos tubulares laterales para la instalación de termómetros en los platos
cuarto y noveno, para controlar la temperatura del proceso.
Se puede considerar que el circuito de refrigeración es una parte del montaje de la
columna, ya que la condensación del vapor que se produce en él es imprescindible para
el desarrollo de la destilación. Lo mismo ocurre con la manta calefactora y el regulador
de potencia manual al que esta acoplado.

17 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.4.2. Columna de rectificación (anillos Dixon)


Esta es una columna de relleno (figura 1.5) de 1 metro de longitud sin tener en
cuenta los accesorios y 25 mm de diámetro, con doble pared cerrada al vacío y plateada.
Dispone de un fuelle de vidrio para impedir su rotura por contracción o dilatación y de
una franja longitudinal sin platear para observar el interior de la columna.
Su interior esta provisto de anillos Dixon 3 x 3 mm. construidos en malla de acero
inoxidable dispuestos al azar para obtener la mayor superficie de contacto posible.
En pleno funcionamiento todos los agujeros de la malla quedan cerrados por una
finísima película.
El estudiado diseño de estos anillos impide la formación de gotas o caminos
preferentes en el interior del relleno.

5 4

12
Matraz 3 bocas de 2 litros con llave Rotaflo
3 6 Columna 25 mm. Diámetro interno y 1 m. de altura
con doble pared cerrada al vacio.
8 Cabeza de columna automática Quickfit.
Temporizador.
9 Solenoide.
Refrigerante Liebig-West 25 cm.
2 Reductor rotula.
Colector-Separador Bertrand .
Matraz de fondo redondo de 100 mL.
Regulador de potencia 6 Amperios.
Manta calefactora con orificio y trípode para matraz de
12 2 litros.
Termómetros.
7 1

11 10

Figura 1.5

18 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.4.3. Columa de rectificación (anillos Raschig)


Este equipo de destilación/rectificación (Figura 1.6) tiene una altura aproximada de
3 metros. Esta provisto de una columna de relleno con anillos Raschig en su interior;
estos anillos hechos de vidrio no poroso ofrecen la máxima resistencia al choque
térmico, están dispuestos aleatoriamente para hacer aumentar la superficie de contacto
entre el vapor que asciende por la columna y el liquido que desciende.
Posee una manta calefactora compuesta por 4 resistencias las cuales pueden
conectarse independientemente, y están dispuestas de arriba a abajo, lo que nos permite
tener distintos niveles de volumen de alimentación, y según sean estos, conectaremos
más o menos resistencias. Hemos de tomar la precaución de que el nivel de
alimentación esté siempre por encima de la última resistencia conectada.
El refrigerante de los vapores extraídos por la cúspide está colocado para licuar y
proporcionar el reflujo descendente a la columna, requisito imprescindible para que
haya rectificación.

1. Matraz hervidor con salida


2. Receptor de destilación
3. Cuerpo de la columna
(anillos Raschig)
4. Cabeza de flujo y condensador
inverso
5. Condensador final
6. Terminal de unión
7. Alojamiento para termómetro
8. Termómetro
9. Tapa ciega
10. Tubo de estructura
11. Válvula de descarga
12. Electroimán
13. Conector (columna/receptor)
14. Conector (electroimán/cond.)
15. Conector (estructural)
16. Unión de tubería para la
introducción de termómetro
17. Tapón
18. Estructura de soporte

Figura 1.6

19 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El reflujo puede controlarse mediante un temporizador conectado al electroimán, lo


que nos permite un control automático del mismo, con una relación de reflujo que
podemos variar de 1/1 hasta 1/50 y los inversos correspondientes.
La presión máxima de utilización del agua es de 4 atm. Debido a la resistencia del
vidrio de borosilicato del que está construido el aparato, esta presión se puede regular
mediante un manómetro.
Las temperaturas de los vapores de alimentación y rectificación nos permiten
conocer las distintas concentraciones interpolándolas en las gráficas correspondientes.

20 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.4.4. Columna modelada por ordenador


Otro tipo de columna, que son posiblemente las que mejor puede controlarse desde
un dispositivo automático, son las columnas modeladas por ordenador mediante un
software informático apropiado para ello. En este caso el software usado para el diseño
de una columna de rectificación en planta piloto es el HYSYS 3.1.
Las columnas diseñadas por ordenador presentan una serie de ventajas e
inconvenientes:
• tiene la ventaja de poder hacer cuantas pruebas sean necesarias para prefijar
las variables, es decir, podemos repetir el proceso cuantas veces haga falta
para poder mejorar las condiciones y llegar a un estado óptimo de
funcionamiento.
• se pueden variar todos los parámetros necesarios, como concentraciones,
temperaturas o presiones con el mínimo desgaste económico y de tiempo.
• al no ser una columna real se corre el riesgo de hacer suposiciones que
posteriormente puestas en práctica con columnas reales puedan conducir a
error.
• para diseñar una columna correctamente es necesario invertir gran cantidad
de tiempo en el dominio del programa, lo que aumenta el tiempo total de
realización del estudio.
El esquema general de una columna de destilación modelada con el software
informático HYSYS 3.1 se puede ver representado en la figura 1.7.

Figura 1.7
21 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.5. CONTROL DE VARIABLES


Para el estudio de las columnas de destilación es imprescindible mantener un
control sobre las variables más relevantes, conocer sus valores a lo largo del proceso y
poder actuar sobre ellas en el momento en que sea preciso. El conocimiento de estos
valores y su posible regulación es importante para verificar el buen funcionamiento de
la columna y poder realizar los posteriores cálculos. La información que nos da la
columna cuando esta en funcionamiento consta de variables físicas, como pueden ser la
temperatura, el caudal, la presión de trabajo, etc. Para poder controlar todo este tipo de
variables es necesaria la utilización de transductores, encargados de efectuar la
transposición de las variables físicas en variables eléctricas. De esta manera desde un
dispositivo automático se pueden regular todas las condiciones que una columna de
rectificación requiere para su buen funcionamiento.

1.5.1. Variables del sistema


Se necesita controlar:

Temperatura en el calderín.
Es necesario un control de la temperatura para conseguir una situación lo más
parecida posible al equilibrio, ya que un exceso en la potencia suministrada en el
calderín puede provocar un aumento de temperatura muy rápido habiendo menos
tiempo de contacto entre el vapor y liquido, lo que implica un condensado en la parte
superior de la columna con una baja pureza haciendo disminuir la eficacia de la
columna.

Temperatura en la parte superior de la columna.


Es necesario un control para asegurar que la temperatura en este punto es lo más
parecida posible a la de ebullición del componente más volátil de la mezcla.

Relación de reflujo.
Controlar esta variable es importante para conseguir un caudal del reflujo óptimo
que permita obtener una máxima pureza en el destilado con el mínimo gasto posible.

Caudal en la salida de condensados.


La medición de esta variable es importante para la determinación del coste de
funcionamiento y el posterior cálculo del reflujo óptimo.

22 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Potencia calorífica de la manta.


Actuar sobre esta variable es importante para conseguir una correcta ebullición de
la mezcla, en la que las temperaturas de equilibrio en los diferentes puntos de la
columna sean las adecuadas.

Presión del agua de refrigeración.


Es importante el control de la presión de refrigeración con el manómetro por una
cuestión de seguridad, ya que la resistencia del vidrio de borosilicato con el que esta
construido el aparato solo soporta una presión máxima de utilización del agua de 4
atmósferas.

Composición de la mezcla.
Es necesario saber y poder controlar las concentraciones de los componentes al
principio y al final del proceso para determinar el grado de pureza del destilado y del
residuo.

Composición de la mezcla en los platos 5 y 10.


En el caso de la columna de platos es importante saber estas composiciones para
poder determinar la recta de operación y conocer el plato idóneo para la entrada de la
alimentación, además es necesario para el calculo de los platos teóricos y de la eficacia
de la columna.

Nivel en el calderín.
Es importante conocer el nivel de mezcla en el calderín para poder determinar la
cantidad de calor apropiada en cada momento del proceso, porque para el buen
funcionamiento de la manta calefactora sus resistencias tienen que estar por debajo del
nivel del líquido a destilar.
Las variables del sistema se pueden dividir en dos grupos, las variables a medir y
sus correspondientes variables de actuación.

23 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.5.1.1.Variables de medición
De este tipo de variable nos interesa conocer su valor en cada momento del proceso
para verificar el buen funcionamiento de la columna y asegurarnos de que se cumplen
los objetivos preestablecidos, como puede ser llegar a un grado de pureza del destilado
determinado.
De las diferentes variables del sistema, se considera que la temperatura, el caudal,
la presión, la composición y el nivel de líquido en el calderín son las que mejor definen
el sistema y es importante conocer sus variaciones para poder actuar en consecuencia.
Para la medición de este tipo de variables es posible encontrar una gran variedad de
instrumentos, como termómetros, rotámetros, manómetros, conductímetros o medidores
de nivel; pero para la realización de este estudio son apropiados instrumentos capaces
de transmitir la señal proporcionada por la columna a un dispositivo electrónico que nos
permita su clara visualización, este tipo de instrumentos se denominan sensores. Los
sensores son instrumentos que trasforman una variable física dada, dentro de uno de los
cinco campos de señales más comunes (radiante, química, magnética, térmica o
mecánica), en una variable eléctrica restringida normalmente a variaciones de corriente
o de tensión.
Para cada tipo de variable a medir es necesario un tipo diferente de sensor:

Sensor de temperatura.
Existen diferentes tipos de sensores de temperatura como termopares,
termorresistencias o termocuplas. En el estudio de una columna de rectificación se
considera apropiado el uso de termopares, que son unos sensores formados por alambres
de diferentes materiales, unidos por soldadura en uno de sus extremos y conectados a un
amperímetro por el otro. Su funcionamiento está basado en la formación de una
corriente eléctrica producida por el calor en la unión, que provoca una diferencia de
potencial en función de la variación de temperatura.

Sensor de caudal.
Existen diferentes tipos de sensores de caudal como rotámetros, sensores de caudal
por turbina o sensores de caudal de goteo. En función del tipo de caudal del destilado se
escogerá un sensor u otro; en caso de un caudal continuo se considera apropiado el uso
de sensores de caudal por turbina, que se basa en la proporcionalidad de la velocidad del
líquido con una serie de pulsos que se producen a la salida de la turbina. En el caso de
un caudal discontinuo y por goteo se considera apropiado el uso de un sensor de
infrarrojos basado en la medición del número de gotas de volumen conocido en un
determinado espacio de tiempo.

24 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Sensor de presión.
Para la medición de la presión se pueden utilizar diferentes manómetros, como los
manómetros de líquidos, los de pistón, elásticos o los sensores eléctricos. Los más
indicados para este estudio son estos últimos, ya que ofrecen diversas ventajas como la
posibilidad de ser fabricados en pequeños tamaños, tener una mayor exactitud en las
medidas (±0.05% del fondo de escala) o la gran sensibilidad de que disponen al ser solo
necesarias unas micras de deformación para obtener una medida.

Sensor de medición de concentración.


Para medir la variación de concentración de la mezcla en el calderín y del destilado
existen diferentes instrumentos basados en alguna de las propiedades del líquido, como
pueden ser su absorbancia, su conductividad o su índice de refracción, todas ellas
relacionadas con la variación de concentración. Instrumentos que analicen estas
propiedades pueden ser espectrofotómetros, células de conductividad o refractómetros,
pero para el estudio de una columna de rectificación no existe ninguno que sea
particularmente apropiado.

Sensor de nivel.
Existen varios tipos de medidores de nivel; medidores de nivel por boya, por
presión hidrostática, por electrodos capacitivos o por ultrasonidos. Cualquiera de los
anteriores podría dar una medición de nivel fiable, pero el sensor de nivel por
ultrasonido es aconsejable para este estudio ya que facilita una señal eléctrica de fácil
monitorización. Este sensor esta basado en el envío de un pulso de alta frecuencia que
golpea la superficie del producto y se refleja como un eco retornando al sensor donde un
microprocesador controla y evalúa la señal recibida.

25 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

1.5.1.2.Variables de actuación
La función de las variables de actuación, como su propio nombre indica, es la de
actuar sobre el sistema, es decir, responder de forma adecuada frente a las señales
enviadas por este, las cuales se han definido anteriormente como variables de medición.
Cada variable de medición debe ser controlada y corregida, en caso de ser
necesario, por una variable de actuación. Las señales de respuesta para realizar esta
corrección son enviadas a la columna mediante unos dispositivos denominados
actuadores. Para este proceso en concreto cualquier desviación de una variable de
medida puede ser corregida actuando sobre el caudal de reflujo, la potencia de la manta
calefactora o sobre el caudal de refrigeración.
Los dispositivos de actuación utilizados para el control del sistema son:

Reguladores de potencia.
Los reguladores de potencia son los dispositivos de actuación basados en la
variación de la potencia que llega a la manta calefactora, haciendo que esta suministre
más o menos calor al calderín, para actuar como respuesta a las variaciones de
temperatura y caudal sufridas en el interior de la columna de rectificación. Los
reguladores de potencia más adecuados para el proceso son los electrónicos, ya que la
respuesta proporcionada por estos es de fácil manejo y son susceptibles de ser
controladas por ordenador.

Regulador de reflujo.
Este tipo de dispositivo de actuación es necesario para dar respuesta a la señal
proporcionada por la variación de la concentración del destilado, por ejemplo en el caso
de no conseguir la pureza requerida, de esta manera, variando la relación de reflujo
(L/D) se consigue mejorar la eficacia de la columna.
Este dispositivo, variando la posición de un electroimán, situado en la parte
superior de la columna, debe regular el tiempo de apertura de la válvula de salida del
destilado, haciendo descender por la columna más o menos caudal de reflujo.
El regulador de reflujo adecuado para esta función es un temporizador que emita
una señal durante un cierto tiempo y a intervalos regulares de este con el fin de
mantener abierta o cerrada la válvula de salida de destilado.

Regulador de caudal de refrigeración.


Este tipo de regulador es necesario como elemento de seguridad para dar respuesta
a posibles sobrepresiones en el circuito de refrigeración, ya que este solo resiste hasta
presiones de 4 atm. Este actuador realizaría un descenso del caudal, regulando la llave
de alimentación de agua de refrigeración, al recibir la señal de sobrepresión del sensor
eléctrico de presión.

26 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

2. OBJETIVOS
Tanto para el proceso de monitorización e instrumentación de procesos químicos,
como para la simulación informática de los procesos y las operaciones que los
constituyen hay que tener muy presentes los objetivos que se persiguen para poder
compararlos al final con los resultados obtenidos.
Los principales objetivos que se persiguen con la realización de este proyecto son:
• Estudiar las posibilidades de instrumentación de los procesos y las
operaciones, especialmente las columnas de rectificación, de la planta piloto
del laboratorio de Ingeniería de la EUETIB.
• Diseñar una arquitectura de comunicación de los distintos módulos que
deben intervenir en la generación, adquisición, transmisión y monitorización
de los datos.
• Crear una simulación de un proceso de destilación con rectificación, que se
escogerá como ejemplo de operación unitaria.
• Establecer una comunicación entre computadores remotos para el envío de
los datos del proceso de destilación.
• Monitorizar los datos recibidos de la simulación para poder analizarlos.
El primer punto a tener en cuenta es la simulación del proceso de destilación y la
modelación de la columna correspondiente. El objetivo principal de este primer punto es
obtener un modelo informático de una columna de destilación suficientemente general
como para predecir el comportamiento de las distintas columnas de las que dispone el
laboratorio. Este modelo informático debe ser capaz de suministrar datos simulados al
sistema de monitorización de la misma manera y a través de los mismos canales que lo
harían los instrumentos de medida.
Hay que tener en cuenta que la simulación del proceso constará de dos partes. La
primera consistirá en simular una columna de destilación con rectificación capaz de
separar de la mejor manera posible los componentes de la mezcla etanol-agua, que se
escogerá como ejemplo y que a su vez se asemeje lo máximo posible a la columna que
tiene el departamento de química de la universidad.
La segunda parte del proceso de simulación consistirá en crear un entorno dinámico
para la columna modelada, es decir, hacer que la columna opere en un estado no
estacionario, de manera que algunas de sus variables puedan evolucionar a lo largo del
tiempo haciendo que el proceso se anime y se pueda ver como varían composiciones o
temperaturas en la salida de la columna al variar caudales y temperaturas en la entrada
de la misma. Para ello se desarrollará una aplicación informática capaz de acceder a los
datos del simulador y variarlos a intervalos de tiempo conocidos para poder conocer
como evoluciona el proceso cuando se modifican sus condiciones.

27 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El segundo punto que se tratará en el presente proyecto es el de comunicar dos o


más computadores remotos para poder enviar los datos procedentes de la simulación
hecha previamente. La comunicación de los computadores se hará mediante un
protocolo de transmisión de datos adecuado que permita que cualquier ordenador con
conexión a Internet pueda adquirirlos.
Otro de los puntos importantes que se tratan en el proyecto es el de la
monitorización de los datos del proceso de destilación. Este punto es importante porque
lo que se pretende con ello es establecer la manera de monitorizar datos procedentes de
una columna de destilación ya sea virtual o real, es decir, el sistema de comunicación se
diseñará de tal manera que permita graficar los datos procedentes de una simulación o
de cualquier sensor instalado en la columna. Por motivos de tiempo la implementación
y validación del sistema se hará mediante un prototipo que, de momento únicamente
monitorizará la señal de la columna virtual.
La monitorización de los datos de una columna virtual se realiza con la recepción
de señales electrónicas procedentes de un computador capaz de simularlas, en cambio,
la monitorización de los datos de una columna real se realiza con la recepción de
señales electrónicas procedentes de señales físicas de la columna que han pasado por un
convertidor analógico digital, mediante dispositivos capaces de transformar esta señal,
como son sensores de temperatura con convertidores A/D incorporados, de manera que
se puede disponer de la señal con un computador.
Lo que se quiere conseguir con esta comparación es poder ver que para un posterior
trabajo de monitorización de una columna real, con sensores, válvulas, medidores de
caudal, etc. el proceso a seguir es el mismo que con la columna virtual modelada en este
proyecto, la única variación seria la procedencia de los datos.
A modo de resumen los objetivos del proyecto de monitorización de columnas de
destilación se pueden reflejar en la figura 2.1:

COMINICACIÓN

MONITORIZACIÓN

SIMULACIÓN

Figura 2.1

28 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

3. INTRODUCCIÓN A LOS SIMULADORES

3.1. LOS SIMULADORES EN LA INDUSTRIA


En la industria de hoy en día es muy común, y va en aumento, el uso de
simuladores ya que estos facilitan en gran medida las funciones que se desempeñan en
esta. Son conocidas las ventajas que ofrece la simulación de procesos mediante modelos
matemáticos para el aprendizaje en ingeniería. Sin embargo, el empleo de simuladores
permite no solo tales ventajas sino también posibilita el establecimiento de diagramas
funcionales, la resolución y comprensión íntima de los balances de materia y energía, la
visualización de la planta química mediante el empleo de animaciones computadas y la
actualización constante del sistema completo.
Estos simuladores permiten el manejo de diferentes sistemas de unidades e
interconversión de los mismos, la ejecución de balances combinados de materia y
energía en estado estacionario y dinámico, el estudio de la conversión realizada en un
proceso real, y el reconocimiento, ubicación y secuencialización de los distintos equipos
presentes en un proceso.
Por estos motivos, la experimentación con técnicas de simulación de procesos
enriquece el estudio de los fundamentos de la ingeniería química y permite una
descripción gráfica de los equipos utilizados y del proceso en si.

3.2. PROGRAMAS DE SIMULACIÓN


Existen diferentes tipos de programas de simulación, dependiendo de su uso y de la
complejidad del mismo. Por este motivo podemos encontrar simulaciones realizadas
con programas especializados, como HYSYS, o simulaciones más sencillas realizadas
con un programa tan común como puede ser el Excel. Esto no significa que una sea
mejor que la otra, sino que el usuario que necesita esa simulación le basta con el grado
de precisión que le ofrece uno u otro programa. Por ejemplo para lo realización de la
simulación de un mezclador podemos elegir uno de los dos programas citados, ya que
los dos tienen elementos que permiten esta simulación, pero comparando los costes de
ambas simulaciones y los objetivos que es desean alcanzar, seguramente se llega a la
conclusión de que la simulación de Excel es suficientemente válida como para no tener
que invertir en un software tan potente como HYSYS.
En el mercado también se pueden encontrar programas de simulación que podrían
estar el un lugar intermedio entre los dos ya mencionados. Estos otros se caracterizan
por ser muy específicos para un tipo de estudio, pero como hay una gran variedad, no
debe ser problema encontrar el necesario para un cierto estudio. Por ejemplo, se pueden
encontrar programas enfocados a experimentación en el laboratorio como el
CHEMLAB, que realiza operaciones como valoraciones ácido - base, calorimetrías,

29 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

cristalizaciones; o más especificas como análisis volumétrico de cloro y análisis


gravimétrico de cloro.
Otro ejemplo puede ser el CHEMICAL SYNTHESIZER que simula la síntesis de
distintos compuestos químicos. Este programa requiere, en primer lugar, el seleccionar
los reactivos, así como las condiciones de presión y temperatura, así como si es una
reacción catalizada o no. Posteriormente, y de forma gráfica, se observa el proceso de
formación de los productos, partiendo de las moléculas de reactivos.

30 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

4. DESCRIPCIÓN Y CARACTERÍSTICAS DE
HYSYS

4.1. ÁMBITO DE APLICACIÓN


HYSYS es un programa creado para la simulación de procesos químicos, es decir,
se ha desarrollado para su difusión en este tipo de industria. Por este motivo todas sus
herramientas y aplicaciones están enfocadas a la reproducción procesos químicos y por
ello dispone de una gran paleta con variedad de equipos utilizados en una planta
química.

4.2. CARACTERÍSTICAS GENERALES


HYSYS es uno de los paquetes de software comerciales de reciente desarrollo e
implantación en la industria química, tiene una gran proyección gracias a que es una
herramienta fundamental en la concepción del diseño de una planta química ya que
posee elementos de optimización y simulación muy potentes.
Este simulador fue diseñado por AEA Technology Engineering Software Products,
que es un distribuidor de software de ingeniería y soluciones al sector de la Industria
Química, cuyo representante es Hyprotech.
El simulador es útil para maximizar los beneficios de nuevos diseños y mejorar las
operaciones existentes asegurando que los equipos estén trabajando sobre
especificaciones. Con él, un ingeniero puede desarrollar un modelo simple de procesos a
partir de un diseño conceptual, mejorar anteriores diseños, optimizar la producción y
agilizar la toma de decisiones. También permite la integración de operaciones unitarias,
reacciones y paquetes de propiedades y la interacción de otras aplicaciones para crear
un programa híbrido.

4.3. TIPOS DE SIMULACIÓN CON HYSYS


el programa posee numerosos equipos que se pueden encontrar en una planta
industrial, y permite la conexión entre ellos, para la realización de procesos
secuenciales. Entre estos equipos que podemos simular se encuentran columnas de
destilación y de absorción, mezcladores, depósitos, reactores, etc., y estos se pueden
conectar mediante corrientes de materia y de energía.
Los dos tipos más diferenciados de simulaciones son las estacionarias y las
dinámicas. Con conocimientos básicos del programa no es difícil realizar las del primer
tipo, pero las simulaciones dinámicas requieren un mayor dominio del software y de los
procedimientos que se desean estudiar.

31 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

4.4. HYSYS EXTENSIBILITY


A demás del paquete básico de herramientas disponibles en la instalación típica de
HYSYS, el programa permite la instalación de otras librerías para ampliar las funciones
ya existentes. Este es el caso de una herramienta utilizada en el proyecto denominada
“Equilibrium Plots”, que permite graficar los diagramas de equilibrio Líquido-Vapor de
diversas sustancias, y que clarifica el eso de estas sustancias en otras aplicaciones como
puede ser en las columnas de destilación.

32 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

5. SIMULACIÓN DE COLUMNAS DE
DESTILACIÓN

5.1. INTRODUCCIÓN A LA SIMULACIÓN CON


HYSYS
Para la instrumentalización y monitorización de una columna de destilación real es
importante poder realizar una simulación lo más parecida posible a la misma. Para ello
disponemos de softwares muy potentes en el mercado muy utilizados en la industria
química. Para la realización de este proyecto se ha escogido el programa llamado
HYSYS, de la compañía Hyprotech (Aspentech). La elección de esta herramienta está
fundamentada en diversos motivos, como su conocimiento previo, ya que en este centro
universitario existe una asignatura (Simulación y Optimización de Procesos Químicos y
Biotecnológicos) en la que se le da uso a este programa y se explica su funcionamiento
básico, y de esta forma se sabe si el software tiene las herramientas necesarias para
realizar una columna virtual con las características que se desean en este caso. Otro
motivo de la elección de HYSYS es la fácil comunicación con la compañía ya que su
central europea tiene residencia en Barcelona, y en caso de necesitar cualquier tipo de
información existe la posibilidad de presentarse en persona en las oficinas y consultar
con personal de Hyprotech.

5.2. COLUMNA DE DESTILACIÓN-RECTIFICACIÓN


5.2.1. Parámetros iniciales
La columna real que se desea simular realiza un proceso de destilación con
rectificación de una mezcla bicomponente de etanol y agua al 53% en volumen del
componente más volátil. El primer paso para la creación de una columna simulada que
destile una mezcla de estas características es la elección de una base de cálculo
adecuada para este proceso entre todas las que ofrece HYSYS. En este caso la selección
ha sido hecha dentro del grupo de Modelos de Actividad, ya que estos utilizan métodos
modernos para sus cálculos y dan buen resultado. Dentro de estos, se ha escogido la
base de cálculo para fluidos NRTL General (ver figura 5.1) ya que para los
componentes de la mezcla problema parece ser la más adecuada, como hemos podido
observar en simulaciones demostrativas que nos ofrece el propio HYSYS.

33 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Figura 5.1

El siguiente paso solicitado por el programa es la elección de los componentes de la


mezcla, dicha elección se realiza dentro de una lista de componentes que ofrece HYSYS
(ver figura 5.2) y que varía en función de la base de cálculo escogida. En el caso que
nos ocupa la mezcla es de etanol y agua, y la base de cálculo escogida permite escoger
estos componentes para la simulación. Además, también ofrece un listado de as
propiedades y coeficientes que caracterizan cada elemento, como sus propiedades
críticas o termodinámicas.

Figura 5.2

34 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

5.2.2. Diseño de la columna


Una vez realizados estos dos pasos fundamentales se puede entrar en el entorno de
simulación (Enter to Simulation Environment), representado en la figura 5.3, donde se
dispone de una paleta (Case (Main)) con los elementos necesarios para realizar
cualquier simulación, como corrientes de materia(Material Stream) y energía(Energy
Stream), columnas de destilación (Distillation Column), tanques, mezcladores y otros
elementos. En este caso se van ha necesitar las corrientes de material y energía, una
columna de destilación, y para el diseño de la columna, un elemento de destilación
“Short Cut” y una herramienta que grafica las curvas de equilibrio Vapor-Líquido de
los compuestos que se desean estudiar (VLE).

Figura 5.3

Para el diseño de la columna se empieza por utilizar el Short-Cut (figura 5.4), que
es un elemento que sirve para predecir las características de una columna de destilación,
definiendo la mezcla problema que será tratada, las condiciones de trabajo de la
columna, así como la separación que se quiere alcanzar. Para todo esto el primer paso es
entrar en la ventana que define sus características.

35 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

En estas ventanas (figura 5.5) se da nombre a las corrientes de entrada y salida,


indicamos el reflujo que deseamos, las presiones de sus elementos, las fracciones de
componentes que se quieren obtener en el destilado y el residuo. Se observa que
HYSYS marca en azul los grados de libertad, es decir las variables que el usuario puede
modificar para obtener un resultado distinto.

Figura 5.4

Figura 5.5

También se han de introducir las todas las propiedades de la corriente de entrada


(figura 5.6), ya que estas en la realidad serían conocidas, y el software las necesita para
realizar los cálculos. Vuelven a estar en azul los grados de libertad, ya que para definir
una corriente solo se necesitan la temperatura, la presión, el flujo (molar, másico o
volumétrico) y la fracción de los componentes.

36 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Figura 5.6

Para definir las fracciones molares de los componentes en el residuo y en el


destilado es necesario consultar las curvas de equilibrio de la mezcla (figura 5.7), ya que
en casos como el que nos ocupa se pueden producir azeótropos que dificulten este
cálculo, es decir mezclas que no son separables al 100% porque su punto de ebullición
es constante, y en este punto el vapor y el líquido tienen la misma composición, y esta
no se modifica al hervir. Esto complica el uso del Short-Cut, ya que no acepta cualquier
fracción molar introducida porque internamente el programa conoce la existencia de
este azeótropo, y de su diagrama de equilibrio.

Figura 5.7

37 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

En la figura 5.8 se muestra como evolucionan las temperaturas de rocío y de


burbuja en función de la concentración molar de etanol, y se puede ver un
comportamiento de azeótropo al aumentar dicha concentración.

Figura 5.8
En esta curva de equilibrio de vapor y líquido, muestra la
fracción molar del etanol en la mezcla, en la fase líquida (x-Etanol) y en la fase vapor
(y-Ethanol). En el caso de no ser un azeótropo, esta curva sería de la forma llamada
“Lenteja Perfecta”, siendo simétrica si se doblase la recta de referencia (línea en rojo)
por una recta tangente a su centro. Gráficamente se puede ver como al aumentar la
concentración de etanol en el líquido, no lo hace de la misma forma en el vapor,
acercándose a la recta de referencia al 80% de etanol en el líquido.
Una vez introducidos todos estos datos HYSYS resuelve el sistema y define las
características, como el número de platos o el reflujo óptimo de la columna que se va a
diseñar posteriormente, y las características que reunirán las corrientes de salida (figuras
5.9 y 5.10).

Figura 5.9

38 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Figura 5.10

En este caso el proceso de diseño de la futura columna, indica que serían


aconsejables 6 platos aproximadamente, la alimentación entre el plato 2 y el 3, y un
reflujo mínimo de 1,092 para la separación que se desea conseguir.

39 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

5.2.3. Creación de la columna


En primer lugar se escoge el elemento “distillation column” de la paleta de
procesos y se crea una corriente de alimentación igual a la del Short-Cut, ya que está
definida con las mismas características que tendría la corriente real; para ello se usa el
elemento “Define from other stream” que permite copiar los datos de otra corriente,
para no tener que introducirlos de nuevo. Después se comienza a dar las
especificaciones que HYSYS pide para crear una columna de destilación (ver figura
5.11).
En primer lugar se da nombre a todas las corrientes que actúan en la columna, se
selecciona el tipo de condensador que se colocará al final de la columna, en este caso el
de condensado total, pero podría ser de reflujo total o condensado parcial, con lo que
tendría dos corrientes de salida, un de vapor y otra de líquido. También en este primer
paso se decide el número de platos y el plato de alimentación, datos que estaban
definidos por el Short-Cut.

Figura 5.11

Aunque en el diseño se recomendaba introducir la entrada de alimentación entre los


platos 2 y 3, se ha introducido por el calderín (Reboiler), para dar más parecido a esta
columna con la real, ya que esta así lo hacía.
Seguidamente se indica a que presión trabaja el calderín y el condensador, y
opcionalmente la temperatura estimada al salir de estos elementos. En última ventana de
especificaciones se pide el caudal de salida que se desea en el destilado, y el reflujo a
que funcionará la columna, ambos datos facilitados en el proceso de diseño (ver figura
5.12).

40 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Figura 5.12

Una vez realizados los pasos que HYSYS exige para la creación de la columna,
podemos comprobar que esta funcione como se desea, es decir, verificar que la
separación de los componentes de la mezcla se ha hecho hasta el porcentaje requerido,
lo cual se puede comprobar en las graficas de composición (figura 5.13) que el
programa facilita en el apartado “Performance” con la herramienta “Plots”, dentro de la
misma columna.

Figura 5.13

41 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

En el caso de la columna que se ha creado, graficando las composiciones de etanol


y agua en cada uno de los platos, se observa como en la zona de la izquierda, es decir,
en la de los platos superiores de la columna, se consigue algo más de un 90% en
volumen de etanol; y en la zona de la derecha, la de salida del residuo, no queda casi
etanol, o sea que no se pierde mucho producto con el residuo. Según el gráfico parece
que la columna tiene un buen rendimiento, pero para más precisión podemos ver las
composiciones de las corrientes, así como todas sus propiedades en otro elemento
llamado “Worksheet” (figura 5.14).

Figura 5.14

También dentro de cada corriente, en el apartado de composiciones, como en el


destilado se puede comprobar si son las que se esperaban.

Figura 5.15

42 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

En este caso se puede ver que la corriente de destilado tiente una composición
volumétrica de un 92,1% en etanol, que es bastante alta, aunque se podría mejorar
llegando como máximo al 96%, con alguna mejora en el diseño, que rebajara la salida
de etanol por el residuo, y aumentase su porcentaje por el destilado, por ejemplo,
aumentar el flujo de destilado, la relación de reflujo o el número de platos. Gracias al
potente software del programa se resuelven todos los cálculos en la creación de la
columna y en sus posteriores modificaciones, y en el caso de introducir valores
erróneos o sin solución, el sistema avisa de las incongruencias para guiar al usuario en
la posterior solución.
Para analizar todos los datos con más detalle, existen pantallas en las que muestra el
comportamiento de cada plato mostrando presiones, temperaturas, flujos, eficiencias,
etc (ver figura 5.16).

Figura 5.16

Incluso informa de los grados de libertad,”Degrees of Freedom”, para no


sobreespecificar el sistema, mostrando en azul las variables que se pueden modificar, y
permitiendo cambiar estas por otras que se consideren más útiles o conocidas, con la
instrucción “Add Spec...”, es decir añadir especificación, y la posterior activación, con
la previa desactivación de alguna de las que ya ofrecía el sistema (ver figura 5.17).

43 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Figura 5.17

Como último apunte a tener en cuenta, se puede ver como HYSYS muestra un
cuadro en la parte inferior de sus ventanas, el cual marca en color verde en caso de
conseguir solucionar el sistema, es decir que este converge, y en amarillo o rojo si existe
algún error en los datos introducidos, o falta alguno de ellos. Esto facilita el trabajo al
usuario, ya que su misión consiste en hacer que la columna, las corrientes, o cualquier
otro elemento, sea convergente.

5.2.4. Adaptación de la columna real a la simulación


La simulación de la columna mediante HYSYS no es completamente igual a la
columna real instalada en el laboratorio, esto ocurre porque el programa fue creado
como una herramienta de gran utilidad para la gran industria química, y la columna real
que se intenta simular está a otro nivel, más enfocada al uso educativo. Por estos
motivos el programa solo dispone de elementos de mayor escala que la de un
laboratorio universitario. El elemento fundamental que diferencia las dos columnas es
que la del laboratorio trabaja en discontinuo, es decir, mediante diversas cargas de la
mezcla a destilar en el calderín, y la simulación trabaja en continuo, mediante corrientes
que constantemente introducen la mezcla y extraen el destilado y el residuo. Este
residuo en la columna del laboratorio se quedaría en al calderín hasta que el proceso se
de por terminado, y sería extraído antes de la siguiente carga, mientras que en el proceso
continuo se retira constantemente.

44 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Otra característica que diferencia las dos columnas es que en la columna real solo
se puede alimentar por el calderín, mientras que la virtual acepta ser alimentada por
cualquiera de los platos que la componen, lo cual, suele mejorar el rendimiento de la
columna y en el momento de diseñarla, el Short-Cut acostumbra a indicar un plato
intermedio como mejor punto para la entrada de la mezcla.

45 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6. COMUNICACIÓN

6.1. INTRODUCCIÓN
El objetivo de toda comunicación es transmitir información desde un punto
denominado emisor hasta otro punto denominado receptor. La forma de transmisión, la
cantidad de información transmitida, la calidad de la información transmitida o la
velocidad a la que será transmitida ésta información no deben suponer un impedimento
para el objetivo principal de una comunicación, a pesar de que tanto la forma, cantidad,
calidad y velocidad de la transmisión son premisas a tener en cuenta a la hora de
establecer una comunicación.
De todos los tipos de comunicación que pueden llevarse a cabo a día de hoy una de
las que ofrece más posibilidades es la comunicación mediante unidades procesadoras, es
decir, comunicación informática, donde lo que se transmite del emisor al receptor son
series de códigos numéricos ordenados específicamente de manera que sean fáciles de
ejecutar y de transmitir por parte del emisor y a su vez fáciles de interpretar por el
receptor.
Esta comunicación no se restringe únicamente a transmisión de datos ente unidades
remotas, sino que ésta abarca también comunicaciones establecidas dentro de una única
unidad procesadora, ya sea comunicación entre dos partes físicas de dicha unidad
(comunicación de hardware) o comunicación entre dos partes virtuales procesadas por
la misma unidad (comunicación de software).
Para establecer éste último tipo de comunicación (de software) además de necesitar
una vía de transmisión de información como son los procesadores se necesita algo
mucho más importante y que sin ello cualquier tipo de comunicación basada en la
informática no resultaría, el factor humano. Como factor humano se entiende la
interacción entre la maquina y el hombre (o como se denomina en términos ingleses
HCI “Human Computer Interaction”). Ésta interacción entre el hombre y la maquina
permite facilitar la manera en que el usuario se comunica con la maquina y viceversa, de
manera que se establezca una relación hombre-maquina lo suficientemente buena como
para que el hombre sea capaz de transmitir sus deseos a la máquina y la máquina sepa
interpretar estos deseos y actúe en consecuencia para satisfacer las necesidades del
usuario.
Para aclarar este concepto de interacción entre el hombre y la maquina nada más
sencillo que un ejemplo en el que se realiza un cálculo matemático en una calculadora.
“El usuario desea realizar una suma aritmética de dos números enteros, desea realizar la
operación 1 + 1; para ello el usuario introduce dicha secuencia, interactuando con las
teclas de la maquina.

46 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Una vez introducidos los valores la maquina, que en ningún momento ejerce como
ente inteligente sino que funciona a base de órdenes, ejecuta la orden de sumar el primer
número tecleado y el segundo, mostrando por pantalla el resultado, satisfaciendo de esta
manera los deseos del usuario.”
Éste ejemplo aunque parezca muy simple refleja lo que la interacción hombre-
máquina requiere para su óptimo comportamiento. De esta manera mejor será la
maquina o el programa con el que el usuario interactúa cuanto mejor se cumplan las
expectativas de lo que el usuario desea.
Como podrá verse más adelante una de las partes importantes de este proyecto es la
creación de un interfaz de usuario para la comunicación tanto entre dos programas como
entre dos máquinas, y se podrá comprobar como la interacción entre el hombre y la
máquina juega un papel muy importante a la hora de diseñar estos interfaces.

47 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.2. LENGUAJES DE PROGRAMACIÓN


Para la creación de interfaces de usuario y de métodos de comunicación entre
programas es necesario el uso de un lenguaje de programación adecuado.
Los lenguajes de programación surgieron por la necesidad de desarrollar las
primeras computadoras electrónicas, es decir, poder almacenar en memoria las acciones
que las computadoras iban a ejecutar. Estas acciones no eran más que secuencias de
órdenes que la maquina entendía y ejecutaba cuando se le pedía. Este tipo de lenguaje
basado en listas de códigos que la máquina interpreta como instrucciones es el llamado
lenguaje máquina. Éste lenguaje era muy complicado de manipular, ya que el
programador tenia que decirle a la máquina paso a paso las tareas que tenia que realizar
y todo ello mediante secuencias de códigos, lo que implicaba una gran cantidad de
errores.
Más adelante surgieron los lenguajes de programación y con él las herramientas
automáticas para generar el código máquina, esto junto con el avance de la tecnología
de hardware hizo surgir el denominado Lenguaje de Alto Nivel, basado en compiladores
de información que facilitaban las tareas de los programadores para entenderse con las
máquinas.
A partir de aquí comenzaron a surgir diferentes tipos de lenguajes de programación
cada uno de ellos apropiado a un tipo de nivel de lenguaje; de Alto Nivel y de Bajo
Nivel. A continuación se muestran los más importantes tipos de lenguajes de
programación a modo de resumen:

6.2.1. Lenguajes imperativos


Este tipo de lenguaje esta basado en la arquitectura de von Newmann que consta de
una secuencia de celdas, llamadas memoria, en la cual se pueden guardar de forma
codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de
ejecutar de manera secuencial una serie de operaciones, principalmente aritméticas y
booleanas, llamadas comandos. Un lenguaje imperativo ofrece al programador
conceptos que se traducen de forma natural al modelo de la maquina.
Algunos de los lenguajes imperativos más destacados son: FORTRAN, Algol,
Pascal, C, Modula-2 y Ada.
El programador, al utilizar un lenguaje imperativo, por lo general tiene que traducir
la solución abstracta del problema a términos muy primitivos, cercanos a la maquina. La
distancia entre el nivel del razonamiento humano y lo expresable por los lenguajes
imperativos causa que sus programas sean más comprensibles para las maquinas que
para el hombre. Esta desventaja para el programador, reflejada en la dificultad que tiene
al construir programas en lenguaje imperativo, se vuelve una ventaja en el momento de
la generación del código.

48 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El programa esta expresado en términos tan cercanos a la maquina, que el código


generado es relativamente parecido al programa original, lo que permite cierta eficiencia
en la ejecución.

6.2.2. Lenguajes funcionales


Los orígenes del lenguaje funcional provienen de los matemáticos, los cuales
usaban el concepto de función para resolver todo tipo de problemas. Una función
convierte ciertos datos en resultados, si el programador fuera capaz de evaluar una
función usando la computadora podría resolver automáticamente infinidad de
problemas. De ésta manera algunos matemáticos sin temores a las maquinas inventaron
los lenguajes de programación funcionales. Pero además aprovecharon la posibilidad
que tienen las funciones para manipular datos simbólicos, y no solamente numéricos, y
la propiedad de las funciones que les permite componer, creando de esta manera la
opción de resolver problemas complejos a partir de las soluciones a otros más sencillos.
El lenguaje funcional más antiguo es el LISP, diseñado por McCarthy en la segunda
mitad de los años 50. Su área de aplicación en principalmente la Inteligencia Artificial.
En la década de los 80 hubo una nueva ola de interés por los lenguajes funcionales,
añadiendo la tipificación y algunos conceptos modernos de modularización y
polimorfismo, como es el caso del lenguaje ML.
Programar en lenguaje funcional significa construir funciones a partir de las ya
existentes. Por lo tanto es importante conocer y comprender bien las funciones que
conforman la base del lenguaje, así como las que ya fueron definidas previamente. De
esta manera se pueden ir construyendo aplicaciones cada vez más complejas. La
desventaja de este modelo es que resulta bastante alejado del modelo de la maquina de
von Newmann y, por lo tanto, la eficiencia de ejecución de los interpretes de lenguajes
funcionales no es comparable con la ejecución de los programas imperativos
precompilados, para remediar la deficiencia se está buscando utilizar arquitecturas
paralelas que mejoren el desempeño de los programas funcionales.

6.2.3. Lenguajes lógicos


Otra forma de razonamiento para resolver problemas en matemáticas se fundamenta
en la lógica de primer orden, el conocimiento básico de las matemáticas se puede
representar en la lógica en forma de axiomas, a los cuáles se añaden reglas formales
para deducir cosas verdaderas a partir de los axiomas. Gracias al trabajo de algunos
matemáticos de finales del siglo pasado y principios de este se encontró la manera de
automatizar computacionalmente este razonamiento lógico, que permitió que la lógica
matemática diera origen a otro tipo de lenguaje de programación, conocido como
lenguaje lógico.
En los lenguajes lógicos se utiliza el formalismo de la lógica para representar el
conocimiento sobre un problema y para hacer preguntas que, si se demuestra que se
pueden deducir a partir del conocimiento dado en forma de axiomas y de reglas de
deducción estipuladas, se vuelven teoremas.

49 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Así se encuentran soluciones a problemas formulados como preguntas. Con base en


la información expresada dentro de la lógica de primer orden, se formulan las preguntas
sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar la
respuesta automáticamente. El conocimiento sobre el problema se expresa en forma de
predicados (axiomas) que establecen relaciones sobre símbolos que representan los
datos del dominio del problema.
El PROLOG es el primer lenguaje lógico y el más conocido y utilizado. Sus
orígenes se remontan a los inicios de la década de los 70 con los trabajos del grupo de
A.Colmerauer en Marsella, Francia. También en este caso, las aplicaciones a la
Inteligencia Artificial mantienen el lenguaje vivo y útil.
En el caso de la programación lógica, el trabajo del programador se restringe a la
buena descripción del problema en forma de hechos y reglas. A partir de esta se pueden
encontrar muchas soluciones dependiendo de cómo se formules las preguntas (metas),
que tienen sentido para el problema. Si el programa esta bien definido, el sistema
encuentra automáticamente las respuestas a las preguntas formuladas. En este caso ya
no es necesario definir el algoritmo de solución, como en la programación imperativa,
en cambio, lo fundamental aquí es expresar bien el conocimiento sobre el problema
mismo. En programación lógica, al igual que en programación funcional, el programa,
en este caso los hechos y las reglas, están muy alejados del modelo de von Newmann
que posee la maquina en la que tienen que ser interpretados; por lo tanto, la eficiencia
de la ejecución no puede ser comparable con la de un programa equivalente escrito en
lenguaje imperativo. Sin embargo, para cierto tipo de problemas, la formulación del
programa mismo puede ser mucho más sencilla y natural.
Estos tres últimos tipos de lenguaje forman los denominados paradigmas de la
informática.

6.2.4. Lenguajes concurrentes, paralelos y distribuidos


La necesidad de ofrecer concurrencia en el acceso a los recursos computacionales
se remonta a los primeros sistemas operativos. Mientras que un programa realizaba una
operación de entrada o salida otro podría disponer del tiempo del procesador para sumar
dos números, por ejemplo. Aprovechar al máximo los recursos computacionales fue una
necesidad apremiante, sobre todo en la época en que las computadoras eran caras y
escasas; el sistema operativo tenia que ofrecer la ejecución concurrente y segura de
programas de varios usuarios, que desde distintas terminales utilizaban un solo
procesador, y así surgió la necesidad de introducir algunos conceptos de programación
concurrente para programar sistemas operativos.
Posteriormente, cuando los procesadores cambiaron en tamaño y en precio, se abrió
la posibilidad de contar con varios procesadores en una máquina y ofrecer el
procesamiento en paralelo, es decir, procesar varios programas al mismo tiempo. Esto
dio el impulso a la creación de lenguajes que permitían expresar el paralelismo.

50 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Finalmente, llegaron las redes de computadoras que también ofrecen la posibilidad


de ejecución en paralelo, pero con procesadores distantes, lo que se conoce como
programación distribuida.
Algunos de los lenguajes más usados basados en la distribución y el paralelismo
son el CSP (envío de mensajes), el RCP (llamada a procedimientos remotos), el
Concurrente Pascal, Modula, Ada, OCCAM y últimamente JAVA.
Es difícil evaluar las propuestas existentes de lenguajes para la programación
concurrente, paralela y distribuida. Primero, porque los programadores están
acostumbrados a la programación secuencial y cualquier uso de estos mecanismos les
dificulta la construcción y el análisis de programas. Por otro lado, este tipo de conceptos
en el pasado fue manejado principalmente a nivel de sistemas operativos, protocolos de
comunicación, etcétera, donde la eficiencia era crucial, y por lo tanto no se utilizaban
lenguajes de alto nivel para la programación. Hoy en día, la programación de sistemas
complejos tiene que incluir las partes de comunicaciones, programación distribuida y
concurrencia.

6.2.5. Lenguajes orientados a objetos


A mediados de la década de los 60 se empezó a vislumbrar el uso de las
computadoras para la simulación de problemas del mundo real. Pero el mundo real está
lleno de objetos, en la mayoría de los casos complejos, los cuales difícilmente se
traducen a los tipos de datos primitivos de los lenguajes imperativos. Así que a dos
noruegos, Dahl y Nygaard, se le ocurrió el concepto de objeto y sus colecciones,
llamadas clases de objetos, que permitieron introducir abstracciones de datos a los
lenguajes de programación. La posibilidad de reutilización del código y sus
indispensables modificaciones, se reflejaron en la idea de las jerarquías de herencia de
clases. A ellos también se les debe el concepto de polimorfismo introducido vía
procedimientos virtuales. Todos estos conceptos fueron presentados en el lenguaje
Simula 67. Aunque pensado como lenguaje de propósito general, Simula tuvo su mayor
éxito en las aplicaciones de simulación discreta, gracias a la clase SIMULATION que
facilitaba considerablemente la programación.
La comunidad informática ha tardado demasiado en entender la utilidad de los
conceptos básicos de Simula 67, que hoy se identifican como conceptos del modelo de
objetos. Se tuvo que esperar hasta los años 80 para vivir una verdadera ola de lenguajes
de programación con conceptos de objetos encabezada por Smalltalk, C++, Eiffel,
Modula-3, Ada 95, Java y Object Pascal. La moda de objetos se ha extendido de los
lenguajes programación a la ingeniería de software.

51 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El modelo de objetos y los lenguajes que lo usan, parecen facilitar la construcción


de sistemas o programas en forma modular. Los objetos ayudan a expresar programas
en términos de abstracciones del mundo real, lo que aumenta su comprensión. La clase
ofrece cierto tipo de modularización que facilita las modificaciones del sistema. La
reutilización de clases previamente probadas en distintos sistemas también es otro punto
a favor.
Sin embrago, el modelo de objetos, a la hora de ser interpretado en la arquitectura
de von Newmann conlleva un excesivo manejo dinámico de memoria debido a la
constante creación de objetos, así como a una carga de código causada por la constante
invocación de métodos, por lo tanto los programas en lenguajes orientados a objetos
siempre pierden en eficiencia, en tiempo y memoria, contra los programas equivalentes
en lenguaje imperativo, pero ganan en la comprensión del código.

52 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.3. CRITERIOS DE SELECCIÓN


Después de analizar todos los sistemas y tipos de lenguajes de programación se ha
determinado que para la creación y diseño de un interfaz de usuario capaz de comunicar
dos computadoras y de crear un entorno dinámico de una simulación, en el nivel que
este proyecto requiere, el lenguaje más apropiado es el Object Pascal y concretamente el
programa distribuido por Borland, Delphi 7 que utiliza el lenguaje de Object Pascal para
la creación de software.
Delphi 7 es un programa basado en la Programación Orientada a Objetos (POO)
que permite crear aplicaciones de manera visual usando componentes que facilitan la
programación visual. Los motivos que han dado lugar a la elección de este lenguaje de
programación y concretamente del compilador de Delphi 7 se muestran a continuación:

• Delphi es un software de programación visual, basado en procedimientos


muy intuitivos, directos y de fácil comprensión.
• Delphi 7 es una potente herramienta de desarrollo de programas que permite
la creación de aplicaciones para sistemas operativos como Windows,
cualquiera de sus versiones, y Linux.
• Las aplicaciones pueden diseñarse de forma muy sencilla en la pantalla
según el principio de módulos. Para ello se dispone de una paleta dotada de
una gran variedad de componentes. Esta paleta es denominada por Borland
como VCL (Visual Component Library), o biblioteca de componentes
visuales. Tiene un aspecto muy similar a Visual Basic, pero aunque el
aspecto externo indica la misma facilidad de uso que este, el corazón del
sistema de Delphi es mucho más potente.
• Delphi a diferencia de su homologo Visual Basic posee herramientas de
comunicación que permiten abarcar muchos más ámbitos a la hora de
programar. Esta herramienta es INDY (Internet Direct), usado para
establecer la comunicación entre computadores basándose en los protocolos
TCP/IP.
• A diferencia de otras herramientas de desarrollo visuales con Delphi es
posible crear nuevos componentes que pueden incorporarse en la paleta y
que pueden ser utilizados de la misma forma, esto hace que el programa sea
muy funcinal y reproductivo.

53 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

• Delphi no solo dispone de componentes para la sencilla creación de


aplicaciones como cuadros de lista, conmutadores o cuadros de dialogo
terminados, sino que cubre con sus componentes muchos temas de
programación bajo Windows. También hay una herramienta de
comunicación para DDE y OLE a través de las que se pueden crear vínculos
de datos y comandos con otras aplicaciones. En este caso la comunicación
vía OLE será fundamental para la comunicación del programa de
simulación HYSYS con Delphi 7, pese a que programas como Visual Basic
tambien sean capaces de establcer este tipo de comunicación.
• Delphi trabaja bajo Object Pascal, un lenguaje de programación muy
poderoso que esta a la altura de lenguajes más conocidos y utilizados como
C++ y que incluso lo supera en muchos aspectos.
• Las aplicaciones terminadas quedan disponibles como archivos ejecutables
(.exe) que pueden utilizarse solos sin necesidad de tener instalada la
aplicación de Delphi ni las bibliotecas usadas para crear el programa.
• Delphi es una “Two-Way-Tool”, es decir, una herramienta de dos
direcciones, porque permite crear el desarrollo del programa de dos formas:
una de forma visual en la pantalla, por medio de las funciones de Drag &
Drop (arrastrar y colocar) y la otra a través de la programación
convencional, escribiendo el código. Ambas técnicas pueden utilizarse de
forma alternativa o simultanea.

54 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.4. INTRODUCCIÓN A DELPHI 7


Delphi 7, basado en Object Pascal, usa la programación orientada a objetos como
base para crear las aplicaciones, haciendo que la manera de programar sea básicamente
introducir objetos, cambiarles sus propiedades y hacer que respondan de la manera
adecuada ante determinados eventos.
A modo de introducción y para poder entender mejor la creación de aplicaciones
con Delphi 7, a continuación se muestran las principales características del entorno de
programación de Delphi 7 (figura 6.1).

Ventana principal Form principal

c
d
e

f g

Inspector de objetos Editor de código fuente


Figura 6.1

6.4.1. Ventana principal


La barra de programa del margen superior de la pantalla representa la ventana
principal de Delphi. Si se cierra, todas las ventanas también finalizaran sus tareas. En la
barra de menús de la ventana principal están disponibles todas las órdenes relacionadas
con el procesamiento de una aplicación concreta (Figura 6.1, c). La carga y
almacenamiento de aplicaciones pertenecen igualmente al menú, así como la
presentación u ocultación de las distintas ventanas del entorno de desarrollo.

55 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

También se encuentran en la ventana principal las órdenes para compilar y ejecutar


un programa (Figura 6.1, d). El mayor espacio de la ventana principal lo ocupa la
paleta de componentes (Figura 6.1, e), que se encuentra dividida en pestañas; cada una
de ellas engloban una nueva paleta de componentes con un tema en común; algunas de
las paletas más significativas y que más se han usado para la creación de las
aplicaciones son:
• Standard: paleta que contiene los componentes más usuales, los que
necesita la mayoria de las aplicaciones, como botones, etiquetas, cuadros de
texto, etc.
• System: con componentes como el timer que permite realizar una acción
cada determinado tiempo; componente adecuado para crear la simulación
del comportamiento de las variables de entrada de la columna (variar la
temperatura cada cierto tiempo) o para establecer el intervalo de tiempo con
que el cliente recibirá los datos del servidor, entre otras funciones.
• PFC: esta paleta tiene componentes creados por el departamento de
informática de la EUETIB y se ha instalado en Delphi para poder usarla;
contiene componentes de visualización de datos como Displays, Graficas,
Termómetros o Tacómetros.
• Indy: Indy es la paleta que contiene los componentes para poder establecer
comunicaciones entre el servidor y el cliente mediante los protocolos
TCP/IP.

6.4.2. Ventana de programa (Form)


El entorno de programación (ventanas, colocación de botones, listas, etiquetas, etc.)
se crea de forma puramente visual, es decir, simplemente se escoge con el ratón el
componente deseado de la paleta de componentes y se arrastra hasta la ventana sobre la
que se desarrolla el programa (Form).
En el Form se puede reproducir el aspecto y el comportamiento de todo tipo de
ventanas, simplemente especificando las propiedades correspondientes, en la ventana de
propiedades y/o escribiendo propiedades en la ventana de código. De esta manera se
caracteriza a la ventana a través de sus propiedades: anchura, altura, coordenadas, estilo
de los bordes, colores, eventos ante los que reacciona, etc.
En el Form únicamente se ve como están distribuidos los componentes en la
ventana y sus propiedades principales, de manera que se va construyendo y ordenando
el interfaz de usuario tal y como lo verá el propio usuario. Las funciones que
desempeñarán los componentes del Form cuando se ejecute el programa estarán
definidas en la ventana de edición del código fuente, de esta manera se combina la
programación tradicional (secuencias de comandos) y la programación visual (orientada
a objetos).

56 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

En este punto es muy importante crear un entorno pensando en el usuario que


interactuará con la aplicación, facilitando tareas, transmitiendo la máxima información
posible, que sea cómodo de usar y sobretodo que al usuario le quede claro lo que el
programa le puede ofrecer y como interactuar con la aplicación para obtener los
resultados.

6.4.3. Inspector de objetos (Object Inspector)


Los componentes de Delphi vienen determinados por sus propiedades
(properties)(Figura 6.1, f) y por los eventos (events)(Figura 6.1, g) ante los que
reaccionan.
El inspector de objetos es una ventana desde la cual se pueden ver y modificar
todas las propiedades y eventos de los objetos situados en el Form, ya que están listados
por orden alfabético. Cada objeto tiene sus propiedades y eventos, aunque muchos de
ellos comparten propiedades por ser objetos del mismo tipo o con características
similares.
Algunas de las propiedades más generales de los objetos son:

• Caption: es el texto que mostrará el objeto al ejecutar la aplicación.


• Name: es el nombre del objeto. Delphi reconocerá a cada uno de los
componentes dispuestos en el Form por su propiedad “Name”.
• Enabled: es la propiedad que indica si el objeto estará habilitado o no
cuando se ejecute la aplicación.
• Height: determina la altura del objeto.
• Width: determina la anchura del objeto.
• Visible: es la propiedad que indica si el objeto será visible o no cuando se
ejecute la aplicación.
• Color: determina el color del objeto.

Algunos de los eventos más generales de los objetos son:

• Action: indica qué acción está asociada al objeto.


• OnClick: indica lo que ocurrirá cuando el usuario haga clic en el objeto.
• OnCreate: indica lo que ocurrirá cuando se cree el objeto.
• OnDestroy: indica lo que ocurrirá cuando se destruya el objeto.
• OnClose: indica lo que ocurrirá cuando se cierre el objeto.

57 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Además de estas propiedades y eventos que son las que se muestran en la ventana,
cada objeto tiene propiedades características de la clase de objeto que es y propiedades
características de la jerarquía de objetos a la que pertenece.
Al combinar las propiedades de los componentes y los eventos ante los que actúan
se pueden recrear todo tipo de situaciones que permitan mostrar las intenciones que el
programador quiere transmitir.

6.4.4. Editor de código fuente (Unit)


Delphi 7 es una “Two-Way-Tool”, de forma que lo que se va programando
visualmente, va apareciendo en forma de código en el editor de código fuente. De la
misma forma que si no se quiere hacer uso de las capacidades de programación visual,
la programación se puede limitar a escribir el código que se ejecutará.
El editor de código fuente, que en Delphi son denominados Unit’s, contiene todas y
cada una de las órdenes que se le dan a Delphi para crear, diseñar y ejecutar la
aplicación. Esta es la parte que el usuario no verá cuando se ejecute la aplicación.
La forma del código fuente en Delphi mantiene una estructura general para todas
las aplicaciones que se crean. En él se puede distinguir:

• Unit: hace referencia a la Unit o ventana de código fuente que se usará para
redactar la secuencia de instrucciones.
• Uses: hace referencia a los módulos que se usaran para crear la aplicación.
Estos módulos puede ser diferentes dependiendo del tipo de aplicación que
se desee crear, incluso Delphi ofrece la posibilidad de crear módulos
propios y usarlos cuando sea conveniente.
• Type: hace referencia a los tipos o clases que se usaran en la aplicación. En
este punto se listará también el código perteneciente a cada uno de los
objetos que se usan en el Form, así como los procedimientos que estos
objetos ejecutaran.
• Var: hace referencia a las variables que se usaran en la aplicación. Se indica
tanto el nombre que recibe la variable como el tipo de variable que es.
• Implementation: a partir de aquí y hasta el final (end) del código se listarán,
entre otras cosas procedimientos, eventos, bucles, instrucciones, etc. que se
ejecutaran con la aplicación.

58 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.5. COMUNICACIÓN HYSYS-DELPHI


Para realizar la simulación del proceso químico que se lleva a cabo en este
proyecto se hace servir el simulador HYSYS. Una de las características que tiene
HYSYS y que comparte con infinidad de programas como Excel o Word de Microsoft o
Delphi de Borland, es la posibilidad de usar objetos OLE.
En este caso el programa Delphi 7 es el encargado de crear este tipo de objetos
OLE para poder ser compartidos por el potente software de simulación HYSYS. De esta
manera Delphi puede establecer, leer o cambiar propiedades, utilizar sus métodos, etc.
A este tipo de comunicación entre aplicaciones usando objetos OLE se le denomina
Automatización OLE y es una herramienta que permite controlar una aplicación desde
otra remota sin necesidad de ejecutarlas directamente, únicamente mediante los objetos
OLE.

6.5.1. Objetos OLE en HYSYS


Para crear objetos OLE capaces de llegar al programa HYSYS es necesario conocer
la manera en que se crean estos objetos en el lenguaje de programación. Al estar la
comunicación entre HYSYS y Delphi muy poco desarrollada no se encontró ningún tipo
de información para la creación de objetos OLE desde Delphi directamente, así que se
optó primero por usar el lenguaje de programación de Visual Basic, segundo buscar la
manera de acceder a las variables de HYSYS desde Vidual Basic y tercero modificar el
código de Visual Basic para convertirlo a lenguaje de Delphi y poder acceder a esas
variables.
Las causas del uso del Visual Basic para encontrar la manera de acceder a las
variables de HYSYS son las siguientes:

• la guía facilitada por el distribuidor Hyprotech únicamente comentaba la


creación de objetos OLE para el control de datos de HYSYS desde un
módulo de Visual Basic, así que se usó esta guía como base para el acceso a
HYSYS.
• Visual Basic posee un inspector de objetos más potente y funcional que
Delphi, es capaz de listar todos los tipos y todas las clases de los
componentes que se pueden usar para manipular variables de HYSYS, tanto
las propiedades del mismo objeto como las propiedades heredadas por la
jerarquía de objetos, de esta manera es mucho más sencillo encontrar la
variable especifica a la que se desea acceder (temperatura de entrada o de
salida, flujos de entrada o de salida, composiciones en el condensado,
composiciones en el residuo, etc.)

59 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

• La manera de llegar hasta los datos de HYSYS era relativamente fácil, ya


que solo se tenía que seguir la jerarquía de clases mostrada en el inspector
de objetos de Visual Basic.
• Toda la información que se encontró acerca de la comunicación de HYSYS
con otras aplicaciones estaba basada en Visual Basic
• No se encontró ningún tipo de información que relacionara los programas
HYSYS y Delphi mediante objetos OLE.

En la guía de usuario del software HYSYS facilitada por sus distribuidores


Hyprotech, concretamente en el capitulo titulado Automation & Extensibility se
comenta la posibilidad de poder comunicar HYSYS externamente, es decir, mediante
otros programas usando la tecnología de los objetos OLE. En este apartado de la guía se
explica como se pueden crear objetos OLE desde Visual Basic para poder manipular las
variables de la columna de destilación creada con HYSYS.
La manera de hacerlo es introduciendo la siguiente secuencia de instrucciones en el
editor de Visual Basic incorporado en las últimas versiones de Microsoft Excel:

6.5.1.1.Acceso a HYSYS

Dim App as Object


Declara la variable App como un objeto de tipo Object tomando la variable todas
las propiedades de este tipo de objetos así como las de sus antecesores en la
jerarquía de objetos.
Set App=CreateObject(“HYSYS.Application”)
Crea un objeto OLE del tipo HYSYS.Application y lo asigna a la variable App, de
esta manera HYSYS reconocerá a la variable App como un objeto OLE creado para
acceder a sus datos.
Dim HYCASE as Object
Declara la variable HYCASE como un objeto de tipo Object.
Set HYCASE=GetObject(“C:\hysys\cases\distillation.hsc”)
La variable HYCASE toma el valor de un objeto, en este caso un archivo de
HYSYS, ubicado en la dirección especificada.
De esta manera se ha creado un objeto OLE desde Visual Basic capaz de acceder
las variables de HYSYS.
Una vez se dispone del objeto OLE que comunica las dos aplicaciones el siguiente
paso es poder tener acceso a parámetros y variables de HYSYS ejecutándolos desde
Visual Basic. Para ello es necesario consultar el inspector de objetos de Visual Basic
donde el sistema de jerarquías de objetos permite llegar con facilidad hasta datos
introducidos en HYSYS.

60 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Para reflejar la potencia y garantía de los objetos OLE basta con analizar un
pequeño ejemplo que permite acceder, leer y variar la temperatura del flujo de entrada
de la columna.

6.5.1.2.Lectura de HYSYS
Con esta secuencia de instrucciones se accede al valor de la temperatura del flujo de
entrada de la columna y se captura para poder ser leída posteriormente desde una hoja
de calculo de Excel:

Dim hyapp as SimulationCase


Declara la variable hyapp como un objeto del tipo SimulationCase que es un objeto
de simulación propio de HYSYS.
Set hyapp=GetObject(“C:\hysys|cases|distillation.hsc”)
La variable hyapp toma el valor de un objeto de HYSYS ubicado en la dirección
especificada.
Dim hystreams as Streams
Declara la variable hystreams como un objeto del tipo Stream que es un listado de
corrientes de HYSYS.
Set hystreams=hyapp.Flowsheet.MaterialStreams
La variable hystreams toma el valor de la lista de corrientes (MaterialStreams) de la
hoja de flujos (Flowsheet) del objeto de simulación (hyapp).
La manera de acceder a las diferentes clases de los objetos de simulación de
HYSYS, es usando la jerarquía de objetos separados por puntos, de esta manera se
entiende que MaterialStreams es un objeto procedente de Flowsheet y éste a su vez
procedente de hyapp que es el caso de simulación creado inicialmente.
Dim temperature1 as Double
Declara la variable temperature1 como una variable del tipo real.
temperature1=hystreams.Item(0).TemperatureValue
La variable temperature1 toma el valor de la temperatura (TemperatureValue) de la
primera corriente (Item(0)) de la lista de corrientes hystreams.

6.5.1.3.Escritura en Excel
Con la siguiente secuencia de instrucciones el valor de la temperatura al que se
accedió en el paso anterior es reflejado en una de las celdas de la hoja de cálculo de
Excel:

Dim hoja as Excel.Worksheet


Declara la variable hoja como un objeto del tipo Excel.Worksheet que es una hoja
de cálculo de Excel.

61 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Set hoja=sheets(1)
La variable hoja toma el valor de la primera hoja del Workbook de Excel.
hoja.Range(“C14”).Value=temperature1
El valor de la variable temperature1, que es el valor al que se accedió
anteriormente, es asignado al valor de la celda C14 de la hoja de cálculo creada
(hoja).

6.5.1.4.Escritura en HYSYS
Con el siguiente código introducido en el módulo de Visual Basic el valor de la
temperatura del flujo de entrada de la columna de destilación variara dependiendo del
valor que se le quiera dar desde una hoja de cálculo de Excel:

Dim temperature2 as Double


Declara la variable temperature2 como una variable del tipo real.
temperature2=hoja.Range(“C13”).Value
El valor de la celda C13 de la hoja de cálculo creada (hoja) es asignado a la
variable temperature2.
La asignación en este caso es en el sentido opuesto a la que se hizo en el apartado
de “Escritura en Excel”.
hystreams.Item(0).TemperatureValue=temperature2
El valor de la temperatura (TemperatureValue) de la primera corriente (Item(0)) de
la lista de corrientes hystreams toma el valor de la variable temperature2, que es el
valor que tenia la celda C13 asignado anteriormente.
La asignación en este caso es en el sentido opuesto a la que se hizo en el apartado
de “Lectura de HYSYS”
De la misma manera que se ha accedido al valor de la temperatura de la corriente de
entrada de la columna se puede acceder a todos los demás valores que se crean en una
simulación (presiones, caudales, composiciones, número de platos de la columna, etc.)
La clave esta en conocer su jerarquía de clases, saber de donde deriva el dato que se
desea manipular y crear las variables necesarias para poder acceder a él, todo esto junto
con el inspector de objetos de Visual Basic hace que se puedan controlar todos los datos
de una simulación hecha con el programa HYSYS desde una aplicación de Basic.

62 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.5.2. Objetos OLE en Delphi


Una vez se ha determinado la manera de acceder, leer y modificar parámetros de
HYSYS con Visual Basic, tiene lugar la trascripción a código de Delphi. Las causas por
las que no se usa Visual Basic para la creación de la aplicación completa a pesar de
tener un mejor inspector de objetos son las siguientes:

• Visual Basic no posee la amplia gama de componentes que tiene Delphi,


además, la posibilidad de poder crear nuevos componentes hace que
aumenten más las herramientas de las que disponer para realizar la
aplicación.
• Delphi es más manejable a la hora de ejecutar aplicaciones y tiene un
visualizador de errores que en el caso de que no funcione la aplicación
indica en cada momento las causas, como puede ser una incompatibilidad de
objetos, una sentencia sin terminar, una asignación de tipo errónea, etc.
• Visual Basic no tiene herramientas para la comunicación entre
computadores remotos, en cambio Delphi posee la paleta de componentes
de Indy (Internet Direct) para poder hacer la comunicación mediante
protocolos TCP/IP.
• Se conoce mejor el programa Delphi que Visual Basic debido a que se ha
hecho servir más.
• Visual Basic no es un programa tan robusto como Delphi a la hora de
desarrollar programas de un gran tamaño.
Para poder ver con claridad la manera en que se ha pasado el código de Visual
Basic a Delphi se utilizará el ejemplo visto anteriormente en el que se accede, se lee y se
modifica la temperatura del flujo de entrada de la columna.

6.5.2.1.Acceso a HYSYS
La manera de Delphi de poder acceder a HYSYS es muy similar a como se hacia en
Visual Basic, básicamente es:

var
hyapp: Variant;
Se declara la variable hyapp y se le asigna el tipo de variable Variant que abarca
cualquier tipo de variable.
implementation
hyapp:=CreateOLEObject(‘hysys.application’);
Se le declara un objeto OLE del tipo hysys.application y se le asigna a la variable
hyapp.

63 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

hyapp.SimulationCases.Open(‘C:\hysys|cases|distillation.hsc’);
Abre la aplicación SimulationCase de HYSYS ubicada en la dirección especificada
desde el objeto OLE creado con la variable hyapp.
hyapp.SimulationCases[0].Activate;
Activa la aplicación SimulationCase de HYSYS.

6.5.2.2.Lectura de HYSYS
var
hyapp: Variant;
temperatura: Double;
Se declaran las variables hyapp y temperatura y se les asignan los tipos de variables
Variant y real, respectivamente.
implementation
temperatura:=hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[0].
TemperatureValue;
Se asigna a la variable temperatura el valor de la temperatura (TemperaturaValue)
de la primera corriente (Item[0]) de la lista de corrientes (MaterialStreams) de la
hoja de flujos (flowsheet) del primer caso de simulación (Simulationcases[0]) de la
variable hyapp.

6.5.2.3.Escritura en Delphi
Una vez se ha leído el valor de la temperatura (TemperatureValue) de entrada de la
columna y se le ha asignado a la variable de Delphi (temperatura) esta puede ser
reflejada en Delphi desde una etiqueta (Label), desde un cuadro de texto (Edit) o desde
un visualizador digital (Display)
A continuación se muestra la manera de reflejar ese valor en un Diplay en Delphi:
type
TForm1 = class(TForm )
Display1: TDisplay;
Se añade al Form, desde la paleta de componentes, el componente Display del tipo
TDisplay. En el momento en que se arrastra el componente hasta el Form
automáticamente se crea el código del Display en el editor de código fuente.
Display1.Valor:=floattostr(hyapp.SimulationCases[0].Flowsheet.
MaterialStreams.Item[0].TemperatureValue)
A la propiedad Valor del Display1 se le asigna el valor de la temperatura
(TemperaturaValue) de la primera corriente (Item[0]) de la lista de corrientes
(MaterialStreams) de la hoja de flujos (flowsheet) del primer caso de simulación
(Simulationcases[0]) de la variable hyapp. El trozo de sentencia floattostr hace
referencia a una transformación del tipo de variables; el valor de la temperatura
TemperatureValue es una variable del tipo real, en cambio la propiedad Valor del
Display1 es del tipo String, que son caracteres. Por esto para que pueda verse
reflejada la temperatura en el Display es necesario reordenar el tipo de variable y
comunicarle a Delphi este cambio para que no haya incongruencias en el código.

64 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.5.2.4.Escritura en HYSYS
Para variar desde Delphi los parámetros de HYSYS se utiliza un código muy
similar al que se utilizaba para variarlas desde Visual Basic. El siguiente código
cambiará la temperatura de HYSYS haciendo que esta aumente un grado centígrado:

var
hyapp: Variant;
temperatura: Double;
Se declaran las variables hyapp y temperatura y se les asignan los tipos de variables
Variant y real, respectivamente.
implementation
temperatura:=hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[0].
TemperatureValue;
Se asigna a la variable temperatura el valor de la temperatura (TemperaturaValue)
de la primera corriente (Item[0]) de la lista de corrientes (MaterialStreams) de la
hoja de flujos (flowsheet) del primer caso de simulación (Simulationcases[0]) de la
variable hyapp, de la misma manera que se hacia en el paso de lectura de HYSYS,
de esta manera podremos sumarle un grado a la temperatura que había inicialmente.
hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[0].
TemperatureValue:=temperatura+1;
Al valor de la temperatura (TemperatureValue) de la primera corriente (Item[0]) de
la lista de corrientes (MaterialStreams) de l ahoja de flujos (Flowsheet) del primer
caso de simulación (SimulationCases[0]) de la variable hyapp se le asigna el valor
que tenia anteriormente (temperatura) más una unidad (1).
Partiendo de estas ideas como base se pueden hacer todo tipo de cambios, lecturas,
envíos de datos que sean necesarios. Posteriormente se verá como se han utilizado estos
códigos base para crear tanto la simulación dinámica de la columna de destilación como
la manera de acceder, enviar y recibir estos datos desde la aplicación “servidor” hasta la
aplicación “cliente”

65 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.6. COMUNICACIÓN TCP/IP


6.6.1. Introducción al protocolo TCP/IP
TCP/IP (Transmisión Control Protocol/Internet Protocol) es el lenguaje básico de
comunicación o el protocolo de Internet, aunque también puede ser utilizado como un
protocolo de comunicaciones en una red privada (Intranet o Extranet). Cuando una
computadora tiene acceso a Internet se le proporciona una copia de los programas
TCP/IP, de manera que cada una de las computadoras con las que se vaya a conectar
necesitaran poseer también estos programas.
TCP/IP es una aplicación de dos capas. La capa más alta, Transmisión Control
Protocol, administra la división de los mensajes o archivos en pequeños paquetes (bits)
que son transmitidos a través de Internet y finalmente recibidos por otra capa TCP que
unifica los diferentes paquetes en el mensaje original. Básicamente seria un archivo
dividido en varios pedazos y enviado a través de la red. La capa TCP junta estos
pedazos en su destino formando el original.
La capa más baja, Internet Protocol, administra lo relativo a la dirección de cada
paquete, para que el mismo pueda llegar a su destino correcto. Cada computador hace
de pasarela (ruteador o router) en la red, examina esta dirección para decidir a donde
será derivado el mensaje. Como algunos paquetes del mismo mensaje, serán ruteados de
forma independiente a la de otros, todo ellos deberán ser nuevamente reunidos en su
destino correcto.

Telnet SMTP FTP HTTP SNMP


TCP/UDP
IP/ICMP
Interface de red
Figura 6.2

TCP/IP trabaja como un modelo de comunicación cliente/servidor, en el cual una


computadora (cliente), solicita un servicio (cómo enviar un dato de un programa como
HYSYS), y este servicio es proporcionado por otra computadora (servidor) en la red.

66 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Una comunicación es primariamente punto a punto. Esto significa que cada


comunicación se hace de un punto en la red hacia otro punto. TCP/IP y las aplicaciones
de alto nivel que trabajan con este modelo, son consideradas “sin estado” (stateless),
porque cada pedido del cliente es tomado como un nuevo pedido que no posee relación
con el pedido anterior, no como las conversaciones telefónicas que requieren una
conexión dedicada durante la realización de la llamada. Siendo la comunicación sin
estado, deja los caminos libres de la red para que todos puedan usarla continuamente.
Actualmente muchos usuarios de Internet están familiarizados con las aplicaciones
de protocolos de capas más altas, que usan TCP/IP para adquirir información. Esto
incluye Hypertext Transfer Protocol (HTTP); File Transfer Protocol (FTP); Telnet, que
permite conectarse con un computador remoto en modo comando, y el tan usado Simple
Mail Transfer Protocol (SMTP), que es el protocolo por el cual se transmiten los
mensajes de correo electrónico. Generalmente los usuarios de computadoras personales
se conectan a Internet por medio de Serial Line Internet Protocol (SLIP) o Point-to-
Point Protocol (PPP). Estos protocolos encapsulan los paquetes IP para que ellos puedan
ser enviados por una conexión telefónica vía módem, al proveedor de acceso a Internet.

DATO Router

D A T O

Origen TCP
A
DATO D

O T
Router
Destino TCP
Figura 6.3

6.6.2. Comunicación TCP/IP en Delphi


Delphi posee una de las herramientas de comunicación más potentes de los
programas que utilizan la programación visual para crear aplicaciones. Esta herramienta
se llama Indy (Internet Direct) y es uno de los paquetes de componentes que se pueden
instalar en Delphi, en el caso de que no este en la paleta principal de componentes.
El paquete de componentes Indy posee una gran variedad de componentes muy
útiles a la hora de realizar aplicaciones para la comunicación entre computadores
remotos utilizando los protocolos TCP/IP.

67 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Como se ha dicho anteriormente en la introducción, los protocolos TCP/IP están


basados en la comunicación entre un computador que pide la información al que a partir
de ahora llamaremos Cliente y otro computador que recibe la petición del Cliente y le
envía la información solicitada, este último será llamado Servidor.
Indy posee componentes tanto para crear el código del Cliente (Indy Clients) como
para el código del Servidor (Indy Servers) separados por una pestaña, como se separan
las diferentes paletas de componentes, por secciones temáticas.

Figura 6.4

Figura 6.5

68 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.6.2.1.Indy Client
El código del Cliente creado con los componentes de Indy Clients permitirá al
Cliente desde cualquier computador conectarse con el servidor para que éste pueda
enviar la información necesaria. Para crear este vínculo entre Cliente y Servidor serán
necesarios los siguientes componentes, que se situarán en el Form de la manera más
adecuada (ver figura):

• Un componente IdTCPClient, que proporcionará las órdenes necesarias para


la creación de una comunicación Cliente-Servidor c.
• Un cuadro de texto para la dirección IP del Servidor al que se conectará el
Cliente d.
• Un cuadro de texto para el puerto que el Servidor tiene abierto para poder
acceder a él e.
• Dos botones, uno para iniciar la conexión con el Servidor f y otro para
terminar la conexión con el Servidor g.
• Componentes para la visualización de los datos que enviará el Servidor. En
este caso se han introducido tanto gráficas h para visualizar la progresión
de las variables de HYSYS como Displays i para tener detalle de cada
valor que se actualiza, este último punto se ampliará posteriormente.

f g c
d e

Figura 6.6

69 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Para obtener mayor información y para comprobar la potencia de los componentes


que ofrece el paquete de Indy se muestra a continuación la manera en que el cliente se
conecta con el Servidor para recibir la información.

Definición de clases

TRecvThread=class(TThread)
private
Msg:string;
procedure ReceivedLine;
protected
procedure execute; override;
end;

var
RecevThread: TRecvThread;

Define el tipo TRecvThread como un objeto de la clase Thread, clase que hace
referencia a la comunicación mediante “hilos” de ejecución (programación
concurrente), y que adquiere todas las propiedades de esta clase de objeto y de sus
antecesores. Define también una variable Msg del tipo String, lo que significa que
el mensaje recibido serán caracteres y define dos procedimientos que se usaran para
la comunicación con el servidor; ReceiveLine, que es un procedimiento de recibo de
datos y Execute que hace referencia a la ejecución de una serie de comandos.
Finalmente define una variable RecvThread del tipo creado anteriormente
TRecvThread.

Conectando con el Servidor

with IdTCPClient1 do
begin
Host:=edtHost.Text;
Port:=strtoint(edtPort.text);
Connect;
end;

Se le dice a la aplicación que la conexión del Cliente (IdTCPClient1) se haga


mediante la dirección IP que consta en el cuadro de texto (Host:=edtHost.Text) y
mediante el puerto que consta en el otro cuadro de texto
(Port:=strtoint(edtPort.text), finalmente se le dice a la aplicación que conecte con
el Servidor (Connect).

70 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Ejecutando datos

var
temperatura: Double;

procedure TRecvThread.execute;
begin
while not terminated do begin
try
temperatura:=strtofloat(form1.IdTCPClient1.readln);
synchronize(ReceivedLine);
except
terminate;
end;
end;
end;

Inicialmente se define la variable temperatura del tipo real. Se ejecuta el


procedimiento TRecvThread.execute. Se le asigna a la variable temperatura el
primer dato que recibirá el cliente (form1.IdTCPClient1.readln) mediante el
componente TCPClient de Indy. Posteriormente sincroniza el procedimiento
TRecvThread con el que vendrá a continuación ReceivedLine. Finalmente se
termina el procedimiento con la orden terminate.

Recibiendo datos

procedure TrecvThread.ReceivedLine;
begin
if copy(Msg,1,4) = '-Err' then
MessageDlg(Copy(Msg,5,length(Msg)),mtError,[mbok],0)
else
form1.Display1.Valor:=floattostr(temperatura);
end;

Para la recepción de los datos inicialmente se ejecuta el procedimiento


TRecvThread.ReceivedLine, pero se hace teniendo en cuenta los posibles errores
que pueda haber en el establecimiento de conexión para la recepción de datos; de
manera que si al recibir el mensaje se produce algún error
(if copy(Msg,1,4) = '-Err' then) se le dice a la aplicación que muestre un mensaje de
error (MessageDlg(Copy(Msg,5,length(Msg)),mtError,[mbok],0)), en el caso
contrario, es decir, sino ocurre ningun problema se le dice a la aplicación que el
valor del display1 (form1.Display1.Valor) se corresponda con el primer dato
recibido, que como se dijo en el punto anterior era la variable temperatura.

71 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Desconectando del Servidor

RecvThread.terminated;
IdTCPClient1.Disconnect;
Finalmente se le dice a la aplicación que termine el procedimiento de recepción de
datos (RecvThread.terminated) y que se desconecte del Servidor
(IdTCPClient1.Disconnect).

72 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.6.2.2.Indy Server
El código del Servidor creado con los componentes de Indy Servers permitirá
disponer de un servidor capaz de enviar la información solicitada por uno o varios
clientes al conectarse mediante la dirección IP y el puerto.
Para crear el vinculo entre el Servidor y el Cliente, en este caso, únicamente hará
falta un componente IdTCPServer c, que proporcionará las órdenes, propiedades y
procedimientos necesarios para la comunicación Servidor-Cliente.

Figura 6.7

La manera en que el Servidor envía los datos al Cliente que se los solicita es mucho
más breve que su análoga para el Cliente. Básicamente el código es:

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);


begin
with AThread.Connection do
begin
writeln (floattostr(temperatura));
end;
end;

Se ejecuta el procedimiento IdTCPServer1Connect y se le dice a la aplicación que


cuando un Cliente se conecte mediante la comunicación con “hilos” de información
(AThread.Connection) le envíe la variable temperatura, que es la misma que tiene
definida el Cliente. Así que el valor de la temperatura facilitado por el Servidor le
llegará al Cliente cuando éste se conecte.

A efectos de lo que se explicará más adelante, sobre envío de datos de la columna


de destilación al Cliente, se puntualiza que el orden de envío de datos tiene que ser el
mismo que el orden de recepción de datos, es decir, si el Servidor envía tres
temperaturas por ejemplo temp1, temp2 y temp3, definidas en el editor de código fuente
del Servidor, el Cliente las recibirá en ese orden, así que tendrá que definir en su editor
de código fuente las mismas tres variables y a la hora de recibirlas colocarlas mismo
orden.

73 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.7. CREACIÓN Y DISEÑO DE LA APLICACIÓN


“SERVIDOR”
6.7.1. Introducción
La aplicación Servidor se ha creado con dos objetivos claramente definidos; el
primero esta basado en la comunicación TCP/IP, como se vio en el apartado anterior,
esto hace que el programa haga de servidor de la red para los clientes que se conecten y
estos puedan recibir los datos que se le envían; el segundo objetivo de la aplicación es
crear un entorno dinámico para la columna de destilación simulada con HYSYS. Este
entorno dinámico hará que al variar diferentes parámetros de la columna (temperatura
de entrada y caudal de la alimentación) a lo largo del tiempo varíen a su vez las
condiciones de salida de la misma (temperatura y composiciones del destilado y del
residuo).
Esta variación de condiciones permitirá conocer mejor el funcionamiento de la
columna, permitirá también conocer las condiciones óptimas del proceso y hará que la
columna de destilación virtual creada con HYSYS sea lo más parecida posible a una
columna real, donde no se contempla un estado estacionario en el que no varíen ninguna
de sus condiciones.

6.7.2. Interfaz de usuario

c d
g h
e

f
i j

Figura 6.8

74 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El interfaz de usuario diseñado para la aplicación Servidor es el que se muestra en


la figura, en el se pueden diferenciar las siguientes secciones:

6.7.2.1.Simulación
El panel de simulación es el destinado a crear la simulación dinámica de la columna
de destilación. En el se pueden distinguir los siguientes componentes:

• Botón Start, figura 6.8 c: haciendo clic sobre este botón comenzará a
ejecutarse la simulación dinámica.
• Botón Stop, figura 6.8 d: haciendo clic sobre este botón la simulación
dinámica de la columna se detendrá.
• Opción Variar Temperatura, figura 6.8 e: al tener activada esta casilla, la
simulación dinámica efectuará una variación de la temperatura del flujo de
entrada de la columna a razón de x grados centígrados por segundo; la
pendiente de este incremento vendrá determinada por el usuario que
dispondrá de total libertad para variarla.
• Opción Variar Flujo Molar, figura 6.8 f: al tener activada esta casilla, la
simulación dinámica efectuará una variación del caudal de alimentación de
la columna a razón de 0.005 Kgmol/s por segundo. El valor de 0.005
Kgmol/s se ha elegido por ser éste el incremento idóneo para ver la
progresión de las condiciones de la columna.

6.7.2.2.Condiciones del flujo de entrada


El panel de condiciones del flujo de entrada de la columna muestra los valores
actualizados en cada momento de los parámetros de la corriente de entrada de la
columna mediante Displays, simulando dispositivos digitales de lectura de datos.
Consta de los siguientes componentes:

• Display Temperatura, figura 6.8 g: muestra el valor actual de la


temperatura, en grados centígrados, de la corriente de entrada de la
columna. Este valor se actualizará automáticamente cuando comience la
simulación y se active la opción Variar Temperatura. Al desactivar la casilla
de Variar Temperatura o al detener la simulación, el display mostrará el
último valor recogido.
• Display Flujo Molar, figura 6.8 h: muestra el valor actual del caudal, en
Kgmol/s, de entrada de la columna. Este valor se actualizará
automáticamente cuando comience la simulación y se active la opción
Variar Flujo Molar. Al desactivar la casilla Variar Flujo Molar o al detener
la simulación, el display mostrará el último valor recogido.

75 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

• Display Fracción Volumétrica: muestra el valor, en % 1, de la fracción en


volumen de Etanol, figura 6.8 i y de Agua, figura 6.8 j en la corriente de
entrada de la columna. En este caso la fracción inicial de Etanol y la de
Agua son constantes, ya que no se varía en ningún momento.
• Display Presión, figura 6.8 k: muestra el valor de la presión, en KPa, de la
corriente de entrada de la columna. Este valor no variará durante el proceso
de simulación, de manera que permanecerá constante.

6.7.3. Funcionalidad 1
A parte de lo que el usuario ve y percibe del interfaz de la aplicación, el programa
Servidor ejecuta otras órdenes que no son visibles al ojo del usuario pero si serán
imprescindibles para todo el proceso de simulación y comunicación.
La aplicación Servidor ejecutará sus dos principales funciones; simular la columna
dinámica y enviar los datos necesarios al Cliente.
El programa simulará la variación de la temperatura de entrada de la columna y la
variación del caudal de entrada de la columna y a su vez leerá de HYSYS los siguientes
parámetros que serán enviados al cliente para que este pueda graficarlos, visualizarlos y
analizarlos:
• Temperatura de entrada de la alimentación: al mismo tiempo que el propio
servidor varía esta temperatura, la leerá actualizada y la enviará al Cliente.
• Temperatura de salida del condensado: esta temperatura variará en función
de la temperatura de entrada de la columna. El Servidor únicamente leerá el
dato cada cierto tiempo para poder enviarlo actualizado al Cliente.
• Temperatura de salida del residuo: esta temperatura también variará en
función de la temperatura de entrada de la columna. El Servidor únicamente
leerá el dato cada cierto tiempo y lo enviará actualizado al Cliente.
• Fracción volumétrica de Etanol en la salida del condensado: esta
composición variará en función del caudal de entrada de la columna. El
Servidor leerá el dato de la composición cada segundo actualizándolo y
enviándolo al Cliente.
• Fracción volumétrica de Etanol en la salida de del residuo: esta
composición variará también en función del caudal de entrada de la
columna. El Servidor hará lo mismo con este dato que con los anteriores, lo
leerá actualizado y lo enviará pera que pueda ser visualizado por el Cliente.

1
El código fuente completo de la aplicación Servidor puede consultarse en el anexo “Códigos de
Programación”

76 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.7.4. Comandos auxiliares


Para facilitar la labor del usuario a la hora de manejar y ejecutar la aplicación
Servidor se ha creado un pequeño programa de ayuda que permitirá al usuario conocer
en todo momento la función de todos los componentes dispuestos en el programa. Este
programa de ayuda se muestra en la figura.

Figura 6.9

77 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.8. CREACIÓN Y DISEÑO DE LA APLICACIÓN


“CLIENTE”
6.8.1. Introducción
La aplicación Cliente se ha creado con dos objetivos claramente definidos; el
primero consiste en conectarse con el servidor mediante los protocolos de transmisión
de datos TCP/IP para recibir la información necesaria y el segundo consiste en
monitorizar los datos procedentes de la columna para su posterior análisis.
La aplicación Cliente permitirá al usuario visualizar de manera on-line las
variaciones que se produzcan en la columna de destilación simulada, en este caso las
variaciones de temperatura de entrada y de salida de la columna y la variación de las
composiciones de salida cuando varía el caudal de alimentación de la entrada.
La monitorización de estos parámetros permitirá al usuario conocer el proceso de
destilación desde cualquier computador, siempre y cuando se conecte al servidor que
pueda facilitarle esta información, y podrá analizar los resultados obtenidos para poder
compararlos con otros ensayos experimentales o con un proceso real de destilación con
rectificación.

6.8.2. Interfaz de usuario

e f
c d
g h

Figura 6.10

78 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

El interfaz de usuario que se ha diseñado para la aplicación Cliente es el que se


muestra en la figura. En el se puede diferenciar los siguientes componentes:

• Cuadro Dirección IP, figura 6.10 c: es el cuadro de texto donde se


colocará la dirección IP del servidor al que se quiera conectar el Cliente.
Muchas veces es útil utilizar la dirección IP 127.0.0.1, cuando no se sabe la
dirección del Servidor, esta dirección es la IP del denominado “Local Host”
que conecta con el servidor local que el cliente tenga asignado por defecto.
• Cuadro Puerto, figura 6.10 d: es el cuadro de texto donde se colocará el
puerto de conexión del Servidor. Por defecto se deja el puerto 3232 que es
el que esta asignado al servidor para el funcionamiento de las aplicaciones.
• Botón Conectar, figura 6.10 e: haciendo click sobre este botón el Cliente
se conectará al Servidor cuya dirección IP sea la introducida en el cuadro
Dirección IP. Automáticamente al iniciarse la conexión el Cliente
comenzará a recibir los datos de la simulación que envía el Servidor.
• Botón Desconectar, figura 6.10 f: haciendo clic sobre este botón el Cliente
se desconectará del Servidor dejando de recibir datos. En el momento ñeque
el Cliente quiera volver a recibir datos, basta con volver a conectarse con el
Servidor.
• Panel Fracción en Volumen de Etanol, figura 6.10 g: en este panel se
monitorizan todas las composiciones de Etanol que el Cliente recibe de la
columna de destilación.
o Grafica de composiciones: en ella se muestra la progresión que sigue
la fracción volumétrica de Etanol tanto en la salida del destilado (en
el condensador) como en la salida del residuo.
o Display Destilado: muestra los valores de la fracción volumétrica de
Etanol en el destilado conforme se van actualizando en la columna.
o Display Residuo: muestra los valores de la fracción volumétrica de
Etanol en el residuo conforme se van actualizando en la columna.
• Panel Temperatura, figura 6.10 h: en este panel se monitorizan todas la
temperaturas de todos los caudales de la columna que el Cliente recibe del
Servidor.
o Display Entrada: muestra los valores de la temperatura de la
corriente de entrada de la columna conforme se actualizan en la
columna.
o Display Destilado: muestra los valores de la temperatura de la
corriente de salida del condensado conforme se actualizan en la
columna.

79 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

o Display Residuo: muestra los valores de la temperatura de la


corriente de salida del residuo conforme se actualizan en la columna.

6.8.3. Funcionalidad 2
En este caso la función principal de la aplicación Cliente es la de monitorizar los
datos procedentes de la columna de destilación.
A diferencia de lo que hacia la aplicación Servidor, que leía de HYSYS ciertos
parámetros y los dividía en datos mostrados por el mismo servidor y datos enviados al
Cliente, la aplicación Cliente muestra por pantalla todo los datos que recibe de la
columna, de modo que mediante un proceso totalmente on-line el Cliente recibe todo lo
que el Servidor le envía

6.8.4. Comandos auxiliares


Igual que se ha hecho en la aplicación del Servidor, se ha creado un pequeño
archivo de ayuda que permitirá al usuario que haga servir este programa conocer en
todo momento las funciones de todos los comandos y dispositivos que contiene la
aplicación. Este programa de ayuda se muestra en la figura.

Figura 6.11

2
El código fuente completo de la aplicación Servidor puede consultarse en el anexo “Códigos de
Programación”

80 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

6.9. DIAGRAMA RESUMEN

SERVIDOR Valorar
resultados

Variación Temperatura
Simulación Monitorizar
dinámica Flujo Molar Datos

Temperatura
Fracción
volumétrica
Acceso a Lectura Flujo Molar Recepción
Datos
HYSYS Presión

Temperatura
Fracción
volumétrica

Temperatura
Envío
Temperatura
Datos CLIENTE
Fracción
volumétrica

TCP/IP
Variables de entrada de la columna

Variables de salida de la columna


Figura 6.11

81 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

7. ADAPTACIÓN DEL SISTEMA A COLUMNAS


REALES
Todo el proceso de acceso, lectura, variación, lectura a lo largo del tiempo, envió,
recepción y monitorización de los datos de la columna, que hasta ahora se ahora visto
para una columna simulada puede ser llevado a la realidad si se hace un análisis de las
analogías que tiene una columna real como la que puede tener cualquier centro
universitario y una columna simulada mediante la conjunción de programas como
Delphi y HYSYS. Estas analogías permitirán en su momento cambiar la columna
modelada con un ordenador por la columna real de manera que las aplicaciones
descritas como cliente y servidor sean de igual utilidad.

7.1. SENSORES DE TEMPERATURA


Los sensores de temperatura reales son aparatos capaces de medir variaciones de
temperatura producidas en un entorno determinado. En este caso el entorno de medición
de temperatura seria la corriente de entrada de la columna.
Este sensor real tiene su homologo virtual en el trozo de código de Delphi capaz de
leer continuamente la variación de temperatura, mostrándola actualizada en los displays.
Estas analogías hacen que se pueda sustituir el trozo de código que accede a este cambio
de temperatura por un sensor que actuaría de la misma forma, captando la información
de la entrada de la columna y enviándola a un dispositivo digital para reflejarla. Una
vez se tiene la temperatura en un dispositivo digital se puede hacer con ella lo mismo
que se ha hecho en este caso con la temperatura procedente de la simulación; un
computador central situado el lado de la columna funcionaria como el Servidor,
recibiendo los datos directamente de la columna real desde los sensores, posteriormente
estos datos podrían ser enviados mediante el mismo protocolo TCP/IP a otros
computadores remotos que funcionarían como Clientes.

7.2. REGULADORES DE POTENCIA


Estos reguladores tienen la capacidad de variar la potencia que se le tiene que
suministrar a las mantas calefactores para que calienten la mezcla del calderón. Estos
reguladores también tendrían su homologo virtual representado por la opción que
presentaba la aplicación Servidor Variar Temperatura.

82 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Esta opción, como se ha explicado anteriormente, hace variar la temperatura de la


corriente de entrada a gusto del usuario, de la misma forma que el operario aumenta o
disminuye la potencia de las mantas calefactores para llevar un control de la
temperatura. Lo que significa que en un momento dado se podría sustituir la opción
Variar Temperatura por un controlador digital de la potencia calefactora, de manera que
se pudiera reflejar la variación de temperatura al mismo tiempo que se realiza esta
variación, igual que se ha realizado en la simulación de la variación de la temperatura.

7.3. VÁLVULAS
Las válvulas son dispositivos capaces de regular caudales mediante una llave
reguladora que deja pasar mayor o menor cantidad de fluido a través de una conducción.
El homologo virtual de la simulación realizada seria la opción que presentaba el
Servidor Variar Flujo Molar. En este caso si se requería un aumento del caudal de la
corriente de entrada de la columna se simulaba la apertura de una válvula que dejase
pasar cierta cantidad más de fluido por dicha corriente.
Igual que para una válvula de regulación manual, existen válvulas de regulación
electrónica que responden aumentando o disminuyendo el caudal ante una señal
electrónica. De la misma manera que la variación del caudal de entrada de la columna
virtual hacia variar las composiciones de salida tanto del destilado como del residuo, un
dispositivo electrónico capaz de controlar estas variaciones de caudal tendría el mismo
resultado, pudiendo enviar como se ha hecho en este caso los valores de la fracción
volumétrica de Etanol en la salida de condensados y de residuos.

83 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

8. DEMO
Como parte final del proyecto que se describe en este documento, se realizará una
demostración del funcionamiento del proceso de destilación simulado, así como del
funcionamiento del sistema de comunicación entre servidor y cliente. Las aplicaciones
utilizadas en ambas demostraciones se encuentran en el CD adjunto que acompaña a
esta documentación.

84 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

9. EVALUACIÓN ECONÓMICA

Numero de
Numero Precio de
horas por Precio de cada
Actividad o tipo de gasto de cada hora
persona actividad (€/año)
personas (€/h)
(h/persona)
Estudio de la viabilidad del
140 2 6 1680
PFC (1)
Diseño de la Simulación (2) 120 2 7 1680
Programación y diseño del
130 2 7 1820
software (3)
Pruebas funcionales (4) 60 2 6 720

Confección de
50 2 5 500
documentación (5)
Suma total de costes de
- - - 6400
actividades

Precio por Tiempo de


Cantidad Precio
Material unidad amortización
(unidades) Material(€/año)
(€/unidad) (años)

Ordenadores personales (6) 2 500 3 333


Suma total de costes de
- - - 333
materiales

Coste Total del Proyecto = Costes actividades + Costes materiales

Coste Total del Proyecto = 6400 € + 333 € = 6733 €

9.1. DETALLE DE LOS GASTOS


(1) El estudio de la viabilidad del PFC hace referencia a las horas empleadas
por cada uno de los proyectistas en la realización del anteproyecto, en el que
se sentaban las bases para la confección final del PFC.
(2) El diseño de la simulación hace referencia al tiempo empleado en el
aprendizaje del manejo del software de simulación HYSYS y al tiempo
empleado en la creación y diseño de la columna de destilación virtual.

85 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

(3) La programación y el diseño del software hace referencia al tiempo


empleado en el aprendizaje del manejo del software de programación
Delphi 7, a la creación y diseño de las aplicaciones “Servidor” y “Cliente”
para comunicar computadores y en la comunicación del software con la
columna.
(4) Las pruebas funcionales hacen referencia al tiempo empleado en la
realización de ensayos de comunicación y simulación y a las posteriores
correcciones realizadas. También se engloba el tiempo empleado en la
preparación de la demostración que se realizará en el momento de la
presentación del proyecto.
(5) La confección de la documentación hace referencia al tiempo dedicado a la
recopilación de información y a la redacción de la memoria del proyecto.
(6) En este apartado solo se incluye el gasto por la amortización de dos
ordenadores personales teniendo en cuenta el tiempo de vida media de un
ordenador.

86 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

10. CONCLUSIONES

Una vez se han terminado los procedimientos principales de simulación,


comunicación y monitorización se puede hacer una valoración objetiva de los resultados
obtenidos.
Las conclusiones a las que se han llegado, teniendo presentes los objetivos
marcados al inicio del proyecto, se pueden dividir en tres fases diferenciadas.
En la primera fase, que hace referencia a la simulación de una columna de
destilación, se ha conseguido modelar con el simulador comercial HYSYS una columna
de destilación en estado estacionario que describe correctamente tanto su operación
como su equilibrio líquido vapor de la mezcla etano-agua y su correspondiente
azeótropo. Esto representa un primer paso hacia la simulación dinámica rigurosa que
será necesaria para representar adecuadamente el comportamiento de las columnas del
laboratorio. En cualquier caso, la generalidad del sistema de comunicaciones que se ha
diseñado e implementado permite la sustitución del módulo estacionario por otro
dinámico en el momento en que éste esté disponible. La simulación dinámica se ha
emulado y validado mediante la comunicación entre el programa de simulación HYSYS
y el software de programación Delphi 7, con el que se modifican las condiciones de
entrada al módulo de simulación (la columna), haciéndolas variar a lo largo del tiempo,
y como consecuencia variando a lo largo del tiempo, la información de salida.
En la segunda fase se ha conseguido establecer una comunicación entre dos
computadores creando las aplicaciones Servidor y Cliente con el software de
programación Delphi 7. Esto se ha realizado mediante la conexión de los computadores
vía Internet, gracias a las herramientas que Delphi pone a disposición del usuario. Este
sistema de comunicación permite que la aplicación Servidor extraiga datos de una
columna simulada con HYSYS, y los transmita mediante la red de comunicación
Internet, a los clientes que requieran estos datos. De manera análoga sustituyendo
únicamente el módulo que lee la señal procedente de la columna se conseguiría
transmitir los datos de una columna real.
En la última parte del proyecto se ha conseguido monitorizar los datos que recibe el
Cliente desde el Servidor que proceden de la columna simulada o real. En este caso se
monitorizan tanto la evolución de la fracción volumétrica de etanol como la de la
temperatura graficándolas respecto al tiempo. Existe la posibilidad de almacenar los
datos recibidos en una base de datos para poder realizar posteriores cálculos y/o
estadísticas.
La creación de este tipo de entornos simulados y de sistemas de comunicación tiene
como finalidad primordial el fomento de las nuevas tecnologías como es la
comunicación mediante Internet, y la familiarización con softwares de programación y
de simulación que facilitan el estudio de procesos que se llevan a cabo en la mayoría de
industrias actuales.

87 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Pese a haber obtenido un resultado final muy satisfactorio existe la posibilidad de


realizar ampliaciones o mejoras en cada uno de los procedimientos que se llevan a cabo.
• Ajustar el modelo y los parámetros de la columna simulada a la columna
real, variando las características físicas de la columna, como la longitud, el
diámetro o el tamaño del calderón o mediante softwares capaces de simular
columnas discontinuas como la columna real que nos ocupa.
• Ampliar la simulación dinámica hecha con Delphi para poder estudiar el
mayor número de situaciones que se puedan dar en el sistema.
• Mejorar el diseño y la usabilidad de las aplicaciones Servidor y Cliente para
un mejor dominio de la comunicación y del proceso.
• Graficar más datos procedentes de la columna para poder tener un mayor
control y conocimiento del proceso de destilación.
• Poder comprobar si los sistemas de comunicación diseñados para una
columna virtual tienen un funcionamiento correcto con una columna real, ya
que las aplicaciones creadas fueron concebidas con el fin de poderse
ejecutar en los dos ámbitos.
Todas las mejoras y ampliaciones propuestas tienen un fin común, el control de un
proceso completo de destilación desde cualquier computador con acceso a Internet. Los
programas desarrollados y la arquitectura de comunicación propuesta en este proyecto
permiten y facilitan, gracias a su concepción modular, poder cambiar el módulo de
acceso a la simulación por otro de acceso a un sistema físico de adquisición de datos
(Bus de campo, USB, etc).

88 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

10.1. ESQUEMA RESUMEN


Como resumen general del proyecto se muestra a continuación un esquema de lo
que se ha llevado a cabo:

HYSYS

Estática SIMULACIÓN Dinámica

Servidor

COMUNICACIÓN TCP/IP DELPHI

Cliente
Proceso
Virtual
MONITORIZACIÓN

Proceso
Real Figura 9.1

89 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

11. BIBLIOGRAFIA
Los textos consultados para la realización de este proyecto han sido los siguientes:
• “Operaciones de separación por etapas de equilibrio en ingeniería química”
E.J.Henley, J.D.Seader.
Ed. Reverté
• “Procesos de separación”
C.Judson KingEd.
Reverté
• “Operaciones básicas en ingenieria química (Tomo II)”
Jordi Dosta Parcerisa
• “La Biblia de Delphi 7”
Marco Cantú
Ed. Anaya Multimedia
• “Delphi 7 y Kylix 3”
Francisco Charte
Ed. Anaya Multimedia
Y las webs consultadas han sido las siguientes:

http://www.monografias.com/trabajos/lengprog/lengprog.shtml

http://elsitiodetelecomunicaciones.iespana.es/elsitiodetelecomunicaciones/unix.htm

http://www.sisoft.ucm.es/Manuales/Lenguaje_C.pdf

http://www.lania.mx/biblioteca/newsletters/1996-primavera-verano/art1.html

http://www.borland.com/

http://www.arrakis.es/~ppriego/delphi/delphi.htm

http://www.vsantivirus.com/ig-tcpip.htm

http://www.hyprotech.com

http://www.kobold.com

http://www.honeywell.com

90 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

ANEXOS

91 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

CÓDIGO FUENTE DE LA APLICACIÓN “SERVIDOR”


//NOMBRE DEL ARCHIVO DEL CÓDIGO FUENTE

unit Unit1;

interface

//DEFINICIÓN DE LOS MÓDULOS USADOS

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPServer, COMObj, ActiveX,
OLEServer, StdCtrls, ExtCtrls, ComCtrls, Display, ActnList, Menus,
ImgList, ToolWin;

//DEFINICIÓN DE LOS TIPOS DE OBJETOS CREADOS

type
TForm1 = class(TForm)
IdTCPServer1: TIdTCPServer;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Timer2: TTimer;
Panel1: TPanel;
Display1: TDisplay;
Label2: TLabel;
MainMenu1: TMainMenu;
ActionList1: TActionList;
ImageList1: TImageList;
Servidor1: TMenuItem;
Simulacin1: TMenuItem;
Ayuda1: TMenuItem;
Ayuda2: TMenuItem;
Acercade1: TMenuItem;
IniciarSimulacin1: TMenuItem;
DetenerSimulacin1: TMenuItem;
Salir1: TMenuItem;
IniciarSim: TAction;
DetenerSim: TAction;
Salir: TAction;
Ayuda: TAction;
Panel2: TPanel;
Label3: TLabel;
Label4: TLabel;
Display2: TDisplay;
Display3: TDisplay;
Display4: TDisplay;
Label5: TLabel;

92 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Label6: TLabel;
Label7: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Display5: TDisplay;
Label8: TLabel;
Panel3: TPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Edit1: TEdit;
Label21: TLabel;
Edit2: TEdit;
Label22: TLabel;

//DESCRIPCIÓN DE LOS PROCEDIMIENTOS USADOS

procedure IdTCPServer1Connect(AThread: TIdPeerThread);


procedure FormCreate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure SalirExecute(Sender: TObject);
procedure AyudaExecute(Sender: TObject);
procedure Label20Click(Sender: TObject);
procedure Label11Click(Sender: TObject);
procedure Label12Click(Sender: TObject);
procedure Label13Click(Sender: TObject);
procedure Label15Click(Sender: TObject);
procedure Label16Click(Sender: TObject);
procedure Acercade1Click(Sender: TObject);
procedure Label17Click(Sender: TObject);
procedure Label18Click(Sender: TObject);
procedure Label19Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

93 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

//DEFINICION DE VARIABLES DE LA APLICACION

var
Form1: TForm1;
hyapp, comp1, comp2, comp3: Variant;
flow1, etoh1, water1, etoh2, etoh3, temp1, temp2, temp3, pres1: Double;
implementation

{$R *.dfm}

//PROCEDIMIENTO DE ACCESO A HYSYS CON COMUNICACIÓN OLE

procedure TForm1.FormCreate(Sender: TObject);


begin
IdTCPServer1.Active:=true;
hyapp:=CreateOLEObject('hysys.application');
hyapp.SimulationCases.Open('D:\Documents and Settings\Manuel\Mis
documentos\Downloads\EUETIB\PFC\Proyecto Final\Columnas\Columna Final.hsc');
hyapp.Simulationcases[0].Activate;
button2.Enabled:=false;
end;

//PROCEDIMIENTO DE ENVIO DE DATOS

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);


begin
with AThread.Connection do
begin
writeln (floattostr(etoh2));
writeln (floattostr(etoh3));
writeln (floattostr(temp1));
writeln (floattostr(temp2));
writeln (floattostr(temp3));
end;
end;

//PROCEDIMIENTO DE ASIGNACIÓN DE DATOS DE HYSYS A VARIABLES

procedure TForm1.Timer2Timer(Sender: TObject);


begin

flow1:=hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0].MolarFlowValue;

temp1:=hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0].TemperatureVal
ue;

temp2:=hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[1].TemperatureVal
ue;

94 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

temp3:=hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[2].TemperatureVal
ue;
pres1:=hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0].PressureValue;

comp1:=hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[0].ComponentVol
umeFractionValue;
etoh1:=comp1[0];
water1:=comp1[1];

comp2:=hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[1].ComponentVol
umeFractionValue;
etoh2:=comp2[0];

comp3:=hyapp.SimulationCases[0].Flowsheet.MaterialStreams.Item[2].ComponentVol
umeFractionValue;
etoh3:=comp3[0];

//PROCEDIMIENTO DE VARIACIÓN DE DATOS DE HYSYS

if radiobutton2.Checked=true then

hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0].MolarFlowValue:=flow1
+0.005;
if radiobutton1.Checked=true then

hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0].TemperatureValue:=temp
1+0.5;

//PROCEDIMIENTO DE VISUALIZACIÓN DE DATOS

display1.Valor:=floattostr(hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0
].MolarFlowValue);

display2.Valor:=floattostr(hyapp.Simulationcases[0].Flowsheet.MaterialStreams.Item[0
].TemperatureValue);
display3.valor:=floattostr(etoh1);
display4.Valor:=floattostr(water1);
display5.valor:=floattostr(pres1);
end;

//PROCEDIMIENTO PARA INICIAR LA SILUMACION

procedure TForm1.Button1Click(Sender: TObject);


begin
timer2.Enabled:=true;
button1.Enabled:=false;
button2.Enabled:=true;
end;

95 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

//PROCEDIMIENTO PARA DETENER LA SIMULACIÓN

procedure TForm1.Button2Click(Sender: TObject);


begin
timer2.enabled:=false;
button1.Enabled:=true;
button2.enabled:=false;
end;

//DESCRIPCIÓN DEL LISTADO DE ACCIONES

procedure TForm1.SalirExecute(Sender: TObject);


begin
form1.Close;
end;

//DESCRIPCIÓN DEL ARCHIVO DE AYUDA

procedure TForm1.AyudaExecute(Sender: TObject);


begin
panel3.BringToFront;
panel3.Visible:=true;
end;

procedure TForm1.Acercade1Click(Sender: TObject);


begin
showmessage('Programa creado y diseñado por: '#10#13' '#10#13'MANUEL
GONZALEZ DIOSDADO ngonzalezd@hotmail.com'#10#13'ENRIQUE PÉREZ
ZANÓN kikezanon@hotmail.com')
end;

procedure TForm1.Label20Click(Sender: TObject);


begin
showmessage('Hacer click en el botón "Start" para iniciar la simulación.'#13#10'
'#13#10'Hacer click en el botón "Stop" para detener la simulación.')
end;

procedure TForm1.Label11Click(Sender: TObject);


begin
showmessage('Al activar esta casilla -estando iniciada la simulación- se
inicia'#13#10'la variación de temperatura de la corriente de entrada de la columna.')
end;

procedure TForm1.Label12Click(Sender: TObject);


begin
showmessage('Al activar esta casilla -estando iniciada la simulación- se
inicia'#13#10'la variación del flujo de la corriente de entrada de la columna.')
end;

procedure TForm1.Label13Click(Sender: TObject);

96 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

begin
showmessage('Indica la pendiente de la variación de la temperatura en grados
centígrados por segundo'#10#13' '#10#13'Esta pendiente se puede variar para controlar
la temperatura de entrada, el valor puede ser positivo, negativo o cero')
end;

procedure TForm1.Label15Click(Sender: TObject);


begin
showmessage('Muestra la temperatura de la corriente de entrada de la columna.
'#13#10'El valor se va actualizando mientras se ejecute la simulación.')
end;

procedure TForm1.Label16Click(Sender: TObject);


begin
showmessage('Muestra el caudal o flujo molar de la corriente de entrada de la
columna. '#13#10'El valor se va actualizando mientras se ejecute la simulación.')
end;

procedure TForm1.Label17Click(Sender: TObject);


begin
showmessage('Muestra el procentaje volumétrico de cada uno de los componentes de
la mezcla'#13#10'en la corriente de entrada de la columna')
end;

procedure TForm1.Label18Click(Sender: TObject);


begin
showmessage('Muestra la presión de la corriente de entrada de la columna')
end;

procedure TForm1.Label19Click(Sender: TObject);


begin
panel3.visible:=false;
end;

end.

97 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

CÓDIGO FUENTE DE LA APLICACIÓN “CLIENTE”


//NOMBRE DEL ARCHIVO DEL CÓDIGO FUENTE

unit Unit1;

interface

//DEFINICION DE LOS MODULOS USADOS

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, ComCtrls, Grids, ExtCtrls, Monitor, Graf2, Display,
Switch3State, ActnList, Menus, ImgList;

//DEFINICION DE LOS TIPOS DE OBJETOS CREADOS

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
EdtHost: TEdit;
EdtPort: TEdit;
Label1: TLabel;
Label2: TLabel;
IdTCPClient1: TIdTCPClient;
Timer1: TTimer;
Grafica1: TGrafica;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Grafica2: TGrafica;
MainMenu1: TMainMenu;
Cliente: TMenuItem;
Herramientas1: TMenuItem;
ActionList1: TActionList;
Conectar: TAction;
Desconectar: TAction;
Ayuda: TMenuItem;
Conectar1: TMenuItem;
Desconectar1: TMenuItem;
Salir: TAction;
Salir1: TMenuItem;
NuevaIP1: TMenuItem;
NuevaIP: TAction;
Ayuda1: TAction;
ImageList1: TImageList;
Panel1: TPanel;
Label3: TLabel;

98 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Ayuda2: TMenuItem;
Acercade1: TMenuItem;
Display1: TDisplay;
Display2: TDisplay;
Label10: TLabel;
Label11: TLabel;
Display3: TDisplay;
Display4: TDisplay;
Display5: TDisplay;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;

//DESCRIPCIÓN DE LOS PROCEDIMIENTOS USADOS

procedure Button1Click(Sender: TObject);


procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SalirExecute(Sender: TObject);
procedure NuevaIPExecute(Sender: TObject);
procedure Ayuda1Execute(Sender: TObject);
procedure Label9Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure Label5Click(Sender: TObject);
procedure Label6Click(Sender: TObject);
procedure Label7Click(Sender: TObject);
procedure Label8Click(Sender: TObject);
procedure Acercade1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

//DEFINICIÓN DEL PROCEDIMIENTO PARA LA RECEPCION DE DATOS

TRecvThread=class(TThread)
private
Msg:string;
procedure ReceivedLine;
protected
procedure execute; override;
end;

99 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

//DEFINICION DE VARIABLES DE LA APLICACION

var
Form1: TForm1;
RecvThread: TRecvThread;
etoh2, etoh3, temp1, temp2, temp3: double;
implementation

{$R *.dfm}

//PROCEDIMIENTO DE EJECUCIÓN DE LOS DATOS

procedure TRecvThread.execute;
begin
while not terminated do begin
try
etoh2:=strtofloat(form1.IdTCPClient1.readln);
etoh3:=strtofloat(form1.IdTCPClient1.readln);
temp1:=strtofloat(form1.IdTCPClient1.readln);
temp2:=strtofloat(form1.IdTCPClient1.readln);
temp3:=strtofloat(form1.IdTCPClient1.readln);
synchronize(ReceivedLine);
except
terminate;
end;
end;
end;

//PROCEDIMIENTO DE RECEPCIÓN DE LOS DATOS

procedure TrecvThread.ReceivedLine;
begin
if copy(Msg,1,4) = '-Err' then
MessageDlg(Copy(Msg,5,length(Msg)),mtError,[mbok],0)
else
form1.Grafica1.NouPunt(0,etoh2);
form1.Grafica1.NouPunt(1,etoh3);
form1.Grafica2.NouPunt(0,temp1);
form1.Grafica2.NouPunt(1,temp2);
form1.Grafica2.NouPunt(2,temp3);
form1.Display1.Valor:=floattostr(etoh2);
form1.Display2.Valor:=floattostr(etoh3);
form1.Display3.Valor:=floattostr(temp1);
form1.Display4.Valor:=floattostr(temp2);
form1.Display5.Valor:=floattostr(temp3);
//form1.memRcvMessage.lines.add(Msg);
end;

100 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

//PROCEDIMIENTO DE CONEXIÓN

procedure TForm1.Button1Click(Sender: TObject);


begin
timer1.Enabled:=true;
Button1.Enabled:=false;
button2.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);


begin
with idtcpclient1 do
begin
Host:=edtHost.Text;
Port:=strtoint(edtPort.text);
Connect;
end;

RecvThread:=TRecvThread.create(false);
end;

//PROCEDIMIENTO DE DESCONEXIÓN

procedure TForm1.Button2Click(Sender: TObject);


begin
timer1.Enabled:=false;
RecvThread.terminate;
repeat
application.ProcessMessages;
until RecvThread.terminated;

IdTCPClient1.Disconnect;
button1.Enabled:=true;
button2.enabled:=false;
end;

101 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

//DESCRIPCIÓN DEL LISTADO DE ACCIONES

procedure TForm1.SalirExecute(Sender: TObject);


begin
form1.Close;
end;

procedure TForm1.NuevaIPExecute(Sender: TObject);


begin
EdtHost.Clear;
end;

procedure TForm1.Ayuda1Execute(Sender: TObject);


begin
panel1.BringToFront;
panel1.Visible:=true;
end;

//DESCRIPCIÓN DEL ARCHIVO DE AYUDA

procedure TForm1.Label9Click(Sender: TObject);


begin
panel1.visible:=false;
end;

procedure TForm1.Label4Click(Sender: TObject);


begin
showmessage ('Es la dirección IP del servidor al que quieres
conectar'#10#13'"Ejemplo: 127.0.0.1"'#10#13' '#10#13'Para escribir una nueva
dirección IP haz click en "Herramientas/Nueva IP"')
end;

procedure TForm1.Label5Click(Sender: TObject);


begin
showmessage('Es el puerto de conexión del servidor. Por defecto es el 3232')
end;

procedure TForm1.Label6Click(Sender: TObject);


begin
showmessage('Una vez se haya indicado la dirección IP a la que se quiere conectar,
hacer click en el botón "Conectar" para iniciar la comunicación con el servidor')
end;

procedure TForm1.Label7Click(Sender: TObject);


begin
showmessage('Para cortar la comunicación con el servidor hacer click en el botón
"Desconectar"')
end;

102 de 103
MONITORIZACIÓN DE COLUMNAS DE DESTILACIÓN

procedure TForm1.Label8Click(Sender: TObject);


begin
showmessage('Muestra los datos recibidos en forma de gráfica.'#10#13'
'#10#13'FRACCIÓN EN VOLUMEN DE ETANOL'#10#13' Muestra la progresión de
la fracción en volumnen de etanol'#10#13' '#10#13'TEMPERATURA'#10#13' Muestra
la progresión de las temperaturas de la columna')
end;

procedure TForm1.Acercade1Click(Sender: TObject);


begin
showmessage('Programa creado y diseñado por: '#10#13' '#10#13'MANUEL
GONZALEZ DIOSDADO ngonzalezd@hotmail.com'#10#13'ENRIQUE PÉREZ
ZANÓN kikezanon@hotmail.com')
end;

end.

103 de 103

Anda mungkin juga menyukai