Sei sulla pagina 1di 36

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

josear177@hotmail.com

Identificacin del asesor


Nombres y apellidos

Orlando Carrillo Perilla

Telfono

3014044569

Oficina

19-450

E-mail

carrillo@udea.edu.co

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 RS485, 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 Th0735W 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 hombremquina 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 RS232/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-serialportapi, 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<CharSequence> 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].
<http://developer.Android.com/training/index.html>
[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

Android is a trademark of Google Inc.


http://code.google.com/p/android-serialport-api/
3
http://www.apache.org/licenses/LICENSE-2.0
2

Potrebbero piacerti anche