UTEQ UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Firmado digitalmente por UTEQ Nombre de reconocimiento (DN): cn=UTEQ, o=UTEQ, ou=UTEQ, [email protected] x, c=MX Fecha: 2015.09.22 15:01:41 -05'00' Nombre del proyecto: “INTERFAZ OPC PARA LA COMUNICACIÓN ENTRE PLC´S Y SISTEMAS MULTIPLATAFORMA” Empresa: “SISTEMAS A TU MEDIDA RENTABLES S.A DE C.V” Memoria que como parte de los requisitos para obtener el título de: TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN Presenta: OLVERA ESPINO LUIS ENRIQUE Asesor de la UTEQ Asesor de la Organización M. en I. Tomas Gerardo Torres Luna Ing. Luis Enrique Garduño Santiago de Querétaro, Qro.Septiembre del 2015 Resumen Se presenta un proyecto basado en tecnologias OPC desarrollado en un sistema multiplataforma, el cual fue implementado en una maqueta de proceso industrial que se monitorea a distancia. En este documento se presentan varios puntos sobre comunicación OPC, se propone un nuevo sistema de comunicación OPC desarrollado en sistemas multiplataforma que es la nueva tecnologia de OPC en el cual no solo será aplicable en plataformas de Microsoft Windows, sino en diversos sistemas en el caso de este proyecto fue desarrollado en Java. Tambien contiene una amplia información teórica donde se argumenta las ventajas de estas nuevas tecnologias. También se incluyen algunos ejemplos de configuraciones OPC en diversos softwares de diferentes proveedores de Comunicación OPC DA paso a paso. Se menciona a detalle cómo es que se estructuró el código para así desarrollar el proyecto. Se detallan algunas partes del código fuente sin mencionar las modificaciones importantes, (Se reserva esta información debido a motivos de confidencialidad) y por ultimo se muestra hasta donde se llegó con la interfaz OPC Ua en Java. 2 Description “Sistemas a tu medida Rentables” it is a company with large and comfortable facilities to work, this company has a clean and friendly environment. The staff is friendly despite of the environment sometimes everyday is a little stressed to work there. Luis Enrique Garduño is my advisor. He is a responsible person, dedicated and optimistic. He is tall and slim; he has brown eyes and has short black hair. Luis Enrique Olvera Espino 3 Agradecimientos Quiero agradecer a mi mamá porque siempre me ha apoyado durante toda mi vida y nunca me ha dejado solo. Le agradezco todo su apoyo moral y económico ya que en éste proyecto tuve muchas dificultades en esos aspectos y siempre estuvo para ayudarme y brindarme su apoyo en todo momento. También a mi hermana Nayeli porque siempre confió en mí y me apoyó para que nunca me rindiera. Gracias mamá, gracias Nayeli, las Amo. Tambien agradezco al Ing. David Garate Andrade por su apoyo económico a lo largo de mi carrera como Técnico Superior Universitario en Mecatronica Area Automatización debido a que al inicio de mi carrera tuve muchos problemas económicos y estuve a punto de abandonar la carrera, pero gracias a su apoyo logré terminar mis 5 cuatrimestres y comenzar mi estadía profesional, además que me enseñó que en la vida no debemos rendirnos nunca. Gracias ing. David. Agradezco a mi novia Diana quien ha sido una persona muy importante en mi vida y a quien yo amo mucho. Le agradezco todo su apoyo y paciencia en el desarrollo de mi carrera, porque siempre conté con su ayuda en todos los aspectos. Siempre ha estado atenta en mí en todo momento, siempre confió en mí y nunca me dejó solo. Gracias mi amor, te amo. Además agradezco a mis amigos por todo su apoyo ya que siempre nos estuvimos apoyando unos con otros y motivandonos a salir adelante, a pesar de los momentos difíciles que se nos presentaron. 4 Índice Resumen ................................................................................................................. 2 Description .............................................................................................................. 3 Agradecimientos...................................................................................................... 4 Índice ....................................................................................................................... 5 l. Introducción .......................................................................................................... 7 ll. Antecedentes ....................................................................................................... 8 lll. Justificación ........................................................................................................ 9 lV. Objetivos .......................................................................................................... 10 V. Alcance ............................................................................................................. 11 VI. Análisis de Riesgos .......................................................................................... 12 Análisis FODA ................................................................................................... 12 VII. Fundamentación Teórica ................................................................................ 14 VII.I OPC (OLE for Process Control) ................................................................ 14 VII.II Servidor OPC ............................................................................................ 15 VII.III MatrikonOPC ............................................................................................ 17 VII.VI ADVOSOL ............................................................................................... 18 VII.V Sistema SCADA ........................................................................................ 19 VII.VI PLC .......................................................................................................... 20 VII.VII Eclipse .................................................................................................... 21 VII.VIII Java ....................................................................................................... 23 VII.IX Ua Gateway ............................................................................................. 24 VII.X Confidencialidad ....................................................................................... 25 VIII. Plan De Actividades ....................................................................................... 26 IX. Recursos Materiales y Humanos ..................................................................... 29 X. Desarrollo Del Proyecto .................................................................................... 30 X.I Investigación de Servidor y cliente OPC ...................................................... 30 X.II Investigación sobre OPC DA (Data Access) ............................................... 32 5 X.III Investigación sobre OPC HDA (Historical Data Access) ............................ 33 X.IV Investigación sobre OPC UA (Unified Architecture) ................................... 34 X.V Investigación sobre DCOM (Distributed Component Object Model) ........... 36 X.VI Pruebas de Conexión DCOM ..................................................................... 38 X.VII Conexión OPC DA con OPC Test Client................................................... 46 X.VIII Conexión OPC DA con MatrikonOPC ...................................................... 55 X.IX Conexión OPC DA con Advosol ................................................................. 66 X.X Configuracion de UaGateway ..................................................................... 74 X.XI Comunicación OPC UA con Eclipse (Java) ............................................... 83 XI. Resultados Obtenidos .................................................................................... 102 XII. Conclusiones Y Recomendaciones .............................................................. 103 XIII. Anexos ............................................................................................................... XIV. Bibliografía......................................................................................................... 6 l. Introducción En la Universidad Tecnológica de Querétaro se maneja el modelo de TSU (Técnico Superior Universitario) el cual conlleva 6 cuatrimestres , tomando el último de estos como una estadía profesional en diferentes empresas como complemento al aprendizaje de los alumnos y tomando esto como un inicio a la vida laboral como por ejemplo en “SISTEMAS A TU MEDIDA RENTABLES SA. DE C.V” que es una empresa que ofrece servicios de automatización, en la cual se llevó a cabo una Interfaz de Comunicación OPC para Sistemas Multiplataforma la cual se aplicará como propuesta de desarrollo tecnológico para las empresas y así lograr una mayor eficiencia en sus procesos y disminuir las pérdidas de tiempo, esta tecnología se presenta en una maqueta de un proceso industrial controlado por un PLC lo que se pretende es demostrar su efectividad del software y que es compatible con cualquier sistema operativo y así obtener un mejor resultado en el menor tiempo posible, al igual que la disminución de costos, logrando de esta manera introducirse en un mercado más competente. 7 ll. Antecedentes La empresa SISTEMAS A TU MEDIDA RENTABLES S.A. de C. V. nace de la Visión y reto del Ing. Luis Enrique Garduño en el año 2006 en el Estado de Querétaro, Querétaro formando esta nueva organización enfocada a la Manufactura y respaldada por una nueva y joven administración. Los primeros proyectos ofrecidos por la organización fueron algunos servicios de software y hardware a pequeñas empresas. Posteriormente “Sistemas a tu medida” comenzó con trabajos de colocación de hornos de inducción, los cuales consumen bastante energía eléctrica, la cual tiene que ser supervisada y controlada. Conforme fue aumentando la producción, el número de hornos aumento y así mismo proporcionalmente el consumo de la electricidad, desde ese momento se empezaron a monitorear dentro de las horas pico que trabajan, ya que si se excedía de un cierto punto de consumo, Comisión Federal de Electricidad, multaba de manera exorbitante a la empresa donde se encuentran instalados, esto por sobrepasar el consumo de electricidad que es permitido para el sector industrial. Hoy en día “Sistemas a tu medida” continúa ofreciendo servicios de automatización a la industria, logrando así una superación constante. 8 lll. Justificación “Sistemas a tu medida” es una de las empresas que busca expandirse cada día más en el desarrollo de proyectos y por esta razón se decidió que era de vital importancia desarrollar una interfaz de comunicación OPC aplicada a los sistemas multiplataforma para llevar a cabo un mejor control para los procesos de producción, logrando de esta manera reducir los tiempos muertos. El implementar una interfaz de comunicación OPC permitirá reducir los tiempos de respuesta para las posibles fallas más constantes y poder monitorear nuestro proceso. 9 lV. Objetivos Diseñar una interfaz de comunicación OPC para establecer una comunicación entre PLC´S y Sistemas Multiplataforma para el monitoreo de procesos industriales. Desarrollo de Servidor OPC Monitorear diariamente el comportamiento de las variables. Reducir el tiempo en búsqueda de fallas que lleguen a presentarse en el proceso. 10 V. Alcance La comunicación OPC entre PLC´S y Sistemas Multiplataforma tiene como finalidad el monitoreo visual de nuestras variables puestas en los PLC´S logrando así visualizar el comportamiento de nuestro proceso y poder llevar esta interfaz a sistemas multiplataforma para lograr el monitoreo en cualquier parte y poder aplicar esta interfaz a cualquier sistema. 11 VI. Análisis de Riesgos Para tener una mejor visión sobre los posibles riesgos que tenemos dentro del proyecto nos basamos en una herramienta en el análisis FODA. Análisis FODA Matriz FODA Fortalezas (F) Debilidades(D) Productor joven. Mala redacción de textos. Conocimientos básicos en Falta de Pruebas del sistemas de programación. funcionamiento del Experiencia adquirida con proyecto. Comunicación OPC. Poco conocimiento en sistemas multiplataforma. Principiante en software Prosys Oportunidades (O) Tomar tutoriales en Estrategias (FO) Estrategias(DO) Pedirle a mi asesor que Pedirle a nuestro asesor internet. revise nuestros puntos que nos de algunos Apoyo de asesores concluidos para verificar consejos sobre especializados. que estén correctos. servidores OPC. Contar con la Hacer una interfaz de herramienta y el comunicación OPC lo más material adecuado. eficiente posible. Tratar de enfocarnos a la documentación. Buscar tutoriales e información sobre el software Prosys. 12 Amenazas(A) Tener fallas en Estrategias (FA) Revisar los puntos Tener en cuenta que la concluidos para no pasar documentación también concluido. por alto algún detalle. es parte importante del Dedicarle más tiempo a la proyecto y por lo tanto documentación. comenzar a realizarla de Investigar más sobre la mejor manera posible. Que nuestra adecuada para la documentación. programación para que no Que no se puedan sea deficiente. Tomar experiencia de nuestros errores y de hacer las pruebas este modo no volverlos a posibles para cometer. verificar la comunicación de la interfaz. algún punto ya redacción no sea la Estrategias(DA) Programación deficiente. Fig. 4.0 Análisis Foda. 13 VII. Fundamentación Teórica En el proyecto se implementarán elementos técnicos, de los cuales se darán sus fundamentos teóricos a continuación. VII.I OPC (OLE for Process Control) Un servidor OPC es una aplicación de software (driver) que cumple con una o más especificaciones definidas por la OPC Foundation. El Servidor OPC hace de interfaz comunicando por un lado con una o más fuentes de datos utilizando sus protocolos nativos (típicamente PLC’s, DCS´s, básculas, Módulos I/O, controladores, etc.) y por el otro lado con Clientes OPC (típicamente SCADAS, HMI’s, generadores de informes, generadores de gráficos, aplicaciones de cálculos, etc.). En una arquitectura Cliente OPC/ Servidor OPC, el Servidor OPC es el esclavo mientras que el Cliente OPC es el maestro. Las comunicaciones entre el Cliente OPC y el Servidor OPC son bidireccionales, lo que significa que los Clientes pueden leer y escribir en los dispositivos a través del Servidor OPC. Fig. 5.0 OPC 14 VII.II Servidor OPC Un servidor OPC es una aplicación de software (driver) que cumple con una o más especificaciones definidas por la OPC Foundation. El Servidor OPC hace de interfaz comunicando por un lado con una o más fuentes de datos utilizando sus protocolo nativos (típicamente PLCs, DCSs, básculas, Módulos I/O, controladores, etc.) y por el otro lado con Clientes OPC (típicamente SCADAs, HMIs, generadores de informes, generadores de gráficos, aplicaciones de cálculos, etc.). En una arquitectura Cliente OPC/ Servidor OPC, el Servidor OPC es el esclavo mientras que el Cliente OPC es el maestro. Las comunicaciones entre el Cliente OPC y el Servidor OPC son bidireccionales, lo que significa que los Clientes pueden leer y escribir en los dispositivos a través del Servidor OPC Existen cuatro tipos de servidores OPC definidos por la OPC Foundation, y son los siguientes: Servidor OPC DA – Basado en Spezifikationsbasis: OPC Data Access especialmente diseñado para la transmisión de datos en tiempo real. Servidor OPC HDA– Basado en la especificación de Acceso a Datos Historiados que provee al Cliente OPC HDA de datos históricos. Servidor OPC A&E Server– Basado en la especificación de Alarmas y Eventos – transfiere Alarmas y Eventos desde el dispositivo hacia el Cliente OPC A&E. Servidor OPC UA – Basado en la especificación de Arquitectura Unificada – basado en el set más nuevo y avanzado de la OPC Foundation, permite a los Servidores OPC trabajar con cualquier tipo de datos 15 Los Servidores OPC clásicos utilizan la infraestructura COM/DCOM de Microsoft Windows para el intercambio de datos. Lo que significa que esos Servidores OPC deben instalarse bajo el Sistema Operativo de Microsoft Windows. Un Servidor OPC puede soportar comunicaciones con múltiples Clientes OPC simultáneamente. Estos se comunican nativamente con las fuentes de datos, por ejemplo: dispositivos, controladores y aplicaciones. Las especificaciones de la OPC Foundation no especifican como el Servidor OPC se debe comunicar con la fuente de datos porque hay una gran variedad de fuentes de datos disponibles en el mercado. Cada PLC, DCS, controlador, etc. tiene su propio protocolo de comunicación o API que a su vez permiten la utilización cualquier cantidad de conexiones físicas (serial RS485 o RS232, Ethernet, wireless, redes propietarias, etc.). Fig. 5.1 Servidor OPC 16 VII.III MatrikonOPC MatrikonOPC provee los equipos de productos de conectividad de datos basados en el estándar OPC. La promesa MatrikonOPC es capacitar a los clientes con acceso a datos fiables a los sistemas de los principales proveedores de automatización 'de la conectividad del dispositivo nativo de amplia visibilidad empresarial, proporcionar formación OPC práctica y ofrecer una atención al cliente superior. MatrikonOPC construye relaciones estrechas con sus clientes para atender mejor sus necesidades de negocio y técnicos. Con oficinas en Norteamérica, Europa, Asia-Pacífico y Oriente Medio, MatrikonOPC ofrece presencia local en una escala global. MatrikonOPC es un proveedor de conectividad neutral. Fig. 5.2 MatrikonOPC 17 VII.VI ADVOSOL Advosol Inc. es el proveedor líder de OPC .NET componentes, kits de herramientas y servicios para basada .NET OPC solutions.The Austin, Texas basado Advosol Inc. se especializa en componentes de desarrollo cliente / servidor OPC basado .Net y ofrece el más utilizado y completa conjunto de herramientas y componentes de software para clientes y servidores OPC .NET y servicios Web XML. Advosol Inc. inició su actividad en 1996 como proveedor de componentes y herramientas de software OPC. Con la llegada prevista de .NET, de inmediato reconoció su importancia y los componentes potenciales y desarrollado software para el apoyo de OPC en aplicación .Net. Fuimos la primera empresa en ofrecer envoltorio .Net para todos los estándares OPC ampliamente utilizados, así como kits de herramientas de servidor / cliente para el estándar XML DA. Tenemos largo y amplio know-how de OPC y .Net y ofrecemos una amplia gama de componentes para el desarrollador de software y constructor del sistema. Los productos que se pueden comprar en línea y descargar de inmediato. Fig. 5.3 ADVOSOL 18 VII.V Sistema SCADA SCADA, acrónimo de Supervisory Control And Data Acquisition (Supervisión, Control y Adquisición de Datos) es un software para ordenadores que permite Controlar y supervisar procesos industriales a distancia. Facilita retroalimentación en tiempo real con los dispositivos de campo (sensores y actuadores) y Controlando el proceso automáticamente. Provee de toda la información que se genera en el proceso productivo (supervisión, control calidad, control de Producción, almacenamiento de datos, etc.) Y permite su gestión e intervención. La realimentación, también denominada retroalimentación o feedback es, en una Organización, el proceso de compartir observaciones, preocupaciones y sugerencias, con la intención de recabar información, a nivel individual o Colectivo, para mejorar o modificar diversos aspectos del funcionamiento de una Organización. Fig. 5.4 Ejemplo de Sistema SCADA 19 VII.VI PLC Un controlador lógico programable, más conocido por sus siglas en inglés PLC (Programmable Logic Controller), es una computadora utilizada en la ingeniería automática o automatización industrial, para automatizar procesos electromecánicos, tales como el control de la maquinaria de la fábrica en líneas de montaje o atracciones mecánicas. Los PLC’s son utilizados en muchas industrias y máquinas. A diferencia de las computadoras de propósito general, el PLC está diseñado para múltiples señales de entrada y de salida, rangos de temperatura ampliados, inmunidad al ruido eléctrico y resistencia a la vibración y al impacto. Los programas para el control de funcionamiento de la máquina se suelen almacenar en baterías copia de seguridad o en memorias no volátiles. Un PLC es un ejemplo de un sistema de tiempo real duro donde los resultados de salida deben ser producidos en respuesta a las condiciones de entrada dentro de un tiempo limitado, que de lo contrario no producirá el resultado.(Manual MicroLogix1100, Allen -Bradley) Fig 5.5 PLC Allen Bradley Micrologix 1100 20 VII.VII Eclipse Eclipse es una plataforma de desarrollo, diseñada para ser extendida de forma indefinida a través deplug-ins. Fue concebida desde sus orígenes para convertirse en una plataforma de integración de herramientas de desarrollo. No tiene en mente un lenguaje específico, sino que es un IDE genérico, aunque goza de mucha popularidad entre la comunidad de desarrolladores del lenguaje Java usando el plug-in JDT que viene incluido en la distribución estándar del IDE. Proporciona herramientas para la gestión de espacios de trabajo, escribir, desplegar, ejecutar y depurar aplicaciones. Principales características Perspectivas, editores y vistas: en Eclipse el concepto de trabajo está basado en las perspectivas, que no es otra cosa que una preconfiguración de ventanas y editores, relacionadas entre sí, y que nos permiten trabajar en un determinado entorno de trabajo de forma óptima. Gestión de proyectos: el desarrollo sobre Eclipse se basa en los proyectos, que son el conjunto de recursos relacionados entre sí, como puede ser el código fuente, documentación, ficheros configuración, árbol de directorios,… El IDE nos proporcionará asistentes y ayudas para la creación de proyectos. Por ejemplo, cuando creamos uno, se abre la perspectiva adecuada al tipo de proyecto que estemos creando, con la colección de vistas, editores y ventanas preconfigurada por defecto. Depurador de código: se incluye un potente depurador, de uso fácil e intuitivo, y que visualmente nos ayuda a mejorar nuestro código. Para ello sólo debemos ejecutar el programa en modo depuración (con un simple botón). De nuevo, tenemos una perspectiva específica para la depuración de código, la perspectiva depuración, donde se muestra de forma ordenada toda la información necesaria para realizar dicha tarea. 21 Extensa colección de plug-ins: están disponibles en una gran cantidad, unos publicados por Eclipse, otros por terceros. Al haber sido un estándar de facto durante tanto tiempo (no el único estándar, pero sí uno de ellos), la colección disponible es muy grande. Los hay gratuitos, de pago, bajo distintas licencias, pero casi para cualquier cosa que nos imaginemos tenemos el plug-inadecuado. Fig 5.6 Eclipse 22 VII.VIII Java Java es un lenguaje de programación orientado a objetos que se popularizó a partir del lanzamiento de su primera versión comercial de amplia difusión, la JDK 1.0 en 1996. Actualmente es uno de los lenguajes más usados para la programación en todo el mundo. Los antecedentes de Java habría que buscarlos en los lenguajes de programación C y C++. El lenguaje C fue desarrollado en la década de los 70 y constituye un lenguaje muy robusto usado como núcleo del sistema operativo Unix. C no admite la orientación a objetos y está considerado un lenguaje “poco amigable” desde el punto de vista de que su sintaxis, elementos de programación que emplea (manejo directo de memoria) y otras cuestiones hacen que sea un lenguaje difícil de aprender. C++ fue una evolución de C desarrollada en los años 80. Introdujo el diseño orientado a objetos, pero manteniendo la compatibilidad con C. Como paso final en esta evolución tenemos Java, un lenguaje que evoluciona a partir de C y C++, pero que elimina diversos aspectos de estos lenguajes y se constituye en un lenguaje definitivamente orientado a objetos. El romper con distintos aspectos de C++ cuyo manejo inadecuado por parte de muchos programadores daba lugar a problemas en las aplicaciones ha sido un factor decisivo para convertir a Java en un lenguaje popular y de amplio uso. Fig 5.7 Java 23 VII.IX Ua Gateway El UaGateway es un producto para la migración de los COM / DCOM servidores OPC "clásicos", basada en la nueva Arquitectura Unificada OPC. El UaGateway es un alto rendimiento Envoltura / Proxy programado en C ++. El UaGateway se basa en nuestra C ++ servidor OPC UA / Client SDK / Toolkit. Soluciones que se pueden obtener mediante el UaGateway: Conectar Cliente UA al COM / DCOM Server (s) Conexión COM / DCOM de cliente a servidor UA (s) túnel COM / DCOM a través de conexión segura UA Concentración de datos en un único nodo; único punto de acceso con firewalls, acceso seguro a datos OPC 'clásico' El nuevo UaGateway es totalmente configurable a través de OPC UA Métodos. Se cumplirá con el OPC DI Specification (Integración de dispositivos) y ofrecerá capacidades de diagnóstico y configuración estandarizados. El UaGateway es una aplicación para Windows de 32 bits; se puede instalar en el estándar de Windows (XP, Vista, Win7) y también puede funcionar con 64 bits de Windows (WOW64). El UaGateway puede conectar múltiples servidores DA COM subyacente y múltiples servidores UA subyacentes al mismo tiempo. Las conexiones a los servidores subyacentes se pueden agregar en tiempo de ejecución sin necesidad de reiniciar el UaGateway. Fig 5.8 Ua Gateway 24 VII.X Confidencialidad Es la propiedad de prevenir la divulgación de información a personas o sistemas no autorizados. A groso modo, la confidencialidad es el acceso a la información únicamente por personas que cuenten con la debida autorización. La pérdida de la confidencialidad de la información puede adoptar muchas formas. Cuando alguien mira por encima de su hombro, mientras usted tiene 26 información confidencial en la pantalla, cuando se publica información privada, cuando un laptop con información sensible sobre una empresa es robado, cuando se divulga información confidencial a través del teléfono, etc. Todos estos casos pueden constituir una violación de la confidencialidad. Fig. 5.9 Representación de Firewall de Windows 25 VIII. Plan De Actividades Para poder contar con un plan de actividades se realizó el siguiente diagrama de Gantt, en el cual se pueden observar las actividades a realizar de acuerdo al tiempo que se tiene para concluir el proyecto ya que cada actividad cuenta con un tiempo asignado porque hay algunas actividades que se deben de realizar primero que otras para así mismo ir llevando el proyecto a concluir en la fecha límite y se logren cumplir los objetivos debido que este proyecto esta ligado con otro en donde se le estan realizando modificaciones a la maqueta en la cual será aplicada la Comunicación OPC. 26 27 Fig.6.0 Diagrama de Gantt 28 IX. Recursos Materiales y Humanos Recursos Humanos 1 Mecatrónico en Estadía Sueldo $150 por semana Costos Variables Suministros Cantidad Unidad Costo Costo Aplicado Modem Telefónico 1 Pza $600.00 $600.00 Cable UTP 3 Mts $4.00 $12.00 Conectores RJ45 6 Pza $2.00 $12.00 PLC Allen Bradley Micrologix 1100 1 Pza $5000 $5000 Total $5624.00 Lista De Herramienta Requerida. Cantidad Unidad 2 pza Material Costo Costo Total Computadoras de escritorio $4,000 $18,000 Meses de vida util 120 Total $18,000 240 Fig.7.0 Tablas de Costos 29 X. Desarrollo Del Proyecto X.I Investigación de Servidor y cliente OPC Para el Desarrollo de este proyecto se comenzó primero por la investigación sobre los conceptos de Servidor y Cliente OPC, esto debido a que antes de empezar a realizar el servidor y cliente OPC se debía conocer su definición y función de cada uno. No solamente programar, sino conocer también su estructura de cada uno. Se consultaron varias fuentes de información especialmente en páginas de desarrolladores de OPC algunos ejemplos de estos son MatriKon, Rockwell Software, Keepware, Advosol, etc. Servidor OPC.- Un servidor OPC es una aplicación de software (driver) que cumple con una o más especificaciones definidas por la OPC Foundation. El Servidor OPC hace de interfaz comunicando por un lado con una o más fuentes de datos utilizando sus protocolo nativos (típicamente PLCs, DCSs, básculas, Módulos I/O, controladores, etc.) y por el otro lado con Clientes OPC (típicamente SCADAs, HMIs, generadores de informes, generadores de gráficos, aplicaciones de cálculos, etc.). Cliente OPC.- El Cliente OPC accede a los datos proporcionados por el Servidor OPC. En una arquitectura Cliente OPC/ Servidor OPC, el Servidor OPC es el esclavo mientras que el Cliente OPC es el maestro. Las comunicaciones entre el Cliente OPC y el Servidor OPC son bidireccionales, lo que significa que los Clientes pueden leer y escribir en los dispositivos a través del Servidor OPC. 30 Fig.8.0 Servidor y Cliente OPC 31 X.II Investigación sobre OPC DA (Data Access) Servidor OPC DA – Basado en Spezifikationsbasis: OPC Data Access especialmente diseñado para la transmisión de datos en tiempo real. OPC DA proviene de OPC Data Access. Es una especificación de la Fundación OPC que define la forma de comunicación y transferencia de datos entre una Fuente de Datos y una Aplicación Cliente (por ejemplo entre un PLC y un SCADA) sin necesidad de que cada uno conozca el protocolo nativo del otro. La especificación OPC DA ha pasado durante los años por diversas revisiones. Las principales fueron: Año Versión 1996 1.0 1997 DA 1.0a Comentario Especificación inicial El nombre Data Access (DA) se comienza a utilizar para diferenciar esta versión de otras en desarrollo. 1998 DA 2.0 - DA 2.05 a Numerous specification clarifications and modifications. 2003 DA 3.0 Numerosas aclaraciones y modificaciones Fig.8.1 OPC DA 32 X.III Investigación sobre OPC HDA (Historical Data Access) Esta especificación describe el comportamiento de un servidor OPC que almacena los datos en algún tipo de base de datos, y cómo los clientes pueden recuperar usando OPC, que abarca: Descripción y propósito de la tecnología de datos históricos Descripción general de la arquitectura general y metodología Las descripciones detalladas de las interfaces, métodos, parámetros y comportamientos esperados Las descripciones detalladas de las funciones de agregado con consultas de ejemplo y los resultados de cada Las descripciones detalladas de los tipos y estructuras de datos Código de ejemplo (OPC Server) que contiene definiciones de interfaz y códigos de error Fig.8.2 OPC HDA 33 X.IV Investigación sobre OPC UA (Unified Architecture) OPC Arquitectura Unificada (OPC UA) es un protocolo de comunicación M2M industrial para la interoperabilidad desarrollado por la Fundación OPC. Es el sucesor de OLE for Process Control (OPC). Aunque desarrollado por la misma organización, OPC UA difiere significativamente de su predecesor. El objetivo de la Fundación para este proyecto era proporcionar un camino hacia adelante desde el modelo de comunicaciones OPC originales (es decir, el de Microsoft Windows única bolsa proceso de COM / DCOM) a una arquitectura orientada a servicios multiplataforma (SOA) para el control del proceso, al tiempo que mejora la seguridad y la proporcionando un modelo de información Después de más de tres años de trabajo de especificación y otro año para un prototipo de aplicación, la primera versión de la Arquitectura Unificada fue lanzado en 2006. La versión actual de la especificación es de 1.02. OPC UA (Arquitectura Unificada) extiende el gran éxito del protocolo de comunicación OPC, para la adquisición de datos, el modelado de la información y la comunicación entre planta y aplicaciones de una forma fiable y segura. Las principales características y beneficios de los OPC UA son: Plataforma neutral que funciona en cualquier sistema operativo Preparada para el futuro y para comunicar con sistemas antiguos Fácil configuración y mantenimiento Tecnología orientada a servicios Aumento de la visibilidad Mayor alcance de la conectividad Alto rendimiento 34 Fig.8.3 OPC UA 35 X.V Investigación sobre DCOM (Distributed Component Object Model) Como se mencionó en la sección de documentación teórica Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET. La adición de la "D" a COM fue debido al uso extensivo de DCE/RPC, o más específicamente la versión mejorada de Microsoft, conocida como MSRPC. En términos de las extensiones que añade a COM, DCOM tenía que resolver los problemas de Aplanamiento - Serializar y de serializar los argumentos y valores de retorno de las llamadas a los métodos "sobre el cable". Recolección de basura distribuida, asegurándose que las referencias mantenidas por clientes de las interfaces sean liberadas cuando, por ejemplo, el proceso cliente ha caído o la conexión de red se pierde. Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC Como el mecanismo RPC subyacente bajo DCOM. DCE/RPC define reglas estrictas en cuanto al aplanamiento y a quién es responsable de liberar la memoria. DCOM fue uno de los mayores competidores de CORBA. Los defensores de ambas tecnologías sostenían que algún día serían el modelo de código y servicios sobre Internet. Sin embargo, las dificultades que suponía conseguir que estas tecnologías funcionasen a través de cortafuegos y sobre máquinas inseguras o desconocidas, significó que las peticiones HTTP normales, combinadas con los navegadores web les ganasen la partida. Microsoft, en su 52 36 momento intentó y fracasó anticiparse a esto añadiendo un transporte extra HTTP a DCE/RPC denominado "ncacn_http" (Connection-based, over HTTP). Fig.8.4 DCOM 37 X.VI Pruebas de Conexión DCOM Permisos DCOM Para abrir la utilidad de configuración de permisos DCOM se corre el cuadro Ejecutar y se introduce el comando dcomconfg. Fig.8.5 Cuadro de Ejecutar. Una vez abierta la utilidad de servicios de componentes se elige la maquina Host para modificar las propiedades de conexiones verificando permisos y demás tópicos de ejecución. 38 Fig. 8.6 utilidades de servicio de componentes en ejecución. Como se observa en la figura 8.6 se seleccionan las propiedades del equipo local para poder modificar los servicios DCOM de éste. 39 Fig. 8.7 Cuadro de Propiedades de Mi PC. Como se puede ver en la figura 8.7 aparecen las propiedades de las configuraciones de las pólizas de comunicación, se habilitan las comunicaciones DCOM haciendo click en la casilla “Habilitar COM distribuido en este equipo”. Para las propiedades de autentificación predeterminadas en las comunicaciones COM distribuido se configuran de la siguiente manera: En el apartado “Nivel de autentificación predeterminado” se elige “Ninguno” En el apartado “El nivel de suplantación especifica si las aplicaciones se pueden determinar quién las está llamando, etc.” Se elige “Identificar”. 40 Las configuraciones anteriores tienen la finalidad de establecer las directivas de comunicación cuando un programa externo solicite comunicación invocando información local, de cómo se autentifican y como se identifican. A continuación se modifican lo permisos de conexión, esto quiere decir que cada usuario tiene permisos especificos para el acceso de informacion, si estuviera un servicio de active directory ya listo, se configuraría de manera que sólo ciertos usuarios podrían acceder, debido a que no está configurado, se les da acceso a todos, siendo un medio inseguro para intercambio de informacion, ya que no hay privacida ni restricción de información. Fig. 8.8 Estableciendo permisos generales. 41 Fig. 8.9 Permisos de Inicio. En la ventana de permisos de inicio, estos consisten en directivas de privacidad en inicio de servicios, aplicaciones, incluso librerias o componentes de manera remota. De la misma manera tiene una dependencia de los servicios de active directory los cuales sólo se pueden generalizar, si estos no están activados se agrega una regla la cual todos pueden acceder a estos permisos. 42 Una vez configuradas correctamente las pólizas y reglas de privacidad para el intercambio de información y permisos de acceso directo a las aplicaciones se procede a configurar cada aplicación. Fig. 9.0 lista de aplicaciones que cuentan con políticas DCOM. En ésta parte de las configuraciones individuales se especifican todavía con más detalle el acceso e intercambio de información entre aplicaciones lo cual vuelve las políticas y reglas de privacidad más complicados ya que interactúan con los protocolos de red, haciendo más lento el intercambio de información ya que el tráfico de políticas y reglas de seguridad aumenta y a su vez la información solicitada y enviada se reduce. Este problema de aumento de tráfico no es muy notable en protocolos TCP/IP ya que se transmiten desde 100 hasta 1000 MB por segundo, en cambio en protocolos seriales RS232 son más lentos y no funcionan. 43 Fig. 9.1 Ventana de propiedades individuales por aplicación. Esta es la ventana de propiedades individuales en la cual se elige de qué manera en específico se autentificarán las aplicaciones externas o internas lo cual hace más detallado el uso de usuarios para diferentes aplicaciones. 44 Por ultimo en la pestaña de Ubicación seleccionamos la opción de Ejecutar la aplicación en este equipo para que así nuestros cambios surgan en nuestro equipo se pude observar en la figura 9.2, damos click en aceptar y reiniciamos nuestro equipo para que los cambios que se dieron funcionen. Fig. 9.2 Configuración de default para la aplicación de RsLinx. 45 X.VII Conexión OPC DA con OPC Test Client Esta fue la primera comunicación OPC que se implementó en la maqueta de proceso de pintado y se realizó de la siguiente manera: Fig. 9.3 Ventana de inicio. Daremos click en inicio y nos iremos a todos los programas y buscaremos la carpeta de Rockwell Software, después entraremos a la carpeta de RsLinx y abriremos el programa de OPC Test Client. 46 Fig. 9.4 Ventana de OPC Test Client. Nos desplegará la siguiente ventana en donde comenzaremos la configuracion OPC. Nos iremos a la barra de herramientas dando click en file, después en New. 47 Fig. 9.5 Ventana de Selección de Servidor OPC. Aparecerá la siguiente ventana en donde nos muestra los servidores que tenemos disponibles en nuestro ordenador y a cual deseamos conectarnos, en este caso seleccionaremos Rslinx OPC Server. 48 Fig. 9.6 Selección de Grupo OPC. Ya estando conectados a nuestro servidor OPC Rslinx crearemos un nuevo grupo en donde se agregarán las item´s del programa del PLC, nos vamos a la barra de herramientas en la pestaña de Group, daremos click y después seleccionamos Add Group. 49 Fig. 9.7 Nombre Asignado al nuevo grupo OPC. Aparecerá una ventana en donde le pondremos nombre a nuestro nuevo grupo, en este caso le pondremos OPC y damos click en OK. 50 Fig. 9.8 Selección de items al Servidor. Teniendo ya nuestro grupo creado, comenzaremos a agregar nuestras Item´s del OPC asi que daremos click en la pestaña de Add Item. 51 Fig. 9.9 Ventana de selección de carpeta de item´s del PLC. Después nos aparecerá una ventana donde aparece el nombre del programa del PLC, en este caso se llama NEW TOPIC, daremos click en él y después aparecen dos carpetas, seleccionamos la carpeta de Offline y nos aparecerán el nombre de nuestras item´s del programa del PLC. 52 Fig. 10.0 Seleccionando item´s del PLC. Para ir agregando las item’s daremos doble click en el nombre de nuestra item que deseamos agregar o también seleccionarla y dar click en el boton de Add Item y en la ventana de la parte superior nos aparecerán las item´s que hemos agregado a nuestro grupo OPC y una vez seleccionadas hacemos click en OK. 53 Fig. 10.1 Ventana de Monitoreo de las item´s del PLC. Por ultimo nos aparecerá la ventana que muestra las item´s seleccionadas, su valor, calidad de comunicación, número de veces que ha cambiado el valor de la variable y el tiempo de muestra. 54 X.VIII Conexión OPC DA con MatrikonOPC Para lograr la comunicación OPC DA con Matrikon se realizó de la siguiente manera, en este caso se trabajó con Allen Bradley. Fig. 10.2 Barra de inicio y carpeta de archivo MatrikonOPC. En la barra damos click y buscamos la carpeta de MatrikonOPC, encontramos la carpeta donde dice Explorer y damos click en MatrikonOPCExplorer. 55 Fig. 10.3 Ventana de Inicio MatrikonOPC. Una vez que hemos dado click al programa entramos a lo que es MatrikonOPC Explorer y nos aparecen los servidores OPC que tenemos disponibles en nuestro ordenador. 56 Fig. 10.4 Conectando al Servidor RslinxOPC Server. En este caso nuestro servidor con el cual estamos trabajando es Rslinx, asi que seleccionaremos el servidor y daremos click en Connect. 57 Fig. 10.5 Agregando un nuevo Grupo al servidor conectado. Teniendo ya conectado nuestro servidor agregaremos el nuevo grupo de variables. Para esto seleccionaremos de nuevo nuestro servidor, daremos click secundario sobre él y daremos click en Add Group. 58 Fig. 10.6 Ventana para nombrar a nuestro nuevo grupo. Nos aparecerá un recuadro en donde le daremos un nombre a nuestro grupo que agregaremos en el servidor Rslinx y daremos click en aceptar. 59 Fig. 10.7 Ventana de selección de tags del PLC. Después se nos desplegará una ventana en donde aparecerán las carpetas de archivos de los programas en Rslinx. En este caso nuestra carpeta se llama NEW Topic y la seleccionaremos. 60 Fig. 10.8 Directorio del programa. Una vez seleccionada se desplegarán 2 carpetas en la cual seleccionaremos la carpeta Offline, daremos click y nos desplegará las tags de nuestro programa en el PLC apareciendo el nombre en el cual nosotros le indicamos. 61 Fig. 10.9 Selección de tags. Seleccionaremos nuestras tags una por una asignandole a cada una un tipo de dato dependiendo la función de nuestra tags, en este caso todas las tags se asignaron con el valor default y después daremos click en el recuadro de la flecha para agregarlas al servidor OPC. 62 Fig. 10.10 Tags seleccionadas. Teniendo ya nuestras tags seleccionadas daremos click en la palomita verde de validar tags para que sean agregadas al servidor OPC. 63 Fig. 10.11 Servidor OPC conectado con las tags seleccionadas. Nos desplegará la siguiente ventana en donde vemos nuestras tags que seleccionamos, el tipo de valor asignado y la calidad de comunicación de cada variable. 64 Fig. 10.12 Monitoreo de las tags. Si deseamos conectarnos con otro servidor OPC se puede realizar y no se pierde la conexión con el servidor OPC que se realizó anteriormente, aquí se puede mostrar la conexión que tenemos en general con Rslinx OPC. 65 X.IX Conexión OPC DA con Advosol Por último se realizó la comunicación OPC DA con Advosol y asi evaluar qué software sería más conveniente utilizar para después convertirlo en OPC UA, la configuración de éste software se realizó de la siguiente manera: Fig. 10.13 Ventana del directorio de Advosol. En la barra de inicio daremos click para acceder a todos los programas encontramos la carpeta de Advosol, después entramos a la carpeta de OPCDA.NET y daremos click en el software OPC DA V2 Test Client. 66 Fig. 10.14 Ventana de inicio Advosol. Una vez abierto el programa aparecerá la siguiente ventana en donde configuraremos nuestro servidor OPC. Primero daremos click en el botón de Browse Computers donde buscará las computadoras disponibles para realizar la comunicación. En este caso nuestra computadora se llama PRUEBAS. Después de seleccionar nuestra computadora daremos click en el boton de Browse Servers donde buscará los servidore OPC que tenemos disponibles y hacemos click para que realice la búsqueda. 67 Fig. 10.15 Seleccionando computador y Servidor de Conexión. Una vez realizada la búsqueda desplegaremos la pestaña para que nos muestre los servidores que tenemos disponibles, en este caso nuestro servidor sera Rslinx. Aparecerán 2 servidores Rslinx OPC Server y Rslinx OPC Remote OPC Server, nosotros seleccionaremos Rslinx Remote OPC Server. 68 Fig. 10.16 Estableciendo conexión. Teniendo ya nuestra computadora y servidor seleccionado, seleccionamos las 2 casillas que dicen Browse all at Connect y Password dialog, esto con el fin de que al momento de que conecte empieze a buscar los archivos del servidor seleccionado y encuentre la carpeta donde se encuentran nuestras items del PLC en este caso las tags, damos click en Connect y comienza a buscar. 69 Fig. 10.17 Servidor conectado. Cuando nuestro Servidor este conectado aparecerá un diálogo donde dice Running y encuentra la carpeta de archivos de nuestro programa del PLC. Nuestro programa se llama NEW_TOPIC. Abrimos la carpeta y aparecerán 2 carpetas que dice Offline y Online, abrimos la que dice Offline y tenemos nuestras item´s o tag´s del PLC. 70 Fig. 10.18 Ventana de selección de item´s. Para comenzar a agregar nuestras tag´s al servidor OPC seleccionamos de la lista la que deseamos y haciendo un click sobre ella nos aparecerá la siguiente ventana en donde nos dice el nombre de la variable y comprobar si podemos leer y escribir en ella, para agregarla al servidor hacemos click en el boton Add to Refresh Group. 71 Fig. 10.19 Agregando las item´s al servidor OPC. Después nos aparecerá la variable agregada a nuestro servidor OPC y lo podemos visualizar detrás de nuestra ventana en donde la agregamos. Por último damos click en OK. 72 Fig. 10.20 Ventana de servidor conectado y monitoreo de las item´s. Después de dar click en el botón OK, la item aparecerá en nuestro servidor y podemos seguir agregando mas items, tambien podemos visualizar su nombre, su valor, calidad de comunicación y marca de tiempo. 73 X.X Configuracion de UaGateway A continuación se presenta la configuración de Ua gateway el cual nos logra hacer la conexión de OPC DA a OPC UA y así lograr correrlo en la plataforma eclipse que se presentará mas adelante. Para descargar este software se debe acceder a la página de unified automation y registrarse. Una vez teniendo el software procedemos a instalarlo. La configuración de la UaGateway instala todas las dependencias necesarias para ejecutar la aplicación. Para correr el programa de instalación, se requieren derechos de administrador. El UaGateway ha sido probado en WinXP SP3, WinVista y Win 7. Aunque el UaGateway es una aplicación de 32 bits que se puede ejecutar en 64 bits de Windows utilizando el modo de emulación de 32 bits (WOW32). Al ser un administrador local puede ejecutar el procedimiento de instalación. La configuración le guiará a través de la instalación. Siga los pasos haciendo clic en el botón siguiente. Ejecute el archivo de instalación uagateway-win32-x86-vs2008sp1[VERSIÓN] - [BUILD] .exe . Lea el contrato de licencia y confirmar. El cuadro de diálogo "Seleccionar los componentes" muestra lo que será instalado en el equipo durante la instalación. Elija una carpeta de instalación o utilizar el valor predeterminado. La instalación añadirá una entrada en el menú de inicio y copiara todos los archivos necesarios. El UaGateway será instalado y registrado como un servicio. Al final del proceso de instalación, se le pedirá que seleccione el puerto TCP para ser utilizado por UaGateway. El puerto predeterminado es 4850. 74 Fig. 10.21 Ventana de Instalacion de Ua Gateway. 75 Después de finalizar la instalación podremos observar que en la barra de inicio en la carpeta de todos los programas se ha instalado nuestro programa encontrará en la carpeta de unified automation. Fig. 10.13 Directorio del programa Ua Gateway. 76 Lo Una vez teniendo instalado nuestro programa comenzaremos con la configuración del programa para asi lograr la conexión de OPC DA a OPC UA. Fig. 10.14 Ventana de administración de Ua Gateway. Primero abrimos nuestro ventana de configuración donde aparece el dominio y usuario del computador en el cual estamos conectado. 77 Fig. 10.15 Pestaña de Direccion. Después en la pestaña de UA Endpoints nos despliega la dirección UA TCP, la cual nos permitirá conectarnos a Ua Gateway en este caso será desde Eclipse. 78 Fig. 10.16 Pestaña de certificados. En la pestaña de Certificates nos aparece los certificados creados para la confidencialidad de información y nos muestra que cada certificado este activo ya que si cualquiera se encontrara vencido tendriamos problemas con la comunicación, asi que siempre debemos verificar los certificados antes de comunicar nuestra interfaz OPC. 79 Una vez configurados los parametros del Ua gateway abriremos el Configure Ua Gateway para acceder a nuestro servidor OPC DA que conectaremos con nuestro OPC UA, siempre y cuando el Ua Gateway esté en modo Start. Nos aparecerán los diferentes tipos de servidores a los cuales nos podemos conectar, en este caso estamos trabajando con OPC COM DA. Fig. 10.17 Ventana de ConfigurationTool de Ua Gateway 80 Para agregar un servidor OPC DA damos click en el botón de Add Server y nos aparecerá una ventana en donde buscaremos nuestro servidor, en este caso será los servidores de nuestra máquina, así que seleccionamos la opción de local, una vez encontrados los servidores OPC DA instalados en nuestra máquina seleccionaremos Rslinx OPC Server, ya que será el software con el cual estamos realizando la comunicación OPC DA. Fig. 10.18 Agregando Servidor OPC DA 81 Teniendo ya seleccionado nuestro Servidor OPC DA nos aparecerá el Servidor DA y su estado de Conexión. Al principio nos aparecerá desconectado solamente es dar click en el botón de Connect y nuestro servidor estará conectado ahora si ya podemos conectar Ua Gateway con Eclipse. Fig. 10.19 Servidor OPC DA conectado 82 X.XI Comunicación OPC UA con Eclipse (Java) A continuación se presenta el código fuente del OPC UA implementado en Java, se menciona que este código fue hecho por la compañía Prosys OPC UA la cual es la encargada de desarrollar este nueva tecnología. El paquete del código fue proporcionado por la empresa y por motivos de confidencialidad sólo se mostrarán algunas partes del código. Una vez cargada la biblioteca a la plataforma eclipse se aprecia el código en la siguiente ventana. Fig. 10.20 Codigo OPC UA Java 83 Para Comunicar Eclipse con Ua Gateway se busco la dirección URI que se encontraba definida debido a que tenia una direccion diferente para simular variables y lo que deseabamos lograr era comunicarlo con Ua Gateway y se encontró la dirección URI que tenía y se cambió por opc.tcp://PRUEBAS:4850 la cual se muestra en la figura 10.21. Fig. 10.21 Dirección URI del Codigo. 84 Teniendo nuestra dirección URI establecida se comenzó a correr el programa, apareció un msj donde nos pregunta: ¿Le gustaría utilizar el URI del servidor por defecto “opc.tcp://PRUEBAS:4850”? Y= Yes N= No E= Enter a different URI manually Se teclea la opción “Y” para decirle “sí” y damos Enter. Se puede apreciar los mensajes en la figura 10.22. Fig. 10.22 Ventana de conexión URL 85 Después nos pedirá que seleccionemos el modo de seguridad n= None s= Sign e= SignAndEncrypt Nuestro modo de seguridad en este caso es SignAndEncrypt y tecleamos la letra e y damos enter y comienza a conectarse con el servidor y leer los certificados de seguridad establecidos en el Ua Gateway. Fig. 10.23 Estableciendo conexión 86 A continuacion se mostrará en la figura 10.24 el menú principal del programa donde nos aparece que ya estamos conectado a la dirección URI establecida y las acciones del menú principal que deseamos ejecutar. Para comunicarnos con nuestro servidor OPC DA de Rslinx debemos explorar nuestro servidor asi que seleccionaremos la opción 3 donde aparece Enter 3 to browse the server address space Fig. 10.24 Menú Principal 87 Posteriormente nos aparece que entramos a la carpeta principal del Ua Gateway y nos despliega otras 3 subcarpetas que son: 0 – Views 1 – Objects 2 – Types Como nuestro servidor OPC es DA la carpeta de archivo de nuestro servidor se encontrará en Objects asi que se seleccionó la opción 1 y damos Enter. Fig. 10.25 Entrando a las carpetas 88 Una vez entrado a la carpeta Objects nos despliega la información que contiene y la carpeta de archivo que nos interesa entrar es a la de PRUEBAS/RSLINX OPC SERVER, como podemos apreciar en la figura 10.26, así que seleccionamos la opción 1 y damos Enter para accesar a la carpeta de archivo del Servidor DA Rslinx. Fig 10.26 Directorio de Rslinx 89 Ya una vez entrado a la carpeta de Rslinx nos aparece la información que contiene que en este caso es el programa del PLC llamado NEW TOPIC. Podemos contener mas carpetas de varios programas pero estos se deben cargar en el servidor Rslinx, en este ejemplo sólo es una carpeta la cual es el progrma de la maqueta de Proceso de Pintado, así que entraremos a ella seleccionando la Opcion 0 y dar Enter Fig. 10.27 Entrando al directorio Rslinx 90 Ya que hemos entrado a la carpeta del programa nos aparecerán 2 carpetas que dice Offline y Online, nuestras variables en este caso de OPC Ua llamados Nodos se encuentran en la carpeta Offline que es la opcion 0 asi que accesamos a ella y damos Enter. Fig. 10.28 Carpetas del directorio Rslinx 91 Después nos aparecerán nuestros nodos declarados en el programa del PLC apareciendo su nombre y número asignado se puden apreciar los nodos en las figuras 10.29 y 10.30. Fig. 10.29 Nodos Fig. 10.30 Nodos 92 Teniendo nuestros nodos en el programa podemos comenzar a realizar varias funciones que son leer, escribir o suscribirlos a eventos. Para ello se seleccionó un nodo para mostrar las funciones mencionadas se seleccionó el nodo 25 llamado Banda_2 para regresarnos al menú principal y así comenzar a realizar las funciones en nuestro nodo como se puede apreciar en la figura 10.31. Fig. 10.31 Funciones 93 A continuación nos aparece nuestro nodo seleccionado en el menu principal. Ahora si podemos comenzar a realizar las funciones en nuestro nodo, se comenzó primero con la funcion 4 que es leer valores, así que seleccionamos la opción 4 y damos Enter. Fig. 10.32 Funciones del nodo 94 Nos desplegará un menú en donde nos aparecen los diferentes atributos que podemos asignar al nodo seleccionado, en este caso nos interesa saber el valor de ese nodo así que seleccionamos la opción 13 que es Value y damos Enter. Fig. 10.33 Función value 95 Una vez elegida la opción 13 y dar enter nos aparecerá el nombre de nuestro nodo, su calidad de comunicación, su valor y el tiempo de muestreo. Después de mostrar esos datos nos regresa al menú principal para realizar cualquier otra función. Ahora realizaremos la función de escribir un valor en nuestro nodo, así que se selecciono la opción 5 de Write values. Fig. 10.34 Función de Write values 96 Una vez seleccionado la opción 5 y dar Enter, accedemos de nuevo al menú de atributos al nodo y como en el caso anterior se selecciona la opción 13 de valor porque lo que queremos es escribir un valor en nuestro nodo. Fig. 10.35 Seleccionando el valor 97 Nos aparece un diálogo donde nos dice que escribamos el valor en nuestro nodo aparece su nombre, tipo de datos que en este caso es Int16. El valor que nosotros escribiremos será 1 porque nuestro nodo se encuentra en el estado 0 asi que lo que haremos será activarlo se escribió el valor de 1 y dimos enter, nos apareció un mensaje de Ok, de que nuestro nodo adquirió ese valor. Fig. 10.36 Escribiendo un valor 98 Para comprobar que nuestro nodo adquirió el valor de 1 se volvió a realizar el procedimiento de Read Values para verificar que ya tenga el valor de 1 y como se puede observar en la figura 10.37 el nodo adquirió el valor asignado. Fig. 10.37 Mostrando el valor escrito 99 Otra de las funciones de nuestro programa es la suscripción en este caso (Subscribing) a nuestros nodos del programa se utilizó de ejemplo el nodo 25 llamado Banda_2 el cual se le aplicará una suscripción para monitorear su valor en determinado tiempo asignado y cada vez que haya un cambio en el nodo nuestra suscipción nos notificará si existe algún cambio y seleccionamos la opción 5 del menú principal llamada create a subscription y en el siguiente menú seleccionamos de nuevo la opción 13 de Value ya que nuestra suscripción será de acuerdo al valor del nodo. Fig 10.38 Creando una suscripción 100 Por último nos apareció nuestra suscripción mostrando el nombre del nodo, calidad de comunicación, su valor, el tiempo de muestreo, fecha y hora del día. Y cada 2000.0 ms nos muestra el estado de nuestra suscripción y cuando exista algún cambio nos lo mostrará como se puede observar en la figura 10.39 el nodo tenía el valor de 0 y al momento de que cambió su estado a 1 nuestra suscripción lo notifica. También aparece un pequeño menú en donde nosotros podemos remover o pausar la suscripción y agregar más nodos, remover el nodo que tenemos en la suscripción o cambiar el intervalo de tiempo de publicación del estado del nodo. Fig. 10.39 Monitoreando la suscripción 101 XI. Resultados Obtenidos Por último después de un análisis y tratar de comprender el funcionamiento del código OPC UA se logró en la consola del sistema multiplataforma (Java) una interfaz OPC la cual nos permitió convertir un Servidor OPC DA a OPC UA logrando asi comunicar un PLC Allen Bradley Micrologix 1100 que se encontraba incorporado en la Maqueta de Proceso de Pintado, mediante el PLC se adquirió la información de las variables de la maqueta y eran recibidas a la interfaz mostrada en la figura 11.00. Fig. 11.00 Interfaz OPC UA 102 XII. Conclusiones Y Recomendaciones El Proyecto fue terminado en cierta etapa ya que se presentaron algunos inconvenientes en la interfaz OPC. Uno de ellos fue que en algunas variables del PLC solamente podiamos leer su valor actual, ya que al momento de escribir un valor en nuestra variable no lo actualizaba, en este caso la variable no se activaba la interfaz nos marcaba que si se habia escrito el valor, pero al momento de verificarlo en el PLC no habia cambio de estado en la variable y en algunas otras si cambiaron su valor, así que el proyecto en cierto punto si funcionó que fue comunicarlo con el PLC y monitorear su variables. Solamente se presentó este incoveniente ya mencionado. Se investigo la razón por la cual en algunas variables no habia cambio de estado, pero por la falta de tiempo no se alcanzó a corregir ese detalle, así que para la continuidad futura de este proyecto sería arreglar ese inconveniente, ya que el principio de funcionamiento de la interfaz OPC UA funciona correctamente. De acuerdo a la experiencia adquirida en este proyecto se enuncian las siguientes recomendaciones para futuros proyectos. Realizar respaldos de tu código de programación ya que se llega el caso en que de tanto realizar modificaciones tu código ya no funciona, así que siempre hay que realizar respaldos. Cuando se busca información siempre guardar los sitios donde se encuentre de forma correcta ya que a veces se olvida el nombre o dirección del sitio. Al momento de la asignación del proyecto consultar con tu asesor de la empresa qué softwares utilizarás, ya que hay ocasiones en que se requiere de más tiempo para saber utilizarlos porque no siempre usas los softwares vistos en la carrera. En este caso sucedió al usar el software Eclipse y lenguaje de programación Java, el cual no es visto en la carrera y se requirió de más tiempo para aprender de este lenguaje de programación. 103 XIII. Anexos Anexo A Anexo B XIV. Bibliografía Software Advosol http://www.advosol.com/ Ua Gateway https://www.unified-automation.com/ matrikon OPC http://www.matrikonopc.es/index.aspx Prosys OPC UA http://forum.prosysopc.com/forum/opc-ua-java-sdk/ Cómo Programar JAVA PAUL J. Deitel Septima Edición http://www.academica.mx/sites/default/files/adjuntos/13274/Como%20progr amar%20en%20Java%20-%207ma%20Edicion%20%20P.%20J.%20Deitel.pdf