• No se han encontrado resultados

Desarrollo de aplicaciones C++ para ingeniería: "S7mulator"

N/A
N/A
Protected

Academic year: 2020

Share "Desarrollo de aplicaciones C++ para ingeniería: "S7mulator""

Copied!
113
0
0

Texto completo

(1)UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDUSTRIAL Grado en Ingenierı́a Electrónica y Automática Industrial TRABAJO FIN DE GRADO. Desarrollo de aplicaciones C++ para ingenierı́a: “S7mulator” Jorge Antón Garcı́a. Tutor: Cristóbal Tapia Garcı́a Departamento: Ingenierı́a Eléctrica, Electrónica, Automática y Fı́sica Aplicada. Madrid, Junio, 2018.

(2) ii.

(3) UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDUSTRIAL Grado en Ingenierı́a Electrónica y Automática Industrial TRABAJO FIN DE GRADO. Desarrollo de aplicaciones C++ para ingenierı́a: “S7mulator”. Firma Autor. Firma Tutor.

(4) iv.

(5) v Copyright c 2018. Jorge Antón Garcı́a Todas las opiniones aquı́ expresadas son del autor, y no reflejan necesariamente las opiniones de la Universidad Politécnica de Madrid..

(6) vi.

(7) Agradecimientos Una de las experiencias más positivas tanto de la carrera como del proyecto ha sido el inestimable apoyo de un gran grupo de compañeros. Esto proyecto no hubiera sido posible sin toda la ayuda y colaboración de Cristóbal Tapia haciendo de guı́a en el proceso de creación de este proyecto. Ası́ mismo, muchos han sido los profesores a lo largo de la carrera que me han enseñado muchos conocimientos y han sido pilares en mi formación, tanto académica como personal. Y por último, pero no menos importante, agradecer a mi familia todo el apoyo y paciencia mostrado, ya que son los auténticos motores de este proyecto.. vii.

(8) viii. AGRADECIMIENTOS.

(9) Resumen La idea principal de este proyecto es dotar a la programación de STEP 7 un entorno virtual sobre el que operar. Se puede decir entonces que se busca crear un buen interpretador de STEP 7, que pueda ser programado por el usuario con total libertad y que se apoye en una simulación 3D de una serie de elementos para comprobar de una manera muy visual todo el código. El objetivo que se persigue por tanto es apoyar el aprendizaje del STEP 7, ya que la interfaz por defecto de SIMATIC no ofrece un entorno 3D. Dicho entorno simulable supondrı́a un pilar muy fuerte sobre el que complementarse, ya que en la actualidad esta en auge la realidad virtual como método pedagógico. Para lograr todo ello, se creará una aplicación en el entorno de Microsoft Visual Studio, empleando el lenguaje CLI/C++ para poder emplear los controles por defecto de Windows, creando ası́ una app lo más simple posible y totalmente funcional. Será por tanto necesario también la creación de un mundo virtual para ser simulado, con lo que habrá que crear y diseñar una serie de objetos tales como cintas, cajas, sensores... para enriquecer lo máximo posible las simulaciones, y ofreciendo una mayor complejidad a los posibles escenarios.. Palabras clave: STEP7, Simulador S7, CLI/C++.. ix.

(10) x. RESUMEN.

(11) Abstract The main idea of this project is to provide STEP 7 programming with a virtual environment to operate on. One can then say that one seeks to create a good interpreter of STEP 7, that can be programmed by the user with total freedom and that it is supported in a 3d simulation of a series of elements to check in a very visual way all the code. The goal is therefore to support the learning STEP 7, because the default interface of SIMATIC does not offer a 3d environment. This simulated environment would be a very strong pillar to complement itself, as long as the virtual reality is currently booming as a pedagogical method. To achieve this, an application will be created in the Microsoft Visual Studio environment, using the CLI/C language to be able to use the default Windows controls, creating an app as simple as possible and fully functional. It will also be necessary to create a virtual world to be simulated, which will require the creation and the design of a series of objects such as tapes, boxes, sensors... to enrich the simulations as much as possible, and offering a greater complexity to the possible scenarios.. Keywords: STEP7, S7 Simulator, CLI/C++.. xi.

(12) xii. ABSTRACT.

(13) Índice general Agradecimientos. VII. Resumen. IX. Abstract. XI. Índice. XIV. 1. Introducción. 1. 2. Marco teórico 2.1. Contexto del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Docencia y tecnologı́a: la simbiosis perfecta . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Evolución del aprendizaje en las aulas . . . . . . . . . . . . . . . . . . . . . 2.2.2. Soluciones tecnológicas actuales en docencia . . . . . . . . . . . . . . . . . . 2.2.3. Los tres puntos en común de todas las soluciones tecnológicas diseñadas para el ámbito educativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. Los beneficios de la tecnologı́a en la educación . . . . . . . . . . . . . . . . 2.2.5. La tecnologı́a está transformando la educación más allá de la escuela . . . . 2.3. Simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Historia de la simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2. Beneficios de la simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Automatización industrial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1. Historia de la automatización industrial . . . . . . . . . . . . . . . . . . . . 2.4.2. Aplicaciones de la automática . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3. Elementos más destacados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Siemens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1. Historia de Siemens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2. SIMATIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3. STEP 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.4. Instrucciones básicas de STEP 7 contempladas en el proyecto . . . . . . . .. 3 3 3 3 4 5 6 7 7 7 8 9 9 10 11 13 13 14 14 17. 3. Desarrollo 3.1. Herramientas . . . . . . . . . . . . . . . . . 3.2. Metodologı́a . . . . . . . . . . . . . . . . . . 3.3. Requisitos . . . . . . . . . . . . . . . . . . . 3.4. Casos de uso . . . . . . . . . . . . . . . . . 3.4.1. Escoge escenario . . . . . . . . . . . 3.4.2. Programa en S7 Escenario . . . . . . 3.4.3. Simular Escenario y Manipular E/S 3.4.4. Añadir y quitar segmentos . . . . . . 3.4.5. Comprobación del código S7 . . . . 3.5. Ciclos de desarrollo . . . . . . . . . . . . . . 3.5.1. Ciclo 1 . . . . . . . . . . . . . . . . .. 25 25 27 28 29 30 31 32 33 34 35 35. xiii. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . ..

(14) ÍNDICE GENERAL. xiv 3.5.2. Ciclo 2 . 3.5.3. Ciclo 3 . 3.5.4. Ciclo 4 . 3.5.5. Ciclo 5 . 3.6. Pruebas finales. . . . . .. 42 46 49 55 59. 4. Conclusiones 4.1. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Desarrollos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 67 67 67. A. Anexo A.1. Manual de usuario . . . . . . . . . . . . . . . . A.2. Código más importante . . . . . . . . . . . . . A.2.1. Clase Parser . . . . . . . . . . . . . . . A.2.2. Clase Logic . . . . . . . . . . . . . . . . A.3. Direcciones contempladas y funciones incluidas. 69 69 81 81 83 91. Bibliografia. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 93.

(15) Índice de figuras 2.1. 2.2. 2.3. 2.4.. Sensor óptico: barrera . . . . . . . . . . . . Cinta transportadora . . . . . . . . . . . . . LED como elemento de iluminación . . . . . Procesamiento cı́clico del programa usuario. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 12 12 13 16. 3.1. Casos de uso de la aplicación . . . . . . . . . . . . . . 3.2. Máquina de estados de la clase Parser . . . . . . . . . 3.3. Clase Form.h: Ciclo 1 . . . . . . . . . . . . . . . . . . 3.4. Diagrama de clases: Ciclo 1 . . . . . . . . . . . . . . . 3.5. Interfaz modo programar: Ciclo 1 . . . . . . . . . . . . 3.6. Interfaz modo simular: Ciclo 1 . . . . . . . . . . . . . 3.7. Diagrama de clases: Step 7: Ciclo 2 . . . . . . . . . . . 3.8. Diagrama de clases: Comparator: Ciclo 2 . . . . . . . . 3.9. Interfaz modo programar: Ciclo 2 . . . . . . . . . . . . 3.10. Clase Names: Ciclo 3 . . . . . . . . . . . . . . . . . . . 3.11. Interfaz modo programar: Ciclo 3 . . . . . . . . . . . . 3.12. Interfaz modo simular: Ciclo 3 . . . . . . . . . . . . . 3.13. Diagrama de clases: Ciclo 4 . . . . . . . . . . . . . . . 3.14. Diagrama de clases: Carpeta Mundo: Ciclo 4 . . . . . 3.15. Interfaz modo menu: Ciclo 4 . . . . . . . . . . . . . . . 3.16. Interfaz modo programar: Ciclo 4 . . . . . . . . . . . . 3.17. Interfaz modo simular: Ciclo 4 . . . . . . . . . . . . . 3.18. Diagrama de clases: Carpeta Mundo: Ciclo 5 . . . . . 3.19. Interfaz modo menu: Ciclo 5 . . . . . . . . . . . . . . . 3.20. Interfaz modo simular: Ciclo 5 . . . . . . . . . . . . . 3.21. Interfaz modo programar: Ciclo 5 . . . . . . . . . . . . 3.22. Menú de carga . . . . . . . . . . . . . . . . . . . . . . 3.23. Escenario 1 . . . . . . . . . . . . . . . . . . . . . . . . 3.24. Escenario 2 . . . . . . . . . . . . . . . . . . . . . . . . 3.25. Escenario 3 . . . . . . . . . . . . . . . . . . . . . . . . 3.26. Escenario 4 . . . . . . . . . . . . . . . . . . . . . . . . 3.27. Introducción de código erróneo . . . . . . . . . . . . . 3.28. Carga correcta del escenario . . . . . . . . . . . . . . . 3.29. Introducción de código correcto . . . . . . . . . . . . . 3.30. Código básico para mover la cinta . . . . . . . . . . . 3.31. Respuesta con E 124.2 desactivada . . . . . . . . . . . 3.32. Respuesta con E 124.2 activada . . . . . . . . . . . . . 3.33. Código básico para el comportamiento de la bombilla . 3.34. Respuesta con sensor desactivado . . . . . . . . . . . . 3.35. Respuesta con sensor activo . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 29 36 37 39 40 40 43 44 44 47 47 48 50 51 52 52 53 56 57 57 58 59 59 60 60 60 61 61 62 62 63 63 64 64 65. A.1. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2. Menu principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 72 73. xv. . . . .. . . . .. . . . .. . . . .. . . . ..

