2 introduccion teorica - Biblioteca de Ingeniería

Anuncio
2
2
INTRODUCCION TEORICA
INTRODUCCION TEORICA
2.1
SITUACION DE PARTIDA
Como se ha comentado anteriormente, este proyecto se comenzó desde la iniciativa propia y la visión
de un software con unas posibilidades que no se encuentra en la actualidad de forma comercial.
Debido a esto la situación de partida ha sido prácticamente desde cero. Se sabía lo que se quería
de la aplicación pero no muy bien como realizarla.
Inicialmente, como en todo proyecto, se buscaron las posibilidades para poder diseñar y
programar la plataforma 3D. Se indagó en el mundo de los videojuegos, pues el autor ya conoce
algunos juegos que incluyen algunos constructores muy utilizados por los usuarios, como es el
caso de “Garry’s MoD”. De esta forma se iban recogiendo diferentes posibilidades de lenguajes
de programación para el desarrollo de la aplicación en cuestión. También se investigó un poco el
contenido de ITS PLC por si se pudiera obtener alguna idea acerca de su estructura de archivos.
Y así es como ocurrió. Se averiguó como estabá desarrollada la parte gráfica de ITS PLC. Ésto
aceleró el trabajo de busqueda pues ya no se buscaba a ciegas sino algo más concreto.
Aunque al principio se pensó que el desarrollo de la aplicación llevaría mucho tiempo, una vez
se decidieron tanto el lenguaje de programación como la base para el desarrollo de objetos en 3D, el
avance de la aplicación fue bastante rápido. Aproximadamente la situación de partida se desarrolló
temporalmente como sigue:
• 1 mes para la busqueda y aprendizaje del lenguaje de programación y la base de desarrollo
en 3D.
• 1 mes para comenzar a tener los primeros resultados viables en cuanto a elementos
industriales.
A partir del comienzo del tercer mes todo fue fluido y se desarrollaron sin demasiados problemas
otros elementos industriales que se detallarán más adelante.
Aproximadamente al comienzo del quinto mes ya se disponía de un escenario funcional que
incluía cintas transportadoras, grúa, plataformas para trasladar objetos, sensores de barrera,
pistones, rampas de carga y un modelado básico en 3D texturizado parcialmente.
El quinto més y el sexto se dedicaron a optimizar la programación de los elementos desarrollados
y dotarlos de una estética 3D más realista, así como el planteamiento y la creación de nuevos
elementos y resolución de errores observados durante los tests de pruebas del prototipo.
2.2
DESCRIPCION DE LA APLICACIÓN OBJETIVO
Antes de empezar a programar la aplicación, hay que pensar cuidadosamente como va a ser. Hay
que razonar como de lejos se prentede llegar con esta plataforma y ver como sería la plataforma
si ya estuviera realizada. Ésto conlleva un problema. Es posible que se exija demasiado y no se
pueda llevar a cabo. Aunque dadas las características de los lenguajes de programación orientados
a objetos, se concluyó que la mejor opción de conseguir el software deseado era de la forma que
se ha planteado. Decidir el alcance que va a tener la aplicación es fundamental pues a la hora de
realizar la programación del mismo se tendrán en cuenta las características, y el código se ajustará
a las funciones que tenga que realizar. De otra forma se tendría que ir modificando toda la solución.
No obstante, las características que se comentarán son las básicas que debe tener la plataforma
Simulador para control y automatización.
12 de 86
2
INTRODUCCION TEORICA
en conjunto, siendo necesario a medida que avance la programación modificar o añadir parte del
código ya existente para optimizar e incluir nuevas funcionalidades.
Siguiendo este planteamiento se comienza determinando que debe ofrecer la aplicación al
usuario. Debe poder ser escalable. La aplicación no puede quedarse estancada en un número
determinado de escenarios de simulación como ocurre en ITS PLC. Y el usuario debería ser capaz
de poder crear escenarios propios y ajustados a sus necesidades.
No solo debe ser escalable sino que también debe ser configurable. A la hora de incluir un
dispositivo, como por ejemplo una cinta transportadora, el usuario debería ser capaz de configurar
su comportamiento. Las cintas no son todas iguales, ni en forma, tamaño o dinámica. Aquí entra
en juego el término configuración. El usuario podrá incluir la función de transferencia que modela
la dinámica de la cinta transportadora. En este caso podría ser la función de transferencia de los
motores que mueven la cinta. De esta forma con un único dispositivo programado en la aplicación el
usuario tiene posibilidades de adaptar su comportamiento y con ello obtener dispositivos diferentes.
Una opción muy interesante es la de incluir programación en el simulador. Esta programación
está referida a elementos o dispositivos que se utilicen a nivel industrial y necesiten de una
programación separada de la del PLC, como puede ser un brazo robótico para la seleción de
piezas, soldaduras, ensamblajes etc. Poniendo como ejemplo el SCORBOT, y usándolo como base
para un posible dispositivo del simulador, se incluirá en el simulador la herramienta necesaria
para realizar la programación de las acciones que deba hacer el brazo ante las señales de entrada
procedentes del PLC. La programación se realizará con un pequeño conjunto de las instrucciones
del lenguaje ACL.
Dado que se está hablando de diseñar una plataforma para el entrenamiento con PLC’s es muy
importante pensar en como se va a hacer la conexión con el PLC. Aquí se tienen varias posibilidades
de las cuales solo una de ellas es la que se realizará en este proyecto.
2.2.1
Conexión mediante Server OPC
Con un servidor OPC (Ole Proccess Control), se puede establecer una conexión entre un PLC real
y un PC que contenga el simulador y un cliente OPC. El servidor OPC será el intermediario para
el intercambio de datos entre ambos equipos. Para la conexión de los equipos solo haría falta una
red ethernet pues actualmente los PLC’s disponen de puerto ethernet así como los PC’s.
Esta sería una conexión física posible. Pero si se hace uso de un servidor OPC, también se puede
hacer una conexión no física entre los equipos. Se puede conseguir si se utilizan simuladores de PLC.
Algunas compañías como Schneider Electric incluyen en el software de sus PLC’s herramientas de
simulación de PLC’s. En pocas palabras, se puede tener en un mismo PC las tres aplicaciones para
establecer una conexión local interna y poder realizar la simulación y el control sin la necesidad de
usar un PLC real.
El hecho de no necesitar un PLC real implica un ahorro importante pues son dispositivos caros.
Otro aspecto importante son las averías. Con esta forma de conexión el riesgo de avería debido
a un mal uso por parte del usuario es inexistente. Otra ventaja añadida de no usar PLC’s, es el
número de puestos de trabajo que se pueden utilizar. Ahora solo son necesarios PC’s, pudiendose
ampliar a un costo menor el número de estaciones disponibles para el alumnado. El único requisito
de los PC’s, que se comentará más adelante, es que dispongan de una buena tarjeta gráfica.
Simulador para control y automatización.
13 de 86
2
2.2.2
INTRODUCCION TEORICA
Conexión mediante puerto USB
A parte de poder establecer comunicación tanto por red como de forma local entre el PLC y el
simulador, también es conveniente tener la posibilidad de realizar una comunicación física directa.
Una de las opciones es hacerla por USB, mediante el uso de una tarjeta de adquisición de datos.
2.3
TECNOLOGIAS Y HERRAMIENTAS DE DESARROLLO
En éste apartado se describirán las herramientas que se han utilizado para desarrollar la aplicación.
Entre otros, se detallan el lenguaje de programación, las librerías 3D y otros programas utilizados
para llevar a cabo este proyecto.
2.3.1
INTRODUCCIÓN A C# Y XNA
Debido a que este proyecto es el desarrollo de una aplicación escoger un lenguaje de programación
adecuado es fundamental. Aunque en principio se podría utilizar cualquier lenguaje orientado
a objetos actual tales como JAVA, C++, C# o Lua, éste último muy utilizado en el desarrollo
de videojuegos, se optó por indagar cuál de ellos sería un lenguaje óptimo para el desarrollo del
simulador dado que se comenzaba este proyecto desde cero.
Inicialmente y dado que no se sabía programar en JAVA, se descartó inicialmente dejándolo
como última opción. Sin embargo una opción viable de lenguaje a utilizar es Lua. Lua es un
lenguaje de extensión, suficientemente compacto para usarse en diferentes plataformas. En Lua las
variables no tienen tipo, sólo los datos y pueden ser lógicos, enteros, números de coma flotante o
cadenas. Estructuras de datos como vectores, conjuntos, tablas hash, listas y registros pueden ser
representadas utilizando la única estructura de datos de Lua: la tabla. La semántica de Lua puede
ser extendida y modificada redefiniendo funciones de las estructuras de datos utilizando metatablas.
Lua ofrece soporte para funciones de orden superior, recolector de basura. Combinando todo lo
anterior, es posible utilizar Lua en programación orientada a objetos.
Los programas en Lua no son interpretados directamente, sino compilados a código bytecode,
que es ejecutado en la máquina virtual de Lua. El proceso de compilación es normalmente
transparente al usuario y se realiza en tiempo de ejecución, pero puede hacerse con anticipación
para aumentar el rendimiento y reducir el uso de la memoria al prescindir del compilador. También
es posible la compilación en tiempo de ejecución utilizando LuaJIT.
Debido a que Lua compilado es pequeño, veloz y tiene una licencia permisiva ha ganado
seguidores entre los desarrolladores de videojuegos. Algunos usos de Lua:
• World of Warcraft.
• S.T.A.L.K.E.R.: Shadow of Chernobyl.
• Wolfenstein: Enemy Territory.
• Mod de tipo sandbox para Half-Life 2 llamado Garry’s Mod.
• Mod para Half-Life 2 llamado Fortress Forever.
Simulador para control y automatización.
14 de 86
2
INTRODUCCION TEORICA
Tras conocer un poco sobre Lua, pasó a ser la primera de las opciones en cuanto a lenguaje
de programación. No obstante se continuó la busqueda viendo lo que ofrecía C#. C# si es,
a diferencia de Lua, un lenguaje orientado a objetos. Finalmente la opción de usar Lua como
lenguaje se desechó, no porque no ofreciera las características necesarias, sino por la renderización
en 3D. Paralelamente a la busqueda del lenguaje de programación también se realizó la busqueda
de librerías que permitieran programar el renderizado en 3D para el simulador. Se encontró un
framework desarrollado por Microsoft para el desarrollo de juegos independientes para la consola
de videojuegos XBox. Con este framework los programadores independientes podían desarrollar
videojuegos y colgarlos gratuitamente o de pago en la comunidad de jugadores online. Este
framework es XNA y permite el renderizado en 3D incluyendo una buena documentación. Dado
que el disponer de una buena documentación es importante y tras observar algunos de los resultados
que obtenian los programadores utilizando XNA, se decidió que sería la librería para realizar la
programación 3D del simulador. Debido a que está implementada utilizando C# y que tanto XNA
como C# gozaban de las características necesarias para la implementación del simulador en 3D
deseado, se escogio el dúo C# - XNA para el desarrollo de este proyecto.
1. Lenguaje orientado a objetos C# (C sharp)
C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por
Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por
la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación
diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET,
similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notación musical, donde ’#’ (sostenido, en inglés
sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que
C# es superior a C/C++. Además, el signo ’#’ se compone de cuatro signos ’+’ pegados.
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es
un lenguaje de programación independiente diseñado para generar programas sobre dicha
plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU,
el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS,
Windows Phone, Mac OS y GNU/Linux.
Algunas características de C# son:
• Todo método debe ser parte de una clase, no existen métodos globales (funciones).
• Por defecto, los parámetros se pasan por valor. (Notese que las listas y otras colecciones
son variables por referencia (referencias al espacio reservado para esa lista en la pila) y
que se pasa por valor al método la referencia , pero el espacio reservado para la lista es
común, por lo que si elimina un elemento lo hace también de la original)
• El modificador ref fuerza a pasar los parámetros por referencia en vez de pasarlos por
valor y obliga a inicializar la variable antes de pasar el parámetro.
• El modificador out es similar al modificador ref, con la diferencia de que no se obliga a
inicializar la variable antes de pasar el parámetro.
• Cuando ref y out modifican un parámetro de referencia, la propia referencia se pasa por
referencia.
Simulador para control y automatización.
15 de 86
2
INTRODUCCION TEORICA
• El modificador params sirve para definir un número variable de argumentos los cuales
se implementan como una matriz.
• Un método debe tener como máximo un único parámetro params y éste debe ser el
último.
• Un método puede devolver cualquier tipo de dato, incluyendo tipos de clase.
• Ya que en C# las matrices se implementan como objetos, un método también puede
devolver una matriz (algo que se diferencia de C++ en que las matrices no son válidas
como tipos de valores devueltos).
• C# implementa sobrecarga de métodos, dos o más métodos pueden tener el mismo
nombre siempre y cuando se diferencien por sus parámetros.
• El método Main es un método especial al cual se refiere el punto de partida del programa.
El estándar ECMA-334 lista las siguientes metas en el diseño para C#:
• C# es un lenguaje de programación orientado a objetos simple, moderno y de propósito
general.
• Inclusión de principios de ingeniería de software tales como revisión estricta de los tipos
de datos, revisión de límites de vectores, detección de intentos de usar variables no
inicializadas, y recolección de basura automática.
• Capacidad para desarrollar componentes de software que se puedan usar en ambientes
distribuidos.
• Portabilidad del código fuente.
• Fácil migración del programador al nuevo lenguaje, especialmente para programadores
familiarizados con C, C++ y Java.
• Soporte para internacionalización.
• Adecuación para escribir aplicaciones de cualquier tamaño: desde las más grandes y
sofisticadas como sistemas operativos hasta las más pequeñas funciones.
• Aplicaciones económicas en cuanto a memoria y procesado.
2. Microsoft XNA
Microsoft XNA es un conjunto de herramientas con un entorno de ejecución administrado
proporcionado por Microsoft que facilita el desarrollo de juegos de ordenador y de gestión.
Intento para liberar a los desarrolladores de juegos de la creación de "código repetitivo " y
traer diferentes aspectos de la producción de juego en conjunto a un único sistema. XNA es
una herramienta que se anunció el 24 de marzo de 2004, en la Game Developers Conference en
San José, California. La primera comunidad Technology Preview de XNA Build fue lanzada
el 14 de marzo de 2006. XNA Game Studio 2.0 fue lanzado en diciembre de 2007, seguido
de XNA Game Studio 3.0 en 30 de octubre de 2008.
XNA actualmente abarca secciones de Microsoft Game Development Sections, incluyendo el
estándar Kit de desarrollo de Xbox y XNA Game Studio.
XNA Framework se basa en la implementación nativa de .NET Compact Framework 2.0 para
el desarrollo de la Xbox 360 y .NET Framework 2.0 en Windows.
Simulador para control y automatización.
16 de 86
2
INTRODUCCION TEORICA
Incluye un amplio conjunto de bibliotecas de clases, específicas para el desarrollo de juegos,
para promover la reutilización de código máximo a través de plataformas de destino. El marco
se ejecuta en una versión de Common Language Runtime que se ha optimizado para que los
juegos de azar proporcionar un entorno de ejecución administrado. El tiempo de ejecución
está disponible para Windows XP, Windows Vista y Xbox 360. Dado que XNA Games están
programados para el tiempo de ejecución, que se ejecuten en cualquier plataforma que admite
el XNA Framework con mínima o ninguna modificación. Juegos que se ejecutan en el marco
técnicamente pueden escribirse en cualquier lenguaje compatible con .NET, pero oficialmente
se admiten sólo C# y XNA Game Studio Express IDE y todas las versiones de Visual Studio
2005.
El XNA Framework por lo tanto encapsulado bajo nivel tecnológicos detalles relacionados
en un juego de codificación, asegurándose que el propio marco se encarga de la diferencia
entre plataformas cuando los juegos son portados desde una plataforma compatible a otra
lo que permite que los desarrolladores de juegos para concentrarse más en el contenido y la
experiencia de juego. XNA Framework se integra con una serie de herramientas, tales como
la plataforma múltiple audio creación herramienta (XACT), para ayudar en la creación de
contenido. XNA Framework proporciona apoyo para la creación de juego 2D y 3D y permite
el uso de los controladores de Xbox 360 y vibraciones. Sólo los juegos de marco XNA
actualmente destinadas a la plataforma Xbox se pueden ser distribuidos a los miembros de
Club de la Microsoft XNA Creator que lleva un $ 99/año suscripción. Desktop applications
pueden ser distribuidas gratuitamente bajo licencia actual de Microsoft.
Las versiones que ha lanzado Microsoft son las siguientes:
• XNA Game Studio 2.0
XNA Game Studio 2.0 fue lanzado en 13 de diciembre de 2007.8 XNA Game Studio
2.0 ofrece la posibilidad de que se utiliza con todas las versiones de Visual Studio 2005
(incluido el free Visual C# 2005 Express Edition), una API de red usando Xbox Live
en Windows y Xbox 360 y mejor dispositivo manipulación.
• XNA Game Studio 3.0 (para Visual Studio 2008 o para free Visual C# 2008 Express
Edition).
Permite la producción de juegos de la plataforma de Zune y agrega soporte de la
comunidad de Xbox Live. Una versión beta del conjunto de herramientas de se lanzó en
septiembre de 2008. La versión final fue lanzada el 30 de octubre de 2008. XNA Game
Studio 3.0 ahora es compatible con C# 3.0, LINQ y la mayoría de las versiones de Visual
Studio 2008. También hay varias características nuevas de más de XNA Game Studio
3.0, tales como un modo de prueba se agrega a XNA Game Studio 3.0 que permitirá a los
creadores agregar fácilmente la función de prueba necesario para sus juegos, funciones
de varios jugadores XBOX LIVE como en el juego invita, crear juegos de plataformas
que funcionan en Windows, Xbox 360 y Zune.
• XNA Game Studio 3.1
Se anunció en la Game Developers Conference en San Francisco el 24 de marzo de 2009.
La API es incluir el soporte para la reproducción de vídeo, una API revisada de audio,
Simulador para control y automatización.
17 de 86
2
INTRODUCCION TEORICA
sistema de parte de Xbox Live y soporte para juegos utilizar la Xbox 360 Avatars.
Esta versión del software está disponible para su descarga como parte del programa de
DreamSpark de Microsoft por parte de los alumnos.
• XNA Game Studio 4.0
Es lo que dará la competencia directa con el iPod de Apple ya que permite desarrollar
juegos y aplicaciones para el Windows Phone 7 aparte de tener un mercado en línea,
en donde los desarrolladores suben sus aplicaciones y los usarios del teléfono inteligente
pueden comprar o probar las aplicaciones, como se ha visto en el Xbox 360. Cabe
destacar la adicion de México para el mercado y que este estará disponible para uso en
30 países.
2.3.2
ENTORNOS DE MODELADO 3D. INTRODUCCION A AC3D.
En este momento del proyecto se tienen los elementos principales para poder programar el simulador
y realizar el renderizado 3D de los objetos mediante C# y XNA. No obstante, es necesario diseñar
los objetos 3D antes de poder renderizarlos por pantalla. Para poder hacer ésto se necesita un
software de diseño 3D.
Entre los más utilizados están:
• 3ds Max Studio.
Autodesk 3ds Max (anteriormente 3D Studio Max) es un programa de creación de gráficos
y animación 3D desarrollado por Autodesk, en concreto la división Autodesk Media &
Entertainment (anteriormente Discreet). Creado inicialmente por el Grupo Yost para
Autodesk, salió a la venta por primera vez en 1990 para DOS.
3ds Max, con su arquitectura basada en plugins, es uno de los programas de animación 3D
más utilizado, especialmente para la creación de video juegos, anuncios de televisión, en
arquitectura o en películas.
• Blender 3D.
Blender es un programa informático multiplataforma, dedicado especialmente al modelado,
animación y creación de gráficos tridimensionales.
El programa fue inicialmente distribuido de forma gratuita pero sin el código fuente, con
un manual disponible para la venta, aunque posteriormente pasó a ser software libre.
Actualmente es compatible con todas las versiones de Windows, Mac OS X, Linux, Solaris,
FreeBSD e IRIX.
Tiene una interfaz gráfica de usuario muy peculiar , que es criticada como poco intuitiva,
pues no se basa en el sistema clásico de ventanas; pero tiene a su vez ventajas importantes
sobre éstas, como la configuración personalizada de la distribución de los menús y vistas de
cámara.
Tanto 3ds Max, como Blender son programas excesivamente complejos y requieren de numerosas
horas de estudio para el diseño de modelos 3D. Por lo que se buscaron otras opciones para realizar
los modelos 3D que se incluirán en el simulador.
Simulador para control y automatización.
18 de 86
2
INTRODUCCION TEORICA
Tras buscar otros programas que permitieran el modelado 3D se encontró uno que incluía
muchas de las opciones de 3ds Max y Blender, con una interfaz gráfica muy parecida, pero con una
simplicidad de implementación de modelos mediante menús intuitivos que hacen de este software
una herramienta fácil de utilizar. Este software es AC3D.
En la figura 4 se muestra una captura de pantalla del software con uno de los modelos que se
ha incluido en el simulador 3D desarrollado en este proyecto.
Figura 4: Captura de pantalla de una parte del modelo 3D de la grúa en AC3D.
Todos los modelos que se han desarrollado están formados por objetos cúbicos, cilíndricos y
esféricos. De esta forma el diseño de un elemento nuevo en 3D en el AC3D se llevará a cabo de
forma rápida y sencilla. El programa dispone de funciones básicas booleanas para aplicar entre 2
objetos 3D como:
• Unión
• Intersección
• Substracción
• Cortar y Eliminar
La adición de texturas se hace de forma muy simple. Simplemente se agrega al objeto la textura
destino en un formato de dibujo, png, jpeg etc, y se asignarán las diferentes texturas a las diferentes
superficies según el objeto. A los modelos desarrollados se les aplicará una optimización de vértices
y superficies para no sobrecargar los modelos y que la renderización sea óptima.
Simulador para control y automatización.
19 de 86
2
INTRODUCCION TEORICA
Figura 5: Captura de pantalla de la texturización de un modelo en AC3D
2.3.3
OPC (OLE FOR PROCESS CONTROL)
Anteriormente se han comentado las posibilidades de conexión entre PLC y simulador 3D. En
este proyecto se ha realizado el diseño para una conexión directa entre un simulador de PLC y el
simulador 3D. La conexión directa se refiere a una conexión interna en el mismo ordenador donde
se ejecutarán todas las aplicaciones, con lo que se realizan conexiones locales. Todo se ejecuta en
el mismo PC, lo que permitirá que un usuario pueda llevarse el trabajo a casa. De esta forma
no será necesario el uso de un PLC real para poder llevar a cabo la programación del autómata
y la programación de la planta simulada. Para realizar la conexión entre el simulador de PLC y
el simulador 3D mediante conexión directa se ha optado por la utilización de un servidor OPC.
Se ha escodigo un servidor OPC por ser un estandar de comunicaciones en el campo del control
y supervisión de procesos industriales. De ésta forma la conexión establecida tendra un sistema
intermedio que será el servidor OPC que se encargará del intercambio de datos entre simulador de
PLC y simulador 3D.
Figura 6: Esquema de conexión mediante OPC Server.
OPC está basado en tecnología Microsoft, que ofrece un interfaz común para comunicación que
permite que componentes software individuales interaccionen y compartan datos. La comunicación
OPC se realiza a través de una arquitectura Cliente-servidor. El servidor OPC es la fuente de
datos (como un dispositivo hardware a nivel de planta) y cualquier aplicación basada en OPC
Simulador para control y automatización.
20 de 86
2
INTRODUCCION TEORICA
puede acceder a dicho servidor para leer/escribir cualquier variable que ofrezca el servidor. Es una
solución abierta y flexible al clásico problema de los drivers propietarios. Prácticamente todos los
mayores fabricantes de sistemas de control, instrumentación y de procesos han incluido OPC en
sus productos.
El propósito principal del estándar OPC es proporcionar a las aplicaciones una forma común
de acceder a los datos de cualquier fuente, como un dispositivo o una base de datos. Gracias a esta
forma común de acceso a datos que proporciona OPC los fabricantes de hardware sólo tienen que
hacer un conjunto de componentes de programa para que los clientes los utilicen en sus aplicaciones
y los fabricantes de software no tienen que adaptar los drivers ante cambios de hardware.
OPC está diseñado principalmente para acceder a datos de un servidor en red. Distintas
aplicaciones podrán coger datos de aparatos físicos y llevarlo a SCADA o DCS, o de un servidor
SCADA o DCS a una aplicación.
Figura 7: Esquema de conexión, entradas/salidas e interfaces.
Una aplicación cliente OPC, puede conectarse, por medio de una red, a varios servidores OPC
proporcionados por uno o más fabricantes. De esta forma no existe restricción por cuanto a tener
un Software Cliente para un Software Servidor, lo que es un problema de interoperabilidad que
hoy en día se aprecia con sistemas del tipo propietario. Sistemas de control supervisorio como lo
son SCADA o DCS pueden comunicarse con un Servidor OPC y proveer a este, información de
los dispositivos de campo asociados. De esta forma, aplicaciones cliente OPC de otros fabricantes
tendrán acceso a estos datos por medio del servidor.
Tipos de servidores OPC:
1. Servidor de Acceso a Datos OPC
A un alto nivel, está compuesto por los objetos:
• Servidor: Mantiene la información sobre sí mismo, y unifica los Datos dentro de un
Grupo.
• Grupo: Dota de un mecanismo que contiene en forma lógica los ítemes. Se clasifican en
público o local.
• Ítem: Es un valor, una condición y permanece o varía en el tiempo. Es una dirección
específica de los datos y no la fuente de datos.
2. Servidor de Alarmas, Condiciones y Eventos OPC
Provee de Interfaces, donde Clientes OPC son notificados de Sucesos. Estos mecanismos se
definen como:
Simulador para control y automatización.
21 de 86
2
INTRODUCCION TEORICA
• Alarma: Condición anormal de un sistema, por lo que es un caso especial de esta.
• Condición: Estado nombrado evento por contener condiciones asociadas a una etiqueta
como HighAlarm, Normal, LowAlarm.
• Evento: Ocurrencia perceptible, de importancia al servidor OPC, de los dispositivos que
representa o de sus dispositivos OPC.
3. Servidor de Acceso a Datos Históricos OPC (OPC HDA)
Provee de una interfaz Cliente OPC de Acceso a Datos Históricos, que facilita el uso de
aplicaciones de acceso a datos. Características: Arquitectura de comunicación abierta y
eficaz, concentrada en el acceso a datos y no en los tipos de datos. Propósito: Permite que
aplicaciones (MS Office, Objetos WWW) accedan a datos de un dispositivo o un banco de
datos “In process”. Facilita el desarrollo de aplicaciones sin sacrificar la funcionalidad de la
Interfaz Cliente.
4. Intercambio de Datos OPC (OPC DX)
Define un conjunto de interfaces que permiten el intercambio de datos, así como la
comunicación "server to server" entre dispositivos y controladores conectados a Ethernet,
que utilizan distintos protocolos. OPC-DX permite a los servidores OPC-DA intercambiar
directamente datos sin la exigencia de un cliente OPC intermedio. La mejor manera de
pensar en un servidor OPC-DX es como un servidor OPC-DA que se puede configurar para
intercambiar datos con otros servidores OPC-DA. Como es el caso de otros servidores OPC,
el cliente aún se utiliza para configurar, controlar y vigilar este intercambio de datos.
5. Acceso de Datos XML (OPC XML DA)
Se está convirtiendo en el método estándar para el intercambio de datos entre las aplicaciones
de empresa y son cada vez más un proceso de control de entornos. OPC XML-DA salió a la luz
en 2003 tras varios años de desarrollo, y ofrece un interfaz Simple Object Application Protocol
(SOAP) para los objetos OPC DA 2.0/3.0. Esto permite a las aplicaciones cliente ser escritas
en Java, Perl, Python, y otros idiomas que soporta SOAP. SOAP y XML Web Services utiliza
Protocolo de transferencia de hipertexto (HTTP) y los mecanismos de transporte y, además,
proporciona una plataforma neutral más adecuado para el tráfico con base en Internet,
en comparación con tecnologías como DCOM. Sin embargo, debido a las limitaciones de
rendimiento posible, OPC XML-DA es poco probable que se utilice para aplicaciones en
tiempo real, a pesar de que normalmente se usa de puente entre la empresa y la red de
control.
6. Arquitectura Unificada OPC (OPC UA)
Refleja el objetivo de Microsoft de retirar DCOM en favor de .NET y arquitecturas orientadas
a servicio. OPC UA integra la funcionalidad de las anteriores especificaciones (OPC DA,
OPC-HDA, OPC A & E, OPC-DX, etc). OPC UA abandona COM / DCOM en favor de
dos transportes: SOAP / HTTP (S) y un mensaje binario codificado en la parte superior
de TCP. Es prematuro evaluar la seguridad de OPC UA en relación con DCOM, ya que la
API OPC UA de seguridad aún está en desarrollo. Sin embargo, dado que ahora existe una
mayor conciencia en la OPC Foundation, proveedores OPC, y Microsoft para la necesidad
de seguridad, hay poca duda de que .NET proporcionará una base más segura que COM
/ DCOM. También hacen mucho más sencillo el desarrollo de clientes y servidores OPC en
plataformas que no sean de Microsoft.
7. Seguridad
Existen tres niveles de seguridad OPC:
• Seguridad Inválida: Libre acceso entre Cliente/Servidor.
Simulador para control y automatización.
22 de 86
2
INTRODUCCION TEORICA
• Seguridad DCOM: Clientes seleccionados tienen acceso limitado a servidores OPC. No
hay un control total sobre sistemas operativos como Linux, Unix.
• Seguridad OPC: El Servidor OPC sirve como un regulador de control de acceso a
fabricantes de sistemas operativos como Linux y Unix sobre objetos específicos de acceso
restringido que son expuestos por el Servidor OPC.
Simulador para control y automatización.
23 de 86
Descargar