trabajo de grado industrial 2

36
Informe Final Practica Académica Modalidad Trabajo de Grado Departamento de Ingeniería Electrónica Identificación del estudiante Nombres y apellidos José Fernando Arboleda Ramírez Documento de identidad 1125779563 Teléfono 2358441 3012952274 Semestre académico 2012/2 E-mail [email protected] Identificación del asesor Nombres y apellidos Orlando Carrillo Perilla Teléfono 3014044569 Oficina 19-450 E-mail [email protected]

Upload: cristobal-bautista

Post on 13-Sep-2015

12 views

Category:

Documents


3 download

DESCRIPTION

Este proyecto consistió en la realización de una interfaz hombre máquina para controlar motores AC a través de un variador de frecuencia Danfoss FC300.

TRANSCRIPT

  • Informe Final Practica Acadmica

    Modalidad Trabajo de Grado

    Departamento de Ingeniera Electrnica

    Identificacin del estudiante

    Nombres y apellidos Jos Fernando Arboleda Ramrez

    Documento de identidad 1125779563

    Telfono 2358441 3012952274

    Semestre acadmico 2012/2

    E-mail [email protected]

    Identificacin del asesor

    Nombres y apellidos Orlando Carrillo Perilla

    Telfono 3014044569

    Oficina 19-450

    E-mail [email protected]

  • IMPLEMENTACIN DE UNA INTERFAZ DE USUARIO BASADA EN SOFTWARE DE

    LIBRE ACCESO PARA EL CONTROL DE MOTORES AC

    Resumen

    Este proyecto consisti en la realizacin de una interfaz hombre mquina

    para controlar motores AC a travs de un variador de frecuencia Danfoss

    FC300. En el proceso se utilizaron herramientas abiertas y de libre acceso que

    permitieron el completo desarrollo de la aplicacin, y que a su vez

    representan una gran alternativa dado que no requieren del pago de

    licencias para su uso comercial.

    Para el desarrollo del proyecto se comenz por una revisin de las

    herramientas de software disponibles para la aplicacin especfica. Se

    estudiaron aplicaciones como el entorno de desarrollo Eclipse IDE, los

    paquetes de software SDK y NDK de Android1, y el lenguaje de

    programacin Java, ya que estos constituyen las herramientas necesarias

    para la realizacin del proyecto. Una vez se identificaron y se estudiaron las

    herramientas de software, se paso al estudio de los manuales de los

    dispositivos involucrados en el proceso como el variador Danfoss FC300 y el

    HMI Th-0735W de Technexion con el objetivo conocer su configuracin y

    funcionamiento. Posteriormente se estudio el desarrollo de aplicaciones para

    Android en el lenguaje de programacin Java, lo cual es clave en el

    proyecto, ya que la mayor parte de este es orientada al desarrollo de

    software. El siguiente paso consisti en el proceso de comunicacin de

    ambos equipos utilizando el protocolo FC Danfoss a travs de un puerto RS-

    485, esta etapa del proyecto constituyo un punto critico del mismo dado que

    no fue sencillo lograr la comunicacin entre la interfaz y el variador de

    frecuencia, debido a que no se cuenta con una API (Application

    Programming Interface) estndar que permita realizar aplicaciones con este

    tipo de comunicacin para el sistema operativo Android. Posteriormente se

    realiz el desarrollo de software en Eclipse IDE, el cual consisti de una

    interfaz grfica para controlar motores AC con el variador Danfoss FC 300,

    una vez finalizado todo el proceso de desarrollo, se paso a realizar las

    pruebas necesarias en el laboratorio y una posterior correccin de errores. Al

    finalizar con el proceso de depuracin y correccin se evaluaron los

    resultados obtenidos y se dio por concluido el proyecto.

    Esta aplicacin demando un completo desarrollo de software, adems del

    estudio y configuracin de dispositivos en hardware que permitieron obtener

    los resultados esperados y alcanzar as todos los objetivos planteados en un

    principio.

  • Introduccin

    Actualmente nos encontramos en un mundo tecnolgicamente cambiante.

    Los nuevos avances en ingeniera de hardware y software permiten que

    nuevas tecnologas se adapten rpidamente a la industria, la medicina, las

    comunicaciones y el entretenimiento. Es importante entonces aprovechar

    dichos avances para plantear soluciones a distintos problemas

    concernientes a la ingeniera en sus diferentes ramas. Un ejemplo de estos

    avances es la plataforma de software Android, diseada principalmente

    para computacin mvil, se ha convertido en el sistema operativo mvil de

    ms rpido crecimiento. Una de sus principales ventajas es que consiste en

    una plataforma de software abierta basada en el kernel de Linux, y ofrece

    herramientas completas para el desarrollo de aplicaciones destinadas a una

    gran variedad de dispositivos. La implementacin de software de libre

    acceso en aplicaciones industriales puede ser un punto crtico dado que en

    general las soluciones basadas en software privativo suelen ser bastante

    costosas. Es por estas razones que se presenta en este trabajo la elaboracin

    de una solucin de tipo industrial basada en esta plataforma abierta y

    ampliamente utilizada en diferentes aplicaciones, y que puede ser de gran

    utilidad para dar solucin a problemas de ingeniera.

    El problema especfico abordado es el desarrollo de una interfaz hombre

    mquina basada en Android, para realizar el control de velocidad en lazo

    abierto de un motor AC mediante el variador de frecuencia Danfoss FC300.

    Actualmente existen soluciones de este tipo que implementan software y

    hardware privativo de distintas compaas. Un punto importante a tener en

    cuenta es el hecho de que la plataforma propuesta es de libre acceso y por

    lo tanto se pueden realizar soluciones robustas, pero menos costosas que

    aquellas que implementa licencias comerciales de otros desarrolladores o

    fabricantes. Soluciones que implementan PLCs, HMIs, y paquetes de software

    estn disponibles bajo licencias de los distintos proveedores. El objetivo de

    este trabajo no es utilizar dichas licencias o dispositivos que no son de libre

    acceso, se realiza un proyecto de ingeniera que ofrezca las mismas

    prestaciones, pero basado en una plataforma muy completa y de cdigo

    abierto como lo es el framework de Android.

    Para el desarrollo de este proyecto se utilizan las herramientas que ofrece

    Android para desarrolladores como lo son el SDK, NDK y ADT, tambin se

    utilizara el entorno de desarrollo Eclipse IDE, el cual es basado en software

    libre. Adems de esto la interfaz se implementa en un HMI (Human Machine

    Interface) Th-0735W de TechNexion, el cual est basado en el procesador

    de bajo consumo ARM Cortex-A8 TI Sitara AM3517. El dispositivo esta

    equipado con una pantalla tctil de 7 pulgadas, 256MB de memoria RAM

  • DDR2, 512MB de memoria NAND flash, cuatro puertos USB, bus CAN, puertos

    RS-232/422/485, LAN, WiFi, y un slot para MicroSD, adems viene con el

    sistema operativo Android 2.2, una versin modificada la cual contiene todos

    los drivers requeridos por el kernel de Linux para poder acceder los distintos

    puertos del dispositivo. Estas caractersticas la convierten en una poderosa

    herramienta de tipo industrial, con la cual se pueden aprovechar las ventajas

    del software libre y de toda la plataforma Android, para dar soluciones a

    problemas de ingeniera en la industria, a costos que pueden estar muy por

    debajo de las soluciones de tipo privativo que requieren la adquisicin de

    una licencia para su uso comercial.

    La combinacin de nuevas herramientas tanto en software como en

    hardware hace posible el diseo de sistemas modernos que brinden

    soluciones a problemas de ingeniera. Se presenta entonces en este trabajo

    el desarrollo de un sistema con las herramientas descritas que logra una

    solucin ms verstil y econmica que aquellas ofrecidas para la industria

    actualmente.

    Objetivos

    Objetivo general:

    Lograr la implementacin de una interfaz hombre mquina completamente

    funcional para el variador de frecuencia Danfoss FC300, utilizando la

    plataforma de software de Android y un HMI basado en ARM.

    Objetivos especficos:

    Conocer el funcionamiento y caractersticas de hardware del HMI Th-0735W

    para lograr su adecuado funcionamiento.

    Conocer el funcionamiento y configuracin del variador de frecuencia

    Danfoss FC300.

    Lograr la comunicacin entre un variador de frecuencia Danfoss FC300 y un

    HMI Th-0735W a travs de RS-485.

    Adquirir las habilidades necesarias en el lenguaje de programacin Java

    para desarrollar aplicaciones en el sistema Android.

  • Comprender el funcionamiento y el proceso de desarrollo de una aplicacin

    en el sistema operativo Android.

    Conocer los aspectos bsicos de la API (Application Programming Interface)

    de Android que permitan el desarrollo de interfaces graficas en un HMI.

    Planteamiento del Problema

    Teniendo en cuenta el rpido avance tecnolgico actual y la capacidad de

    las nuevas tecnologas para adaptarse rpido a distintas aplicaciones, es

    importante considerar su uso en proyectos de ingeniera. Hoy en da las

    plataformas de computacin mvil se han convertido en uno de los

    principales avances en ingeniera de computacin y de

    telecomunicaciones, brindando altas prestaciones y soportando diversos

    protocolos de comunicacin. Dispositivos de bajo consumo basados en

    procesadores ARM salen al mercado a diario brindando gran capacidad de

    procesamiento, memoria y comunicacin sobre dispositivos compactos y

    portables. Recientemente diferentes empresas han empezado a aprovechar

    dichos avances con fines industriales, tal es el caso del dispositivo HMI Th-

    0735W de TechNexion el cual es basado en el procesador de bajo consumo

    ARM Cortex-A8 TI Sitara y que adems utiliza el una versin modificada del

    sistema operativo Android para dispositivos mviles. Este aprovechamiento

    de nuevos avances representa una ventaja en soluciones de tipo industrial

    ya que las soluciones que se ofrecen actualmente pueden resultar bastante

    costosas, no solo por el costo del hardware sino tambin por la adquisicin

    de las licencias comerciales para su correspondiente uso.

    Con este proyecto se plantea realizar una interfaz hombre mquina para

    controlar un motor AC a travs de un variador de frecuencia. Actualmente la

    industria cuenta con soluciones de este tipo basadas en PLCs, HMIs de otros

    fabricantes, y diversos paquetes de software. Este tipo de soluciones suelen

    tener un costo asociado no solo a los equipos y dispositivos, sino tambin al

    software privativo que se requiere para operar el hardware. El propsito

    entonces de este trabajo es el desarrollo de una solucin de tipo industrial

    basada en plataformas abiertas y en software de libre acceso, para as

    lograr las mismas prestaciones que se requieren en aplicaciones industriales,

    pero de una manera ms econmica. Aprovechando el surgimiento de

    nuevas tecnologas, las empresas pueden apostar por el desarrollo de sus

    propias aplicaciones y as no estarn sujetas a una tecnologa o proveedor

    especfico, ya que el costo en la industria es un factor determinante.

  • El proyecto consiste entonces en el desarrollo de una interfaz hombre-

    mquina en el sistema operativo Android sobre el HMI Th-0735W para lograr

    controlar motores AC en lazo abierto a travs del variador de frecuencia

    Danfoss FC 300. Ambos dispositivos se comunican por un puerto RS-485

    utilizando el protocolo FC de Danfoss. La interfaz permite cambiar la

    frecuencia, invertir sentido de giro y parar el motor, adems se cuenta con

    cinco direcciones programadas en el HMI que permiten enviar informacin a

    cinco procesos distintos. La informacin se despliega en pantalla de una

    manera sencilla y familiar para el usuario. Todo el desarrollo es basado en la

    plataforma Android y realizado en el entorno de desarrollo Eclipse IDE.

    Marco Terico

    La interaccin entre el hombre y la mquina requiere de una interfaz que

    permita la comunicacin entre ambos. En procesos industriales es comn

    que dichas interfaces estn basadas en plataformas de cmputo, por

    ejemplo un computador de propsito general, o un HMI como el descrito en

    este proyecto. En el caso particular esta interfaz se encarga de desplegar la

    informacin concerniente al proceso de manera que el humano la pueda

    comprender, as como de procesar la informacin ingresada por este y

    enviarla al proceso. Es necesario entonces que el sistema que hace las

    veces de interfaz se capas de comunicarse con el humano y con la planta

    en cuestin.

    Descripcin del variador de frecuencia:

    En la industria la mayora de procesos involucran el control de velocidad de

    algn motor sea DC o AC. Para el caso de motores de corriente alterna se

    encuentran los VFD (Variable Frequency Drive) tambin conocidos como

    AFD (Adjustable Frequency Drive) los cuales se encargan de variar la

    frecuencia de la seal de voltaje suministrada al motor para as variar la

    velocidad de manera lineal. Esto es posible gracias a que la velocidad

    sncrona depender de la frecuencia de la seal de alimentacin del motor

    y del nmero de polos. Dicha velocidad se puede representar entonces

    como:

  • Donde n es la velocidad de sincronismo en RPM, f es la frecuencia de la red,

    y p es el nmero de polos de la mquina. Basados en este principio

    funcionan los dispositivos como el variador de frecuencia Danfoss FC300, el

    cual ser empleado en este proyecto.

    Protocolo de comunicacin maestro-esclavo:

    Se implementa el protocolo de comunicacin maestro-esclavo bajo el perfil

    FC de Danfoss, en el cual se intercambian telegramas que permiten controlar

    el variador desde el maestro, as como enviar informacin del estado del

    variador. La comunicacin se realiza mediante el trfico de telegramas a

    una velocidad mxima de 9600 baudios. La estructura de telegramas se

    muestra la Figura 1.

    Figura 1. Estructura de los telegramas protocolo FC

    Tomado de la gua de diseo del Danfoss FC 300

    Bajo este perfil FC se envan 8 bytes por telegrama con un bit de inicio, uno

    de parada y utilizando paridad par. El tiempo entre cada carcter no puede

    exceder el equivalente a 2 caracteres. El byte STX marca el inicio del

    telegrama y tiene un valor de 0x02(HEX), el byte LGE contiene la longitud del

    bloque de datos ms el ADR y el BCC, el byte ADR contiene la direccin del

    variador, el bloque de datos est compuesto en este caso por los bloques de

    proceso PCD1 y PCD2 de 16 bits cada uno y contiene las instrucciones que

    debe ejecutar el variador. Finalmente el BCC contiene la suma de

    comprobacin correspondiente a la operacin XOR entre todos los bytes

    anteriores a este.

    El sistema operativo Android y el lenguaje de programacin Java:

    Android es la plataforma de software para computacin mvil de ms

    rpido crecimiento. Est basado en el kernel de Linux y posee una

    arquitectura de tipo software stack que posee varias capas y que

  • constituye las herramientas de software necesarias para que una aplicacin

    se ejecute correctamente.

    Capas del stack de Android:

    Kernel de Linux: Incluye los servicios bsicos, los drivers de los

    dispositivos, administra los procesos y la memoria. Provee una capa de

    abstraccin entre el hardware y el resto de capas del stack.

    Libreras: Librerias bsicas en C/C++, como soporte de audio, video,

    etc.

    Android Run Time: Esta capa se encarga de soportar la ejecucin de

    las aplicaciones, esta compuesta por las bibliotecas del ncleo de

    Android que proveen las funcionalidades disponibles en el ncleo de

    Java y la mquina virtual Dalvik.

    Framework: Esta capa contiene las clases que se utilizan para crear

    aplicaciones. Tambin se encarga de manejar los recursos de la

    aplicacin y la interfaz de usuario.

    Capa de aplicacin: En esta capa se construyen todas las

    aplicaciones para la plataforma Android haciendo uso de sus APIs.

    Esta capa corre dentro de la capa de Run Time y utiliza las clases y los

    servicios que ofrece el framework.

    Las aplicaciones realizadas para Android desde la capa de aplicacin se

    escriben generalmente en el lenguaje de programacin Java. Este es un HLL(

    High Level Language) orientado a objetos y diseado para ser simple, de

    arquitectura neutral, multiproceso, robusto, seguro, dinmico y portable,

    entre otros. Este lenguaje ofrece programacin a un alto nivel de

    abstraccin con una gran cantidad de libreras API, y est disponible para

    una gran variedad de dispositivos gracias a que se ejecuta sobre una

    mquina virtual, lo cual lo libera de arquitecturas especficas convirtindolo

    en una tecnologa portable. Estas caractersticas convierten a Java en una

    herramienta poderosa en el desarrollo de aplicaciones y de ingeniera de

    software.

    Una de las grandes ventajas de contar con un sistema operativo es la

    posibilidad que da al programador de abstraer y realizar aplicaciones ms

    complejas, ya que el sistema proporciona drivers, libreras, rutinas y dems

    componentes de software que se encargan de controlar el hardware y de

    servir de interfaz entre el programador y la mquina. Soportado por todo el

  • stack de Android el programador tiene a su disposicin toda una coleccin

    de libreras que puede utilizar para moldear su aplicacin especfica, esto sin

    duda representa una gran ventaja, ya que hoy da vemos sistemas

    embebidos cada vez ms complejos, capaces y eficientes. Las herramientas

    al desarrollador representan una parte fundamental del sistema, pues

    sistemas operativos como Android el cual est diseado para aplicaciones

    mviles, ha logrado adentrarse en campos como la industria gracias a su

    versatilidad y a la gran plataforma de software que lo soporta, brindando

    nuevas posibilidades y nuevos horizontes a ingenieros y desarrolladores en

    distintas reas del conocimiento.

    Comunicacin serial asncrona:

    La mayora de sistemas de cmputo actuales cuentan con circuitos

    integrados capaces de realizar comunicacin serial asncrona con otros

    sistemas o perifricos. Estos dispositivos llamados UART (Universal

    Asynchronous Receiver Transmitter) se encargan de tomar los datos en forma

    de bytes y transmitirlos de manera serial utilizando su propio temporizador. Al

    no compartirse el temporizador entre quien enva y quien recibe, la

    comunicacin entre ambos se realiza de manera asncrona. Ambos

    extremos de la comunicacin deben contar entonces con un registro de

    corrimiento, ya que este permitir realizar la conversin de paralelo a serial y

    viceversa. Con este tipo de comunicacin se logra enviar la informacin

    utilizando menos lneas, pero el receptor debe estar al tanto de la tasa de

    transferencia de los datos utilizada por el emisor. Para el caso del variador de

    frecuencia Danfoss FC 300 y el dispositivo HMI Th-0735W se trabaja con una

    tasa de 9600 bits por segundo. La Figura 2 muestra la estructura de las tramas

    a ser enviadas al variador de frecuencia.

    Figura 2. Estructura de las tramas.

    Cuando la lnea est inactiva, esta permanece en alto, el bit de inicio marca

    la transmisin de un nuevo carcter. Posteriormente se envan los 8 bits que

    componen el byte (bit 0 al bit 7), despus de enviar el byte completo se

    enva un bit adicional conocido como el bit de paridad el cual es requerido

    por el variador, ya que de no enviarse se descartara la trama. La paridad se

    asigna a alto o bajo dependiendo de la cantidad de unos que contenga el

  • byte. Es decir, si es par este bit se pone a 0, si es impar se pone a 1 para

    hacer que el total de unos del carcter y del bit de paridad sea par. Otros

    dispositivos pueden trabajar sin paridad o con paridad impar, pero en el

    caso del Danfoss FC 300 se requiere trabajar con paridad par. Al final se

    enva un ltimo bit que indica el final de la trama, siendo as 11 bits en total

    por cada carcter.

    Estndar EIA RS-485:

    El EIA RS-485 es un estndar de capa fsica del modelo OSI. Esta

    especificacin es ampliamente usada en aplicaciones industriales debido a

    que puede garantizar la comunicacin a grandes distancias y adems es

    apta para trabajar en ambientes ruidosos. Dicho sistema es multipunto y

    opera de manera diferencial a travs del par trenzado. Tiene un alcance

    mximo de 1200 metros, y soporta velocidades entre 100Kbps y mayores a

    10Mbps dependiendo de la distancia a la cual se va a transmitir. La Tabla 1

    muestra algunas especificaciones relevantes del estndar.

    Tabla 1. Algunas especificaciones del estndar EIA RS-485

    En el presente proyecto se trabaja el estndar EIA RS-485 de capa fsica ya

    que los dispositivos involucrados poseen hardware capaz de operar con este

    estndar. Una vez configurados los dispositivos la capa fsica se vuelve

    transparente al programador que trabaja a un alto nivel de abstraccin.

  • Metodologa

    1 Identificacin de las herramientas de software.

    El primer paso consisti en realizar una bsqueda e identificar las

    herramientas de software requeridas para llevar a cabo el proyecto. Se

    encontraron e identificaron todo el entorno de desarrollo de Android, esto

    incluye el SDK, NDK y ADT, adems se investig sobre el desarrollo para este

    sistema operativo en el entorno Eclipse IDE.

    2 Revisin del lenguaje de programacin Java.

    Teniendo en cuenta que la API de Android se encuentra escrita en Java, se

    procedi a revisar el lenguaje. Ya que se tenan conocimientos previos de

    programacin en los lenguajes C/C++, se facilit la comprensin y

    familiarizacin con Java para el posterior desarrollo de aplicaciones.

    3 Estudio de los manuales de los dispositivos.

    Fue necesario tambin conocer el funcionamiento y configuracin del

    variador de frecuencia y del HMI. Por esta razn se realiz un estudio de los

    manuales de ambos para conocer las caractersticas y operarlos

    correctamente.

    Configuracin del Variador de Frecuencia Danfoss FC 300:

    Parmetro 8-01 Puesto de Control: este parmetro especifica el control

    como entradas digitales, cdigo de control, o ambos. Para el caso

    particular se seleccion la opcin por defecto Digital y cd. ctrl [0].

    Parmetro 8-02 Fuente Cdigo Control: se selecciona la fuente del

    cdigo de control. La opcin FC RS-485 [0] se selecciona dado que se

    quiere hacer comunicacin a travs de dicho puerto. De esta manera

    el variador responder a los comandos enviados desde la interfaz por

    el puerto RS-485.

    Parmetro 8-10 Trama Cdigo de Control: selecciona la forma como el

    variador interpreta los telegramas de control. La opcin indicada es

    Protocolo FC [0].

  • Parmetro 8-30 Protocolo: seleccin de protocolo para el puerto FC.

    Opcin FC [0].

    Parmetro 8-31 Direccin: selecciona la direccin asignada al

    dispositivo que lo distingue de los dems variadores que puedan estar

    conectados. Este nmero debe coincidir con la direccin configurada

    en la interfaz de usuario.

    Parmetro 8-32 Velocidad Baudios Puerto FC: se asigna el valor de

    velocidad de la transmisin de datos en baudios. En este caso se

    trabaj con una velocidad de 9600 baudios.

    Una vez configurados correctamente los anteriores parmetros, el variador se

    encuentra listo para recibir y procesar cdigos de procesos a travs del

    puerto FC. La conexin con el dispositivo HMI se realiza en el puerto FC del

    variador, donde el negativo (-) se conecta al pin uno del puerto RS-485 de la

    interfaz y el positivo (+) al pin dos.

    Configuracin del dispositivo HMI Th-0735W:

    El dispositivo cuenta con un puerto para realizar comunicacin serial

    asncrona, dependiendo de la configuracin del GPIO Switch (SW4) externo

    se selecciona un estndar entre RS-232/422/485. La distribucin de pines del

    conector del puerto segn el fabricante se muestra en la Tabla 2.

    Tabla 2. Distribucin de pines puerto RS-232/422/485

    Tomado del manual de usuario del Th-0735W

  • La Tabla 3 muestra la configuracin del GPIO Switch (SW4) para seleccionar

    adecuadamente el estndar y la figura 3 muestra la distribucin del GPIO

    Switch (SW4).

    Tabla 3. Seleccin del estndar mediante el GPIO Switch (SW4) externo.

    Tomado del manual de usuario del Th-0735W

    Figura 3. Distribucin del GPIO Switch (SW4)

    Tomado del manual de usuario del Th-0735W

    El proyecto se realiz sobre Android 2.2, previamente cargado en el

    dispositivo. Para instalar las aplicaciones fue necesario hacer uso de una

    memoria MicroSD la cual contena el archivo .apk con la aplicacin a ser

    instalada. Es importante resaltar que se requieren permisos de super usuario

    para poder acceder los puertos seriales desde una aplicacin. Para este

    propsito se instalaron herramientas auxiliares en el dispositivo que

    permitieron acceso de administrador (root) en el sistema operativo. Antes de

    utilizar los puertos, se debe modificar los permisos asociados al puerto serial

    que se desea utilizar, para as evitar que la aplicacin colapse en tiempo de

    ejecucin. Dado que Android se encuentra desarrollado sobre el kernel del

    sistema operativo Linux, para modificar los permisos de un archivo se

    procede igual que en dicho sistema. Mediante un terminal (aplicacin que

    permite ingresar rdenes al sistema operativo) se escriben los siguientes

    comandos:

  • $su

    #chmod 777 /dev/ttyS1

    #exit

    $exit

    Con los anteriores comandos se desbloque el puerto requerido, es decir se

    dieron los permisos al puerto ttyS1 (COM2) que corresponde al puerto RS-

    232/422/485. Se utiliz el comando exit para cerrar la aplicacin y liberar los

    recursos del sistema.

    Una vez finalizado el proceso de configuracin de los dispositivos, se

    procedi a trabajar sobre la capa de aplicacin de Android, para garantizar

    la comunicacin y desarrollar la interfaz de usuario.

    4 Estudio del desarrollo de aplicaciones para Android en Java.

    Android cuenta con informacin detallada de su API en lnea y de manera

    libre. Este estudio se realiz con el fin de aprender los conceptos bsicos, as

    como el funcionamiento y estructura de las aplicaciones para este sistema. A

    partir de este punto se comenzaron a escribir aplicaciones de prueba que

    permitieran implementar distintos aspectos del proyecto en s, para al final

    reunir los conceptos adquiridos en el desarrollo de la aplicacin como tal.

    5 Comunicacin de ambos dispositivos por RS-485

    La comunicacin de los dispositivos constituye la parte ms importante del

    proyecto, ya que sin ella no sera posible la implementacin de la interfaz.

    Debido a que Android no cuenta con una API estndar para realizar

    comunicacin serial asncrona, fue necesario buscar otras alternativas que

    permitieran solucionar el problema. Se hizo uso de la API android-serialport-

    api, la cual se encuentra disponible en lnea en la pgina web de dicho

    proyecto2 bajo la licencia Apache 2.0 que puede ser consultada en la red3.

    Esta API se empleo segn las necesidades del proyecto, logrando al final la

    comunicacin exitosa entre el variador y el HMI. Se presenta entonces una

    descripcin del software incluido en la API utilizado para la realizacin del

    proyecto. Es importante tener en cuenta que la librera descrita no cuenta

    con todas las opciones de configuracin de la comunicacin serial

    asncrona, razn por la cual fue necesario tambin la modificacin del

    cdigo nativo en lenguaje C para lograr los requerimientos de configuracin

    del variador de frecuencia Danfoss FC 300.

  • Archivo SerialPort.java:

    Este archivo contiene bsicamente una clase llamada SerialPort, la cual

    provee al usuario de un constructor y de mtodos para obtener el

    InputStream y el OutputStream, tambin ofrece los mtodos nativos para

    abrir y cerrar el puerto, dichos mtodos se encuentran escritos en el lenguaje

    C y se encuentran en el archivo correspondiente SerialPort.c, el prototipo del

    constructor se describe a continuacin.

    public SerialPort(File device, int baudrate, int flags);

    File device: es una representacin de la ruta del archivo asociado al puerto

    serial, en este caso dicha ruta es /dev/ttyS1.

    Int baudrate: es un nmero que representa la velocidad que se quiere

    asignar al puerto serial.

    Int flags: sin uso para el caso particular.

    El constructor se encarga tambin de llamar el mtodo nativo para abrir el

    puerto. Para cerrar el puerto se llama al mtodo nativo SerialPort.close(),

    donde SerialPort es la instancia especfica de la clase. Como se observa en

    el constructor, la librera no ofrece muchas opciones de configuracin, por lo

    cual fue necesario modificar el archivo SerialPort.c que contiene el cdigo

    nativo para poder habilitar la paridad, ya que el variador de frecuencia

    requiere tramas con paridad par. La configuracin del dispositivo de

    comunicacin asncrona se puede cambiar manipulando la estructura

    termios, la cual provee una interfaz con el hardware. Para habilitar la

    paridad basta con modificar el campo c_cflag de la siguiente manera:

    cfg.c_cflag &= ~PARODD, paridad par.

    cfg.c_cflag |= PARENB, habilita paridad.

    Para finalizar la configuracin se debe compilar el archivo SerialPort.c

    utilizando las herramientas del NDK de Android a travs de la consola de

    comandos. La librera android-serialport-api provee los archivos necesarios

    para la compilacin de cdigo nativo, basta con llamar desde la consola al

    script ndk-build en el directorio del proyecto como muestra la Figura 4.

  • Figura 4. Ejemplo de compilacin de cdigo nativo

    Se debe ubicar en la carpeta raz del proyecto y se debe ingresar la

    direccin completa al script ndk-build. Una vez terminado este proceso se

    obtiene los archivos de enlace dinmico y ambos dispositivos quedan listos

    para comunicarse de manera serial.

    6 Desarrollo del Software en Eclipse IDE.

    Una vez exploradas las soluciones particulares y solucionados los problemas

    de comunicacin, se procedi a escribir la aplicacin principal en el entorno

    de desarrollo Eclipse IDE. Este proceso consisti en el desarrollo del software y

    la integracin de los distintos paquetes que finalmente componen la interfaz.

    Las interfaces graficas en Android se definen en XML lo que hace la

    aplicacin ms verstil. Se puede crear varias versiones de la misma interfaz

    para distintas pantallas, adems Android provee un vocabulario en XML que

    permite al programador crear la interfaz de manera elegante y sencilla. Las

    interfaces grficas para este sistema se crean de manera jerrquica, es

    decir consta de una jerarqua de objetos de las clases View y ViewGroup. Los

    objetos de clase View son elementos que se despliegan y son visibles al

    usuario, como por ejemplo botones, sliders, spinners, textos, entre otros. Por su

    parte los objetos ViewGroup son invisibles y definen como se organizan y

    despliegan los dems objetos visibles dentro de la jerarqua. Para este

    proyecto se utiliz una disposicin relativa de las vistas en pantalla. Esta

    informacin est contenida en el archivo activity_main.xml, La Figura 5

    muestra el cdigo en el correspondiente archivo para un elemento de la

    clase SeekBar utilizado en la interfaz para variar la frecuencia de una manera

    sencilla. Se observa que se indican las propiedades acerca de la disposicin

    del objeto en pantalla, as como otros atributos propios de la clase. De esta

    manera se definen todos los objetos que componen la interfaz de usuario y

    que son desplegados de acuerdo a la informacin contenida en el archivo

    activity_main.xml.

  • Figura 5. Definicin de un objeto de la clase SeekBar en XML.

    La explicacin de cada uno de los elementos en la Figura 5 es como sigue:

    android:id="@+id/seekBar1"

    El id provee un identificador nico que permite referenciar el objeto desde la

    aplicacin. Con este id se puede manipular y leer el objeto. El smbolo @ es

    requerido cuando se refiere a un objeto recurso de XML. El signo + es

    necesario cuando se define el identificador del recurso por primera vez,

    finalmente se coloca una diagonal y el nombre que se quiere dar al recurso,

    en este caso seekBar.

    android:layout_width="300dp"

    android:layout_height="wrap_content"

    La propiedad layout_width especifica el ancho del objeto en pantalla, en

    este caso se escogi 300dp. layout_height se encarga de definir la altura, el

    trmino wrap_content significa que la altura se ajustara automticamente

    al contenido del objeto visible.

    android:layout_alignParentBottom="true"

    android:layout_alignParentLeft="true"

    Cuando estas propiedades se hacen true los ejes especificados

    correspondern con los respectivos ejes del diseo de la interfaz en la cual

    est contenido el objeto.

    android:layout_marginBottom="48dp"

    android:layout_marginLeft="54dp"

    Estas propiedades especifican las mrgenes de la vista.

    android:max="60"

    Esta propiedad indica el mximo valor que puede tomar el SeekBar, en este

    caso es 60, frecuencia de la red con la cual trabaja el variador.

  • android:progress="0"

    Especifica el progreso inicial del objeto al ser creado.

    android:background="@color/light_blue"

    Con esta propiedad se puede modificar el fondo de la vista. Se observa que

    el color es tambin un recurso en XML, ya que los colores, los tipos de letra,

    las dimensiones y dems, se pueden definir como recursos en XML. @color

    significa que el recurso se encuentra en un archivo de nombre colors.xml, y el

    nombre del recurso es light_blue. La Figura 6 muestra un ejemplo de

    definicin de recursos para cadenas de caracteres en el archivo strings.xml.

    Figura 6. Ejemplo de contenido del archivo strings.xml.

    Las dems vistas u objetos visibles que componen la interfaz se definen de la

    misma forma en el archivo activity_main.xml, y se ajustan las propiedades

    segn se requiera el diseo. Adems en el proyecto se crearon los archivos

    de recursos colors.xml, dimens.xml, strings.xml, styles.xml, y se incluy un mapa

    de bits para emplearse en un instrumento virtual que permite visualizar la

    frecuencia.

    En el desarrollo del software se crearon tres archivos de cdigo fuente en

    Java: MainActivity.java, Comm485.java, y VirtualInstrument.java. Estos tres

    archivos componen el software escrito para la realizacin de la interfaz, para

    cada uno de ellos se describen las clases, los objetos, las variables y los

    mtodos utilizados.

    Archivo MainActivity.java:

    Este archivo contiene la actividad principal, una vez se lanza la aplicacin el

    sistema llama el mtodo onCreate() correspondiente. En el archivo

  • AndroidManifest.xml se define cual actividad servir de punto de entrada a

    la aplicacin.

    CLASES:

    java.io.File

    Esta clase es una representacin abstracta de rutas de archivos y directorios,

    utilizada para representar la ruta al archivo /dev/ttyS1 asociado al puerto

    serial.

    java.io.IOException

    Indica cuando se da una excepcin en una operacin de entrada/salida

    (I/O), esta clase es requerida por la API del puerto serial.

    java.io.OutputStream

    Superclase de todas las subclases que representan una secuencia de bytes,

    requerida para escribir datos en el puerto serial.

    android.app.Activity

    Actividad o aplicacin que interacta con el usuario, crea una ventana para

    poner los elementos grficos que componen la interfaz.

    android.os.Bundle

    Sirve para agrupar informacin en un objeto para ser distribuida entre

    distintas actividades.

    android.view.KeyEvent

    Se utiliza para reportar eventos, por ejemplo al presionar un botn se genera

    un evento para el cual se puede crear un mtodo que ejecute determinada

    accin.

    android.view.Menu

    Interfaz que se implementa para manipular elementos en un men.

    android.view.View

    Clase que representa el componente bsico de los elementos que

    componen la interfaz de usuario, sirve para crear elementos visuales

    interactivos como botones, sliders, spinners, entre otros.

  • android.widget.AdapterView

    Tipo de clase que requiere de un Adapter que sirva de enlace entre el

    objeto y sus correspondientes datos, como por ejemplo, un spinner y su

    respectiva lista de tems seleccionables.

    android.widget.AdapterView.OnItemSelectedListener

    Interfaz que permite generar un llamado cada que un elemento de una lista

    ha sido seleccionado.

    android.widget.ArrayAdapter

    Adapter que sirve de puente entre la vista y un arreglo de objetos.

    android.widget.Button

    Representa un botn que puede ser presionado por el usuario para generar

    un evento.

    android.widget.EditText

    Vista de texto editable que permite al usuario ingresar o modificar el texto.

    android.widget.SeekBar

    Consiste de una barra de bsqueda con la cual el usuario puede interactuar

    desplazando la misma para cambiar su valor o progreso.

    android.widget.SeekBar.OnSeekBarChangeListener

    Genera un llamado cada que la barra de bsqueda asociada ha sido

    manipulada.

    android.widget.Spinner

    Vista que despliega una lista de tems seleccionables, dichos tems provienen

    del Adapter asociado.

    android.widget.TextView

    Elemento de la interfaz que despliega texto al usuario.

    android.widget.TextView.OnEditorActionListener

    Interfaz que proporciona un llamado cuando se realiza una accin de

    edicin sobre un texto.

    android_serialport_api.SerialPort

    Permite la creacin y utilizacin de un objeto asociado a un puerto serial.

  • comm.Comm485

    Esta clase se cre con el fin de proveer mtodos pblicos para crear los

    telegramas que se envan al variador de frecuencia desde la interfaz de

    usuario.

    customview.VirtualInstrument

    Esta clase se cre con el fin de proporcionar un instrumento virtual para

    desplegar el valor de la frecuencia que se est enviando al variador.

    VARIABLES Y OBJETOS:

    private SeekBar mSeek

    Este objeto es una barra de bsqueda que sirve al usuario para cambiar la

    frecuencia de una manera rpida y sencilla. Cada vez que se manipula la

    barra se enva un telegrama al variador indicando que debe cambiar la

    frecuencia.

    private int frequency

    Variable de tipo entero que contiene el valor actual de frecuencia, se

    modifica desde varios objetos visibles en pantalla.

    private TextView freqText

    Vista de texto que despliega el valor actual de frecuencia contenido en la

    variable frequency.

    private EditText spText

    Este objeto permite modificar la frecuencia de una manera ms precisa, es

    decir, se escribe directamente el valor de frecuencia deseado.

    private Spinner turn

    Esta vista responde a la interaccin desplegando una lista de dos elementos

    que permite al usuario elegir el sentido de giro del motor. Cada que se

    produce un evento es necesario enviar el telegrama correspondiente al

    variador para indicarle que debe modificar su sentido de giro.

    private Spinner baud

    Este objeto despliega una lista que contiene cinco direcciones distintas y una

    opcin de bloqueo de la pantalla para evitar que se cambien los

    parmetros por accidente. La direccin seleccionada en la lista debe

    coincidir con la direccin programada en el variador que se desea operar.

  • private SerialPort comPort

    Objeto relacionado al puerto serial del dispositivo HMI a travs del cual se

    realiza la comunicacin.

    private OutputStream sending

    Secuencia de datos de salida por puerto serial.

    private File portFile

    Representacin de la ruta del archivo asociado al puerto serial, la ruta es

    /dev/ttyS1, para el puerto ttyS1 del dispositivo Th-0735W.

    private boolean portReady

    Bandera que indica cuando el puerto serial est listo para leer y escribir

    datos.

    private int baudRate

    Variable de tipo entero que contiene la velocidad a asignar al puerto, en

    este caso se utiliza 9600 por defecto.

    private VirtualInstrument virtualInst

    Este objeto es un instrumento virtual creado para desplegar el valor actual

    de la frecuencia.

    private boolean start

    Bandera que indica cuando el sistema ha iniciado correctamente, es decir,

    cuando se ha creado el objeto asociado al puerto serial y se ha presionado

    el botn de START. Esta bandera condiciona el envi de telegramas al

    variador de frecuencia por parte de los dems objetos de la interfaz.

    private boolean clockwise

    Bandera que indica el sentido de giro del motor.

    public static byte address

    Variable que contiene la direccin actual del variador al cual se envan los

    mensajes de control.

    public byte[] message

    Arreglo que contiene los ocho bytes que componen el mensaje a ser

    enviado al variador de frecuencia.

  • MTODOS DE LA API DE ANDROID:

    public void onCreate(Bundle savedInstanceState)

    Clase: Activity

    Mtodo llamado cuando la actividad se crea por primera vez, tambin se

    puede utilizar para asignar variables, listeners, adapters y otras operaciones

    que el programador requiera al inicializar su aplicacin. El argumento

    bundle savedInstanceState hace referencia a un estado anterior de la

    actividad.

    public void setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener

    I)

    Clase: SeekBar

    Este mtodo se llama dentro de onCreate() y pertenece a la clase SeekBar,

    se encarga de crear el listener para el objeto mSeek, que es la barra de

    bsqueda que cambia la frecuencia.

    public void onProgressChanged(SeekBar seekBar, int barProgress, boolean

    fromUser)

    Clase: SeekBar

    Mtodo llamado por el sistema cuando hay cambios en la barra de

    bsqueda asociada. Pertenece a la interfaz

    SeekBar.OnSeekBarChangeListener y se debe implementar al momento de

    establecer el listener. El argumento SeekBar seekBar es la barra de

    bsqueda, int barProgress es el progreso de la barra, y boolean fromUser es

    una bandera que indica si el cambio lo produjo el usuario.

    public void setOnEditorActionListener(TextView.OnEditorActionListener I)

    Clase: TextView

    Establece un listener a ser llamado cuando se produzcan cambios en el

    objeto de texto editable.

  • public abstract boolean onEditorAction(TextView v, int actionId, KeyEvent

    event)

    Clase: TextView

    Este mtodo se llama cuando hay cambios en el objeto de texto editable, se

    debe implementar al momento de establecer el listener y representa el

    evento deseado por el programador al producirse un cambio en el texto por

    parte del usuario. TextView v es la vista que ha sido manipulada por el

    usuario, int actionId es un identificador de la accin realizada y KeyEvent

    event indica si el evento se produjo por la tecla enter. Cuando el usuario

    introduce un valor en el cuadro de texto editable, este mtodo se encarga

    de validar los datos, y de ser correctos asigna el respectivo valor de

    frecuencia y enva la orden al variador.

    public static ArrayAdapter createFromResource (Context

    context, int textArrayResId, int textViewResId)

    Clase: ArrayAdapter

    Crea una adapter para ser asignado a un spinner, este sirve como

    vnculo entre el objeto visible y los datos asociados a este. En la interfaz se

    utiliz este mtodo para crear los adapters de sentido de giro y direccin

    del dispositivo. Context context es el entorno de la aplicacin, int

    textArrayResId es el identificador del arreglo que servir como fuente de

    datos, y int textViewResId es el identificador del diseo utilizado para crear los

    objetos visibles.

    public void setDropDownViewResource (int resource)

    Clase: ArrayAdapter

    Se encarga de establecer el diseo de la lista a ser desplegada al producirse

    un evento sobre el spinner.

    public void setAdapter (ListAdapter adapter)

    Clase: Spinner

    Este mtodo se llama para asignar un adapter a un spinner.

    Para los spinners tambin se requiere de un listener para generar un

    evento cada que se seleccione un elemento de la lista y as ejecutar la

  • accin correspondiente, como por ejemplo, enviar una orden de cambio de

    sentido de giro al variador. Estos listener se configuran de manera similar a

    los anteriores.

    MTODOS CREADOS:

    public void setSerialPort(View view)

    Este mtodo se encarga de crear el puerto serial, una vez creado, la

    bandera portReady se pone en alto para habilitar el envo de mensajes al

    variador. Puede arrojar excepciones al intentar abrir el puerto. El argumento

    View view, hace referencia al objeto visible que se encarga de llamar el

    mtodo, en este caso es un botn llamado COM.

    public void onStart(View view)

    Mtodo llamado al presionar el botn START, revisa el estado del puerto, si

    este ya se encuentra disponible establece la bandera start y enva un

    mensaje de arranque al variador.

    public void onStop(View view)

    Este mtodo es llamado al presionar el botn STOP, si la bandera start se

    encuentra activa, se procede a desactivarla y se enva un comando de

    parada al variador de frecuencia.

    public void blockCritical(boolean lock)

    Con el propsito de bloquear ciertos elementos crticos de la interfaz se cre

    este mtodo. Si la bandera lock tiene un valor verdadero, se desactivan

    todos los elementos visibles que permiten modificar la frecuencia y sentido

    de giro del motor, para activarlos de nuevo, simplemente se llama la funcin

    pasando un valor falso como argumento.

  • Archivo Comm485.java

    La clase Comm485 consiste de varios mtodos que permiten crear los

    telegramas que se envan al variador de frecuencia. Para enviar rdenes se

    deben tener en cuenta los cdigos de proceso que acepta el variador

    Danfoss FC 300. Los cdigos se asignan de acuerdo a la Tabla 4.

    Tabla 4. Funcin de los bits del bloque de proceso PCD1

    Tomado de la gua de diseo del Danfoss FC 300

    Para arrancar el motor, variar frecuencia, invertir sentido de giro, y parar el

    motor se asigna el cdigo 0x047F (hexadecimal) al PCD1 y los cambios se

    aplican al PCD2. El bloque PCD2 est compuesto por un nmero de 16 bits

    en complemento a dos. El cdigo enviado representa un porcentaje con

    rango 200%, es decir el 100% equivale al nmero 16.384 (4000 hex). Para el

    caso particular se debe tener en cuenta que la mxima frecuencia ser

    60Hz. Si se desea parar el motor se enva en este caso frecuencia cero y se

    para por inercia. Para invertir el sentido de giro se enva el valor de referencia

    pero negativo. El variador de frecuencia permite la configuracin de varios

    parmetros para su funcionamiento, para mayor informacin se puede referir

    a la gua de diseo del Danfoss FC 300.

  • MTODOS:

    public static void createFrame(byte[] frame, int pcd1, int pcd2)

    Este mtodo se encarga de crear el mensaje de ocho bytes segn el

    protocolo FC, para ser enviado al variador. El parmetro byte[] frame es el

    arreglo donde debe ubicar el contenido del mensaje, tambin posee como

    argumentos lo cdigos de proceso PCD1 y PCD2. La funcin tambin se

    encarga de asignar la direccin actual del variador y de calcular la suma de

    comprobacin requerida por el Danfoss FC 300.

    public static int setFrequency (int freq)

    Este mtodo se encarga de realizar la conversin de hercios al

    correspondiente cdigo del bloque PCD2. Al ser llamado recibe un

    argumento que es el valor de frecuencia actual que se desea enviar al

    variador.

    public static int invertFrequency (int freq)

    Mtodo que se encarga de realizar la conversin al cdigo de proceso del

    PCD2 en complemento a dos para realizar la inversin de giro. Su nico

    parmetro es la frecuencia actual a ser enviada.

    Archivo VirtualInstrument.java

    Este archivo contiene la clase VirtualInstrument que se cre con el fin de

    proveer un instrumento virtual para desplegar el valor de frecuencia en

    pantalla. Esta clase extiende la clase View de la API de Android y

    bsicamente consiste de un mapa de bits a ser desplegado, y de un mtodo

    que dibuja un indicador visual cada que el usuario realiza un cambio en la

    frecuencia.

    CLASES:

    import android.graphics.Bitmap

    Clase que permite manipular imgenes o mapas de bits.

    import android.graphics.BitmapFactory

    Clase utilizada para crear objetos de la clase Bitmap.

  • import android.graphics.Canvas

    Clase que contiene los mtodos necesarios para dibujar.

    import android.graphics.Color

    Esta clase provee colores para ser utilizados al dibujar, tambin contiene

    mtodos para crear y manipular colores.

    import android.graphics.Paint

    Guarda informacin acerca del color y el estilo del dibujo.

    import android.view.View

    Clase que representa el componente bsico de los elementos que

    componen la interfaz de usuario, sirve para crear elementos visuales

    interactivos como botones, sliders, spinners, entre otros.

    VARIABLES Y OBJETOS:

    private Bitmap img

    Objeto de la clase Bitmap asociado a la imagen de fondo del instrumento

    virtual.

    private Paint paint

    Pintura a ser utilizada en el dibujo.

    private float degree

    Variable que contiene la rotacin en grados de la aguja del instrumento

    virtual.

    public int freq

    Variable que guarda el valor actual de la frecuencia a ser desplegada.

    MTODOS:

    public VirtualInstrument(Context ctx, AttributeSet attrs)

    Constructor de la clase. Se encarga de llamar al constructor de la super

    clase y de inicializar algunos miembros de la clase a travs de mtodo init().

  • private void init()

    Mtodo creado para inicializar los miembros de la clase que requieren ser

    inicializados.

    public void onDraw(Canvas canvas)

    Clase: View

    Mtodo implementado para dibujar el instrumento virtual. Cada que se

    produce un cambio en la frecuencia el mtodo es llamado por el sistema

    para redibujar el objeto y desplegar los cambios.

    void drawBitmap(Bitmap bitmap, float left, float top, Paint paint)

    Clase: Canvas

    Mtodo empleado en este caso para dibujar el fondo del instrumento virtual,

    el cual consiste de una imagen previamente diseada.

    void setColor(int color)

    Clase: Paint

    Cambia el color con el cual se va a dibujar.

    public final void rotate (float degrees, float px, float py)

    Clase: Canvas

    Mtodo utilizado para realizar la rotacin de la aguja del instrumento virtual

    conforme ocurren los cambios en la interfaz. Se especifican los grados y un

    punto (px,py) que no se ver afectado por la rotacin.

    public void drawLine (float startX, float startY, float stopX, float stopY, Paint

    paint)

    Clase: Canvas

    Se utiliza para dibujar lneas. En este caso este mtodo es llamado para

    dibujar las lneas que conforman la aguja del instrumento. Se especifica el

    punto de inicio, el punto de terminacin y la pintura a ser utilizada.

    Una vez finalizado el desarrollo de software, se realiz una primera etapa de

    depuracin del programa y posteriormente se procedi a realizar las

    pruebas pertinentes en el laboratorio con los dispositivos y la planta.

  • 7 Pruebas y correccin de errores.

    Al finalizar el desarrollo de software se procedi a realizar las pruebas

    pertinentes en el laboratorio y a realizar una ltima etapa de depuracin. Al

    corregir todos los errores y cumplir todos los objetivos planteados se

    analizaron los resultados, se sacaron las conclusiones y se dio por finalizado el

    proyecto. Las pruebas consistieron principalmente en someter el sistema a su

    normal operacin y observar la repuesta obtenida. Las primeras pruebas

    permitieron detectar algunos fallos de software que pudieron ser corregidos y

    verificados en posteriores ensayos. El resultado de dichas pruebas se analiza

    ms en detalle en la seccin de Resultados y anlisis.

    Resultados y anlisis

    El software se realiz con la ayuda del Android ADT plugin, el cual consiste de

    una extensin para el entorno integrado de desarrollo Eclipse IDE y que

    permite desarrollar aplicaciones para el sistema operativo Android.

    Inicialmente se realizaron las pruebas en un dispositivo virtual (AVD), para

    depurar el programa y garantizar el correcto funcionamiento de la interfaz

    grfica. Esta etapa permiti corregir varios errores y ajustar la interfaz de

    usuario para garantizar su adecuada operacin. Posteriormente se realizaron

    pruebas de comunicacin en el laboratorio entre el dispositivo HMI y el

    variador de frecuencia. Estas pruebas permitieron depurar el protocolo de

    comunicacin el cual representa una parte fundamental del sistema. Al final

    de las etapas de prueba y depuracin se obtuvo como resultado un sistema

    dotado de una interfaz hombre mquina basada en Android para controlar

    en lazo abierto un motor AC a travs del variador de frecuencia Danfoss FC

    300. La Figura 7 muestra un diagrama correspondiente al sistema

    implementado.

    El usuario interacta con el sistema a travs de la pantalla, la cual presenta

    opciones para arrancar o parar el motor, invertir el sentido de giro, cambiar

    la frecuencia, cambiar la direccin del dispositivo, abrir el puerto para la

    comunicacin y bloquear los elementos crticos en pantalla. Las ordenes

    ingresadas son procesadas por el dispositivo Th-0735W y enviadas al variador

    de frecuencia en forma de mensajes de 8 bytes segn el protocolo FC de

    Danfoss, y utilizando el estndar RS-485 de capa fsica. Sistemas similares se

    encuentran actualmente en la industria, pero a diferencia, estos utilizan

    generalmente un PLC y la interfaz se desarrolla utilizando algn paquete de

  • software privativo, lo cual requiere de la adquisicin de la licencia para su

    respectivo uso.

    Figura 7. Diagrama del sistema implementado.

    Se obtuvo como resultado final una interfaz de usuario realizada totalmente

    con herramientas de libre acceso y que permite realizar las operaciones

    previamente descritas sobre el motor a travs del variador de frecuencia. La

    versin final de la interfaz de usuario se muestra en la Figura 8.

    Figura 8. Interfaz de usuario.

  • Descripcin y funcionamiento de la interfaz ilustrada en la Figura 8:

    1 Botn de START: Se utiliza para arrancar el motor y habilitar el envo de

    telegramas al variador siempre y cuando el puerto serial se encuentre listo

    para realizar la comunicacin. Al ser presionado por el usuario establece la

    bandera start y enva el comando de arranque al variador nicamente si la

    bandera portReady se encuentra activa.

    2 Botn de STOP: Se utiliza para detener el motor por inercia envindole una

    frecuencia igual a cero. Al ser presionado por el usuario, se llama el mtodo

    de respuesta programado, se revisa el estado de la bandera start, si se

    encuentra en alto entonces se desactiva y se enva el comando de parada

    al variador, de lo contrario el mtodo llamado no ejecuta ninguna accin.

    3 Sentido de giro: Este Spinner permite seleccionar al usuario el sentido de

    giro del motor. Cada que el usuario cambia el sentido se enva un telegrama

    al variador para que realice el cambio.

    4 Frecuencia: Indicador numrico del valor actual de la frecuencia.

    5 Barra de bsqueda: esta barra permite variar la frecuencia de una manera

    rpida y sencilla al desplazarla a derecha o izquierda. Cada que se produce

    un cambio por interaccin con el usuario, el respectivo mtodo es llamado

    por el sistema y se atiende el evento enviando un telegrama al variador que

    informa del nuevo valor de la frecuencia.

    6 Instrumento virtual: Este instrumento despliega el valor actual de la

    frecuencia. Cada que el usuario produzca un cambio de cualquier forma en

    la frecuencia, el instrumento es redibujado para desplegar el cambio. Se

    despliega la informacin de frecuencia en el rango de 0-60Hz.

    7 Cuadro de texto editable: Permite al usuario ingresar el valor preciso de

    frecuencia a travs de un teclado que se despliega en pantalla al tocar el

    cuadro con el dedo. De esta forma el usuario puede elegir entre desplazar la

    barra de bsqueda o ingresar directamente el valor deseado de frecuencia.

  • Los datos ingresados se encuentran validados para evitar errores en el

    sistema provocados por datos errados ingresados por el usuario.

    8 Direccin del variador: Este spinner permite al usuario seleccionar la

    direccin del dispositivo variador de frecuencia. La interfaz ofrece hasta

    cinco direcciones distintas lo que permite controlar cinco dispositivos distintos

    con la misma interfaz. Las direcciones estn en el rango de 1-5 y dicho

    nmero debe coincidir con la direccin programada en el variador para que

    este pueda procesar los telegramas. Tambin se ofrece una opcin de

    bloqueo de pantalla que deshabilita los elementos crticos, es decir, aquellos

    que permiten modificar la frecuencia e invertir el sentido de giro, ms

    exactamente los elementos 3, 5 y 7. Este bloqueo se realiza con el propsito

    de evitar cambios accidentales dado que se trata de una pantalla tctil.

    Para habilitar nuevamente los elementos bloqueados basta con seleccionar

    de nuevo una de las cinco direcciones a la cual se desea enviar la orden.

    9 Botn COM: Este botn se encarga de crear el objeto asociado al puerto

    serial, y por lo tanto de habilitar la comunicacin entre la pantalla y el

    variador. Al ser presionado por el usuario la bandera portReady es

    establecida indicando que el puerto se encuentra disponible.

    El funcionamiento de la interfaz se comprob en el laboratorio con la puesta

    en marcha del sistema completo. Despus de depurar el sistema se

    complet el desarrollo de software y se obtuvieron los resultados esperados,

    una interfaz hombre mquina basada en software de libre acceso para

    realizar control en lazo abierto de motores AC. Uno de los objetivos

    alcanzados fue completar el sistema utilizando herramientas de libre acceso

    que permitieron el desarrollo de un sistema verstil con la posibilidad de

    expandirse a mltiples aplicaciones. Todos los dispositivos involucrados se

    comportaron de manera adecuada con la versin final del software, y

    adems se cumplieron todos los objetivos planteados al principio del

    proyecto lo que permiti sacar conclusiones y dar por finalizado el trabajo.

  • Conclusiones

    Con el presente trabajo se logr el aprovechamiento del avance

    tecnolgico para lograr el desarrollo de una aplicacin de ingeniera en el

    campo de la industria. El ingeniero de hoy en da debe ser consciente de

    que se encuentra en un medio cambiante que avanza con rapidez y que al

    mismo tiempo ofrece alternativas y soluciones cada vez ms verstiles en los

    distintos campos de aplicacin de la ingeniera. El propsito del proyecto

    fue desde un principio, implementar un sistema basado en el desarrollo de

    software y apoyado en herramientas de libre acceso, lo que signific un gran

    proceso de aprendizaje y de experiencia en la aplicacin de conceptos de

    ingeniera a problemas reales. Los conceptos aplicados, el tiempo invertido y

    el inters por aportar nuevas soluciones en el campo de la ingeniera,

    hicieron de este proyecto una experiencia completamente productiva y

    llena de desafos que finalmente marcaron el camino a la culminacin del

    trabajo dando cumplimiento a todos los objetivos planteados desde un

    principio.

    El desarrollo del proyecto permiti encontrar nuevas posibilidades y

    alternativas de diseo en el campo de aplicaciones de ingeniera. Nuestro

    medio actual afronta una realidad que requiere de ingenieros que sean

    capaces de explorar alternativas y de innovar en el desarrollo de proyectos.

    La solucin implementada representa una buena aproximacin al desarrollo

    propio de los sistemas requeridos actualmente en la industria, la medicina, el

    transporte y el entretenimiento, entre otros, ya que las posibilidades ofrecidas

    hoy en da por el medio permiten que los ingenieros realicen aportes que

    garanticen el mejoramiento de la calidad de vida de las personas y que

    representen alternativas competitivas y rentables para la industria.

    Con la finalizacin del trabajo se llega a la conclusin de que las distintas

    empresas pueden apostar por el desarrollo de sistemas propios que

    garanticen rendimiento y calidad en las aplicaciones que se requieran. De

    esta forma se estara impulsando el desarrollo ingenieril y el avance

    tecnolgico de nuestro medio, apostando por ingenieros cada vez ms

    capaces de afrontar un entorno cambiante para sacar el mejor provecho y

    adaptar las nuevas tecnologas a los requerimientos especficos de las

    distintas reas de aplicacin de la ingeniera.

  • Uno de los aspectos ms importantes del trabajo fue sin duda la experiencia

    y el conocimiento adquiridos durante todo el proceso de desarrollo. El

    conocimiento de los dispositivos involucrados as como las habilidades

    adquiridas en el lenguaje de programacin Java y el sistema operativo

    Android, hacen de este trabajo una experiencia formativa en el campo

    profesional de la ingeniera. Estos conceptos y conocimientos contribuyen en

    distintas reas del ejercicio profesional como la computacin mvil, el

    desarrollo de aplicaciones industriales, los sistemas embebidos y el desarrollo

    de software en general, haciendo de esta etapa de formacin un

    complemento importante de las bases obtenidas a lo largo del estudio de la

    ingeniera electrnica y su amplio campo de aplicacin.

    El software libre y las herramientas de cdigo abierto constituyen un apoyo

    fundamental en la formacin del ingeniero y en aplicaciones profesionales

    reales. El hecho de contar con alternativas de libre acceso ha permitido que

    cada vez ms estudiantes y profesionales puedan aprender mediante la

    utilizacin de herramientas de software de alta calidad. En la actualidad se

    encuentran disponibles sistemas operativos, compiladores, entornos

    integrados de desarrollo, libreras, drivers y dems elementos libres y de

    cdigo abierto que permiten el intercambio de conocimiento entre

    estudiantes, educadores y profesionales alrededor de todo el mundo. En el

    presente proyecto se destaca la utilizacin en su totalidad de herramientas

    de libre acceso, las cuales fueron adquiridas y empleadas en el desarrollo de

    un proyecto de ingeniera sin costo algn asociado a su licencia de uso. Es

    importante entonces apostar al desarrollo de proyectos de ingeniera

    basados en herramientas libres que no solo reducen los costos, sino que

    tambin brindan al desarrollador distintas alternativas y posibilidades de

    diseo.

  • Referencias Bibliogrficas

    Android Open Source Project [en lnea].

    [Citado en 8 de Enero de 2013]

    DANFOSS. Gua de diseo del FC300

    MEIER, Reto. Professional Android Application Development. Indianapolis:

    Wiley Publishing Inc, 2009. 409p.

    ORACLE. Java SE Technical Documentation [en lnea].

    < http://docs.oracle.com/javase/> [Citado en 8 de Enero de 2013]

    TECHNEXION. Th-series Human Machine Iinterface and its Baseboard Users

    Guide. 2011. Rev 0.92

    TECHNEXION. TAM-3517 System on Module and its Baseboards Users Guide.

    2012. Rev 0.97

    TEXAS INSTRUMENTS. RS-422 and RS-485 Standards Overview and System

    Configurations. 2002 - 2010.

    Aprobacin del informe

    Como asesor del estudiante considero que el informe final esta bien

    estructurado, contiene informacin adecuada y puede ser presentado para

    su evaluacin.

    Orlando Carrillo Perilla

    C.C. 6743987

    1 Android is a trademark of Google Inc.

    2 http://code.google.com/p/android-serialport-api/

    3 http://www.apache.org/licenses/LICENSE-2.0