(16) ÍNDICE DE FIGURAS. xvi A.3. A.4. A.5. A.6.. Modo Modo Modo Modo. simular: elementos . . . . . . simular: E/S . . . . . . . . . simular: Temp y contadores programar . . . . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 74 75 76 77.

(17) Índice de tablas 2.1. Operadores simples . . . . . . . . . . 2.2. Modificadores del RLO . . . . . . . . 2.3. Flancos . . . . . . . . . . . . . . . . 2.4. Comparadores . . . . . . . . . . . . . 2.5. Operadores de conteo . . . . . . . . 2.6. Operadores de salto . . . . . . . . . 2.7. Operadores aritméticos . . . . . . . . 2.8. Operadores de carga y transferencia 2.9. Operadores de control . . . . . . . . 2.10. Operadores de acumuladores . . . . 2.11. Operadores de temporización . . . . 3.1. 3.2. 3.3. 3.4. 3.5. 3.6.. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. 17 18 18 19 20 20 21 21 22 22 23. Requisitos . . . . . . . . . . . . . . . . . . . . . . . Caso de uso: escoge escenario . . . . . . . . . . . . Caso de uso: programa en S7 escenario . . . . . . . Caso de uso: visualizar escenario y manipular E/S Caso de uso: añadir o quitar segmentos . . . . . . . Caso de uso: comprobación del código S7 . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. 28 30 31 32 33 34. xvii. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . ..

(18) xviii. ÍNDICE DE TABLAS.

(19) Capı́tulo 1. Introducción La vida es un proceso de aprendizaje continuo en el cual se van adquiriendo habilidades y conocimientos que van conformando el progreso al que se llega como individuos y como sociedad. En el ámbito académico, son numerosas las materias que se cursan a lo largo de la vida de cada estudiante, dando un amplio abanico de posibilidades y un prisma lo más extenso posible sobre el que mirar cada tema. A la hora de realizar el estudio de materias, primero se deben estudiar los fundamentos teóricos para entender el porqué de las teorı́as y desarrollos que se están viendo. No obstante, el apoyo que suponen los laboratorios y experiencias prácticas es fundamental para complementar esos conocimientos teóricos. La realización de ejercicios y la resolución de problemas son factores claves para lograr la asimilación de los aspectos más teóricos. En el ámbito de la tecnologı́a industrial, cabe destacar la disciplina de la automática, que ha cambiado el estilo de la vida de la sociedad y la industria. Es por eso que este proyecto se basa en apoyar el aprendizaje de uno de los lenguajes más importantes de automatización industrial, S7, para poder entender cómo funciona SIMATIC S7. Se ha creado una aplicación informática que entiende y traduce la lógica de S7 a C++, para poder realizar simulaciones de entornos industriales y tener un apoyo gráfico a las clases teóricas de las materias. El objetivo es un interfaz sencillo, de fácil comprensión y que ayude a asimilar el aprendizaje de S7 mediante la realización de programación de bloques para poder ir entendiendo el uso y aplicación de cada una de las más importantes instrucciones que componen S7. La aplicación se ha diseñado para Windows apoyándose en Microsoft Visual Studio, con unos requisitos de SO muy simples a fin de que pueda ser ejecutado e instalado en prácticamente cualquier equipo.. 1.

(20) 2. CAPÍTULO 1. INTRODUCCIÓN.

(21) Capı́tulo 2. Marco teórico 2.1.. Contexto del proyecto. Para tener un enfoque lo más certero posible acerca del empaque y posibilidades de este proyecto, es necesario entender un poco del contexto histórico de la tecnologı́a aplicada a la enseñanza, ası́ como de la evolución de la simulación de procesos y entornos. También es un factor clave la historia de la automatización, para entender por qué ha llegado a ser tan importante hoy en dı́a, además de una pieza clave en el futuro. Dentro de este contexto de automatización, también se estudiarán diferentes aspectos de Siemens, tanto su historia como sus soluciones, haciendo hincapié en STEP 7. Con todos estos conceptos introducidos, se entenderá el contexto del trabajo, la importancia que puede llegar a tener y el encuadre de este tipo de soluciones en los tiempos actuales.. 2.2. 2.2.1.. Docencia y tecnologı́a: la simbiosis perfecta Evolución del aprendizaje en las aulas. Hace más de 2000 años comenzó la necesidad de tener alguna vı́a de transmitir los conocimientos adquiridos por la sociedad por vı́a de la educación. Fueron los griegos, egipcios y romanos los que empezar a implementar sistemas arcaicos de enseñanza (aunque fueran muy válidos tratándose del periodo histórico en el que estaban). El principal objetivo que tenı́an era el de forjar una sociedad estabilizada mediante unos pilares arraigados en la sabidurı́a transmitida por varias generaciones. Ya desde entonces, la educación se dividı́a en dos grupos: la enseñanza teórica y la práctica. La teórica era muy poco común, reservada a los grupos más elitistas de la sociedad que empleaban su tiempo en la investigación y reflexión. Mucho más común era la educación práctica, principalmente orientada a la transmisión de conocimientos para desempeñar ciertas labores o técnicas relativas a los oficios de la época, dejando de lado cualquier reflexión o posible cambio en los procesos. Fue siglos más tarde cuando estos modelos básicos avanzaron de la mano de unas sociedades que tenı́an como meta ser las más desarrolladas de su época. Surgieron las primeras universidades en 3.

(22) 4. CAPÍTULO 2. MARCO TEÓRICO. zonas como Inglaterra, Italia o España, que eran los núcleos de los movimientos sociales. Estaban principalmente enfocadas al arte, ciencia o historia, que eran los pilares sobre los que se cimentaba el progreso. Esto sirvió para comenzar las bases de los sistemas educativos empleados en la actualidad. No obstante, hasta que llegó el Siglo XIX no llegó la educación universal tal y como la conocemos hoy en dı́a. Esto fue posible gracias a los movimientos éticos y sociales que fueron impulsando al ser humano a ampliar sus conocimientos y progresar (en gran parte gracias a la burguesı́a y las ideas progresistas). En el mundo se empezaba a luchar contra el analfabetismo y a instaurar sistemas educativos. Todo esto derivo en el sistema educativo actual, en el cual la enseñanza está establecida en el uso del papel, lápiz y numerosos libros, lo cual marca una guı́a que el alumno debe recorrer. Esta metodologı́a se basa en dos puntos clave: Enseñanza: El conocimiento se transmite en clases de forma oral, apoyados en el uso de libros de texto y en ciertas ocasiones de Internet. Se hace hincapié en los contenidos más conflictivos del temario, y luego se realizan una serie de trabajos y ejercicios para asimilar y afianzar los conocimientos. Evaluación: En la mayorı́a de ocasiones se evalúa el conocimientos del alumno mediante una serie de tests o exámenes periódicos en el cual se pondera su nivel en la materia. Pero la llegada de la revolución digital a lo largo del Siglo XXI, que afectó a todos los ámbitos de la sociedad, ha provocado la transformación progresiva de la educación tal y como estaba concebida. Se está comenzando a observar cada vez más en las aulas tablets, portátiles o pizarras electrónicas. La metodologı́a tradicional ha ido dejando paso a la creatividad y al dinamismo, con todas las posibilidades que ofrecen las nuevas tecnologı́as respecto a sistemas más clásicos y estáticos como libros. No obstante, no se trata únicamente de un cambio de las herramientas, si no del concepto de la educación en sı́ y en cómo emplear estas nuevas herramientas para adaptar la transmisión de conocimientos a una manera más atractiva y eficaz. En un mundo cada vez más conectado, el desarrollo de aptitudes como la memoria comienza a perder valoren favor de otras aptitudes como la flexibilidad, el trabajo en equipo, la comprensión o la creatividad. Todas ellas tendrán un mayor valor en un futuro encaminado a la tecnologı́a. En España, compañı́as como BQ, Lenovo y Microsoft han podido comprobar cómo, mediante el empleo de metodologı́as más innovadoras, el alumnado aumentaba el interés por las asignaturas y mejoraba sustancialmente sus resultados académicos. De hecho, apreciaron casos particulares en los que alumnos con dificultades y malos resultados invertı́an por completo su papel en el aula gracias a estas metodologı́as más inclusivas, participativas e innovadoras.. 2.2.2.. Soluciones tecnológicas actuales en docencia. Cada vez son más las compañı́as que apuestan por la transformación digital en el ámbito educativo. A continuación, se pasará a enumerar una serie de ejemplos representativos de los muchı́simos ejemplos que se pueden encontrar: La compañı́a Microsoft quiere ser parte del cambio mediante el desarrollo de software y servicios que se adapten a las necesidades especı́ficas del aula, haciendo un gran énfasis en la integración de servicios para transmitir los contenidos..

