Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Septiembre 2012
SIMULADOR DE PROCESO INDUSTRIAL
2
Resumen
El proyecto que nos atae pretende pasar de ese proceso genrico, a uno
especfico que simule un proceso industrial real. Como tal, se ha elegido un
proceso de fro industrial en una planta dedicada al almacenamiento de
alimentos en cmaras de refrigeracin.
3
SIMULADOR DE PROCESO INDUSTRIAL
4
Tabla de contenidos
1 INTRODUCCIN .......................................................................................................7
2 OBJETIVOS .............................................................................................................. 9
3 ANLISIS DE REQUISITOS.................................................................................... 11
4 DISEO DEL PROYECTO ....................................................................................... 13
4.1 Mecanismos de intercomunicacin de procesos .............................................. 13
4.2 Capa lgica de la aplicacin .............................................................................. 17
4.3 Capa de la interfaz de usuario........................................................................... 19
4.4 Tabla de entradas y salidas ............................................................................... 21
5 IMPLEMENTACIN............................................................................................... 23
5.1 Mecanismos de intercomunicacin de procesos ............................................. 23
5.2 Capa lgica de la aplicacin ............................................................................. 25
5.3 Capa de la interfaz de usuario.......................................................................... 26
5.4 Historial de versiones ...................................................................................... 30
6 PRUEBAS ................................................................................................................ 33
7 FUTURAS IMPLEMENTACIONES ........................................................................ 39
8 CONCLUSIONES ..................................................................................................... 41
9 AGRADECIMIENTOS ............................................................................................. 43
10 BIBLIOGRAFA ................................................................................................... 45
11 ANEXO 1: MANUAL DE USUARIO .....................................................................47
11.1 Introduccin .....................................................................................................47
11.2 Manejo de la aplicacin ................................................................................... 49
11.3 Tabla de entradas y salidas .............................................................................. 53
5
SIMULADOR DE PROCESO INDUSTRIAL
6
1 INTRODUCCIN
El documento que tenemos a continuacin sirve para presentar el trabajo
realizado en el actual proyecto de final de carrera.
Con todo esto, estaba claro que era muy complicado que el alumno
dispusiera de todo este material para practicar en casa, debido a su coste. Por
ello, Miguel Carro desarroll unas herramientas software equivalentes a dicho
hardware, quedando de la siguiente forma:
1. La tarjeta NuDAQ / NulPC 9112 Series fue simulada por una tarjeta
virtual de adquisicin de datos.
2. Un simulador software de procesos que permita cargar y obtener datos
de la tarjeta virtual.
3. El programa de prcticas del alumno no sufri modificaciones, la
compatibilidad sigui siendo exacta.
4. La librera de la tarjeta fue modificada, preparada para comunicar con
procesos virtuales en lugar del hardware.
5. El mismo compilador y el mismo PC.
7
SIMULADOR DE PROCESO INDUSTRIAL
8
2 OBJETIVOS
El objetivo del presente proyecto consiste en desarrollar una aplicacin
grfica que simule un proceso industrial, utilizando la tarjeta virtual y su
librera, desarrolladas en su proyecto final de carrera por Miguel Carro Pellicer.
Con todo esto, podemos considerar que los objetivos que se debern
alcanzar sern los siguientes:
9
SIMULADOR DE PROCESO INDUSTRIAL
PROGRAMA
PRCTICAS
DEL ALUMNO
TARJETA
PROCESO
ADQUISICIN
VIRTUAL
VIRTUAL
LIBRERA
TARJETA
VIRTUAL
PROGRAMA
SIMULADOR
AUTMATA
TARJETA SIMULADOR
ADQUISICIN GRFICO FRO
VIRTUAL INDUSTRIAL
LIBRERA
TARJETA
VIRTUAL
10
3 ANLISIS DE REQUISITOS
Se ha elegido un proceso de fro industrial, en el cual se simular el
funcionamiento de una planta industrial, dedicada al almacenamiento de
alimentos en cmaras de refrigeracin. En ella deberemos encontrar los
diferentes elementos necesarios para obtener el fro que se precisa para
conservar dichos alimentos. Ser posible interactuar con estos elementos, con
el fin de que el alumno pueda simular las distintas situaciones que se pueden
dar en la vida real en un proceso de este tipo, el cual se ve afectado directamente
por los cambios de temperatura ambiente, averas en alguno de los equipos, as
como la accin directa de los operarios de dicha planta, los cuales abren y
cierran las cmaras, cambian las consignas de temperatura de trabajo de las
cmaras, en funcin de los alimentos que van a contener, las llenan y las vacan,
etc. De esta forma, lo que se deber de programar es que al actuar sobre los
elementos de la instalacin, este actualizar el dato correspondiente en la tarjeta
virtual, envindole el mensaje con la informacin necesaria para ello. Del
mismo modo, la aplicacin estar en todo momento a la espera de recibir
mensajes, para actualizar si debe, el elemento asignado a la salida digital o
analgica correspondiente.
11
SIMULADOR DE PROCESO INDUSTRIAL
12
4 DISEO DEL PROYECTO
Para desarrollar la aplicacin del simulador, se ha utilizado el lenguaje
Object Pascal, dentro del entorno de programacin Borland Delphi 7, el cual es
un entorno de desarrollo flexible y potente. Una de las mayores ventajas de la
programacin en Delphi es que es una programacin orientada a objeto, lo cual
facilita mucho la labor del programador.
13
SIMULADOR DE PROCESO INDUSTRIAL
14
3. Valor: Determina el campo de datos de la trama. Cuando se trata de una
trama que actualiza un valor digital, este campo Valor contendr un
nmero entero, cuyos bits representarn cada una de las salidas o
entradas digitales. En el caso de las tramas para actualizar valores
analgicos, este campo Valor contendr un nmero en formato
decimal, salvo en el caso de las tramas con el cdigo AI, donde el valor
ser un nmero entero que habr que escalar adecuadamente para
obtener el nmero decimal esperado. En todos los casos se tratar de
valores de un tamao de 4 bytes.
15
SIMULADOR DE PROCESO INDUSTRIAL
Tarjeta virtual
Librera tarjeta
PROGRAMA
SIMULADOR
AUTMATA
tubolib tubotest
TARJETA SIMULADOR
ADQUISICIN GRFICO FRO
VIRTUAL INDUSTRIAL
tubotest2
LIBRERA
TARJETA
VIRTUAL
PROCESO PRCTICAS
ALUMNO
16
Si aadimos los hilos de programacin y los eventos, el esquema quedara
de la siguiente forma:
TARJETA DE
ADQUISICIN
VIRTUAL
PROGRAMA
TARJETA
VIRTUAL
PROGRAMA
SIMULADOR TuboTest
AUTMATA Hilo servidor APLICACIN
actualizacione
GRFICA
FRO
TuboLib INDUSTRIA
Esperando EventoEnviar
Hilo servidor
LIBRERA librera
TARJETA Hilo Datos
VIRTUAL Salida SIMULADOR
GRFICO FRO
Esperando EventoLibreria Esperando EventoRecibir INDUSTRIAL
PROCESO PRCTICAS ALUMNO
Hemos utilizado variables para guardar los manejadores de los tubos, los
identificadores de los eventos y por supuesto para guardar los datos que se
utilizan en los procedimientos y funciones encargados de las comunicaciones
con la tarjeta.
Por otro lado, hemos definido variables, para guardar los valores que se
reciben de la tarjeta virtual y que posteriormente nos servirn para saber que
imgenes debemos mostrar en cada momento.
Otras variables que hemos utilizado, nos han servido para saber en cada
momento que imagen tenemos cargada en pantalla. Esto nos servir para poder
realizar las animaciones de estas imgenes.
17
SIMULADOR DE PROCESO INDUSTRIAL
18
parmetros de trabajo definidos acta en consecuencia. En nuestro caso,
debemos hacer que dependiendo de las circunstancias que se den en la
aplicacin, se produzca esa variacin de temperatura y que posteriormente esta
se enve a la tarjeta como si fuera una lectura de la sonda. Para realizar esto,
pondremos un temporizador que tenga en cuenta todas esas circunstancias y
realice un clculo aproximado de cmo podra variar esas temperaturas. Para
hacer ms gil la aplicacin se acortarn los tiempos de respuesta, ya que de
hacerlo a tiempo real, se necesitara mucho tiempo para ver la simulacin.
19
SIMULADOR DE PROCESO INDUSTRIAL
para condensar el gas que recibe del compresor. Al igual que ocurra con el
compresor, tanto los ventiladores como la bomba cambiarn de color en funcin
de su estado y se utilizar el mismo criterio de colores que para el compresor.
En el caso de los ventiladores, cuando estn en marcha, se vern girar las aspas,
haciendo ms real el proceso.
20
Por ltimo, tendremos un control para simular los cambios de
temperatura ambiente, la cual afecta directamente a la simulacin de
temperatura tanto en la cmara como en el glicol.
Entradas digitales
Bit Seal Estados
0 Interruptor general del cuadro elctrico 1 - Conectado / 0 - Desconectado
1 Diferencial del compresor 1 - Ok / 0 - Avera
2 Diferencial del ventilador del condensador 1 - Ok / 0 - Avera
3 Diferencial de la bomba del condensador 1 - Ok / 0 - Avera
4 Diferencial de la bomba del circuito primario 1 - Ok / 0 - Avera
5 Diferencial de la bomba del circuito secundario 1 - Ok / 0 - Avera
6 Diferencial del ventilador de la cmara 1 - Ok / 0 - Avera
7 Sensor de puerta abierta 1 - Abierta / 0 - Cerrada
8 Seta de emergencia de hombre encerrado en cmara 1 - Activada / 0 - No activada
9 Paro/marcha de la cmara 1 - Marcha / 0 - Paro
Salidas digitales
Bit Seal Estados
0 Marcha compresor 1 - Marcha / 0 - Parado
1 Marcha ventilador del condensador 1 - Marcha / 0 - Parado
2 Marcha bomba del condensador 1 - Marcha / 0 - Parado
3 Marcha bomba del circuito primario 1 - Marcha / 0 - Parado
4 Marcha bomba del circuito secundario 1 - Marcha / 0 - Parado
5 Marcha ventiladores de la cmara 1 - Marcha / 0 - Parado
Entradas analgicas
Canal Seal Rango
0 Consigna de paro de la cmara -3C .. 40C
1 Consigna de marcha de la cmara -2C .. 40C
2 Temperatura de la cmara -5,75C .. 40C
3 Temperatura del depsito de glicol -12,75C .. 40C
21
SIMULADOR DE PROCESO INDUSTRIAL
22
5 IMPLEMENTACIN
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation );
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds);
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
23
SIMULADOR DE PROCESO INDUSTRIAL
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId );
BOOL WaitNamedPipe(
LPCTSTR lpNamedPipeName,
DWORD nTimeOut );
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile );
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped );
24
lpBuffer, devolviendo el nmero de bytes leidos, en la variable pasada como
parmetro lpNumberOfBytesRead.
BOOL WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped );
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL bManualReset,
BOOL bInitialState,
LPCTSTR lpName);
BOOL SetEvent(
HANDLE hEvent );
25
SIMULADOR DE PROCESO INDUSTRIAL
Por un lado, tenemos uno para controlar los estados de los diferentes
elementos de la instalacin, compresor, ventiladores, bombas y sirena de
hombre encerrado. Este se ejecuta cada segundo, y en su evento OnTimer,
encontramos las llamadas a cada una de los procedimientos que hemos definido
para controlar cada uno de los elementos de la instalacin, por ejemplo
EstadoCompresor, EstadoVentiladorCondensador o
EstadoBombaPrimario. Dentro de cada uno de estos procedimientos, en
funcin de los valores que se han ledo de la tarjeta, por ejemplo marcha y
avera, se har que se cargue la imagen adecuada a cada situacin, y el caso de
que estn en marcha, incluso se podr simular que los ventiladores giran o que
la sirena cambia de color.
Por otro lado, tambin tenemos otro temporizador, que se ejecuta cada 3
segundos, en el cual se han puesto las llamadas a los procedimientos
TemperaturaCamara y TemperaturaGlicol, encargados de simular la
variacin de temperatura en estos elementos.
26
Aqu podemos ver como se presenta dicha aplicacin al usuario:
27
SIMULADOR DE PROCESO INDUSTRIAL
28
autmata (el que ser el programa de prcticas de los alumnos), el
encargado de activar los bits necesarios para que la aplicacin sepa en
qu estado se encuentra cada elemento.
Por ltimo, tambin tenemos otra imagen para mostrar o quitar gnero
dentro de la cmara. Esta imagen, se har visible o no, utilizando su
propiedad Visible, dentro del evento OnClick del botn creado para
tal fin. Al igual que pasaba con otros elementos, tambin se actualizar el
bit asignado para esto, dentro de la variable entrada_digital y esta ser
escrita en la tarjeta virtual.
29
SIMULADOR DE PROCESO INDUSTRIAL
30
Versin 3 de julio de 2012
31
SIMULADOR DE PROCESO INDUSTRIAL
Versin final
32
6 PRUEBAS
Para probar el correcto funcionamiento del simulador grfico, y que todos
los elementos respondan adecuadamente ante los cambios que se realizaban en
este, se ha realizado un completo programa en C, que representa lo que sera en
una instalacin real, un programa de un autmata, el cual se encarga de realizar
el control de la planta. Este programa ser un ejemplo del que tendrn que
hacer los alumnos en el futuro, cuando realicen sus prcticas.
float consigna_paro;
float consigna_marcha;
float temperatura_camara;
float temperatura_glicol;
printf ("\nHola\n");
card = Register_Card(PCI_9112, 0);
if (card<0)
{
printf ("\error %d\n",card);
33
SIMULADOR DE PROCESO INDUSTRIAL
while (!kbhit())
{
err = DI_ReadPort (card, 0, &digi);
interruptor_general = (digi & 0x0001);
dif_compresor = (digi & 0x0002);
dif_ventilador_condensador = (digi & 0x0004);
dif_bomba_condensador = (digi & 0x0008);
dif_bomba_primario = (digi & 0x0010);
dif_bomba_secundario = (digi & 0x0020);
dif_ventilador_camara = (digi & 0x0040);
puerta_abierta = (digi & 0x0080);
if (digi & 0x0100)
hombre_encerrado = 1;
else hombre_encerrado = 0;
if (digi & 0x0200)
marcha_camara = 1;
else marcha_camara = 0;
salida_digital = 0;
// Si no est activo el interruptor general no se hace nada, ya que la instalacin no tiene corriente
if (interruptor_general)
{
err = AI_ReadChannel (card, 0, 2, &analog);
analog = analog >> 4;
consigna_paro = (100.0*analog/4095)-40;
// Controlo si hay que hacer fro, teniendo en cuenta si la temperatura de la cmara est por
// encima de la consigna de marcha indicada o parndolo cuando se alcanza la consigna de paro,
// y siempre que est habilitada la cmara desde el cuadro
// Controlo si hay que enfriar el glicol, teniendo en cuenta si la cmara est habilitada y
34
// teniendo en cuenta que para enfriar a determinada temperatura, el glicol debe de estar como
// mucho 8 C por debajo de esta
if (marcha_camara)
{
if (temperatura_camara >= (consigna_marcha))
enfriar = 1;
else
if (temperatura_camara <= (consigna_paro))
enfriar = 0;
if (dif_ventilador_condensador)
35
SIMULADOR DE PROCESO INDUSTRIAL
{
if (marcha_primario)
salida_digital = salida_digital + 2; //marcha ventilador condensador
}
else salida_digital = salida_digital + 256; //avera elctrica ventilador condensador
if (dif_bomba_condensador)
{
if (marcha_primario)
salida_digital = salida_digital + 4; //marcha bomba condensador
}
else salida_digital = salida_digital + 512; //avera elctrica bomba condensador
if (dif_bomba_primario)
{
if (marcha_primario)
salida_digital = salida_digital + 8; //marcha bomba primario
}
else salida_digital = salida_digital + 1024; //avera elctrica bomba primario
if (dif_bomba_secundario)
{
if (marcha_secundario)
salida_digital = salida_digital + 16; //marcha bomba secundario
}
else salida_digital = salida_digital + 2048; //avera elctrica bomba secundario
if (dif_ventilador_camara)
{
if (marcha_secundario)
salida_digital = salida_digital + 32; //marcha ventiladores cmara
}
else salida_digital = salida_digital + 4096; //avera elctrica ventiladores cmara
// Si la puerta est cerrada y se pulsa el botn de hombre atrapado, hago sonar la sirena
if (!puerta_abierta && hombre_encerrado)
salida_digital = salida_digital + 64; //sirena hombre atrapado
}
Sleep (100);
}
getch();
return 0;
}
36
Para completar las pruebas en la aplicacin grfica, se han ido simulando
las distintas situaciones que se pueden dar en una instalacin de este tipo. Se
han provocado averas en los elementos del circuito de fro, comprobando que el
resto de elementos respondan de la forma esperada.
37
SIMULADOR DE PROCESO INDUSTRIAL
38
7 FUTURAS IMPLEMENTACIONES
Entre las posibles ampliaciones que se podran realizar al presente
proyecto podra estar el incluir ms animaciones en los elementos. Por ejemplo,
se podra hacer que las tuberas simularan el movimiento de los lquidos.
39
SIMULADOR DE PROCESO INDUSTRIAL
40
8 CONCLUSIONES
Cumpliendo con los requisitos propuestos, se ha realizado una aplicacin
que pondr en manos de los alumnos una completa herramienta grfica, que
representa con gran exactitud el funcionamiento real de una instalacin de fro
industrial.
Con ella podrn realizar sus prcticas tanto en los laboratorios como en
sus propias casas, simulando las situaciones habituales que se dan en este tipo
de instalacin, sin tener que desplazarse a estas, y por supuesto sin tener que
disponer de estos equipos, compresores, condensadores, etc., a los cuales
obviamente no se tiene acceso salvo que trabajes para alguna empresa que se
mueva en este sector.
41
SIMULADOR DE PROCESO INDUSTRIAL
42
9 AGRADECIMIENTOS
A los compaeros del trabajo que me han ayudado a comprender el
funcionamiento real de una instalacin de fro industrial, en especial a Jos
Pascual Ferrer Ferrer y Francisco Calatayud Sampedro, que han aportado su
dilatada experiencia, como programadores de los autmatas empleados en este
tipo de instalaciones.
Por supuesto, al director del proyecto Antonio Mart Campoy, por haber
comprendido mi situacin personal y laboral. Por otro lado, agradecer el inters
mostrado en todo momento en el avance del proyecto, inclusive durante su
periodo de vacaciones, y por toda la ayuda prestada, para comprender el
funcionamiento de la tarjeta virtual y la librera, que deba utilizar para realizar
este proyecto.
Por ltimo, agradecer a mi mujer y mis hijos, por todo ese tiempo, tardes,
fines de semana, vacaciones en los cuales no les he podido prestar la atencin
que requeran, por tener que dedicarlo a mis estudios y en ltimo lugar a este
proyecto.
43
SIMULADOR DE PROCESO INDUSTRIAL
44
10 BIBLIOGRAFA
Memoria del proyecto final de carrera de Miguel Carro Pellicer:
"Simulador De Tarjeta De Adquisicin De Datos Nudaq/Nuipc 9112
Series".17/07/07 (Director Acadmico: Mart Campoy, Antonio)
MSDN library online, consulta de sintaxis de las llamadas del lenguaje C.
Biblioteca de dibujos de elementos de instalaciones de fro, desarrollados
en la empresa Diselcom S.L. (empresa de la cual soy responsable del
Departamento de Informtica Interna.)
Delphi Help. Consulta de propiedades, eventos, funciones, etc. de los
objetos de Delphi.
Microsoft Windows Setup API Programers Reference. Consulta de la
estructura en las funciones API de Windows.
45
SIMULADOR DE PROCESO INDUSTRIAL
46
11 ANEXO 1: MANUAL DE USUARIO
11.1 Introduccin
47
SIMULADOR DE PROCESO INDUSTRIAL
48
11.2 Manejo de la aplicacin
49
SIMULADOR DE PROCESO INDUSTRIAL
50
Tambin se tendr en cuenta si la puerta est abierta o cerrada y si la cmara
est llena o vaca. Cuesta ms enfriar gnero que el aire de una cmara vaca.
51
SIMULADOR DE PROCESO INDUSTRIAL
52
11.3 Tabla de entradas y salidas
Entradas digitales
Bit Seal Estados
0 Interruptor general del cuadro elctrico 1 - Conectado / 0 - Desconectado
1 Diferencial del compresor 1 - Ok / 0 - Avera
2 Diferencial del ventilador del condensador 1 - Ok / 0 - Avera
3 Diferencial de la bomba del condensador 1 - Ok / 0 - Avera
4 Diferencial de la bomba del circuito primario 1 - Ok / 0 - Avera
5 Diferencial de la bomba del circuito secundario 1 - Ok / 0 - Avera
6 Diferencial del ventilador de la cmara 1 - Ok / 0 - Avera
7 Sensor de puerta abierta 1 - Abierta / 0 - Cerrada
8 Seta de emergencia de hombre encerrado en cmara 1 - Activada / 0 - No activada
9 Paro/marcha de la cmara 1 - Marcha / 0 - Paro
Salidas digitales
Bit Seal Estados
0 Marcha compresor 1 - Marcha / 0 - Parado
1 Marcha ventilador del condensador 1 - Marcha / 0 - Parado
2 Marcha bomba del condensador 1 - Marcha / 0 - Parado
3 Marcha bomba del circuito primario 1 - Marcha / 0 - Parado
4 Marcha bomba del circuito secundario 1 - Marcha / 0 - Parado
5 Marcha ventiladores de la cmara 1 - Marcha / 0 - Parado
Entradas analgicas
Canal Seal Rango
0 Consigna de paro de la cmara -3C .. 40C
1 Consigna de marcha de la cmara -2C .. 40C
2 Temperatura de la cmara -5,75C .. 40C
3 Temperatura del depsito de glicol -12,75C .. 40C
53
SIMULADOR DE PROCESO INDUSTRIAL
54