Integración De Laboratorios Remotos En Emersion

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

Integración de Laboratorios Remotos en eMersion Héctor Vargas.Departamento de Informática y Automática Universidad Nacional de Educación a Distancia Noviembre - 2007 Contenido Como construir los laboratorios remotos de manera sistemática (nuestra experiencia Ejs/LabVIEW) • Estructura de comunicación • Implementación usando Ejs y LabVIEW Documentación a preparar para los laboratorios • Organización de la documentación • Plantillas web Integración de los laboratorios en eMersion • Recursos a enviar por los sitios remotos • Pruebas remotas Control de accesos • Sistema de reservas (en desarrollo) • Autenticación UNED Madrid – Noviembre 2007 Visión General UNED Madrid – Noviembre 2007 Laboratorios Remotos Laboratorios remotos usando Ejs/LabVIEW • Ventajas de usar ambas herramientas de software: Posibilidad de generar agradables simulaciones interactivas en Java junto a la flexibilidad que LabVIEW provee para conectar con instrumentación externa. • Es posible transparentar el proceso de crear laboratorios virtuales y remotos de control ocultando los detalles de implementación TCP/IP. Cliente Internet TCP/IP Servidor Easy Java Simulations LabVIEW • Generador de aplicaciones Java • Paradigma Modelo, Vista y Controlador. • Applets Java embebidos en páginas HTML. • Aplicación servidor (basado en TCP/IP). • Adquisición de datos y control de lazo cerrado. • Intercambio de datos con el cliente Ejs. UNED Madrid – Noviembre 2007 Laboratorios Remotos Estructura de comunicación • Intercambio continuo de vectores de control y estado entre el cliente Ejs y el servidor LabVIEW usando sockets TCP/IP. • Conocimiento de uso de Sockets TCP/IP en Java y la librería de bloques comunicación TCP de LabVIEW. Ejs LabVIEW Hilo Transmisor Vector de Control Hilo Receptor Enlace TCP/IP Hilo Receptor Vector de Estado UNED Hilo Transmisor Hilo ejecutando el lazo de Control RT Madrid – Noviembre 2007 Laboratorios Remotos Implementación tradicional (Servidor en LabVIEW) Pseudo código UNED Madrid – Noviembre 2007 Laboratorios Remotos Implementación tradicional (Cliente en Ejs) UNED Madrid – Noviembre 2007 Laboratorios Remotos Nuevo esquema de implementación (en desarrollo) • Métodos internos en Ejs para manejar la conexión con el servidor. • Encapsulamiento de los hilos analizador de Comandos y Transmisor en un módulo genérico de LabVIEW. Ejs LabVIEW Hilo Analizador Comandos Hilo Transmisor Enlace TCP/IP Asincrónico Hilo Transmisor Hilo Receptor UNED Hilo ejecutando el lazo de Control Madrid – Noviembre 2007 Laboratorios Remotos Servidor – Analizador de comandos y transmisor • JiL Server implementa los módulos Analizador de Comandos y Transmisor. • JiL Server incluye todos los métodos para interpretar y ejecutar comandos entrantes desde Ejs y enviar las respuestas asociadas a estos comandos. Panel frontal de JiL Server. JiL Server usa la característica VI Server de LabVIEW UNED Madrid – Noviembre 2007 Laboratorios Remotos Servidor – Desarrollo del VI de control local • Esta parte del servidor es generada por el desarrollador siguiendo la estructura típica de implementación de lazos de control en LabVIEW. • JiL Server envuelve este VI con los métodos TCP/IP de comunicación para conectar con Ejs. Típico lazo de control en LabVIEW incluyendo hardware en el lazo. UNED Madrid – Noviembre 2007 Laboratorios Remotos Cliente – Métodos internos en Ejs Retorno void Métodos para controlar la conexión _external.connect(): Conecta la aplicación Ejs a la fuente de datos a través de JiL Server. void _external.disconnect(): Desconecta la aplicación Ejs desde la fuente de datos a través de JiL Server. void _external.runVI(boolean arg): Ejecuta un VI de LabVIEW en dos modos de ejecución. Si arg es TRUE, el VI remoto debe finalizar su ejecución en una iteración del diagrama de bloques. Por otra parte, si arg es FALSE, el VI remoto será lanzado y ejecutado sin esperar a que éste finalice (intercambio continuo de datos con el servidor). void void boolean String Retorno Métodos para establecer y obtener variables void _external.setValue(string arg1, boolean arg2): Escribe una variable TF de LabVIEW cuyo nombre es especificado en arg1 con el valor arg2. void _external.setValue(string arg1, int arg2): Escribe una variable I32 de LabVIEW cuyo nombre es especificado en arg1 con el valor arg2. void _external.setValue(string arg1, double arg2): Escribe una variable DB de LabVIEW cuyo nombre es especificado en arg1 con el valor arg2. _external.step(int arg): Realiza el intercambio asincrónico de datos entre Ejs y JiL Server. Este método debe ser usado en la evolución de Ejs. La entrada arg no es usada actualmente y está reservada para una futura característica. Por defecto, debe ser 1 . void _external.setValue(string arg1,string arg2): Escribe una variable ABC de LabVIEW cuyo nombre es especificado en arg1 con el valor arg2. boolean _external.getBoolean(string arg): Lee una variable TF de LabVIEW cuyo nombre se especifica en arg. _external.synchronize(): Envía los parámetros de control a JiL Server cuando el usuario interactúa con la vista Ejs . int _external.getStatus(): Retorna el estado actual de la conexión TCP/IP con un verdadero o falso. _external.getErrorMsg(): Retorna el último mensaje de error capturado durante la conexión como un string. UNED _external.getInt(string arg): Lee una variable I32 de LabVIEW cuyo nombre se especifica en arg. double _external.getDouble(string arg): Lee una variable DB de LabVIEW cuyo nombre se especifica en arg. String _external.getString(string arg): Lee una variable ABC de LabVIEW cuyo nombre se especifica en arg. Madrid – Noviembre 2007 Laboratorios Remotos Cliente – Configurar la fuente de datos • Configurar la fuente de datos. • Conectar variables Ejs a variables LabVIEW. • Usar los métodos internos para la lógica de conexión. UNED Madrid – Noviembre 2007 Resumen Resumen de pasos a seguir usando JiL Server • Programar la simulación del sistema usando Ejs. • Desarrollar un programa LabVIEW para controlar el sistema localmente. • Localizar el programa LabVIEW anterior en el directorio provisto por JiL Server para las aplicaciones cliente y luego abrir e iniciar el servidor. • Finalmente, modificar la versión virtual del laboratorio creado con Ejs para agregar la conexión con el servidor usando los métodos internos. Servidor Cliente Lazo de Control.vi JiL Internet UNED Madrid – Noviembre 2007 Ejemplos Simulación del sistema de tres tanques – modo local Proceso real en el laboratorio Relación de variables Pump 1 Pump 2 Q1 Q2 A T1 T3 T2 h1 h3 Sn az1 dh1 = Q1 − Q13 − Q1leak dt dh A 3 = Q13 − Q 32 − Q 3 leak dt dh A 2 = Q 2 + Q 32 − Q 20 − Q 2 leak dt A UNED Q13 az3 h2 Q32 az2 Q20 Q ij = az i S n sgn( hi − h j ) 2 g hi − h j Q13 = az 1 S n sgn( h1 − h3 ) 2 g h1 − h3 Q 32 = az 3 S n sgn( h3 − h 2 ) 2 g h3 − h 2 Q 20 = az 2 S n 2 gh 2 Madrid – Noviembre 2007 Ejemplos El sistema heatflow – Proceso real Proceso real en el laboratorio Relación de variables Calefactor (Vh) Ta Ventilador (Vb) Temperatura ambiente Flujo de Temperatura S1 S2 S3 x1 x2 x3 x3 ( . Tn = F V , V , Ta , xn h b ) modelo −τ d s ( ) T (s ) K p 1 + τ 3s e = G(s) = n (1 + τ1s )(1 + τ 2 s ) Vh (s ) Tn: Temperatura en el sensor n. Vb: Voltaje aplicado al calefactor. Vh: Voltaje aplicado al calefactor. Ta: Temperatura ambiente. xn: Distancia desde el sensor n al calefactor. UNED Modelo identificado - IDENT Tn (s): Temperatura en el sensor n. Vh (s): Voltaje aplicado al calefactor. Madrid – Noviembre 2007 Documentación Organización de la documentación (plantilla web) • Protocolo de Tareas • Manual de la interfaz cliente • Guión de Prácticas • Anexos • Versión PDF de cada página Protocolo de acceso UNED Documentación de la práctica Madrid – Noviembre 2007 Integración en eMersion Recursos a enviar por los sitios remotos • Protocolo de Tareas • Manual de la interfaz cliente • Guión de Prácticas • Anexos • Versión PDF de cada página • Applet Java desarrollado con Ejs Pruebas de conectividad • Integración del laboratorio remoto en eMersion. • Pruebas de acceso remoto. UNED Madrid – Noviembre 2007 Control de Acceso Sistema de reservas Estudiante Estudiante Estudiante Red UNED Red UMH 1. Applet Java de cada laboratorio 2. Web server Apache Tomcat 3. MySQL server 4. eMersion Red UPC Windows 2000 Server IP: 62.204.199.62/24 http://lab.dia.uned.es Red UAL Red UNILEON Windows O.S. IP: X.Y.W.Z/24 http://xywz.ual.es Red UPV Red UA Lazo de Control y Módulo de Comunicación Base de datos para reservas. accesslist UNED Madrid – Noviembre 2007 Control de Acceso Sistema de reservas (que hacer en los sitios remotos) • Desarrollar el laboratorio virtual y remoto usando Ejs y LabVIEW sin considerar autenticación. • Instalar MySQL Server y crear una instancia llamada “netlab” con sólo una tabla llamada accesslist. Esta tabla será escrita desde el servidor central con las nuevas reservas realizadas por un usuario. Por otro lado, será leída localmente por la aplicación LabVIEW para propósitos de autenticación. • Agregar a la aplicación LabVIEW la lógica de autenticación requerida. Esto implica recibir el username y password desde Ejs, consultar la tabla accesslist de la BD netlab y, finalmente, dar acceso o no a la planta si el usuario cumple los requisitos. • Para consultar la base de datos, la aplicación LabVIEW utiliza la librería gratuita LabSQL (http://jeffreytravis.com/lost/) para accesar MySQL. • Agregar a la aplicación Ejs los métodos para autenticación. UNED Madrid – Noviembre 2007