(23) 2.2. DOCENCIA Y TECNOLOGÍA: LA SIMBIOSIS PERFECTA. 5. Otro punto en el que está participando es en la experimentación de la inclusión de videojuegos como Minecraft en el ámbito educativo, con la finalidad de fomentar la creatividad de los alumnos, la exploración y lograr captar el interés con formas más innovadoras, atractivas y cercanas de enseñanza para el público objetivo. También está haciendo grandes esfuerzos con Hololens, las gafas de realidad virtual de la compañı́a. Las aplicaciones educativas de este producto son ilimitadas, lo que para muchos hace que sea una opción muy viable de convertirse en uno de los pilares de la educación del mañana. Por su parte, Samsung también está haciendo algunas incursiones con la realidad virtual mediante las Samsung Gear VR (las gafas de realidad virtual de la compañı́a). La compañı́a asiática trabaja junto a varios desarrolladores en la creación de entornos VR orientados a la educación, es decir, visitas virtuales a lugares históricos, atlas anatómicos, etc. También está trabajando en la vertiente de generar contenidos audiovisuales, más interactivos, amenos y diseñados para ser multiplataforma, algo indispensable en un mundo en el que cada vez hay más soluciones tecnológicas distintas que poder escoger. Como no podrı́a ser de otra manera, Google es otra de las compañı́as que más fuerte está apostando por la tecnologı́a en los entornos educativos. La compañı́a ha impulsado varios proyectos durante los últimos años, entre los cuales destacan: Chromebooks: Estos ordenadores sencillos y baratos se están convirtiendo en una de las grandes tendencias en los entornos educativos de los Estados Unidos. Training Center: Para maximizar el uso de las tecnologı́as de Google en el aula, la propia compañı́a estadounidense ofrece métodos de formación a los propios docentes. Classroom: La plataforma Classroom permite gestionar de forma digital todos los aspectos de un aula actual. Los profesores pueden hacer un seguimiento del trabajo de sus alumnos, ofrecerle contenidos mediante Internet, actualizar calificaciones. . . Si hablamos del territorio nacional, compañı́as como BQ también han invertido en la integración de la tecnologı́a en las escuelas. Gracias a su placa reprogramable, productos como Zowi acercan la programación a los más pequeños de la casa, al mismo tiempo que fomentan la propia investigación y la creatividad. BQ también está haciendo un gran énfasis en la impresión 3D y la robótica dentro de las escuelas. Y es que, al igual que la programación, se trata de conocimientos esenciales para abordar el futuro cada vez más inminente. Lenovo por su parte ofrece la solución LanSchool, diseñada para el manejo de aulas virtuales. Todos los equipos que Lenovo incorpora en entornos educativos cuentan con este software en su interior, facilitando ası́ el seguimiento de los estudiantes, mejorando la comunicación y el soporte y eliminando barreras y distracciones ante el alumno.. 2.2.3.. Los tres puntos en común de todas las soluciones tecnológicas diseñadas para el ámbito educativo. Todos los ejemplos mencionados anteriormente ponen en relieve la simbiosis a la que se está llegando entre tecnologı́a y escuelas. Esto se logra mediante tres factores claves: Modularidad: Con el sistema que estaba instaurado anteriormente todos los alumnos seguı́an un mismo ritmo, muchas veces marcado por el nivel más bajo del grupo. Pero con el cambio de pedagogı́a, el ritmo lo marca cada alumno, ampliando o incluso eliminando los.

(24) 6. CAPÍTULO 2. MARCO TEÓRICO lı́mites o techos a alcanzar y dejando de la mano de cada persona el esfuerzo para ir alcanzando las cotas de conocimiento a las que desee aspirar. El acceso a una cantidad prácticamente inagotable de conocimientos es posible, y cada uno se pondrá la meta donde desee. Control de contenidos: Gracias a los avances tecnológicos, es más sencillo monitorizar y realizar un correcto seguimiento de los avances del alumno y del uso que da a las nuevas herramientas. Sencillez: Todos estos avances y logros no servirı́an de nada si se complica la facilidad para entender la materia y la transmisión de conocimientos. Por tanto se busca siempre la inclusión de software sencillos y la formación de los docentes dentro de esta tecnologı́a. Esta sencillez repercute claramente en un mejor entendimiento por parte de los alumnos, logrando que cualquier enseñanza llegue a una cantidad de público mayor.. 2.2.4.. Los beneficios de la tecnologı́a en la educación. Los estudios y las investigaciones realizadas por diversas entidades muestras un gran resultado respecto a la incorporación de la tecnologı́a en las escuelas y al cambio metodológico asociado. Según un estudio realizado por Ipsos para Samsung España, los profesores españoles que hacen un uso regular de la tecnologı́a en sus aulas detectan efectos positivos tanto en la creatividad como en la capacidad de razonamiento de sus alumnos. La inclusión de la tecnologı́a les permite mejorar la competencia en habilidades transversales, conectar aprendizajes de distintas materias y, por consiguiente, incrementar la autonomı́a. Además, también se puede observar una mayor colaboración entre los estudiantes, un mayor esfuerzo por aprender, un mejor ambiente en el aula y, sobre todo, una mayor sencillez para adquirir los conocimientos establecidos por el profesor. Esto se logra gracias a una mayor implicación por parte del alumno, ya que deja de lado la memorización sistemática para pasar a ser un descubridor, un generador autónomo de necesidad de ampliar conocimientos, lo que genera un mayor interés en las materias. Si además se apoya con proyectos y experimentos que permitan al alumno observar, practicar y comprobar sus propias teorı́as e ideas, el resultado final es muy superior al que se obtiene empleando métodos más conservadores. No solo adquiere mejor los fundamentos teóricos, también se proporciona la suficiente tracción al alumno como para pensar por sı́ mismo, experimentar y descubrir nuevas formas de alcanzar un mismo objetivo. Además, para colectivos con necesidades más especı́ficas y especiales, el uso de estas nuevas soluciones tecnológicas permiten personalizar de una manera mucho más sencilla el aprendizaje, consiguiendo aclimatar a cada alumno el ritmo más óptimo. Otro gran beneficio (si se realiza un uso correcto de Internet) es el acceso a información global, para poder obtener visiones más amplias de un suceso concreto, pudiendo observar cada problema desde prismas bien diferenciados, logrando un mayor grado de investigación y reflexión, aptitudes muy necesarias en la sociedad actual. Paralelamente, el uso de la tecnologı́a en la educación permite una mayor flexibilidad horaria y geográfica a aquellos alumnos que la requieran. Una virtud que contribuye al desarrollo de la autonomı́a de los alumnos y del autoaprendizaje, una aptitud muy importante en el mercado profesional..

