Publicado el 26 de Septiembre del 2018
1.272 visualizaciones desde el 26 de Septiembre del 2018
4,1 MB
92 paginas
Creado hace 12a (08/01/2013)
SIMULADOR PARA CONTROL Y
AUTOMATIZACIÓN UTILIZANDO UN
ENTORNO VIRTUAL 3D INTERACTIVO Y
CONFIGURABLE
Departamento de Sistemas y Automática. Escuela Superior de Ingenieros.
Universidad de Sevilla.
Diciembre 2012
PROYECTO FIN DE CARRERA
AUTOR: D. ADOLFO JUAN SÁNCHEZ DEL POZO FERNÁNDEZ
TUTOR: D. EDUARDO FERNÁNDEZ CAMACHO
CO-TUTOR: D. JUAN MANUEL ESCAÑO GONZÁLEZ
AGRADECIMIENTOS
A mi familia, en especial a mis padres y mis hermanas por estar siempre a mi
lado.
A mis amigos por aguantarme y a Juan Manuel por su apoyo y amistad.
Índice
1 INTRODUCCIÓN
INTRODUCCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2 ESTADO DEL ARTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 ESTRUCTURA DEL DOCUMENTO . . . . . . . . . . . . . . . . . . . . . . . . .
2 INTRODUCCION TEORICA
2.1 SITUACION DE PARTIDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 DESCRIPCION DE LA APLICACIÓN OBJETIVO . . . . . . . . . . . . . . . . .
2.2.1 Conexión mediante Server OPC . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Conexión mediante puerto USB . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 TECNOLOGIAS Y HERRAMIENTAS DE DESARROLLO . . . . . . . . . . . . .
2.3.1
INTRODUCCIÓN A C# Y XNA . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 ENTORNOS DE MODELADO 3D. INTRODUCCION A AC3D. . . . . . .
2.3.3 OPC (OLE FOR PROCESS CONTROL) . . . . . . . . . . . . . . . . . . .
3 DISEÑO E IMPLEMENTACION DEL SIMULADOR
3.1 MOTOR FÍSICO Y SISTEMA DE COLISIONES . . . . . . . . . . . . . . . . . .
3.2 ESTRUCTURA DE LA APLICACIÓN . . . . . . . . . . . . . . . . . . . . . . . .
3.3 PROGRAMA PRINCIPAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 CLASES PARA LOS ELEMENTOS INDUSTRIALES . . . . . . . . . . . . . . . .
3.4.1 CINTA TRANSPORTADORA . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 PLATAFORMA GIRATORIA + CINTA . . . . . . . . . . . . . . . . . . .
3.4.3 GRÚA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4 RAMPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.5 DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.6 PISTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.7
SENSORES DE BARRERA . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.8 MONTACARGAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.9 ROBOT 5 GRADOS DE LIBERTAD . . . . . . . . . . . . . . . . . . . . .
3.4.10 CONEXION CLIENTE OPC - SERVIDOR OPC - PLC . . . . . . . . . . .
3.4.11 CUADRO DE CONTROL Y OPCIONES . . . . . . . . . . . . . . . . . . .
4 ESCENARIO PROTOTIPO Y EDITOR DE ESCENARIOS
4.1 ESCENARIO DESARROLLADO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 EDITOR DE ESCENARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
9
11
12
12
12
13
14
14
14
18
20
24
24
28
30
31
32
37
40
44
46
47
51
53
55
61
64
67
67
69
5 MANUAL DE USUARIO
5.1
INSTALACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 CONFIGURACIÓN DE UNITY PRO . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 CONFIGURACIÓN OPC OFS 3.31 . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 DESCRIPCIÓN DEL SIMULADOR . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 OBJETIVOS DEL ESCENARIO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 DESCRIPCIÓN DE LOS ACTUADORES Y SENSORES DEL ESCENARIO . .
5.7 NORMAS PARA LA IMPLEMENTACIÓN DEL PROGRAMA DE CONTROL EN
81
UNITY PRO XL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.8 CONEXIÓN Y EJECUCIÓN PLC-OPC-SIMULADOR . . . . . . . . . . . . . . .
5.9 MODIFICACIONES DEL PROYECTO EN UNITY PRO . . . . . . . . . . . . . .
83
5.10 VIDEO DE EJEMPLO DE CONEXION Y FUNCIONAMENTO DE LA PLANTA 84
71
71
71
72
74
75
77
6 CONCLUSIONES Y FUTURAS LINEAS DE TRABAJO
7 BIBLIOGRAFIA
85
86
Lista de Figuras
1
2
3
21
22
23
24
giratorias.
Usuarios de Half-Life 2 interactuando con objetos del escenario.
. . . . . . . . . .
Imagenes de varios escenarios de ITS PLC. a) Almacen automatizado. b) Mezclado
de pintura. c) Selección y empaquetado de piezas.
. . . . . . . . . . . . . . . . . .
Imagen mostrando la asignación estática de los sensores y actuadores en un escenario
de ITS PLC.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Captura de pantalla de una parte del modelo 3D de la grúa en AC3D.
. . . . . . .
4
Captura de pantalla de la texturización de un modelo en AC3D . . . . . . . . . . .
5
Esquema de conexión mediante OPC Server.
. . . . . . . . . . . . . . . . . . . . .
6
Esquema de conexión, entradas/salidas e interfaces. . . . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplos de uso de Bullet Physics.
8
9
Ejemplos de uso de JigLibX.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Contacto entre 2 objetos penetrando . . . . . . . . . . . . . . . . . . . . . . . . . .
11 Objetos con composición geométrica simple a), y compuesta b). . . . . . . . . . . .
12 Estructura del proyecto JigLibX en Visual Express C#.
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
13 Estructura de la aplicación. Diagrama de flujo.
14 Estructura del proyecto de la aplicación en Visual Express C#.
. . . . . . . . . . .
15 Ejemplo de código en C# de la declaración de las variables para incluir mesas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
16 Código en C# de la carga de contenidos 3D.
17 Código C# de uso repetitivo para inicializar un elemento.
. . . . . . . . . . . . . .
18 Código C# de la aplicación. a) Código repetitivo en bucle “for” para la actualización
de elementos de una misma clase. b) Código repetitivo para el renderizado de
modelos 3D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 Estructura de métodos de la clase Elemento Industrial.
. . . . . . . . . . . . . . .
20 Código en C# mostrando la llamada a métodos “Opcionales”, de las clases Grúa y
Cinta2, tras la llamada al motor físico. . . . . . . . . . . . . . . . . . . . . . . . . .
Imágenes pruebas de transporte de un objeto físico por la cinta transportadora. . .
Imágenes de la Cinta transportadora parcialmente texturizada. a) Imagen en reposo.
b) Imagen transportando objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imágenes del modelado final de la cinta transportadora y la zona de caída de cajas.
Imágenes del renderizado de los objetos físicos que realizan la simulación de la cinta
transportadora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25 Código en C# que describe el movimiento de la cinta giratoria mediante las variables
de velocidad.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
Imágenes del renderizado de los modelos físicos y 3D de la plataforma giratoria. . .
27 Código en C# que calcula la posicion y ángulos de los modelos 3D de los rodillos
. . . . . . . . . . . . . . . . . . .
28 Código en C# del método “Update2” de la plataforma giratoria que se ejecutará
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
tras el paso por el motor físico.
Imagen del modelo completo de la grúa del proyecto, garra abierta y bajada.
. . .
29
Imagen del modelo completo de la grúa del proyecto, garra abierta y subida. . . . .
30
Imagen del modelo físico que simulará el funcionamiento de la grúa.
. . . . . . . .
31
Imagen del modelo físico que simulará el funcionamiento de la grúa.
. . . . . . . .
32
. . . . . . . . . . . . . . . . . . . . . . . .
Imagen de la grúa sosteniendo una caja.
33
34
Imagen de la grúa soltándo una caja en movimiento.
. . . . . . . . . . . . . . . . .
35 Código C# que se encarga del funcionamiento de la garra mediante detección de
colisiones añadidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Imágenes de los modelos a) 3D , b) físico de la rampa.
. . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
36
37 Código en C# de la declaración e inicialización de un elemento Rampa.
38
39
Imágenes del renderizado 3D de un Destructor.
Imágenes del renderizado del modelo físico de un Destructor.
en función de la velocidad lineal del objeto físico.
7
8
9
19
20
20
21
26
26
27
28
28
29
29
30
30
31
31
32
32
33
34
35
36
38
39
39
40
40
41
41
42
42
43
44
45
46
46
47
47
48
49
50
50
51
51
52
52
53
54
54
64
65
66
objetos del escenario y eliminarlos encaso positivo.
las distintas partes y se reajustan al comienzo del mismo.
Imágenes de los modelos físicos del brazo de 5 grados. 4 elementos más la garra.
Imágenes del brazo en 3 posiciones diferentes.
40 Código en C# para chequear las colisiones del objeto físico del Destructor con otros
. . . . . . . . . . . . . . . . . .
42 Código en C# donde se declaran las variables de objetos físicos. . . . . . . . . . . .
Imágenes del Pistón. a) Modelo 3D pistón recogido b) Modelo 3D pistón extendido.
41
43 Código en C# para la simulación del movimiento del pistón.
. . . . . . . . . . . .
Imagen del pistón doble en resposo sobre la cinta transportadora. . . . . . . . . . .
44
. . . . . . . . . . . . . . . . . . . . .
Imagen del pistón doble empujando una caja.
45
Imagen del Sensor de barrera. Modelo 3D del Sensor con rayo.
46
. . . . . . . . . . .
Imágenes del Sensor de barrera. a) Contacto límite entre objeto y sensor activandose.
47
b) Objeto cercano sin colisionar con el sensor de barrera. . . . . . . . . . . . . . . .
48 Código C# que muestra como se detecta la colisión con el segmento y la
. . . . . . . . . . . . . . . . . . . . .
Comentarios de: Simulador para control y automatización utilizando un entorno virtual 3D interactivo y configurable (0)
No hay comentarios