(25) 2.3. SIMULACIÓN. 2.2.5.. 7. La tecnologı́a está transformando la educación más allá de la escuela. Como se ha mencionado en apartods anteriores, tecnologı́a está facilitando la llegada de nuevas formas de educación. Son tendencias conocidas como e-learning, las cuales permiten adquirir conocimientos y evaluarlos mediante plataformas virtuales o aplicaciones para smartphones y tablets. En uno de los campos donde más se está haciendo patente es en el campo del aprendizaje de idiomas. Uno de los casos más populares es el de Duolingo, un servicio online con contenidos accesibles, gratuitos y con numerosos ejercicios prácticos, todo ello accesible desde cualquier smartphone o tablet. A un nivel más avanzado también encontramos propuestas como edX, una plataforma de cursos online masivos y abiertos (MOOC) fundada por el prestigioso Instituto Tecnológico de Massachusetts y la Universidad de Harvard en 2012. En la plataforma podemos encontrar cursos online sobre administración de empresas, emprendimiento, electrónica, programación, mecánica de fluidos. . . Casi cualquier disciplina tiene cabida en esta plataforma. Con la gran ventaja de se puede disfrutar de adquirir conocimientos de instituciones de tal calibre desde casa. No obstante, el e-learning no dejará de ser un pilar de un nuevo sistema hı́brido entre la educación presencial y la no presencial. Servirá de gran apoyo para la docencia en los centros presenciales, que dispondrán de mucho material y atractivo, que estimule a cada alumno de manera diferente.. 2.3. 2.3.1.. Simulación Historia de la simulación. El primer modelo de simulación se podrı́a datar en 1777, cuando Claudio Rocchini Buffon realizó un sencillo modelo matemático (denominado “la aguja de Buffon”) para aproximar el valor del número π a partir de sucesivos intentos. Se basa en una aguja de una longitud determinada lanzada sobre un plano segmentado por lı́neas paralelas separadas por unidades. ¿Cuál es la probabilidad que la aguja cruce alguna lı́nea? No obstante, en 1812 Laplace mejoró la solución, que se pasó a denominar la solución Buffon-Laplace. Posteriormente, el estadı́stico William Sealy Gosset, aplicó sus conocimientos estadı́sticos en la destilerı́a en la cual trabajaba y en su propia explotación agrı́cola. Se centró en estudios de cultivos de cebada, en parte para mejorar la producción, pero también para lograr diferentes variedades con una mayor resistencia al clima o a la calidad del suelo. Guinness (que era la destilerı́a en la cual trabajaba Gosset) tenı́a prohibido a sus empleados la publicación de cualquier tipo de artı́culo independientemente de su contenido, de ahı́ el uso que hizo Gosset en sus publicaciones del seudónimo ”Student”. Este es el motivo por el que su logro más famoso se conoce como la ”distribución t de Student. Este hito histórico abrió las puertas a la aplicación de la simulación en el campo del proceso de control industrial ası́ como en la experimentación y técnicas de análisis para descubrir soluciones exactas a problemas clásicos de la industria y la ingenierı́a. Las bases de la simulación tal y como está concebida en la actualidad se sentaron en la década de 1940, mediante dos grandes eventos: La construcción de los primeros computadores de propósito general..

(26) 8. CAPÍTULO 2. MARCO TEÓRICO El trabajo de Stanislaw Ulam, John Von Neumann y otros cientı́ficos para usar el método de Montercarlo en computadores modernos y solucionar problemas de difusión de neutrones en el diseño y desarrollo de la bomba de hidrógeno.. En 1960, Keith Douglas Tocher desarrolló un programa de simulación del funcionamiento de una planta de producción donde las máquinas ciclaban por estados, de manera que las simulaciones en los cambios de estado de las máquinas marcaran el estado definitivo de la producción de la planta. Este trabajo produjo además el primer libro sobre simulación: The Art of Simulation (1963). Para aquel entonces, IBM desarrolló entre 1960 y 1961 el Sistema de Simulación de propósito general o General Purpose Simulation System (GPSS). El GPSS se diseñó para realizar simulaciones de teleprocesos con una sencillez de uso tal que se convirtió en el lenguaje de simulación más usado de la época. Paralelamente, Rand desarrolló en 1963 SIMSCRIPT, una alternativa basada en FORTRAN, que tenı́a como target usuarios no necesariamente tan expertos en informática. Complementariamente a los desarrollos anteriores, el Royal Norwegian Computing Center inició en 1961 el desarrollo del programa SIMULA con ayuda de Univac. El resultado fue SIMULA I, probablemente el lenguaje de programación más importante de toda la historia. En 1967 se fundó el WSC (Winter Simulation Conference), el centro referente en cuanto a avances en simulación y lugar en el que se almacenan todos los leguajes de simulación y aplicaciones derivadas. Posteriormente a este periodo se desarrollaron avanzadas herramientas de modelado y de análisis de resultados. Gracias también a los desarrollos obtenidos en la generación de datos y a las técnicas de optimización y representación de datos, la simulación llega a su fase de expansión donde comienza a aplicarse en múltiples campos. Gracias a los avances tecnológicos la simulación ha evolucionado enormemente, permitiendo alcanzar excelentes cotas de fiabilidad. Las capacidades de cálculo actuales permiten ejecutar una serie de Modelos Matemáticos que conjuntamente con las técnicas visuales reflejan fielmente la realidad en toda su complejidad. El objetivo final de toda herramienta de simulación consiste en reproducir unas determinadas condiciones de entorno para generar en el usuario una serie de sensaciones que resulten tan parecidas a la realidad como sea posible. Si existiera un simulador capaz de generar sensaciones tan realistas que el usuario no supiera encontrar diferencias entre la realidad y la experiencia simulada, se dirı́a que dicho simulador es totalmente inmersivo, o que proporciona una inmersión del 100 Proporcionar el funcionamiento satisfactorio de un simulador solamente es posible si actúan una serie de Modelos Matemáticos capaces de simular el comportamiento de la máquina real con un nivel de precisión y sofisticación lo suficientemente alto como para generar todos los efectos y matices que permitan identificarla de manera inequı́voca. Sólo ası́ las experiencias acumuladas en el simulador pueden proporcionar una experiencia aplicable a la vida real.. 2.3.2.. Beneficios de la simulación. Beneficios tangibles del entrenamiento con simuladores: Se produce un ahorro significativo de las horas necesarias para el entrenamiento, además de que los ejercicios puedan ser ilimitados. Entrenamiento intensivo en situaciones crı́ticas o de emergencia, que podrı́an ser peligrosas o imposibles de replicar en la realidad. Alto nivel de inmersión y realismo. Entrenamiento de los procedimientos operacionales estándar.

(27) 2.4. AUTOMATIZACIÓN INDUSTRIAL. 9. Máximo nivel de adaptación y escalabilidad de la formación. Flexibilidad para introducir fácilmente funcionalidades de todo tipo en la vida real. Posibilidad de adaptación al nivel de competencia de cada persona. Estı́mulo para autocorregir errores. Posibilidad de reproducir el escenario y analizar los errores tras los ejercicios.. 2.4. 2.4.1.. Automatización industrial Historia de la automatización industrial. Los conflictos bélicos a lo largo de la historia han servido para empujar el desarrollo tecnológico de cada bando, a fin de obtener ventajas competitivas que les alzaran victoriosos. Durante la Segunda Guerra mundial, se modernizaron las fábricas con toda clase de elevadores y transportadores, a fin de acelerar el movimiento de materiales. Se emplearon estas máquinas como parte indispensable de la lı́nea de montaje, a lo que se sumaron manos de hierro para realizar todas las operaciones mecánicas en un flujo continuo. Henry Ford fue la primera persona que trató de replicar un organismo humano mediante una máquina en su fábrica. Para ello, creo un brazo móvil mecánico articulado, que fue el primer mecanismo robótico que actuaba como su sı́mil humano. Permitı́a modificar y personalizar todos los movimientos deseados, para obtener un trabajo preciso: la velocidad de movimiento, cuándo los dedos tenı́an que cerrarse, a qué distancia debı́a llegar el brazo móvil, dónde y cómo tendrı́a que colocar el material de trabajo. Este brazo robótico supuso un gran hito en la época, ya que logró economizar tiempo, dinero y trabajo humano. Estas tecnologı́as usadas en tiempos bélicos se abrieron camino al mundo de la producción, gracias al automatismo de las fábricas de automóviles Ford. Entonces se empezó a pensar en aplicar estas tecnologı́as para automatizar la fábrica entera, a fin de optimizar todos y cada uno de los procesos. Para ello, no bastaba con conectar unas máquinas con otras. Se necesitaba rediseñar las funciones de las máquinas y lograr que pudieran ser regidas por unos dispositivos eléctricos preestablecidos. Las mediciones empezaron a realizarse por medio de pulsaciones eléctricas, en lugar de dientes metálicos. La manipulación se hizo con condensadores eléctricos en lugar de levas. Los movimientos fueron comandados por alambres de conexión y no por palancas. Todo estaba comandado por una serie de órdenes de todo o nada a tubos electrónicos, que eran los cerebros que regulaban los elementos mecánicos. Este nuevo concepto de automatización cambió el concepto de producción, logrando tiempos mil veces inferiores a los habituales a la hora de fabricar cualquier elemento, como por ejemplo los motores, que se lograban producir hasta 150 por hora con el nuevo sistema. El éxito del modelo implementado por Ford, captó el interés de todo el territorio y todas las empresas de Estados Unidos. Un claro ejemplo fue el sistema telefónico, que fue automatizado prácticamente por completo a fin de calcular tiempos de llamadas y ası́ facturar de una manera sencilla el consumo de los clientes, además de saber a qué número se estaba llamando, la ciudad y todo tipo de detalles..

(28) 10. CAPÍTULO 2. MARCO TEÓRICO. También se extendió a las fábricas petroleras y de lámparas, logrando unos resultados excelentes en comparación a sistemas más manuales. Los métodos de fabricación fueron transformados completamente por el potencial de esta nueva técnica automática. Hoy en dı́a, la automática tiene como objetivo facilitar y mejorar el desarrollo de diferentes actividades a las personas, colaborando con ellas o sustituyéndolas en la toma de decisiones y en su puesta en práctica, es decir, sustituir el operador humano en medida que sea posible por dispositivos artificiales. Estas innovaciones se pueden ver desde los desarrollos cientı́ficos más avanzados hasta en las tareas domésticas más cotidianas. El número de posibilidades en los que aplicar estos conocimientos es prácticamente ilimitado.. 2.4.2.. Aplicaciones de la automática. Con el paso del tiempo, se han ido incorporando los sistemas automáticos en las vidas de la gente, hasta llegar a tal punto en que la costumbre es tal, que no se percatan de ellos y apenas llama la atención la aparición de nuevos sistemas que funcionen de manera automática. A continuación se verán una serie de ejemplos de estos sistemas, unos más visibles a simple vista que otros y que trabajan para facilitar labores y que se logre un tipo de vida como el que se tiene en la actualidad.. Los sistemas automáticos en el transporte Ya son varios los años en los que se ha trabajo en lograr la máxima autonomı́a en vehı́culos mediante una automatización total o parcial de las soluciones, tratando de ir mejorando las prestaciones en cada versión. Se han implementado soluciones con una capa de control de bajo nivel que trabaja directamente con los actuadores del vehı́culo (velocidad y dirección) y otra capa de nivel alto que gestiona las ordenes y las comparte con otros software para lograr aplicaciones más complejas y comunicaciones.. Los sistemas automáticos en medicina Tradicionalmente, para cualquier operación de cirugı́a se necesitaba un pulso de acero, ası́ como unos conocimientos de la materia muy avanzados. Uno de los grandes avances de la automatización en el campo de medicina han sido los robots quirúrgicos, con una precisión inigualable por el ser humano, y que mediante la guı́a de un cirujano, realizan operaciones de gran dificultad con mayor porcentaje de éxito. Además también se ha notado la tecnologı́a a la hora de distribuir los almacenes farmacéuticos, ası́ como instrumentos que detecten posibles anomalı́as en la sangre de los pacientes.. Los sistemas automáticos en la producción de energı́a A la hora de producir energı́a, según el método que se emplee para su obtención, son muy importantes los niveles de presión, los caudales, temperaturas, orientación de placas solares. . . Mediante la.

(29) 2.4. AUTOMATIZACIÓN INDUSTRIAL. 11. monitorización de los indicadores crı́ticos de cada tipo planta, se puede ir regulando estos factores mediante sistemas de control plenamente automatizados, dando lugar a menos errores humanos y una mayor seguridad.. Los sistemas automáticos en el hogar En cuanto a términos domésticos, se contempla la automática como los procesos mediante los que facilitar, simplificar o no necesitar la acción humana en tareas cotidianas. Hoy en dı́a se conoce esto como la domótica. Tiene tantas aplicaciones cómo se puedan imaginar, basta con ver un proceso que se quiera automatizar e implementar una solución personalizada, ya sea para regular temperatura, iluminación, seguridad como para lograr ahorro en las facturas por un consumo más eficiente.. Los sistemas automáticos en las plantas de procesos Tal y como se ha visto en las plantas productoras de energı́a, en plantas de todo tipo de procesos se pueden emplear automatismos similares. Para realizar cualquier tarea, es de suma importancia una monitorización adecuada de las condiciones ambientales, con lo que con un buen sistema automatizado lograremos esto ası́ como accionar palancas que modifiquen posibles incidencias en el proceso.. Los sistemas automáticos en las fábricas de bienes de consumo Las plantas de fabricación de bienes de consumo no iban a ser menos, por tanto cualquier automatismo correctamente empleado lograra una producción mayor, con mejor rendimiento y con un trabajo humano menor, logrando crear puestos más cualificados y dejando las tareas más arduas en manos de autómatas.. 2.4.3.. Elementos más destacados. Para que todos estos entornos industriales en constante automatización tengan sentido, se requieren una serie de elementos para crear la maquinaria necesaria. Es por ello que conviene detallar y explicar algunos de los elementos más importantes en la automatización industrial, tanto actuadores como sensores, de cara a ir teniendo un primer contacto con los objetos que formaran parte de la aplicación.. Sensores Se entiendo por sensor a todo dispositivo capaz de detectar y reaccionar ante acciones o estı́mulos externos. Son capaces de convertir tanto magnitudes fı́sicas como quı́micas en respuestas eléctricas. Se podrı́a decir entonces que los sensores componen el ”sistema sensorial”de las máquinas y robots, por lo cual son elementos vitales para dotar a cualquier sistema de inteligencia y de automatismos, por eso es imposible entender la automatización sin tener en cuenta a los sensores como parte primordial. Dentro de toda la gama de sensores, y de cara a trabajar con alguno de tipo fácilmente simulable, se va a hacer hincapié en los sensores fotoeléctricos de tipo barrera..

(30) 12. CAPÍTULO 2. MARCO TEÓRICO. Las barreras tipo emisor-receptor se componen de un primer componente que emite el haz de luz, y otro componente que lo recibe.. Figura 2.1: Sensor óptico: barrera Se establece ası́ un área de detección, la cual reacciona cuando un elemento interrumpe el haz de luz. Gracias a esto, no se suelen ver afectados por formas, colores o texturas de los elementos, simplemente reaccionan a dicha interrupción del haz. Este tipo de sensores presentan una serie de ventajas y desventajas, como todos los demás. Por un lado, al tener la luz que atravesar el espacio de trabajo una única vez, se puede montar en grandes distancias (se pueden llegar hasta 60m entre emisor-receptor). Además, dependen poco de las condiciones ambientales y de las formas y texturas de los objetos. No obstante, presentan dos grandes problemas. Por un lado, se requiere mucha precisión a la hora de montarlos, ya que deben estar perfectamente alineados tanto el emisor como el receptor. Además, si el objeto a detectar es transparente, inutilizarı́a por completo este tipo de sensores.. Cintas transportadoras Las cintas transportadoras son sistemas de transportes de elementos. Dichos sistemas se componen de una banda continua que tiene movimiento entre dos tambores mediante la acción de un motor. El funcionamiento es bastante sencillo. La banda se mueve por la acción de la fricción de uno de los tambores, que está accionado por un motor. El otro tambor gira libre y tiene como finalidad hacer las veces de retorno de la banda. Hay una serie de rodillos entre los tambores para soportar la banda con baja fricción para no complicar el movimiento.. Figura 2.2: Cinta transportadora Este sistema es ampliamente utilizado en cadenas de distribución y montaje, gracias a la sencillez del sistema y a su elevada capacidad de transporte de todo tipo de materiales..

(31) 2.5. SIEMENS. 13. Sistemas de iluminación A medida que los sistemas de fabricación han evolucionado, se ha convertido en un factor diferencial la iluminación de almacenes y plantas industriales, de cara a favorecer en todo momento la seguridad y comodidad de los empleados, mejorando los niveles y calidad de producción. Con elementos tan simples como bombillas o LEDs, se pueden construir sistemas visuales que operan como código del estado de las estaciones de trabajo, permitiendo al operario advertir cualquier riesgo que pueda surgir o imprevisto, o por el contrario que todo esté funcionando correctamente. La luz ya no se usa exclusivamente para reducir la fatiga visual, ahora también se emplea como una palanca más de sistema de seguridad en entornos industriales.. Figura 2.3: LED como elemento de iluminación. 2.5. 2.5.1.. Siemens Historia de Siemens. Werner Von Siemens comenzó sus estudios de ingenierı́a cuando estaba en el ejército de Prusia. A los tres años ya completó los relativos a matemáticas, fı́sica, quı́mica y balı́stica. Gracias a estos conocimientos adquiridos empezó a realizar diversos estudios. Uno de los primeros logros fue el telégrafo de aguja mediante el empleo de materiales muy sencillos. A raı́z de esto y junto al mecánico Johann Georg Halske, fundaron la compañı́a alemana Telegraphen-Bauanstalt von Siemens & Halske en 1847. Con la compañı́a patentó el telégrafo y el aislamiento sin costura en cables de cobre, que fueron dos pilares para el desarrollo actual de la tecnologı́a de las telecomunicaciones. En la década de 1950, la compañı́a comenzó a implementar una red telegráfica en Rusia, que llegó a alcanzar los 10.000 kilómetros entre Finlandia y Crimea. En 1858 se creó una sucursal en Inglaterra, que a posteriori serı́a renombrada a Siemens Brothers. En 1866, Siemens descubrió el principio electrodinámico, con el que es posible generar electricidad a gran escala. El descubrimiento tuvo un impacto significativo a nivel económico. A finales de 1870 comenzó a desarrollar el ferrocarril eléctrico que fue presentado en ”Berlin Trade Fair”. Esté sistema fue implementado en Berlı́n ese mismo año. En 1880, el primer ascensor eléctrico fue construido en Mannheim. Al año siguiente, se puso en funcionamiento la primeria lı́nea de tranvı́a eléctrica entre Berlı́n y Lichterfelde..

(32) 14. CAPÍTULO 2. MARCO TEÓRICO. Siemens ha sido parte activa en el proceso de digitalización de la industria, apoyando y participando en el desarrollo de la tecnologı́a de los semiconductores (implementada en 1920), que es la base de la computación moderna. A la década de 1990, Siemens colaboró en un proyecto para diseñar trenes que se desplazaran mediante levitación magnética, y pese a lo ambicioso y retador que era, no se llegó a concluir y fue cancelado. En la actualidad, es una compañı́a lı́der a nivel mundial en el sector tecnológico. Tienen alrededor de 350.000 empleados en 190 paı́ses, lo que muestra la importancia que tiene en una sociedad cada vez más globalizada.. 2.5.2.. SIMATIC. En el campo de la automática, Siemens registró en 1958 la marca SIMATIC, que era una sı́ntesis de Siemens y Automatización en una misma palabra. A priori el objetivo era crear un sistema de control automático diferenciador pero acabó siendo el más revolucionario controlador PLC de la época, cambiando definitivamente el concepto de automatización industrial. Fue en 1959, cuando coincidiendo con la Feria de Máquinas Herramienta de Parı́s se presentó la primera generación de PLC, el SIMATIC G. Gracias a su gran cantidad de funciones, lo convertı́an en el controlador perfecto para un sinfı́n de aplicaciones que tuvieran que realizar trabajos secuenciales. Su segunda generación, SIMATIC N, lanzada en el año 1964, se convirtió en la referencia mundial de la automatización, gracias a tener sus sistemas diseñados con transistores, permitı́a integrar una mayor cantidad de funciones, algo de vital importancia de cada a poder realizar el control de grandes plantas industriales con grupos de control descentralizadas. La tercera generación, SIMATIC S3, lanzada en el año 1973 fue una gran revolución en cuanto a los PLC, aunque fue eclipsada muy pronto por su sucesora y una de las más importantes generaciones de la historia de la automatización: SIMATIC S5. El lanzamiento de SIMATIC S5 suponı́a un gran cambio en el mundo de PLC, ya que estaba compuesto por modelos modulares de una tecnologı́a muy avanzada, que fue evolucionando a la par que los primeros PCs. Estos modelos (90U, 95U, 100U, 105U, 110U, 115U, 135U y 155U) ofrecı́an una mayor velocidad, memoria y capacidad, haciéndolos mucho mejor que cualquier sistema equiparable de la época. Su popular herramienta de programación basada en PC, STEP 5, permitı́a programar, comprobar y documentar los programas desarrollados en base a varios métodos de representación: lista de comandos (STL), diagramas Ladder (LAD) o diagramas por bloques funcionales (FBD). Su integración con sistemas SCADA y los buses de campo pusieron el control de la planta a la vista del usuario. A partir de 1995 se introdujo la última generación de PLC, SIMATIC 7, que es la más avanzada con la que trabaja Siemens en la actualidad. Se apoya en sus herramientas de programación (STEP 7 y TIA Portal) y sus sistemas HMI, lo que constituye un sistema capaz de realizar el desarrollo de la ingenierı́a, puesta en marcha, operación y monitorización de una planta.. 2.5.3.. STEP 7. Como se ha visto anteriormente, STEP 7 constituye una parte fundamental de SIMATIC 7. Cuando se programa un autómata hay que tener en cuenta dos aspectos. El SO del autómata,.

(33) 2.5. SIEMENS. 15. que será lo que determine el punto de complejidad de las funciones y/o instrucciones que puede asimilar y el Programa usuario, que será el conjunto de instrucciones lógicas que se transfieran al autómata y determinen su funcionamiento. A continuación se va a entrar en detalle en los programa usuario, que es la pieza fundamental sobre la que se puede operar y en la que está enfocada el proyecto. En el programa usuario es en el cual se pueden determinar las condiciones de arranque del autómata, los datos y señales que debe procesar y las órdenes de deben ejecutar los distintos actuadores. Para que se logre que un autómata realice una serie de operaciones prefijadas en un orden determinado, se necesita una memoria dividida en una serie de partes: Imagen de las E/S: es el estado en que se encuentras las diferentes entradas y salidas del PLC que se leen al comienzo de cada ciclo de ejecución y se actualizan con los nuevos valores al final del mismo. Son señales de la forma E, A que se usan en los ciclos de ejecución del programa. E/S de la periferia: son valores reales de entradas y salidas, sobre los que se puede actuar en tiempo real. Se debe leer en formato de bytes, Word o doble Word (nunca puede ser un bit concreto). Marcas: son variables indexadas y globales del programa, a las que se puede dar valor dentro de cualquier parte del programa. Pueden permanecer tras el apagado del PLC o ser volátiles. Puede ir desde un bit hasta un ancho indeterminado mediante el empleo de punteros. Temporizadores y contadores: los temporizadores pueden ser de dos tipos, de software (IEC) o S7 (que son equivalentes a los que habı́a en S5). Los últimos son hardware y dependen directamente de la CPU, mientras que los primeros dependen de la memoria disponible. En cuanto a contadores, son los elementos usados para cualquier tipo de operación. Módulos de datos (DB): Son las áreas de memoria definidas por el usuario, con diferentes longitudes y contenidos. Son remanentes al apagado del PLC por defecto. Variables temporales: son las variables declaradas dentro de los módulos para los cálculos intermedios y locales. Su valor inicial es el último que hayan leı́do, por tanto será importante tener control de su contenido en todo momento. Se dispone de una serie de módulos para acceder y tratar los datos almacenados en la memoria, cuya elección dependerá de los requerimientos que se impongan: Módulos de organización (OB): módulos con funcionalidades especı́ficas, por lo que no se puede realizar su llamada desde otros bloques, sino que el autómata gestionará esas llamadas en el momento en que se necesite. Los hay de arranque (OB100, OB102), de ejecución del programa principal (OB1), cı́clicos (OB35), horarios, de fallo. . . Funciones (FC): bloques que pueden ser llamados desde OB, FC o FB. Su misión es estructurar el código, haciéndolo lo más legible posible mediante la división del programa en zonas, máquinas, submáquinas. . . Hay una serie de valores de entrada y salida, lo que permite lograr una reutilización de funciones para otros programas. Como se ha comentado anteriormente, se pueden usar variables temporales para la lógica interna del bloque. Bloques de función (FB): Similares a los FC, salvo que las variables internas tienen remanencia entre ciclos gracias a las llamadas estáticas. Para conseguir esto, se les asocia un bloque de datos (DB) para la instanciación. Se pueden usar en los mismos casos que los FC, además de dentro de las llamadas estáticas de otros FB (multiinstanciación). Bloques de memoria (DB): pueden ser tanto globales como de instancia. Los globales son.

(34) 16. CAPÍTULO 2. MARCO TEÓRICO declarados por el usuario y pueden contener variables de todo tipo para obtener estructuras complejas. Los de instancia son los necesarios para la ejecución de los FB, por lo que toman su misma estructura. Módulos de sistema (SFC,SFB,SDB): son FC y FB integrados en el propio sistema operativo del PLC. Son usados frecuentemente para obtener o tratar información del PLC.. Además de todo lo anterior, la base de Step 7 son las dos palabras de estado por la que se rige toda la lógica del programa, ER y RLO, que son bits (0 o 1). Estos dos operadores son empleados al principio de cada ciclo y durante toda la ejecución del programa para saber el estado de la lógica interna de todas las operaciones que se realizan y por tanto son parte indispensable de la inteligencia del mismo. ER -¿Bit que indica si es primera instrucción modificadora del RLO o no, 1 = primera instrucción, 0 = no primera. RLO -¿Si primera instrucción (ER = 1) RLO = valor de la instrucción, si ER = 0, RLO = RLO mas la operación deseada. Con lo visto anteriormente ya se puede obtener una idea del funcionamiento del programa usuario, no obstante se adjunta un esquema gráfico para terminar de plasmar las pinceladas anteriormente dadas:. Figura 2.4: Procesamiento cı́clico del programa usuario Se denomina tiempo de ciclo al tiempo en milisegundos que necesita el PLC para ejecutar una secuencia completa de todas las instrucciones que se le hayan asignado. No es un tiempo constante, ya que en función del ciclo de ejecución pueden realizarse unas operaciones u otras. Para asegurar un correcto funcionamiento dentro de un margen de tiempo, se suele emplear un watchdog (normalmente fijado en 150ms) para que si se supera ese tiempo se pase a estado de STOP. Este mecanismo se accionara o bien cuando haya algún bloque sin salida (o por un lazo infinito o por no dar tiempo a acabar la ejecución anterior) o por programas excesivamente largos y mal optimizados..

(35) 2.5. SIEMENS. 2.5.4.. 17. Instrucciones básicas de STEP 7 contempladas en el proyecto. Dentro de la amplia gama de instrucciones contempladas en STEP 7, se ha optado por tratar de incluir las básicas y de más utilización en el proyecto de cara a que sirva para realizar una primera aproximación a lo que es SIMATIC 7, a tratar de entender cómo funciona la lógica del lenguaje y a familiarizarse con los operadores que se usaran en proyectos más complejos. La finalidad por tanto de este proyecto es que el lector afiance sus conocimientos primarios de lo que es este lenguaje y sepa desenvolverse con soltura en la lógica de bajo nivel, para poder llegar a realizar proyectos más complejos que requieran del empleo de varias funciones. A continuación se procederá a explicar los operadores que se han contemplado en el trabajo, mediante un breve texto y una tabla explicando el comando, sobre que operan, que tipo de dato contienen y sobre qué lugar de la memoria del automatismo pueden actuar.. OPERADORES BÁSICOS Esta gama de operadores componen las instrucciones más bajas del lenguaje, componiendo todas las puertas lógicas y asignaciones necesarias para poder realizar todo tipo de operaciones.. COMANDO. OPERANDO. TIPO DE DATO. ÁREA MEMORIA. U (AND). E, A, M, L, D, T, Z. UN (NAND). E, A, M, L, D, T, Z. O (OR). E, A, M, L, D, T, Z. ON (NOR). E, A, M, L, D, T, Z. X (XOR). <bit>. BOOL. E, A, M, L, D, T, Z. XN (NOT XOR). E, A, M, L, D, T, Z. = (ASIGN). E, A, M, L, D, T, Z. S (SET). E, A, M, L, D. R (RESET). E, A, M, L, D Tabla 2.1: Operadores simples. Si se emplea el operador O sin ningún operando, sirve para realizar una operación OR entre varios conjuntos de instrucciones, siguiendo siempre la regla AND antes que la OR. Las instrucciones básicas con abrir paréntesis almacenan en la pila de paréntesis los bits RLO y OR y un identificador de la operación. La pila de paréntesis puede contener un máximo de 7 entradas. El cierre de paréntesis provoca el borrado de una entrada de la pila de paréntesis, restablece el bit OR, combina el RLO que hay en la entrada de pila con el RLO actual conforme al identificador de la operación y asigna el resultado al RLO. Si el identificador de la operación es U o UN también se tiene en cuenta el bit OR..

(36) 18. CAPÍTULO 2. MARCO TEÓRICO. MODIFICADORES DEL RESULTADO LÓGICO (RLO) Como ya se vio anteriormente, el RLO constituye una de las partes más importantes del programa usuario, y saber manipularlo adecuadamente sirve para poder realizar operaciones lógicas más complejas. Es por ello que es indispensable tener una serie de operadores con los que poder manipularlo, para tener total control del programa en todo momento, y poder negarlo, activarlo o desactivarlo. Son operadores vitales para cualquier programa de S7, y son muy usados a la hora de arrancar el programa en estados determinados. Las funciones básicas para su operación se muestran a continuación: NOT. Niega el RLO. SET. Pone el RLO a ”1”. CLR. Pone el RLO a ”0”. SAVE. Almacena el RLO en el RB (bit de resultado binario) Tabla 2.2: Modificadores del RLO. FLANCOS Los flancos son instrucciones de gran importancia, ya que son el equivalente a una agrupación de instrucciones más complejas que podrı́an ralentizar los programas. El flanco positivo (FP) es una instrucción que comprueba el estado del operando y si está activado (“1”) devuelve un RLO negativo, mientras que si está desactivado (“0”) lo activa y devuelve un RLO positivo. El flanco negativo (FN) es idéntico, solo que si está activado lo desactiva y devuelve un RLO positivo, mientras que si está desactivado devuelve un RLO negativo. Dada la naturaleza de estas operaciones, son los operadores perfectos para realizar activaciones o cualquier tipo de operación que se desee realizar únicamente una vez dentro de todo el ciclo de ejecución. COMANDO. OPERANDO. TIPO DE DATO. <bit>. BOOL. FP (FLANCO POS). ÁREA MEMORIA E, A, M, L, D. FN (FLANCO NEG). E, A, M, L, D Tabla 2.3: Flancos.

(37) 2.5. SIEMENS. 19. OPERACIONES DE COMPARACIÓN Cualquier carga de valores, suma o modificación que se realice, se almacena en el ACU 1. Si ACU 1 tuviera algún valor previo, dicho valor pasa a almacenarse en ACU 2. Las siguientes instrucciones son las que se emplean para realizar cualquier comprobación y comparación necesaria sobre estos valores. ==. ACU 2 es igual al ACU 1. <>. ACU 2 es diferente al ACU 1. >. ACU 2 es mayor al ACU 1. <. ACU 2 es menor al ACU 1. >=. ACU 2 es mayor o igual al ACU 1. <=. ACU 2 es menor o igual al ACU 1 Tabla 2.4: Comparadores. Si RLO = 1 el resultado de la comparación es verdadero, mientras que un RLO = 0 indica que el resultado de la comparación es falso. Se debe poner después de los sı́mbolos el tipo de número a comparar: I (entero: 16 bits) D (entero doble: 32 bits) R (coma flotante: 32 bits). OPERACIONES DE CONTEO Los contadores permiten realizar operaciones especı́ficas y de vital importancia en ciertos programas, por tanto se incluirán en el proyecto. En S7, para utilizar un contador debe estar habilitado, esto quiere decir que si se desea utilizar varias veces en un mismo ciclo de ejecución deberá ser habilitado con anterioridad. También hay instrucciones para cargar un valor especı́fico en los contadores, además de operaciones de adición y decrecimiento del valor del mismo..

(38) 20. CAPÍTULO 2. MARCO TEÓRICO. COMANDO. TIPO DE. ÁREA. DATO. MEMORIA. OPERANDO. COMENTARIO. FR. Habilitar contador Cargar el valor actual del contador en. L ACU 1 en forma de entero <contador>. COUNTER. Z. R. Desactivar el contador Carga el valor de contaje del ACU1-L. S en el contador direccionado ZV. Incrementa en 1 el valor de contaje. ZR. Reduce en 1 el valor de contaje Tabla 2.5: Operadores de conteo. El formato de números para un contador viene dado de la forma C#[no ].. OPERACIONES DE SALTO Las instrucciones de salto constituyen uno de los aspectos más importantes a la hora de realizar programas más complejos, ya que sirven para poner saltar varias lı́neas de instrucciones, dando la posibilidad al usuario de crear códigos más estables y seguros y crear una lógica más avanzada. Estos saltos pueden ir desde unas lı́neas hasta todo el código, y el empleo de cada una dependerá de lo que se busque con el salto escogido. COMANDO. OPERANDO. COMENTARIO. SPA. Salto incondicionado hasta llegar a <meta>. SPL. Salto usando metas, con SPAs si no llega al valor cargado. SPB. Salto condicionado a RLO = 1. SPBN. <meta>. Salto condicionado a RLO = 0. SPBB. Idem a SPB pero guardando el RLO en RB. SPBNB. Idem a SPBN pero guardando el RLO en RB. LOOP. Bucle mientras un acumulador sea >0 Tabla 2.6: Operadores de salto.

(39) 2.5. SIEMENS. 21. OPERACIONES ARITMÉTICAS CON ENTEROS Como en cualquier lenguaje, es posible el realizar operaciones aritméticas. Para el proyecto se recogerán las más básicas, dentro de la amplia gama de instrucciones posibles. Cabe destacar que las operaciones son de gran utilidad a la hora de trabajar en programas en los que se requiera un control numérico, como pudiera ser en un sistema de control de piezas defectuosas, aunque también se pudiera controlar con contadores. COMANDO. COMENTARIO. +I(entero)/ +D(entero doble)/ +R(reales). Guarda en ACU-1: ACU-1 + ACU-2. -I(entero)/ -D(entero doble)/ -R(reales). Guarda en ACU-1: ACU-1 - ACU-2. + <constante>. Guarda en ACU-1: ACU-1 + cte. Tabla 2.7: Operadores aritméticos. OPERACIONES DE CARGA Y TRANSFERENCIA A la hora de trabajar con temporizadores o contadores, es de suma importancia el poder cargar o transferir valores. Es por ello que hay dos operaciones, L y T, que sirven para lograr dicho objetivo, y poder dar un valor inicial a ambos, o extraer el valor actual para ser usado a lo largo del programa. Estos operadores son necesarios siempre, ya que si se trata de usar alguno de estos elementos sin estar inicializados, tendremos una gran inestabilidad en el código y no sabremos como reaccionaran los elementos, siempre se deben inicializar. COMANDO. OPERANDO. TIPO DE DATO. ÁREA MEMORIA E, A, PE, M, L, D,. L (LOAD). BYTE <operando>. puntero, parámetro WORD/DWORD. T (TRANSFER). E, A, PA, M, L, D Tabla 2.8: Operadores de carga y transferencia.

(40) 22. CAPÍTULO 2. MARCO TEÓRICO. CONTROL DEL PROGRAMA Además de las operaciones de salto anteriormente vistas, hay unos operadores que sirven para realizar un control del programa. Permiten realizar saltos al fin del bloque de manera incondicional o dependiente del valor del RLO, en función de las instrucciones que se empleen. Son los operadores que hacen las veces de controles if-else de cualquier programa informático. Por ello, en los programas que comienzan a tener cierta complejidad, son operadores muy necesarios, para hacer el código más legible y poder detectar cualquier error con más celeridad. COMANDO. DESCRIPCION. BE. Fin de bloque incondicional. BEB. Fin de bloque condicionado a que RLO = 1. BEA. Fin de bloque incondicional Tabla 2.9: Operadores de control. OPERACIONES CON ACUMULADORES Son dos operadores empleados después de saltos para establecer unos o ceros en el ER y RLO. NOP 0:. El código de operación contiene una configuración binaria con 16 ceros.. NOP 1:. El código de operación contiene una configuración binaria con 16 unos. Tabla 2.10: Operadores de acumuladores.

(41) 2.5. SIEMENS. 23. OPERACIONES DE TEMPORIZACIÓN Los temporizadores constituyen otra parte vital de S7, y su correcta utilización será determinante a la hora de que un programa funcione de manera adecuada o de error a los usuarios menos avanzados en cuanto a programación de S7. Como en los contadores, se deberán habilitar para poder ser utilizados, se les podrá transferir un valor inicial o realizar inicios de temporización cuando sucedan eventos deseados. Ası́ mismo, el valor de RLO será “1” o “0” durante la temporización en función del comando empleado.. COMANDO. TIPO DE. ÁREA. DATO. MEMORIA. OPERANDO. COMENTARIO. FR. Habilitar temporizador Carga el valor actual del. L. temporizador en ACU-1 en forma de entero <temporizador>. TIMER. Z. R. Desactiva el temporizador Arranca cuando RLO pasa de 0. SI a 1, activo durante t o RLO pase a 0 Arranca cuando RLO pasa de 0 a 1, activo durante t. Si RLO SV vuelve a pasar de 0 a 1, se vuelve a lanzar Arranca cuendo RLO pasa de 0 a SE. 1, activo una vez transcurrido t, salvo que RLO pase a 0. Arranca cuendo RLO pasa de 0 a 1, activo una vez transcurrido t. Si. SS RLO vuelve a pasar de 0 a 1, se vuelve a lanzar Arranca cuando RLO pasa de 0 a 1, se desactiva tras t. Si RLO SA vuelve a pasar de 0 a 1, se vuelve a lanzar Tabla 2.11: Operadores de temporización El formato de números para los tiempos viene dado de la forma S5T#[NUMERO+X], siendo x el ı́ndice de tiempos (H,M,S,MS)..

(42) 24. CAPÍTULO 2. MARCO TEÓRICO.

(43) Capı́tulo 3. Desarrollo Para la realización de este proyecto, ha sido de suma importancia una planificación y estructura del mismo. El desarrollo del código y de la aplicación se ha ido realizando mediante una serie de versiones, cada una mejorando y dejando obsoleta a la anterior, siempre buscando acercar cada nueva implementación a la versión final esperada que contenga todas las funcionalidades. En los siguientes apartados se podrán comprobar las herramientas empleadas para la realización del proyecto, ası́ como la metodologı́a de trabajo, las diferentes versiones que se han creado y diagramas UML de la solución final, ası́ como las funcionalidades principales logradas y las funciones más importantes creadas.. 3.1.. Herramientas. A la hora de realizar el desarrollo de código, se estudió el emplear hasta 3 entornos de desarrollo diferentes de entre toda la amplia gama que se pueden encontrar: Unity 5.0: Un entorno de desarrollo con mucha potencia gráfica y cuyos acabados de imágenes y modelado de escenarios tiene poca competencia. Además era una opción de sumo interés debido que se puede obtener de manera gratuita al ser un software libre. Dado que la finalidad no era el recrear un escenario de tales dimensiones o potencia, y a que la creación de objetos y código no era muy intuitiva, se decidió no emplearlo. Unreal Engine: Una opción que compite con Unity a la hora de monopolizar a los desarrolladores de Videojuegos “indie”, con mucha potencia gráfica y muy similar a su rival. Las opciones para descartarlo fueron las mismas que para Unity, añadiendo en este caso el desconocimiento de uso de este entorno. Microsoft Visual Studio: la opción elegida. Visualmente no es competidor de los anteriores entornos, pero su sencillez a la hora de programar y el empleo de bibliotecas lo convirtieron en la opción más interesante. Además, la posibilidad de usar C++ con CLI mediante Windows Forms facilitaba mucho la labor, ya que se podı́an emplear botones prediseñados en Microsoft Visual Studio, permi25.

(44) 26. CAPÍTULO 3. DESARROLLO tiendo poner el foco de la programación en el traductor de lenguajes y no en la creación del entorno. Microsoft Visual Studio es un entorno de desarrollo integrado para sistemas operativos Windows. Soporta múltiples lenguajes de programación, tales como C++, C#, Visual Basic .NET, etc., al igual que entornos de desarrollo web, como ASP.NET MVC, Django, etc. Visual Studio permite a los desarrolladores crear sitios y aplicaciones web, ası́ como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versión .NET 2002). Ası́, se pueden crear aplicaciones que se comuniquen entre estaciones de trabajo, páginas web, dispositivos móviles, dispositivos embebidos y consolas, entre otros. Para realizar la aplicación se usará el lenguaje C++/CLI, que está ideado para poder unificar C++ con toda la gama de objetos que ofrece .NET (y los controles por defecto de Windows).. Una vez resuelto el problema de la elección de que entorno de desarrollo utilizar, se debı́a escoger con que aplicación se diseñarı́an las imágenes y se adaptarı́an a los formatos adecuados para las librerı́as empleadas: Photoshop: Es un programa de edición de imágenes con opciones muy complejas y profesionales, bastante intuitivo y de uso bastante extendido. A la hora de hablar de retoque de imágenes es el más popular de entre sus competidores. No obstante, sus funciones son de pago, y como se ha mencionado en la elección de entorno de desarrollo, tampoco se requiere un nivel de detalle tan preciso, por tanto se descarta su uso en búsqueda de un sustituto a la altura y de software libre. Gimp: tras realizarse una búsqueda de productos que se adaptaran a las necesidades del proyecto, se encontró al competidor adecuado. Este programa constituye una opción libre de muchas posibilidades (bastante similares a Photoshop) y que se adapta perfectamente a lo esperado y a los requerimientos del proyecto. En cuanto al apartado visual, se empleará GLUT, una librerı́a de OpenGL especialmente preparada para aplicaciones de gráficos sencillos y de un tamaño pequeño o medio, para la simulación de los escenarios. OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, lı́neas y triángulos. GLUT es un toolkit independiente del sistema de ventanas para escribir programas OpenGL. Una caracterı́stica importante de Glut es que se basa en un interfaz de programación de aplicaciones (API) de ventana simple para OpenGL, con lo que se logra que sea mucho más fácil aprender. Además, proporciona una API portátil que permite que el programa sea portable a otras plataformas. GLUT está diseñado para construir programas OpenGL de tamaño pequeño a mediano. Si bien GLUT es adecuado para aprender OpenGL y desarrollar aplicaciones OpenGL simples, GLUT no es un juego de herramientas con todas las funciones, por lo que las aplicaciones de gran tamaño que requieren interfaces de usuario sofisticadas están mejor utilizando kits de herramientas nativos del sistema de ventanas. GLUT es simple, fácil y pequeño. La biblioteca GLUT tiene enlaces de programación C, C ++ (igual que C), FORTRAN y Ada. La distribución del código fuente GLUT es portátil para casi todas las implementaciones y plataformas.

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

4.- Másteres del ámbito de la Biología Molecular y Biotecnología (9% de los títulos. Destaca el de Biotecnología Molecular de la UB con un 4% y se incluyen otros

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

BUBER'NEUaiAMN, Margarete ¡ Von Potsáam ndch Moskau. SMíionen eines Irftveges. Stuttgart, 1957; Deutsche Verlags-Anstalt, 480 págs... DAHM: Deutsches Reckt. Die geschichüichen

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway &amp; Sons tiende a ser una decisión

Pero cuando vio a Mar sacar el fuego de bajo su ala, voló de vuelta a su tribu a contarles lo que había visto.... Justo antes de que el sol saliera, Tatkanna se despertó y comenzó

- Un curso formativo para los técnicos de laboratorio de la UPV sobre la prevención de los residuos en los laboratorios, que se llevará a cabo los días 23, 24, 25, 26 y 27

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o