ESCUELA SUPERIOR DE INGENIERÌA MÈCANICA Y ...2.3.1 PIC´s 25 2.3.2 PIC 16F877A 26 2.3.2.1...
Transcript of ESCUELA SUPERIOR DE INGENIERÌA MÈCANICA Y ...2.3.1 PIC´s 25 2.3.2 PIC 16F877A 26 2.3.2.1...
INSTITUTO POLITÈCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÌA MÈCANICA Y ELÈCTRICA
UNIDAD PROFESIONAL AZCAPOTZALCO
TESIS
“METODOLOGIA PARA LA ADQUISICION DE DATOS DIGITALES Y
ANALOGICOS CON EL SOFTWARE LabVIEW POR MEDIO DE
COMUNICACIÓN SERIAL RS-232.”
PARA OBTENER EL TÍTULO DE:
INGENIERO EN ROBÓTICA INDUSTRIAL
PRESENTA:
CARLOS MIGUEL PINEDA GALLEGOS
ASESORES:
M. EN C. RAMÒN VALDÈS MARTÌNEZ
ING. CARLOS ALBERTO MENDOZA AGÛERO
2
Índice
Contenido
Página
Objetivo general.
4
Objetivos específicos.
4
Justificación.
5
Capítulo I.- ESTUDIO DEL ESTADO DEL ARTE
6
1.1 SISTEMAS DUROS Y SISTEMAS SUAVES.
7
1.1.1 Sistemas duros.
8
1.1.2 Sistemas suaves.
9
1.2 METODOLOGIA.
11
1.2.1 Definición de metodología
11
1.2.2 Tipos de metodología.
12
Capítulo II. FUNDAMENTOS DE ELECTRONICA Y MICROCONTROLADORES. 14
2.1 ELECTRONICA BASICA.
15
2.1.1 Historia de la electrónica.
15
2.1.2 Componentes básicos de la electrónica. 16
2.2 SEÑALES DIGITALES Y ANALOGICAS.
21
2.2.1 Señales digitales.
22
2.2.2 Señales analógicas.
24
2.3 MICROCONTROLADORES.
25
2.3.1 PIC´s
25
2.3.2 PIC 16F877A
26
2.3.2.1 Características del PIC 16F877A.
26
2.4 TIPOS DE COMUNICACION.
39
2.4.1 Comunicación serial.
39
2.4.2 Tipos de comunicación serial.
40
Capítulo III. LENGUAJES DE PROGRAMACION y LabVIEW. 41
3.1 TIPOS DE LENGUAJE DE PROGRAMACION.
42
3.2 EVOLUCION DE LOS LENGUAJES DE PROGRAMACION. 45
3.2.1 Niveles de lenguajes de programación. 49
3.3 LabVIEW.
51
3.3.1 Aplicación de simulación en LabVIEW.
65
3.3.2 Aplicación de comunicación serial “ECHO”. 76
3
Capítulo IV. DESARROLLO DE LA METODOLOGIA PARA LA DQUISICION DE DATOS DIGITALES Y ANALOGICOS CON EL SOFTWARE LabVIEW POR MEDIO DE COMUNICACIÓN SERIAL RS-232. 94
4.1 PLANTEAMIENTO DE LA APLICACIÓN.
95
4.1.1 Descripción de la aplicación.
95
4.2 ELEMENTOS DE LA APLICACION.
96
4.3 ADQUISICIN DE DATOS DIGITALES Y ANALOGICOS. 98
4.3.1 Envió y transmisión de datos digitales y analógicos. 98
4.3.2 Diagrama de conexión del PIC16F877A para datos digitales y analógicos. 101
4.3.3 Diagrama de conexión del acoplamiento de señal PIC16F877A con PC. 102 4.4 HARDWARE Y SOFTWARE A UTILIZAR PARA EL DESARROLLO DE LA APLICACIÓN. 103
4.5 DESARROLLO DE LA APLICACION.
104
4.5.1 Diagrama de flujo de comunicación serial. 108 4.5.2 Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio de comunicación serial RS-232. 109
Análisis económico.
115
Conclusiones.
120
Recomendaciones.
122
Glosario.
123
Bibliografía.
126
ANEXO1 ANEXO2
ANEXO3
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
UNIDAD PROFESIONAL AZCAPOTZALCO. Objetivo general, específicos.
4
OBJETIVO GENERAL.
Desarrollar una metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por
medio de comunicación serial RS-232, para desarrollar aplicaciones a bajo costo.
OBJETIVOS ESPECIFICOS.
1.- Realizar una investigación sobre metodologías, sistemas duros, sistemas suaves, fundamentos de
electrónica, microcontroladores, comunicación serial y LabVIEW.
2.- Analizar y seleccionar información para el desarrollo de la metodología para la adquisición de datos
digitales y analógicos con el software LabVIEW por medio de comunicación serial RS-232.
3.- Desarrollar una metodología para la adquisición de datos digitales y analógicos con el software LabVIEW
por medio de comunicación serial RS-232.
4.- Desarrollar una aplicación de la metodología para la adquisición de datos digitales y analógicos con el
software LabVIEW por medio de comunicación serial RS-232.
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
UNIDAD PROFESIONAL AZCAPOTZALCO. Justificación.
5
JUSTIFICACION.
En la actualidad los procesos industriales son más exigentes y rigurosos, debido a estas características las
HMI deben de ser más detalladas y amigables con el usuario, los gráficos de control son requeridos más
eficientes y eficaces, la codificación o lógica de programación sumamente exacta y precisa, por estas
razones se necesitan de herramientas potentes tanto en los gráficos de control como en el entorno de
desarrollo y procesamiento de datos, estas características se pueden cumplir con una amplia gama de
productos, sin embargo LabVIEW de National Instruments es una herramienta que cubre las características
más exigentes y complejas para desarrollar aplicaciones SCADA (supervisión, control y adquisición de
datos) que nos brinden procesos precisos, eficientes y eficaces.
Debido a las características de esta herramienta de desarrollo los cursos y la información con la que se
cuenta es bastante diversa y cara, sin olvidar las herramientas en Hardware de National Instruments, es por
esto que surge la necesidad de crear una metodología para la adquisición de datos digitales y analógicos
con la cual podamos implementar herramientas, Hardware, creadas por nosotros mismos; las cuales tengan
las características antes mencionadas asiéndolas más accesibles económicamente y amigables para el
desarrollador y el usuario.
Usando el puerto de comunicación serial RS-232 y un microcontrolador los cuales son de bajo costo y más
generales en el uso tanto profesional y académico, podemos realizar la instrumentación necesaria para
obtener datos digitales y analógicos; usando el Trial del Software de National Instruments LabVIEW
podemos desarrollar la aplicación correspondiente, juntando estas herramientas podemos cumplir con las
características mencionadas.
6
“ESTUDIO DEL ESTADO DEL ARTE”
Administrator
INSTITUTO POLITECNICO NACIONAL
[Seleccionar fecha]
CAPITULO I
Capítulo I.- Estudio del estado del arte. Sistemas duros y sistemas suaves.
7
1.1 SISTEMAS DUROS Y SISTEMAS SUAVES.
Checkland señala que los sistemas “duros” (“hard” systems) tienen una manifestación concreta en la
realidad. Los sistemas “blandos” (“soft” systems) son conceptuales en vez de concretos, refiriéndose a los
modelos conceptuales que se construyen en la Metodología de Sistemas Suaves.
Reproducimos un texto de (Checkland 1980) sobre sistemas duros y sistemas suaves:
“… lo segundo implica el desarrollo práctico del pensamiento de sistemas mediante la aplicación de este
enfoque en la solución de problemas en el mundo real; esto último involucra el trabajo desarrollando en lo
que se denomina sistemas „duros‟ („hard systems) – aquellos que tienen una manifestación „concreta‟ en la
realidad. También compete a esta segunda distinción……………. los trabajos desarrollados en lo que se
denomina sistemas ‟suaves‟ (‟soft‟ systems), sistemas que son conceptuales en vez de concretos”
Sin embargo, es más adecuado hablar de situaciones “suaves” y “duras”, como lo hace (Hitchins 1992) quien
indica define los términos: “Hard. Clearly defined or definable and with evident purpose. (Duro. Claramente
definido o definible y con un propósito evidente)”; “Soft. Complex, poorly defined, and without clear singular
purpose. (Suave. Complejo, pobremente definido y sin un claro y único propósito)”.
Entiéndase como situación al conjunto de factores o circunstancias que afectan a alguien o algo en un
determinado momento
Extracción del artículo: La diferencia entre sistemas duros y suaves hecho por J Villacriz
Fuentes consultadas:
- (Checkland 1980) Checkland, Peter. “The System Movement and the „Failure‟ of
Management Science”. Cybernetics and Systems: An International Journal, 11. 1980.
- (Hitchins 1992). Hitchins, Derek. Putting Systems to Work. John Wiley & Sons,
Chichester, England. 1992
Capítulo I.- Estudio del estado del arte. Sistemas duros.
8
1.1.1 Sistemas duros.
Son problemáticas bien definidas en donde los participantes están de acuerdo en la solución y coinciden en
la definición del mismo, digamos el camino de solución, situaciones concretas en las cuales tenemos claro el
¿Qué? Y nosotros definiremos el ¿Cómo?; son sistemáticas y totalmente reales, referimos reales al hecho
de que las variables son físicas y la solución también; El resultado que arroja este tipo de sistemas es la
recomendación exacta o el producto.
Un ejemplo claro de este tipo de sistemas seria un accionamiento de un motor, este sería el ¿Qué?
El cómo se definiría dependiendo de las restricciones del sistema y del tipo de normatividad al cual se
requiera adaptar el motor, ya sea para la industria alimenticia, metal-mecánica u otra, otra característica
seria el tipo de alimentación y potencia; es de notar que estas variables se encuentran explicitas y definidas
por la técnica y la ingeniería a implementar.
Los problemas que presentan estos sistemas siempre tienen una solución fiable y exacta, debido a que
implementan variables medibles como lo son: cuantitativas, cualitativas y determinantes; esto nos indica que
podemos emplear métodos o sistemas de investigación científicos para encontrar la respuesta al problema.
Estos métodos ya están comprobados por el hombre y empleados en muchas otras problemáticas, de esta
manera las respuestas son conocidas y calculadas por ciencias exactas como las matemáticas.
Las tareas que se resuelven en este tipo de sistemas son cíclicas y nunca cambian por factores externos al
sistema es decir; el sistema estará calculado exacto a la solución y solo lo puede variar el creador del mismo
si es que se necesita o se amplia, así mismo podemos comprobar el sistema midiendo los factores que lo
contemplan, esta acción siempre nos causara un efecto el cual debemos tener contemplado si es que
tenemos la solución correcta del sistema, al tener un sistema duro todas las soluciones o cálculos que se
tengan deben de coincidir ya que el sistema contiene las mismas variables y procedimientos de solución
esto comprueba el hecho de que el sistema sea duro y no suave.
Estas soluciones se encuentran más orientadas a la parte tecnológica que a la parte social debido a que el
hombre o lo sociedad no se involucran en el proceso, sin embargo son parte fundamental del desarrollo, esta
es una evidencia clara cuando el sistema es duro y no suave, también se toma en cuenta el método más
corto, simple, optimo y económicamente barato, podemos relacionar la solución del método basándonos en
las características básicas de la solución con lo cual tenemos la posibilidad de elegir numerosas variables
que nos ayuden a reducir cualquiera de nuestras características básicas de solución esto nos sería bastante
tedioso en una solución a un sistema suave debido a que no podemos pasar por alto las variables del
carácter humano y las posibles ramificaciones que arrojan.
Capítulo I.- Estudio del estado del arte. Sistemas suaves.
9
1.1.2 Sistemas suaves.
Son problemáticas las cuales tienen diferentes variables, no están definidas, e interactúan con la mano
humana la cual torna difícil e inexacta la problemática, en este tipo de sistemas la primera pregunta a definir
es el ¿Qué?; más que un tema concreto es conceptual, y no busca solucionar el sistema sino mejorar la
situación; el resultado del sistema es un proceso de aprendizaje o una mejora a la situación.
El autor Peter Cleckland tiene una metodología para resolver este tipo de sistemas la cual consta de 7
estadios; estadios abstractos y estadios reales, los estadios reales son del 1-3 y del 5-7 y los abstractos son
entre el 3 y el 4 son abstractos ya que son pretensiones e intuiciones de los desarrolladores del sistema.
Estadio 1.- Situación no estructurada: se reúne toda la información disponible
Estadio 2.- Situación expresada: un grafico para aclarar los puntos clave
Estadio3.- Se identifican sistemas relevantes y se elaboran definiciones raíces mediante CATWOE
C= cliente, cliente o beneficiario.
A= actor.
T= transformación de entrada en salida.
W= weltanschauung visión del mundo o punto de vista que da origen a las definiciones.
0= propietario, tiene autoridad para detener la transformación.
E= Restricciones, limitaciones y restricciones por fuentes externas.
Estadio4.- Se elaboran modelos conceptuales para las definiciones, llamado modelo de sistema formal, se
definen temas relevantes mediante definiciones raíces.
Estadio5.- Deben de salir las diferencias entre los modelos y lo actual.
Estadio6.- Se identifican los cambios factibles deseados.
Estadio7.- Se toma acción para una mejora de la situación problema.
Una vez llegando al paso siete se realiza un ciclo cerrado pasando del estadio 7 al 1 esto nos brindara una
visión cada vez más cerrada de la problemática y un objetivo más claro.
Peter Checkland desarrollo la SSM en la universidad de Lancaster
Los sistemas suaves no pueden ser solucionados por ciencias exactas debido a que dependen del criterio u
argumentos del equipo de trabajo que lo esté desarrollando, también se agrega que la solución depende de
las circunstancias que se den lo cual torna bastante inestable una solución y solo podemos reunir o crear
criterios para ayudarnos a implementar un camino muy general para la solución o una guía para la misma.
Un ejemplo claro de un sistema suave sería: crear una solución a una compra de una casa, las variables
tienden a infinito debido a que se involucran gustos de cada ser, situaciones de desarrollo inexactas, culturas
y aptitudes así como actitudes de los vecinos, estatus sociales, etc. Esta lista se tornar muy extensa y no
llegaríamos a una conclusión solo tendríamos una serie de variables a considerar, lo que se podría hacer
Capítulo I.- Estudio del estado del arte. Sistemas suaves.
10
seria una guía para un determinado estatus social con ciertas actitudes y tendencias sociales en las cuales
nosotros mismos estamos divagando aun contando con un extenso y basto concentrado de información, ya
que la decisión final no es de nosotros, solo daremos una guía para un determinado y definido tipo de
situaciones.
La palabra Sistema en las situaciones suaves, según Checklan, son solo la vía a conseguir métodos los
cuales no brinden diferentes ideas y pasos los cuales nos faciliten la solución o nos brinden una idea más
clara para entender el camino a ella, debemos de tener en cuenta que la solución que se obtiene debe de
ser basada en los hechos con los que se cuenta y no en la perspectiva del desarrollador, este a la vez debe
ser conciso y objetivo con lo que debe de realizar no con sus ideales ni gustos, ya que las variables no
conciernen a él o a ellos, solo serán creadores basados en la información con la que se cuente.
Capítulo I.- Estudio del estado del arte. Definición de metodología.
11
1.2 METODOLOGIA.
1.2.1 Definición de metodología.
Metodología es una palabra compuesta por tres vocablos; metà (más allá), odòs (camino) y logos (estudio)
este concepto hace mención a los métodos de investigación que se emplean para obtener ciertos objetivos
en una ciencia; sin embargo es de notar que se debe de definir la palabra método: el cual nos indica el
camino a seguir para obtener los objetivos; metodología: es el estudio del método; de estas 2 definiciones
nos deriva una más la cual es metodólogo: este aporta nuevas estrategias para aumentar el conocimiento ya
adquirido.
La metodología brinda la sistematización para llevar acabo metas; en este caso nos brinda una guía para
poder desarrollar aplicaciones y bases para emplear diferentes implementaciones basadas en esta
metodología, digamos que tenemos la técnica y le daremos diferentes objetivos mediante las necesidades
de cada percepción.
1.2.2 Tipos de metodologías.
Muchos definen 2 clases de métodos los cuales se adhieren a su clasificación en la medida de su solución lo
cual nos lleva a los métodos del tipo empíricos y a los del tipo lógico por ende los métodos del tipo lógico se
resuelven empleando pensamientos analíticos, deductivos y de síntesis; mientras que los del tipo empírico
se basan en la experiencia, experimentación y observación del científico.
Método lógico deductivo.
En este se parte de datos generales son aceptados como validos para así llegar a una conclusión de tipo
particular, se parte de una ley o fenómeno comprobado para poder obtener un juicio mas particular
enfocado al fenómeno a deducir en el cual las matemáticas son el camino más lógico.
Método deductivo-directo o conclusión inmediata.
Se parte de un solo origen el cual nos lleva a una generalidad la cual es exclusiva del origen y directa.
Método deductivo-indirecto o conclusión mediata-formal.
Se obtienen de 2 o más argumentos los cuales proponen nos lleven a un tercero y a su vez definan una
particularidad de este.
Método hipotético deductivo.
Se generan conclusiones a partir de situaciones o de leyes, las cuales nos llevan a definir otras que se
puedan demostrar por medio de experimentos.
Capítulo I.- Estudio del estado del arte. Tipos de metodología.
12
Método lógico inductivo.
Por medio de numerosos factores se toman decisiones o se crean hipótesis, de estas se tienen dos
tendencias las cuales pueden ser Inducción-completa o inducción-incompleta; la inducción-completa está
basada en un número conocido de argumentos y se toma la totalidad de estos para crear una solución; la
inducción-indirecta solo colecta un muestre de los datos obtenidos debido a que no se sabe con exactitud la
totalidad.
Método de concordancia.
Se encarga de enfatizar las similitudes entre diferentes fenómenos con lo cual deduce la causa que los
genera.
Método de diferencia.
Se reúnen varios argumentos y en ellos se busca el elemento que hace falta para evitar su creación.
Método sintético.
Se realiza un análisis de hechos precisos para poder obtener una causa probable.
Método analítico.
Se procede de varios experimentos los cuales en base a sus cualidades y composiciones anatómicas nos
ayudan para evidenciar nuevas teorías.
Métodos Empíricos.
Observación científica.
El investigador, analiza el fenómeno sin perturbaciones externas, se conoce el objeto y el problema.
La experimentación científica.
Mediante este método el investigador altera y genera modelos para poder comprobar lo ya observado,
pudiendo establecer una teoría.
La medición.
Por medio de este se pueden obtener magnitudes y cualidades de cualquier objeto físico a el cual se le
atribuirán medidas numéricas, estas deben de estar bien estructuradas en cuanto al sistema que se rige el
aparato de medición, quien la va medir y los resultados obtenidos.
El método científico: que es el camino que planea o bien la estrategia que se sigue para descubrir las
propiedades y características varias del objeto de el estudio.
Capítulo I.- Estudio del estado del arte. Tipos de metodología.
13
Francis Bacon describe el método científico en 6 pasos los cuales se muestran a continuación:
1. Observación: Observar es aplicar atentamente los sentidos a un objeto o a un fenómeno, para
estudiarlos tal como se presentan en realidad, puede ser ocasional o causalmente.
2. Inducción: La acción y efecto de extraer, a partir de determinadas observaciones o experiencias
particulares, el principio particular de cada una de ellas.
3. Hipótesis: Planteamiento mediante la observación siguiendo las normas establecidas por el método
científico.
4. Probar la hipótesis por experimentación.
5. Demostración o refutación (antítesis) de la hipótesis.
6. Tesis o teoría científica (conclusiones).
Fig.1.1 Modelo simplificado de las etapas del método científico.
14
“FUNDAMENTOS DE ELECTRONICA
Y MICROCONTROLADORES.”
CAPITULO II
Capítulo II.- Fundamentos de electrónica y microcontroladores. Historia de la electrónica.
15
2.1 ELECTRONICA BASICA.
2.1.1 Historia de la electrónica.
La electrónica tiene tres momentos clave los cuales son: el desarrollo de la válvula de vacío, el transistor y la
invención del circuito integrado.
Thomas Alva Edison creador del efecto Edison descubre que los electrones fluyen entre dos electrodos de
metal atreves del vacío en el año 1883.
John Fleming se basa en los experimentos de Edison para inventar su tubo electrónico de dos elementos
llamado Diodo.
Lee De Forest inventa el tubo de tres elementos llamado tríodo en el año 1906 basándose en sus colegas.
Sus principales aplicaciones de estos inventos se dan en las comunicaciones, en inventos como radio
telegráfica, radio telefonía. En 1918 es Edwin Armstrog quien inventa el receptor llamado superheterodino el
cual nos permite seleccionar entre diferentes señales, también invento la modulación en frecuencia en el año
1953, cabe resaltar que no invento el Am ya que en esas épocas ya se tenía la modulación en amplitud o
AM.
En los inicios de las computadoras se debía de contar con grandes espacios para poder tener una, esto se
atribuye a que estaban constituidas por bulbos, los ingenieros John Bardeen, Walter Brattain y William
Shockley en el año 1947 inventan el transistor; este componente actúa con los mismos principios de
funcionamiento que el tubo de vacio el cual es de menor tamaño, consume menor potencia, pesa menos, es
más confiable y su producción se da a un menor costo.
En 1952 Geoffrey W. A. Dummer en los 50´s expone la idea de los circuitos integrados bajo la siguiente
base, unir diodos y transistores en un solo componente.
La electrónica es una especialización de la ingeniería y una rama de la física la cual se enfoca en la
conducción, así como el control del flujo de todas las partículas cargadas eléctricamente.
Para entender de manera simple la electrónica se tendrán que definir 3 principales conceptos los cuales son:
corriente, tensión y resistencia; la corriente eléctrica es generada cuando muchos electrones se mueven a la
vez en la misma dirección para generar un trabajo.
Tensión: es la fuerza con la que son desplazados los electrones entre dos puntos.
Resistencia: es la oposición al flujo de electrones.
Ahora que se tienen estos tres conceptos se define una formula llamada la Ley de ohm la cual refiere el
siguiente enunciado, la tensión es igual al producto de la corriente y la resistencia, lo cual podemos expresar
de forma matemática con la siguiente fórmula: V .
Capítulo II.- Fundamentos de electrónica y microcontroladores. Componentes básicos de la electrónica.
16
Debemos saber que existen tres tipos de materiales los cuales se clasifican dependiendo su nivel de
conductividad en: conductores, semiconductores y aislantes; conductores son aquellos materiales los cuales
tienen poca resistencia al flujo de electrones o mínima por así decirlo, semiconductores son aquellos que
tienen más oposición al flujo de electrones pero se les sigue considerando con un buen flujo, aislantes son
aquellos elementos los cuales nos brindan resistencia al flujo de electrones.
2.1.2 Componentes básicos de la electrónica.
Existen dos clases de materiales los cuales se nombrar por su tipo de material, estos pueden ser del tipo P
y tipo N, en esta idea se consolidan la mayoría de los componentes electrónicos respecto a su conducción
de electrones.
Diodo.
El diodo es un elemento que solo permite el flujo de electrones en una sola dirección y se le puede conectar
de diferentes formas; Diodo no polarizado produce una barrera de potencial en su material ocupando los
huecos con dipolos, Diodo en polarización directa permite el flujo de corriente cuando la tensión rompe la
barrera de saturación permitiendo el flujo de electrones, Diodo en polarización inversa debido al efecto de la
tensión se crea una zona de huecos más grande entre los materiales del diodo lo cual impide el flujo de
electrones.
Fig. 2.1 Símbolo del diodo
Fig. 2.2 Curva característica del Diodo; conectado en polarización directa.
Ánodo Cátodo
Capítulo II.- Fundamentos de electrónica y microcontroladores. Componentes básicos de la electrónica.
17
Resistor.
Se usa para realizar una resistencia al flujo de electrones en un circuito, su valor dependerá de las
necesidades que requieran la corriente o el voltaje, así mismo su valor es determinado por un código de
colores.
Fig. 2.3 Símbolo del resistor.
El código de colores indica el valor de la resistencia, sin embargo existe una regla para saber cómo leerlas,
en la figura de abajo se muestra la representación grafica de una resistencia en su forma física y nos indica
cómo obtener su valor mediante el código de colores.
Tabla. 2.1 Código de colores.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Componentes básicos de la electrónica.
18
Capacitor (condensador).
Este elemento se encuentra construido por 2 tipos de materiales que conducen electrones sin embargo por
la mitad tienen una capa de aislante el cual impide que ambas cargas contengan el mismo valor, mientras no
esté en funcionamiento no tienen contacto por lo consiguiente no conduce electrones.
Fig. 2.4 Símbolo de un capacitor.
La mayoría de los capacitores tienen unidades dadas en microfaradios, picofaradios y nano faradios
Debido a que un faradio es bastante grande, los condensadores o capacitores de mayor capacidad están
hechos de carbón activado y se utilizan para otro tipo de aplicaciones como prototipos de automóviles
eléctricos.
Las características de los capacitores son: capacidad se mide en faradios, tensión de trabajo este punto en
particular es de suma importancia debido a que en caso de sobre pasar este límite nuestro elemento de
trabajo puede explotar o quedar perforado, tolerancia indica el porcentaje que se tiene entre lo que nos
indica el elemento físico y la capacidad real del mismo y polaridad indica la forma correcta de inducir voltaje
a cada terminal que lo conforma es decir positivo con positivo y negativo con negativo.
Existen 7 tipos diferentes de capacitores, por lo regular varían dependiendo de su forma física y
componentes químicos que lo forman; electrolíticos: el dieléctrico es un papel impregnado en electrolito
siempre indica polaridad y una capacidad mayor a 1 microfaradio, electrolíticos de Tántalo: emplean una
película muy fina de oxido de tantalio amorfo tienen polaridad y capacidad mayor a un microfaradio, poliéster
metalizado: son dos laminas de policarbonato recubierto por un deposito metálico su capacidad es inferior a
un microfaradio, de poliéster: su capacidad máxima es de 470 nanofaradios, similares a los de poliéster en
estructura sin embargo también pueden tener código de colores por lo que reciben el nombre de
condensadores de bandera, de poliéster tubular: mismas características que los dos anteriores diferente
forma física, su apariencia es redonda y alargada, cerámico de lenteja o de disco: son compuestos por
cerámicos y su valor no alcanza un microfaradio, cerámico de tubo: obsoletos debido a que se calientan
mucho y con esto varían sus capacidades.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Componentes básicos de la electrónica.
19
Transistor.
La palabra en si es un derivativo del idioma ingles transfer resistor el cual traducido es resistencia de
transferencia este dispositivo tiene 4 formas diferentes de uso sin embargo su forma física es el mismo
fundamento cuenta con 3 diferentes zonas de saturación y dependiendo de su material serán las
características que tenga y su conexión ya se PNP o NPN, ahora indiferentemente si es PNP o NPN cuenta
con 3 pines los cuales llevan los siguientes nombres Emisor, Base y Colector.
Fig. 2.5 Símbolo del transistor; a) NPN; b) PNP.
De estas tres partes que conforman al Transistor se explicaran una a una:
Emisor se encuentra altamente dopado debido a que su función es emitir o inyectar electrones a la base
Base no se encuentra saturada ya que su función principal es la de dejar fluir la mayor cantidad de
electrones como pueda al colector.
Colector: su función principal es la de colectar la mayor cantidad de electrones provenientes de la base.
El Emisor es la parte más dopada de las que conforman este componente, la base en cambio solo permite
que el colector obtenga o colecte, como su nombre lo indica, la mayor cantidad de electrones posibles,
dependiendo el tipo de transistor es el valor que puede aumentar o corregir el voltaje, es más común
encontrar el uso de este dispositivo para la corrección o aumento de voltaje sin embargo también lo
podemos emplear para aumentar la corriente, como se hace esto, conectándolo al inverso de la figura de
arriba.- A que se debe esto: el emisor es la zona con mayor cantidad de electrones, y a que la corriente total
del transistor es la suma de estas.
a) NPN b) PNP
Capítulo II.- Fundamentos de electrónica y microcontroladores. Componentes básicos de la electrónica.
20
MAX 232.
Este dispositivo nos ayuda a acoplar las señales entre el microcontrolador y el PC, debido a que el
microcontrolador envía datos del orden de 4.5V el MAX 232 los amplifica a 10V, con lo cual nos permite la
comunicación entre estos dispositivos sin problemas.
Este dispositivo se encuentra formado por cuatro conversores de niveles TTL al bus estándar RS232 y
viceversa para la comunicación serial, de estos cuatro conversores 2 son para la conversión RS232 a TTL y
el otro par para la conversión TTL a RS232.
Los niveles TTL o transistor-transistor- lógico, son señales en las cuales intervienen transistores bipolares
los cuales aumentan o disminuyen el voltaje de entrada o salida.
Para que este dispositivo funcione correctamente debemos de conectar unos capacitores, los cuales
dependiendo de su valor será la capacidad de transmisión o recepción, en este caso si nosotros empleamos
capacitores de 1 microfaradio nos permiten velocidades de 120Kps y de 100 nano faradios 64Kps.Las
conexiones que se tienen que realizar se muestran en la siguiente figura.
Vcc: de 4,5v a 5,5v., consumo: 4 mA (15 mA con carga a la salida de 3 Kohm), entradas compatibles TTL y
CMOS, tensión de entrada máxima RS232: +/- 30v, tensión de Salida RS232: +/- 15v.
Fig. 2.6 Diagrama de conexión del MAX 232.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Señales digitales y analógicos.
21
2.2 SEÑALES DIGITALES Y ANALOGICAS.
Se tienen 2 tipos de variables a controlar en la industria las cuales son señales digitales y señales
analógicas, las señales analógicas son aquellas que pueden tender a un número infinito y deben de ser
interpretadas mediante un rango de comparación ya sea de voltaje o de corriente también se explica cómo:
la naturaleza es analógica lo cual nos indica que todo intento representativo de ella se torna en una señal
analógica para la industria, las señales digitales son más sencillas y a ventaja de las señales analógicas no
tienden a tener fluctuaciones en su medición solo emitirá un estado ya sea un 0 o un 1,representada en un
código binario, cerrado o abierto. Sin embargo no quiere decir que los estados sean tan simples pueden ser
tan complejos como los analógicos o mas debido a que muchos códigos y representación son ejemplificadas
mediante concentraciones de codificación, una codificación es la representación de una dato o elemento a el
entendimiento de la maquina, el cual se da en cifras binarias, estas comprenden agrupaciones como:
1101010001110 y todas las que se desprenden de esta tipo.
En la industria podemos trabajar con señales digitales y analógicas de entrada, señales analógicas y
digitales de salida como lo pueden ser válvulas de flujo, actuadores lineales, motores, variadores de
frecuencia, válvulas de paso, intercambiadores de calor, compuertas de paso, o podemos estar midiendo
todos los elementos mencionados, la finalidad de tener control sobre el proceso de producción contando con
instrumentos sofisticados de medición y actuadores, es estar dentro de lo posible de tener un control preciso
de nuestro proceso.
Fig. 2.7 sensores y actuadores industriales.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Señales digitales.
22
2.2.1 Señales digitales.
Los valores Digitales solo pueden tener dos estados y esto se representa de la siguiente manera; por
ejemplo un interruptor de hogar solo puede encender o apagar la luminaria, una bomba de agua solo se
enciende o se apaga, sin embargo como ya se menciono en las señales analógicas también se puede variar
su intensidad con lo cual podemos tener una señal analógica, los tipos de señal digital tienen ciertas reglas
como el voltaje al cual debe de ser arrancado o encendido esto es un punto fundamental para la elección de
actuadores, indicadores, controles, etc.
Las señales digitales también pueden tener diferentes magnitudes y escalas, entre ellas, con lo cual
podemos definir o dibujar datos para determinar una tendencia a estos tipos de señales no son continuos
pero si varían como se muestra a continuación.
Fig.2.9 representación grafica de una señal digital.
Como se visualiza en la figura anterior el 1 y 0 se va escalando en una sola línea figurando la señal
analógica sin embargo lo que está haciendo es dar 1 y 0 en diferentes magnitudes, y lo que se está
registrando son los estados altos de una señal con diferente magnitud, al hablar de una señal digita
debemos de preguntarnos si podemos convertirlas a señales analógicas y esto se puede realizar por medio
de las siguientes técnicas como son:
Desplazamiento de amplitud:
Podemos definir los estado 1 y 0 mediante dos curvas las cuales pueden tener el siguiente formato s (t)=A x
Cos (2 x pi x f x t) esta ecuación representa el 1 y si igualamos la misma ecuación con 0 representaría el 0.
Desplazamiento de Frecuencia:
Se representa por 2 frecuencias cercanas a la original.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Señales digitales.
23
Desplazamiento de Fase:
El uno se representa con una fase contraria a la portadora y el cero con una igual a la portadora.
Ahora si bien se desea cambiar una señal digital a una analógica se deberá representar en decimales o bien
haciendo una conversión de binario a decimal con lo cual podemos realizar valores crecientes y
descendientes; es decir si tenemos una barra de led´s con 3 estados los podemos definir con números
binarios teniendo el siguiente orden 111 se cambia a decimal tendríamos un valor de 7; con lo cual
tendríamos 7 diferentes combinaciones.
Al hablar de digital y binario no quiere decir en lo absoluto lo mismo ya que el código binario solo es un
contexto de lo digital, existen otro tipo de conversiones a las cuales se puede cambiar el código binario como
lo es decimal, hexadecimal, octal, estas por lo que se demuestra no tienen nada que ver con lo digital en
cuanto a señal simplemente es un lenguaje que se convierte o se transcribe al entendimiento del ordenador.
A continuación se muestra una tabla de conversiones en la cual se puede observar claramente como el valor
binario, decimal, hexadecimal, son valores para el entendimiento de cierto proceso o dispositivo.
Tabla 2.2 conversiones entre sistemas de numeración.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Señales analógicas.
24
2.2.2 Señales analógicas.
Los tipos de señales analógicas comunes son: la intensidad, presión, tensión, temperatura, mecánica y la
potencia, estos rangos son definidos mediante la amplitud y el tiempo, serán interpretados de acuerdo al
instrumento de medición con el cual se realizara la comparación ya sean respuesta de voltaje (+/-10V, +/-
24V, 0-12V) o de corriente (4-20mA); en caso de hablar de un termómetro que mide de -12 a 50 grados
centígrados se interpretara de la siguiente manera: el valor mínimo del termómetro estará interpretado por
4mA y el valor máximo por 20mA los valores intermedios serán interpolados dependiendo que tan amplio y
preciso sea el rango del instrumento de medición.
Fig. 2.8 representación grafica de una señal analógica.
Dependiendo de la variable a interpretar podemos definir los parámetros mínimos y máximos con los cuales
trabaja nuestra medición ya sean de corriente o voltaje, y estos varearan dependiendo a la continuidad con
la que nuestra señal de referencia este cambiando y la velocidad respecto al tiempo, así mismo nosotros
decidiremos la precisión con la que deseamos trabajar.
Ya que hablamos de la interpretación del valor analógico a través de un valor de voltaje o corriente
definiremos la palabra que describe este fenómeno la cual es Digitalización; es decir la conversión
analógico digital, así mismo existe una definición que describe los valores analógicos como infinitos, cuando
nosotros digitalizamos una señal definimos el numero de valores que le daremos, esto depende de la
resolución que deseamos o la precisión con la deseamos captar la señal. ¿Para qué necesitamos una señal
más precisa? u obtener los cambios mínimos de un sistema o de una señal, cuando tenemos un sistema de
lazo cerrado la más mínima variación es de suma importancia para poder calcular la respuesta del sistema.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Microcontroladores, PIC`s.
25
2.3 MICROCONTROLADORES.
Los periféricos son aquellos elementos que brindan una función a la unidad de procesamiento central ya sea
de entrada o de salida, no todos los periféricos son esenciales sin embargo algunos pueden tornarse
fundamentales por el tipo de aplicación que se le da, los periféricos se pueden dividir en cinco categorías
diferentes como lo son:
Periféricos de entrada: son aquellos que colectan, procesan y perciben información, la cual es enviada al la
unidad de procesamiento central para realizar una acción o almacenamiento pertinente según su lógica de
programación.
Periféricos de salida: son aquellos que realizan una acción la cual puede ser: mecánica y visual dentro de lo
visual se incluya toda acción para alertar, informar contextualmente, visualmente o ilustrativamente al
usuario; dentro de lo mecánico se incluye cualquier acción que realice un trabajo.
Periféricos de entrada y salida: como ya se ha visto anteriormente por separado cada término estos
dispositivos realizan la conjunción de los 2 anteriores y en su mayoría son unidades de almacenamiento
puesto que puedes leer y escribir sobre estos.
Periféricos de almacenamiento: simplemente almacenan información por un tiempo indeterminado.
Periféricos de comunicación: son dispositivos que transmiten y reciben información hacia el ordenador ya
sea para trabajar en conjunto o para enviar y recibir datos por separado.
2.3.1 PIC´s
Son encapsulados usados para la programación; cuentan con un sistema mínimo, memoria para encriptar un
programa y datos, conversores analógicos y digital, periféricos de entrada o salida, módulos de
comunicación, estos elementos los hace mejores que los microprocesadores sin embargo son más cerrados
ya que a los microprocesadores se les pueden agregar dispositivos externos para realizar un conjunto más
especifico y dedicado, los microcontroladores cuentan con un set de instrucciones reducido lo cual nos
servirá para la implementación en nuestro proyecto.
Se pueden programar de numerosas maneras sin embargo las más comunes son C, lenguaje ensamblador y
Basic; así como la combinación de estos lenguajes.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
26
La diversidad de PIC´s depende a sus características y potencia, con lo cual podemos elegir dependiendo de
las principales funciones con las que deseamos contar, el presupuesto y la potencia, también se debe tomar
en cuenta los recursos de hardware para la programación de este.
Debido a esto nosotros hablaremos del PIC 16F877A ya que se cuenta con el programador y el PIC.
2.3.2 PIC 16F877A.
El PIC será la traducción entre nuestros componentes de entrada, salida y nuestra PC, algunas de las
características principales del PIC 16F877A es la comunicación serial, la cual será implementada en nuestro
proyecto como acoplador de señales, ya que no contamos con los recursos para emplear componentes de
National Instruments.
2.3.2.1 Características del PIC 16F877A.
Para iniciar la familiarización con este componente procederemos a mencionar sus principales
características:
Procesador de arquitectura RISC avanzada.
Juego de 35 instrucciones con 14 bits de longitud. Todas ellas se ejecutan en un ciclo de instrucción
menos las de salto que tardan 2.
Frecuencia de 20 MHz
Hasta 8K palabras de 14 bits para la memoria de código, tipo flash.
Hasta 368 bytes de memoria de datos RAM.
Hasta 256 bytes de memoria de datos EEPROM.
Hasta 14 fuentes de interrupción internas y externas.
Pila con 8 niveles.
Modos de direccionamiento directo, indirecto y relativo.
Perro guardián (WDT).
Código de protección programable.
Modo Sleep de bajo consumo.
Programación serie en circuito con 2 pines.
Voltaje de alimentación comprendido entre 2 y 5.5 voltios.
Bajo consumo (menos de 2 mA a 5 V y 5 MHz).
Ahora se describirá por separado cada punto de sus principales características.
Procesador de arquitectura RISC (Reduced Instruction Set Computer) avanzada.
Se caracteriza por tener un número reducido de instrucciones y que estas se ejecutan en la misma cantidad
de tiempo, tienen una arquitectura Harvard la cual trabaja las zonas de memoria de programa y datos en
forma separada, posee unidades que trabajan en forma paralelas conectada por tuberías a continuación se
muestra un bloque descriptivo de la arquitectura tipo Harvard.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
27
Fig.2.10 Arquitectura Harvard de un microcontrolador.
Juego de 35 instrucciones con 14 bits de longitud. Todas ellas se ejecutan en un ciclo de instrucción menos
las de salto que tardan 2.
Tabla. 2.3 Juego de instrucciones del Pic16F877A.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
28
Tabla. 2.3 Juego de instrucciones del Pic16F877A. (Continuación)
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
29
Tabla. 2.3 Juego de instrucciones del Pic16F877A. (Continuación)
Frecuencia de 20 MHz
El Cristal u Oscilador genera pulsos a cada pulso se le llama cuadratura y se representa con la letra Q, estos
pulsos van de Q1-Q4 y a esta etapa se le llama ciclo lo cual indica que entre más rápido o más frecuencia
tenga nuestro cristal mayor será la velocidad de respuesta de este.
Hasta 8K palabras de 14 bits para la memoria de código, tipo flash.
En la siguiente figura se muestra el reparto de los 14 bits:
Fig. 2.11 Reparto de los 14 bits por instrucción de PIC16F877A.
El OPCODE especifica la instrucción a la que hace referencia, D la dirección en la que se encuentra, por
ende el lugar en donde afecta directamente la instrucción, FILE es complemento de “D” por así llamarlo.
Hasta 368 bytes de memoria de datos RAM.
Entiende todos los espacios con los que cuenta el microcontrolador y entre estos tenemos Registros de
propósito Especial y Registros de propósito General estos se derivan de sus siglas en ingles SFR, GFR; los
de función especial nos ayudan a configurar el hardware y los registros internos del microcontrolador como
los puertos TRIS; los GFR son posiciones para almacenar valores que empleemos en nuestro programa.
Hasta 256 bytes de memoria de datos EEPROM.
La memoria EEPROM nos ayuda a utilizar la memoria del microcontrolador debido a que no podemos dejar
valores dentro de esta directamente.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
30
Hasta 14 fuentes de interrupción internas y externas.
Cuando necesitamos hacer una interrupción, el microcontrolador se dirige a esta zona y busca las
instrucciones que cumplan con lo demandado.
Pila con 8 niveles.
Esto nos indica que puede tener hasta 8 Sub rutinas anidadas o encerradas.
Modos de direccionamiento directo, indirecto y relativo
Podemos direccionar las variables mediante el mismo curso del programa o podemos hacer referencia a un
sub-rutina, asimismo podemos relacionar 2 tipos de lenguaje en u mismo programa.
Perro guardián (WDT).
Evita que el programa se quede “colgado” lo cual significa que no responda o se pierda en una instrucción
evitando perder el proceso de información o la secuencia de los datos.
Código de protección programable.
Podemos evitar la lectura del programa una vez cargado, lo cual es útil para evitar su reproducción,
protegiendo los derechos de autor.
Modo Sleep de bajo consumo.
Detiene el Cristal lo cual evita el consumo de energía notablemente.
Programación serie en circuito con 2 patitas.
Podemos interconectar 2 componentes y transmitir datos entre sí.
Voltaje de alimentación comprendido entre 2 y 5.5 voltios.
Este es el valor predeterminado que tiene el componente sin embargo podemos modificarlo
programáticamente.
Bajo consumo (menos de 2 mA a 5 V y 5 MHz).
En modo SLEEP podemos reducir el consumo de voltaje y el de corriente esto es bastante útil cuando
realizamos mejoras o innovaciones a un circuito para aumentar el ciclo de vida de la batería.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
31
A continuación se muestra la disposición de pines del componente:
Fig. 2.12 Disposición de los pines del PIC 16F877A.
La descripción de cada una de las terminales de conexión de la figura anterior se muestra en la tabla a
continuación:
Tabla. 2.4 Descripción de cada Pin del PIC 16F877A.
PIN DESCRIPCION
OSC1/CLKIN(9) Entrada para el oscilador o cristal externo.
OSC2/CLKOUT (10)
Salida del oscilador. Este pin debe conectarse al cristal o resonador. En caso de usar una red RC
este pin se puede usar como tren de pulsos o reloj cuya frecuencia es 1/4 de OSC1
MCLR/VPP/ THV(1)
Este pin es el reset del microcontrolador, también se usa como entrada o pulso de grabación al
momento de programar el dispositivo.
RA0/AN0(2) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 0)
RA1/AN1(3) Similar a RA0/AN0
RA2/AN2/VREF-(4) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 2) o
entrada negativa de voltaje de referencia
RA3/AN3/VREF+(5) Puede actuar como línea digital de E/S o como entrada analógica del conversor AD (canal 3) o
entrada positiva de voltaje de referencia
RA4/T0CKI (6) Línea digital de E/S o entrada del reloj del timer 0. Salida con colector abierto
RA5/SS#/AN4(7) Línea digital de E/S, entrada analógica o selección como esclavo de la puerta serie síncrona.
RB0/INT(21) Puerto B pin 0, bidireccional. Este pin puede ser la entrada para solicitar una interrupción.
RB1(22) Puerto B pin 1, bidireccional.
RB2(23) Puerto B pin 2, bidireccional.
RB3/PGM(24) Puerto B pin 3, bidireccional o entrada del voltaje bajo para programación
RB4(25) Puerto B pin 4, bidireccional. Puede programarse como petición de interrupción cuando el pin
cambia de estado.
RB5(26) Puerto B pin 5, bidireccional. Puede programarse como petición de interrupción cuando el pin
cambia de estado.
RB6/PGC(27) Puerto B pin 6, bidireccional. Puede programarse como petición de interrupción cuando el pin
cambia de estado. En la programación serie recibe las señales de reloj.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
32
Tabla. 2.4 Descripción de cada Pin del PIC 16F877A. (Continuación)
PIN DESCRIPCION
RB7/PGD(28) Puerto B pin 7, bidireccional. Puede programarse como petición de interrupción cuando el pin
cambia de estado. En la programación serie actúa como entrada de datos
RC0/T1OSO/ T1CKI(11)
Línea digital de E/S o salida del oscilador del timer 1 o como entrada de reloj del timer 1
RC1/T1OSI/ CCP2(12)
Línea digital de E/S o entrada al oscilador del timer 1 o entrada al módulo captura 2/salida
comparación 2/ salida del PWM 2
RC2/CCP1(13) E/S digital. También puede actuar como entrada captura 1,/salida comparación 1/ salida de
PWM 1
RC3/SCK/SCL (14)
E/S digital o entrada de reloj serie síncrona /salida de los módulos SP1 e I2C.
RC4/SDI/SDA (15)
E/S digital o entrada de datos en modo SPI o I/O datos en modo I2C
RC5/SDO(16) E/S digital o salida digital en modo SPI
RC6/TX/CK(17) E/S digital o patita de transmisión de USART asíncrono o como reloj del síncrono
RC7/RX/DT(18) E/S digital o receptor del USART asíncrono o como datos en el síncrono
RD0/PSP0- RD7/PSP7 (19-22, 27-30)
Los ocho pines de esta puerta pueden actuar como E/S digitales o como líneas para la
transferencia de información en la comunicación de la puerta paralela esclava. Solo están
disponibles en los PIC 16F874/7.
RE0/RD#/AN5 (8)
E/S digital o señal de lectura para la puerta paralela esclava o entrada analógica canal 5.
RE1/WR#/AN6 (9)
E/S digital o señal de escritura para la puerta paralela esclava o entrada analógica canal 6.
RE2/CS#/AN7 E/S digital o señal de activación/desactivación de la puerta paralela esclava o entrada analógica
canal 7.
VSS(8,19) Tierra.
VDD(20,32) Fuente (5V).
Debido a que nuestro tema de interés es el modulo de comunicación Asíncrona solo se hará énfasis en este
tema.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
33
Comunicación asíncrona.
El PIC16F877A cuenta con un modulo de comunicación serial el cual puede transmitir y recibir datos, lo que
se le llama comunicación asíncrona, la comunicación síncrona es el envió o recepción de datos. Nosotros
trabajaremos con la comunicación asíncrona la cual se comunica por los pines RC6/TX Pin 6 del puerto C y
el RC7/RX Pin 7 del puerto C; la comunicación está basada en la normatividad RS-232-C la cual
emplearemos para nuestros fines, a este modulo también lo llaman USART y tiene los siguientes elementos:
Generador de Baudios.
Circuito de muestreo.
Transmisor Asíncrono.
Receptor Asíncrono.
A continuación se describen cada uno de los elementos:
Generador de Baudios.
Como ya se menciono la comunicación de este puerto es bajo la norma RS-232 la cual tiene una velocidad
estandarizada para la comunicación estos valores se encuentran grabados en la memoria del
microcontrolador y solo debemos de saber seleccionar el valor para poder establecer uno, estos valores no
se pueden seleccionar directamente debemos de realizar un pequeño calculo para saber el valor
correspondiente, a este valor se le llama “X” y está cargado en el registro SPBRG, también debemos de
tomar en cuenta otro valor el cual es el BRGH del registro TXSTA; Este valor nos indica si nuestro muestreo
será a baja velocidad o a alta velocidad, si tenemos el BRGH=1 nuestro muestreo será a alta velocidad por
el contrario si nuestro valor lo cargamos como BFGH=0 será a baja velocidad, una vez teniendo definido
este parámetro debemos de obtener el valor de la constante “K” la cual nos ayuda en la obtención de la
frecuencia de funcionamiento; teniendo estos parámetros bien definidos procedemos a calcular el valor con
la siguiente fórmula:
De estos datos nosotros contamos con la “K” la cual depende del valor de BRG si lo tenemos a 1 es de 16 y
si lo tenemos a 0 es de 64, el Fosc el cual es el valor de nuestro cristal.
También contamos con una tabla la cual establece el valor de la Frecuencia a baja y a alta velocidad:
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
34
Tabla 2.5 Velocidad baja de transmisión del PIC16F877A.
Tabla 2.6 Velocidad alta de transmisión del PIC16F877A.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
35
Podemos realizar la formula y obtener un numero o podemos colocar el valor al cual deseamos transmita
nuestro dispositivo ya que cualquiera de las tablas nos da el valor de SPBRG el cual está dado en decimal
Solo necesitaremos cargar este valor al microcontrolador entre apóstrofos y habremos seleccionado un valor
de Transmisión; es importante resaltar que debemos de tener muy en cuenta el valor de nuestro oscilador
para asegurar el funcionamiento de nuestro dispositivo.
Una vez determinada la velocidad procederemos a analizar el modo de transmisión de datos, primero se
deposita el dato en la sección TXREG, después al registro TSR el cual se encarga de enviar los datos bajo
la norma RS-232, una vez hecho esto el registro RSR los envía al registro RCREG el cual coloca a
disposición las bits para su procesamiento.
Para facilitar el entendimiento se explica la transmisión mediante un diagrama:
Fig. 2.13 Diagrama por Bloques de la transmisión del PIC16F877A.
Como se muestra en la figura anterior el TSR es el núcleo de la comunicación debido a que este elemento
es el que obtienen el dato y lo desplaza al registro TXREG, el registro TXIF se pone a 1 si este registro se
encuentra vacio, el bit TRMT nos indica cuando no tenemos bits en el registro TSR.
Para poder configurar los bits de la transmisión de deben de especificar ciertos valores en su registro los
cuales se muestran a continuación:
Tabla 2.7 Bits para Configurar la transmisión del PIC16F877A.
Su respectivo modo de configuración:
Bit 7 CSRC: bit de selección de reloj:
Modo asíncrono: no incluye
Modo síncrono
1 = Modo maestro (reloj generado internamente desde BRG)
0 = Modo esclavo (reloj generado por una fuente externa)
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
36
Bit 6 TX9: Habilita el bit 9 de transmisión:
1 = Selecciona transmisión de 9 bits
0 = Selecciona transmisión de 8 bits
Bit 5 TXEN: Activa la transmisión:
1 = Transmisión activada
0 = Transmisión desactivada
Nota: SREN/CREN anula TXEN en modo síncrono.
Bit 4 SYNC: Bit de selección del modo del USART:
1 = Modo síncrono
0 = Modo asíncrono
Bit 3 No implementado: Leído como '0'.
Bit 2 BRGH: Bit de selección de la velocidad de baudios:
Modo asíncrono:
1 = Alta velocidad
0 = Baja velocidad
Modo Síncrono:
No se usa en este modo
Bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisión:
1= TSR vacío
0 = TSR no vacío
Bit 0 TX9D: Bit 9 del dato a transmitir (puede ser el bit de paridad).
Ahora como ya se dijo tenemos la comunicación Asíncrona con lo cual procederemos a ejemplificar la
recepción una vez que ya hemos asociado la transmisión.
Fig. 2.14 Diagrama por Bloques de la recepción del PIC16F877A.
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
37
Podemos declarar que el núcleo de la recepción es el registro RSR el cual contiene la recepción de los
datos, una vez que tenemos el dato en RSR procede a enviarlos a el RCREG una vez quela transferencia
se ha completado el registro RCIF se coloca a 1 lógico lo cual indica que la transmisión a sido satisfactoria,
el bit RCREG es capaz de almacenar 2 datos y poseer un tercero en RSR, esta parte de la estructura cuenta
con alarmas de sobre escritura en caso de tener más de 3 bits en el TSR y en caso de tener un error en el
Frame se tiene el FERR, el cual no detecta el fin de la transmisión.
Para poder configurar la recepción y transmisión debemos de tomar en cuenta las siguientes tablas:
Tabla 2.8 Bits para Configurar la recepción del PIC16F877A.
Su respectivo modo de configuración
Bit 7 SPEN: Habilitación del puerto serie:
1 = Puerto serie habilitado (configures RC7/RX/DT and RC6/TX/CK pins as serial port pins)
0 = Puerto serie deshabilitado
Bit 6 RX9: Habilita el bit 9 de recepción:
1 = Selecciona recepción de 9 bits
0 = Selecciona recepción de 8 bits
Bit 5 SREN: Configura la recepción sencilla:
Modo asíncrono no incluye
Modo síncrono maestro
1 = Habilita recepción sencilla
0 = Deshabilita recepción sencilla
Modo síncrono esclavo no se utiliza
Bit 4 CREN: Configura la recepción continua:
Modo asíncrono:
1 = Habilita modo de recepción continua
0 = Deshabilita recepción continua
Modo síncrono:
1 = Habilita recepción continua hasta que el bit CREN es borrado
0 = Deshabilita recepción continua
Capítulo II.- Fundamentos de electrónica y microcontroladores. PIC 16F877A y sus características.
38
Bit 3 ADDEN: Detección de dirección:
Modo asíncrono con 9 bits (RX9 = 1):
1 =Activa la detección de dirección, activa la interrupción y descarga el buffer de recepción al activarse
RSR<8>
0 =Desactiva la detección de dirección, todos los bits son recibidos y el bit 9 puede ser utilizado como bit de
paridad
Bit 2 FERR: Bit de error de trama:
1 = Error de trama (puede ser actualizado leyendo el registro RCREG y recibir el siguiente dato válido
0 = No hay error de trama
Bit 1 OERR: Bit de error de sobre pasamiento:
1 = Error de sobre pasamiento (puede ser borrado escribiendo un 0 en el bit CREN)
0 = No hay error de sobre pasamiento
Bit 0 RX9D: Bit 9 del dato recibido (Puede ser el bit de paridad).
Una vez que conocemos las características y el modo de configuración de los registros procedemos a
realizar, según las necesidades de la aplicación, nuestro programa para poder recibir y transmitir datos por el
puerto serial, debemos de definir cuáles son las principales características de nuestro programa para poder
llevar a cabo el programa, ya que si no identificamos adecuadamente los pasos a seguir perderemos
bastante tiempo divagando.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Tipos de comunicación, comunicación serial.
39
2.4 TIPOS DE COMUNICACIÓN.
Una interfaz es la medio por el cual un usuario puede comunicarse con la maquina, PC o un equipo, esto
entiende todos los puntos de contacto entre el usuario y el dispositivo a manejar, este tipo de interfaz
entiende menús, alarmas, indicadores, controles, despliegue de datos relevantes, algunas opciones de
configuración general de la maquina entre otros; la importancia de una buena interfaz define la eficiencia de
la misma en lo que refiere a la operación, dependiendo de las herramientas que te brinde la interfaz,
respecto a sus componentes, será la optimización de la operación o funcionalidad de esta y entre mas
variables del proceso cubra la interfaz podremos entender y visualizar más eficazmente su funcionamiento.
Los gráficos de interfaz son aquellos que nos despliegan de forma asimilativa los puntos clave o en su
debida forma el proceso a controlar, en el se deberán de visualizar las principales variables o variables clave
las cuales son de mayor importancia ya que las demás estarán en conjunto con algún indicador o
controlador en su lógica de programación.
Así como se puede llamar un grafico de control como interfaz, también podemos llamar una interfaz a los
sensores que están comunicando o transmitiendo su estado a la unidad de procesamiento central, esta
señal podrá ser censada directamente a un grafico o analizada y procesada por la lógica de programación
de nuestra unidad lógica.
La comunicación entre el ordenador o unidad de procesamiento central llamada puerto serie también es una
forma de interfaz, la cual transmite bit a bit de manera secuencial y es la que utilizaremos.
2.4.1 Comunicación serial.
La comunicación serial es un protocolo de comunicación, no es directamente o particularmente un elemento
físico, la comunicación serial transmite un bit a la vez y puede alcanzar distancias prolongadas, su código de
transmisión es en código ASCII; para realizar la comunicación se utilizan 3 terminales GND tierra o
referencia, TXD transmisión, RXD recepción de datos.
Cuando la comunicación es asíncrona podemos estar enviando y recibiendo datos por las terminales ya
antes mencionadas sin embargo es necesario establecer ciertos valores o parámetros de comunicación
como son la velocidad de transmisión, bits de datos, bits de parada y paridad.
La velocidad de transmisión o Baud Rate.
Esto indica el número de bits que se transmite por segundo, se representa en baudios la equivalencia es
1segundo-1baudio, si se habla de ciclos de reloj nos indica Hz, la relación es 1-1 este valor nos indica la
frecuencia con la que se estará muestreando.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Tipos de comunicación serial.
40
Bits de datos.
Es el numero de bits que se transmite por ejemplo el código ASCII tiene un rango de 0-127 y esto representa
7 bits por paquete un paquete equivale a un byte.
Bits de parada.
Los bits de parada nos indican el fin de un paquete de datos o de la transmisión y de cierta manera es un
control para la sincronización de los ciclos de reloj.
Paridad.
Nos indica si existen errores en la transmisión de datos; puede ser impar o par esto nos indica el último
digito que se está enviando y su valor, esto permite al dispositivo receptor saber el estado de un bit.
2.4.2 Tipos de comunicación serial.
RS-232.
Estándar ANSI/EIA 232; Es el conector hallado en la PC y se utiliza para conectar periféricos e
instrumentación ya sea para un control o aplicación, a lo largo de los años se han dado numerosas mejoras
las cuales nos han brindado mayor rapidez y se ha prolongado la distancia en la comunicación por medio de
este dispositivo físico de comunicación.
Conector DB9.
Cuenta con 9 pines de los cuales nosotros solo usaremos 3 el pin 3, 2 y 5 los cuales respectivamente son
TXD transmisión de datos, RXD recepción de datos, GDN tierra o referencia.
Fig. 2.15 Conector DB9.
RS-422.
La diferencia entre la comunicación RS-232 es la distancia y la inmunidad al ruido, estas características lo
convierten en una ventaja en la utilización de la industria, una características más es que se usa en las
computadoras Apple de Macintosh.
Capítulo II.- Fundamentos de electrónica y microcontroladores. Tipos de comunicación serial.
41
RS-485
Es una mejora a la RS-422, sin embargo en esta podemos incrementar el número de dispositivos que se
pueden conectar, esta características es bastante útil para poder conectar varios dispositivos sobre un
mismo puerto con lo cual se crean redes de comunicación, nos brinda la posibilidad de conectar dispositivos
bajo la norma RS-422.
Handshaking intercambio de pulsos de sincronización.
Cuando comenzamos a tener problemas debido a sobrecargas en la transmisión de datos el Handshaking
entra en acción, este fenómeno se da en el momento que la sincronización de velocidades no es suficiente,
existen tres tipos de Handshaking los cuales se explican a continuación:
Handshaking por software:
Por medio de caracteres enviados a través de software, como si fuesen datos, utilizados como datos de
control en la comunicación establece la manera de trabajar del canal serie, una desventaja grande es que al
trabajar con datos binarios los caracteres que asimilen los números 17 y 19 serán leídos como instrucciones
de control y nuestra comunicación falle.
Handshaking por Hardware:
Este método se basa en las líneas del conector empleado RTS/CTS y DTR/DSR las cuales al activar los
pulsos que las contienen nos permiten enviar y recibir datos de manera controlada, con lo cual evitamos
sobrecargar nuestro puerto de comunicación.
Handshaking por XModem:
Este método es más específico, debido a que no todos los dispositivos de comunicación lo ocupan o lo
conocen si quiere, esto se debe a que solo se emplea en los Módems.
Puerto USB (Universal Serial Bus):
Puerto de gran velocidad para comunicar computadoras y periféricos soporta transferencias de hasta
12Mbps. Un sólo puerto USB permite ser usado para conectar más de 127 dispositivos periféricos.
42
“LENGUAJES DE PROGRAMACION
Y LabVIEW.”
CAPITULO III
Capítulo III.- Lenguajes de programación y LabVIEW. Tipos de lenguaje de programación.
43
3.1 TIPOS DE LENGUAJES DE PROGRAMACION.
Tipos de programación.
Los tipos de programa que existen son variados sin embargo en base al método que se desee aplicar o
técnica será la manera en la que se presentara la solución a la problemática, aunado a esto entre mas
estructurado este el programa tendremos una fuente mejor documentada internamente; algunas de las
ventajas de un programa bien estructurado son las de la claridad del programa, menos pruebas a la hora de
compilar y encontrar errores, aumenta la productividad del programador.
Programación modular.
La programación modular se base en un modulo central el cual recolectara la información de los sub-
módulos que lo forman transmitiendo la información en parámetros, retroalimentados y coordinados por el
modulo central, sin embargo estos sub-módulos pueden contener otros y pasan a ser centrales de los
propios.
Fig. 3.1 Programación modular.
Programación orientada a objetos.
La programación orientada a objetos se basa en los polimorfismos y la herencia, este tipo de características
nos permiten realizar tareas animadas sobre un elemento formado por datos, los cuales pueden estar
visibles o no, esto dependerá del objetivo del programador.
Fig. 3.2 Programación orientada a objetos.
Capítulo III.- Lenguajes de programación y LabVIEW. Tipos de lenguaje de programación.
44
Programación concurrente.
Es la simultaneidad en la ejecución de múltiples tareas a la vez de diferentes usuarios, esto involucra una
programación bastante extensa y tediosa con lo cual obtendremos poca rapidez al realizar acciones sobre el
programa, se encuentran más comúnmente en redes de computadores distribuidos.
Fig. 3.3 Aplicación de programación concurrente.
Programación funcional.
Su principal función es la de llamar y declarar funciones dentro de otras funciones del tipo aritmético, este
tipo de programación tiene sus raíces en el cálculo Lambda, las características principales de este tipo de
programación son: no usan variables, no tienen iteraciones, no usan estructuras, solo se usan funciones
recursivas, solo se usan definiciones de funciones.
Programación Lógica.
La inteligencia artificial emplea este tipo de programación debido a que dependiendo de diferentes variables,
datos, circunstancias o acciones el ordenador pueda dar soluciones inteligentes, esto se logra mediante
teorías y cálculos matemáticos los cuales por medio de datos predestinados en el ordenador toma
decisiones y anticipa movimientos o acciones.
Fig. 3.4 Programación lógica.
Capítulo III.- Lenguajes de programación y LabVIEW. Tipos de lenguaje de programación.
45
Comenzaremos dando algunas definiciones las cuales son: Tecnología es el empleo de la ciencia y la
técnica para obtener beneficios y servicios los cuales cumplan las expectativas de las necesidades y de los
seres humanos.
Programación: es la planeación y coordinación de un proyecto así como el resultado del mismo, el
instrumento que ejecuta las tareas automatizadas dentro de un sistema informático, las herramientas que
emplearemos para estructurar la lógica de un proceso repetitivo.
Programa: es el acumulado de sentencias las cuales se encuentran dadas de alta en el ordenar lo cual las
hace entendibles para el mismo con el fin de resolver un problema definido, la estructura del programa debe
de ser finito, es decir, tiene un inicio y un final; debe de estar creado para no tener variables en los
resultados que provengan de las mismas condiciones y variables.
Metodología de la programación: es el conjunto de criterios, métodos y descripciones pertinentes que nos
indiquen la forma de desarrollar un programa.
Lenguaje de programación: es la sintaxis y reglas que los programadores emplean para la codificación de
instrucciones o algoritmo de programación.
Entorno de programación: son las herramientas empleadas para el desarrollo de un programa.
Recursos son aquellos periféricos que se utilizan para la elaboración de un programa.
Capítulo III.- Lenguajes de programación y LabVIEW. Evolución de los lenguajes de programación.
46
3.2 EVOLUCION DE LOS LENGUAJES DE PROGRAMACION.
Dividiremos en 5 generaciones los lenguajes de programación.
Primera generación: lenguaje maquina.
Es la serie de datos que el hardware puede interpretar provenientes de un ordenador, y es por medio de 1 y
0, estos a su vez están codificados, provenientes de una lectura de voltaje; a este tipo de codificación o 1 y 0
se les denomina instrucción, cada instrucción realiza una acción y a este conjunto de acciones se les
denomina lenguaje maquina, un tipo de instrucción puede tener una secuencia infinita de 1 y 0 ejemplo
11100001001011000011, cada instrucción puede contener miles de este tipo de codificaciones por lo cual es
sumamente tedioso y problemático encontrar errores en un programa simple.
Ahora con el transcurso de este desarrollo se dedujo que la maquina nos puede ayudar para facilitar la
programación y se crearon grupos alfabéticos llamados mnemotécnico estos no son más que palabras, por
así llamarlas, definidas en el ordenador las cuales ya están codificadas y de este tipo de palabras se
desprenden las instrucciones.
Segunda generación: se crean los primeros lenguajes ensambladores.
Este cuenta con un conjunto de sentencias o instrucciones precedidas de 1 y 0, la estructura de este tipo de
lenguajes debe de tener una secuencia lógica, como por ejemplo, definir el tema que se emplea entrar en el
tema, estipular las herramientas del tema a emplear etc.…, este tipo de instrucción no nos aleja del principal
objetivo a comparación con del lenguaje maquina debido a que no nos tenemos que ocupar de la
codificación de 1 y 0; digamos que las instrucciones son nuestros medios de comunicación con el lenguaje
maquina la estructura del lenguaje ensamblador es esencialmente el siguiente Etiqueta; este es opcional y
brinda una ayuda para saber el valor o tipo de instrucción que se emplea, Opcode es el portador del
mnemónico de la instrucción o la directiva del ensamblador, Operandos es la ejecución que realiza,
comentario no es necesario sin embargo sirve para orientar al programador, Directivas no tienen una
codificación hacia la maquina sin embargo el ensamblador las entiende como un valor, EQU asigna a una
variable el valor deseado, DC asigna valores a constantes dentro de un programa, DS guarda un espacio en
la memoria para almacenar algún dato, Interrupciones nos permiten generar excepciones o situaciones las
cuales pueden ser ajenas o internas según el origen que se les demande.
Tercera generación: se crean los primeros lenguajes de alto nivel.
Los lenguajes de alto nivel buscan independizar la máquina del programa como los son: FORTRAN, LISP,
ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID,
BASIC y sus versiones de cada uno; a continuación de describen algunos:
FORTRAN abreviatura de Formula Translator es desarrollado por IBM en el año 1955 es el primer lenguaje
de alto nivel, su principal función esta en ciencia matemática debido a su potencia para resolver cálculos
Capítulo III.- Lenguajes de programación y LabVIEW. Evolución de los lenguajes de programación.
47
matemáticos sin embargo poco eficiente para la elaboración de programas orientados a gestiones de
archivos y tratamiento de cadenas, su evolución fue orientada a sus debilidades, lo que indica que en el año
1977 era más eficiente en la gestión de archivos y tratamiento de cadenas de caracteres.
COBOL (Common Business Oriented Language) lo desarrolla el comité CODASYL en el año 1960, lo
patrocino el departamento de defensa de los estados unidos con el propósito de obtener una herramienta
eficaz en la gestión de archivos.
PL/1 (Programming Language 1) lo desarrolla IBM en los 60´s con el objetivo de obtener un programa más
general a los existentes en esa época tanto una herramienta para el cálculo matemático como una
herramienta en la gestión de archivos como: formato de escritura, soporta la programación estructurada y el
diseño modular, a lo anterior, al tratar de tener una programación mas general se pierde eficiencia en cada
función particular.
BASIC (Benginner´s All-purpose Symbolic Instruction Code) creado por los profesores John G. Kemeny y
Thomas E. Kurtz de la Universidad Dartmouth en 1965 su principal objetivo era el significado de sus siglas el
cual es Código de instrucción simbólico de propósito general para principiantes; este lenguaje es útil para el
desarrollo de aplicaciones técnicas y de gestión, el nacimiento de esta herramienta aunado a los
lanzamientos de microcomputadoras y computadoras personalizadas permite una gran extensión de su
implementación.
PASCAL su nombre es destinado por el filosofo y matemático francés del siglo XVII Blaise Pascal inventor
de la primera máquina del tipo mecánico para sumar; el creador del lenguaje es el matemático suizo Niklaus
Wirth en 1970 fundamentado en el lenguaje AL-GOL, su principal objetivo del matemático suizo era el de
enseñar los conceptos y técnicas de programación, se ha empleado mayoritariamente en el desarrollo de
aplicaciones de propósito general entre las que destacan los diseños de gráficos y la programación de
sistemas.
C el lenguaje está basado en el trabajo de Ken Thompson sin embargo su diseñador fue Dennis Ritchie en el
año 1972, el principal objetivo de este lenguaje era la introducción de un sistema operativo llamado UNIX, es
por esto que era principalmente orientado a la programación de sistemas, no obstante se ha empleado en
las aplicaciones técnico-científicas, de gestión, creación de bases de datos, procesamiento de textos, etc.
ADA el nombre es atribuido a la considerada primera programadora de la historia Augusta Ada Byron
condesa de Lovelace, el lenguaje fue creado por la empresa Honeywell-Bull y encargado por el
Departamento de defensa de los Estados Unidos con la fundamental idea de generar un lenguaje de
programación de propósito general el cual reuniera las herramientas más potentes de los existentes y las
cualidades más efectivas de estos; es publicado en 1983 con las siguientes características: programación
Capítulo III.- Lenguajes de programación y LabVIEW. Evolución de los lenguajes de programación.
48
concurrente, compilación separada, programación estructurada, tipos abstractos de datos, libertad de
formato de escritura, etc., su mayor inconveniente es su gran extensión.
Cuarta generación.
Son los lenguajes capaces de generar código por si solos, son llamados RAD (Desarrollo Rápido de
Aplicaciones), con lo cuales se comienza a desarrollar aplicaciones sin extensas paginas de instrucciones,
dentro de estos se desarrollan objetos, estos últimos los podemos emplear dentro de otros para realizar más
compleja la programación mediante el uso de utilidades CASE (Computer Aided Software Engineering ó
Ingeniería de Software Asistida por Computadora) son aplicaciones predeterminadas las cuales nos brindad
herramientas más eficientes sin tener que realizarlas nosotros mismos estructuras extensas de código, como
por ejemplo una plantilla, un tema, un termómetro o cualquier objeto predeterminado que obtengamos de un
paquete o librería; los inicios de estas herramientas informáticas yacen en los 70`s con un lenguaje llamado
PSL y PSA a pesar de esto la primera herramienta CASE fue Excelerator la cual salió en el año 1984 al
mercado; este tipo de herramientas se desarrollaron en los años 90`s y en adelante, el tipo de herramientas
es útil para cada etapa del software y con diferentes tipos.
Quinta generación.
Son aquellos orientados a la inteligencia artificial; poco desarrollados, los cuales generaran otra nueva era
como ejemplo tenemos el lenguaje llamado LISP el cual es de los lenguajes de programación más antiguos
en efecto solo el lenguaje FORTRAN es más antiguo que este, sin embargo este lenguaje a evolucionado
tanto que se aplica para realizar aplicaciones relacionadas al lenguaje artificial; su fundamento de
programación es mediante listas lo cual deriva del nombre LISP “List Processing” el código de este programa
está basado en listas con lo cual podemos manejar el código como una estructura de datos, esta
generación se basa en procesar información para poder dar una respuesta en base a las entradas, con lo
cual se trata de imitar el comportamiento del hombre, sus principales campos de inserción son:Lingüística
computacional, Minería de datos, Industriales, Médicas, Mundos virtuales, Procesamiento de lenguaje
natural, Robótica, Meca trónica, Sistemas de apoyo a la decisión, Videojuegos, Prototipos informáticos,
Análisis de sistemas dinámicos.
Capítulo III.- Lenguajes de programación y LabVIEW. Metodología de la programación.
49
Metodología de la programación.
Para realizar un programa se deben de poder diferenciar 3 partes esenciales las cuales son:
Proceso de entrada
Proceso de datos
Proceso de salida
Al realizar un programa debemos tener en cuenta el tipo de algoritmo y como lo vamos a desarrollar, lo cual
nos ayuda a no confundir a nuestro ordenador, tener el camino más simple para la solución de nuestro
problema, las herramientas que se emplean para este tipo de soluciones simples y efectivas son las
diagramas de flujo los cuales nos guían en la elaboración y ejecución de programa mediante gráficos
estandarizados los cuales se muestran a continuación:
Ovalo indica el inicio de un proceso.
Rectángulo representa una o más actividades.
Rombo representa una decisión la cual puede tener 2 caminos y en su mayoría u totalidad de las ocasiones
cada camino es representado por un sí o no.
Circulo representa una unión con otro tipo de actividades.
Tipos de diagramas de flujo.
Los tipos de diagramas de flujo varean en la manera en la que se lee el diagrama, Formato vertical: los datos
se leen de arriba hacia abajo, Formato horizontal: los datos se leen de izquierda a derecha, Formato
panorámico los datos se encuentran plasmados sobre todo un entorno el cual al momento de mirarlo nos
brida una idea clara del contexto sin la necesidad de leer todo el texto dentro de el mismo, Formato
arquitectónico: nos muestra la sucesión de pasos o lugares en los cuales debemos de encontrarnos de
forma cronología dentro de un área determinada.
Capítulo III.- Lenguajes de programación y LabVIEW. Niveles de lenguajes de programación.
50
3.2.1 Niveles de lenguajes de programación.
Existen 3 tipos de lenguajes de programación: bajo nivel, nivel medio y alto nivel
Nuestro ordenador solo entiende por medio de 0 y 1 a lo que se le llama código binario o código maquina lo
cual nos indica que entiende por medio de codificaciones basadas en 0 y 1, Los lenguajes de programación
claramente definidos son los lenguajes de alto nivel y los de bajo nivel; los de bajo nivel son aquellos que se
aproximan a la arquitectura del hardware y los lenguajes que se encuentran más cercanos al usuario se
denominan de alto nivel.
Lenguajes de bajo nivel.
Fig. 3.5 Lenguaje maquina.
Este tipo de lenguajes es propio de la maquina en la que se emplea lo cual supone que no se puede utilizar
en otro tipo de hardware; Al estar dedicados al hardware se aprovecha al máximo sus funciones.
Lenguaje maquina: ordena al dispositivo las operaciones esenciales de su funcionamiento y consiste en la
combinación de 0 y 1 los cuales están codificados para que el hardware entienda, por lo consiguiente es te
tipo de lenguajes es más rápido que los de alto nivel sin embargo son bastantes tediosos de manejar y
emplear además de que su estructura es bastante extensa por ende su análisis para encontrar fallos es muy
compleja.
Capítulo III.- Lenguajes de programación y LabVIEW. Niveles de lenguajes de programación.
51
Lenguajes de alto nivel.
Fig. 3.6 Lenguajes de alto nivel.
Son los lenguajes que se asimilan mas al lenguaje natural que al lenguaje maquina usan los EDD´s
(Estructuras Dinámicas de Datos; este tipo de estructuras cambian de tamaño durante la ejecución del
programa.), son lenguajes independientes de la estructura de ordenador, lo cual nos ayuda a emplear el
programa en otras aplicaciones u ordenadores sin inconvenientes de procesado a esto se le agrega que no
depende del tipo de ordenador o sus principios de funcionamiento, hardware o consecutivo de código, solo
es necesario emplear un tipo de traductor o plataforma para que la maquina pueda entender el programa a
estos tipos de programación se le pueden dar objetivos específicos o generales según sea la necesidad a
cubrir, no obstante dependerá del tipo de propósito para poder seleccionar un programa el cual se adapte
mejor a las herramientas necesarias, las cuales, nos ayuden a realizar los objetivos.
Lenguajes de nivel medio.
No son una definición especifica debido a que interactúan con los tipos de programación a que se refiere;
por ejemplo podemos tener C el cual es un lenguaje que interactúa con la maquina y a la vez podemos
generar aplicaciones las cuales podamos migrar entre ordenadores y nos desarrollen un objetivo especifico
como un programa para obtener calificaciones y un programa para generar claves de nuestro ordenador el
cual está dedicado a este ordenador en particular y no lo podemos manejar en otros.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
52
3.3 LabVIEW
¿Qué es LabVIEW?
LabVIEW es un lenguaje de programación grafico potente en la adquisición, control y supervisión de datos
digitales y analógicos, versátil en su gama de hardware con la que puede trabajar sin dejar atrás su inmensa
biblioteca en software para el análisis avanzado de datos, facilitación de la lógica de control en la
programación, así como de la visualización virtual del proceso a monitorear.
Fig. 3.7 Lenguaje grafico.
LabVIEW ha tomado auge desde que salió al mercado en 1986, se ha transformado en líder de la industria
moderna por su alto desempeño en el análisis y procesamiento de datos, control de instrumentos,
automatizar sistemas de prueba y validación, medidas industrial y control, diseñar sistemas embebidos,
enseñanza e investigación académica, etc.…, cabe resaltar que LabVIEW conecta prácticamente cualquier
dispositivo de censado y herramienta de diseño para obtener procesos confiables y precisos.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
53
Amplitud de NI-hardware.
Con extensa gama de hardware para la adquisición de datos ya sea portable, de escritorio, industrial, y
tecnología embebida, su gran variedad de drivers de comunicación, National Instruments nos ofrece otras
tecnologías de medición, control, comparación, ajuste de sensores y comunicación con PLC en sus
periféricos y tarjetas de adquisición, todo esto para facilitar la implementación de una potente herramienta en
el ámbito actual no solo industrial sino científico y académico.
Fig. 3.8 Innovación del hardware de LabVIEW.
Alcance de NI-LabVIEW.
LabVIEW nos permite desde el control de un simple y casero sensor, hasta un sofisticado sistema inteligente
con tantas variables como nos podamos imaginar y lo que es mejor lo podemos mejorar día a día con la
inmensa gama de herramientas que nos brinda National Instruments.
Fig. 3.9 Hardware de LabVIEW.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
54
Familia de productos de NI LabVIEW.
Este tipo de productos entiende todos los tipos de extensión hacia el software LabVIEW en tareas
específicas las cuales se describen brevemente a continuación:
Juegos de herramientas (Toolkits) y módulos adicionales.
Vea más recursos en prácticamente cada producto en la familia de LabVIEW o evaluar software
inmediatamente al descargar una prueba de 30 días completamente funcional.
Diseño embebido.
Utilice LabVIEW para diseñar, generar prototipos e implementar aplicaciones embebidas en una variedad de
objetivos de procesamiento incluyendo sistemas comerciales en tiempo real y basado en FPGA así como
microprocesadores y microcontroladores personalizados.
Módulos y juegos de herramientas (Toolkits) para diseño embebido:
Módulo LabVIEW Real-Time
NI Real-Time Execution Trace Toolkit
Módulo LabVIEW FPGA
Módulo LabVIEW Microprocessor SDK
Módulo LabVIEW Statechart
Módulo LabVIEW Mobile
Módulo LabVIEW DSP
Módulo LabVIEW Embedded para
Microcontroladores ARM
Diseño de control y simulación.
Combine el desarrollo de algoritmos, análisis y visualización en LabVIEW con herramientas para
identificación de sistemas, diseño de control, simulación e implementación.
Módulos y juegos de herramientas (Toolkits) para diseño de control y simulación:
Módulo LabVIEW Control Design and
Simulation
LabVIEW PID Control Toolkit
Módulo LabVIEW Real-Time
Real-Time Execution Trace Toolkit
Módulo LabVIEW FPGA
Módulo LabVIEW Statechart
LabVIEW Simulation Interface Toolkit
LabVIEW System Identification Toolkit
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
55
Procesamiento de imágenes y señales.
Incorpore cientos de funciones de procesamiento de imágenes y señales específicas para aplicaciones en
sus aplicaciones de LabVIEW.
Módulos y juegos de herramientas (Toolkits) para procesamiento de imágenes y señales:
Módulo Visión Development para LabVIEW
Módulo LabVIEW MathScript RT
LabVIEW Advanced Signal Processing Toolkit
LabVIEW Digital Filter Design Toolkit
LabVIEW Adaptive Filter Toolkit
Paquete de Medida de Sonido y Vibración
Sound and Vibration Toolkit
Spectral Measurements Toolkit
Modulation Toolkit para LabVIEW
Vision Builder for Automated Inspection
LabVIEW Math Interface Toolkit
Monitoreo y control industrial.
Despliegue LabVIEW a controladores de automatización programables (PACs) para crear sistemas
distribuidos de monitoreo, control y conectarse a sus controladores de lógica programable (PLCs) existentes
y sistemas empresariales.
Módulos y juegos de herramientas (Toolkits) para monitoreo y control industrial:
Módulo LabVIEW Real-Time
Real-Time Execution Trace Toolkit
Módulo LabVIEW FPGA
Módulo LabVIEW Datalogging and Supervisory
Control
Módulo LabVIEW Touch Panel
Módulo LabVIEW Statechart
NI Motion Assistant
Módulo LabVIEW NI SoftMotion
Desarrollo e implementación de software.
Desarrollo e implementación profesional, aplicaciones de LabVIEW de la más alta calidad usando una
variedad de herramientas de ingeniería de software.
Módulos y juegos de herramientas (Toolkits) para desarrollo e implementación de software:
LabVIEW Application Builder para Windows
LabVIEW VI Analyzer Toolkit
Módulo LabVIEW Statechart
LabVIEW Desktop Execution Trace Toolkit
Paneles Remotos de LabVIEW
NI Requirements Gateway
LabVIEW Unit Test Framework Toolkit
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
56
Generación de reportes y almacenamiento de datos.
Módulos y juegos de herramientas (Toolkits) para generación de reportes y almacenamiento de datos:
LabVIEW SignalExpress
Report Generation Toolkit para Microsoft Office
LabVIEW Database Connectivity Toolkit
LabVIEW DataFinder Toolkit
LabVIEW Internet Toolkit
Inicio con LabVIEW.
LabVIEW es un lenguaje de programación grafico por lo cual llamaremos a cada programa instrumento
virtual debido a que su funcionamiento y apariencia simulan herramientas físicas como lo pueden ser:
sensores, osciloscopios, actuadores eléctricos, válvulas de paso, bombas, tuberías, etc.
Para realizar un programa en LabVIEW se construye una interfaz de usuario con controles e indicadores en
una pantalla llamada PANEL FRONTAL donde se colocan los objetos a simular, posteriormente en una
pantalla llamada DIAGRAMA DE BLOQUES, ligada a la primera, se establece el código o lógica de
programación por medio de funciones y estructuras las cuales controlan los elementos del PANEL
FRONTAL; para realizar VI´s emplearemos las herramientas de las PALETAS, existen tres herramientas las
cuales son CONTROLS, FUNCTIONS y TOOLS.- cabe resaltar que cada Instrumento Virtual lo podemos
utilizar dentro de otro y a estos los llamaremos SubVI´s.
Ambiente de programación.
En la actualidad se necesitan optimizar los procesos industriales al máximo, para esto no solo se necesitan
excelentes y precisos instrumentos o actuadores sino una lógica de programación bastante detallada, en
cualquier lenguaje de programación basado en comandos o en texto se tiende bastante tedioso, ya que se
necesitan miles de líneas de código para lograr objetivos ambiciosos en la optimización de un proceso, con
el software LabVIEW este desarrollo se torna fácil ya que por medio de gráficos obtendremos complejos
desarrollos o análisis con solo cablear un icono, lo cual nos brinda más tiempo para poder pensar en cómo
mejorar la lógica de programación sin tener que pasar horas escribiendo el código.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
57
Tipos de datos
LabVIEW trabaja de una manera simple ya que tú seleccionas el tipo de control, función, indicador,
estructura o cualquier función que desees realizar y cableas los elementos entre sí, LabVIEW trabaja por
tipos de datos como lo son: Boolean, string, numeric, etc.…; por mencionar los principales.
Dependiendo del color, grosor y estilo del cable es el dato que transmite, sin embargo también podemos
convertir el tipo de dato a otros.
Fig. 3.10 Tipos de datos en LabVIEW.
Como todo código de programación tiene estructuras, ciclos, sentencias, funciones las cuales pueden
interactuar entre sí en este lenguaje de programación la única limitación es tu mente y el proceso, y
dependiendo al tipo de datos que se estén procesando serán las variables con las que se cuentan para
realizar análisis.
Fig. 3.11 Iconos gráficos de programación.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
58
Fig. 3.12 Ventana de bienvenida de LabVIEW 8.5
La imagen anterior indica nombre del usuario, numero de serie, tipo de licencia con el que se trabaja y por
último la versión del programa, dependiendo de la versión con la que se cuente serán el número y el tipo de
librerías que se tienen para realizar aplicaciones más avanzadas de manera más rápida y eficiente, no
obstante estas se pueden desarrollar construyéndolas nosotros mismos, LabVIEW cuenta con diferentes
módulos de programación los cuales se adquieren por separado del programa, estos módulos nos brindan
mas herramientas para poder realizar programas más complejos y eficientes de manera más sencilla y
rápida ejemplo: LabVIEW contiene un modulo para realizar lazos de control Proporcional Integral Derivativo
este tipo de control lo encapsula en un solo icono, en cual nosotros solo conectamos la información que
debe de analizar y el programa realiza todo el procedimiento perfectamente, como esta herramienta
podemos encontrar una diversidad bastante extensa tanto para la programación en el Diagrama de Bloques
como para realizar gráficos de control en el Panel Frontal, comunicarnos mediante internet, analizar
variables de estado, realizar alarmas, crear historiales mediante las herramientas de Microsoft, etc.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
59
Fig. 3.13 Ventana principal de LabVIEW 8.5
La imagen anterior es la ventana de bienvenida de LabVIEW 8.5 la cual nos muestra diferentes opciones las
cuales se describen a continuación:
Fig. 3.14 Barra de menú.
A: File; nos puede abrir o crear un Instrumento Virtual.
B: Operate; es una conexión rápida a una fuente como un Field Point.
C: Tools; en esta opción podemos desplegar herramientas para la configuración y hallazgos de diferentes
componentes y herramientas del programa.
D: Help; es la ayuda de LabVIEW la cual nos despliega la ayuda contextual de cada elemento y componente
del software así como visualizar algunos ejemplos donde nos indican de manera practica la implementación
de la herramienta a buscar.
A B
C D
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
60
B: En este recuadro podemos abrir un Instrumento
Virtual en blanco, comenzar un proyecto o dar
seguimiento a un Instrumento Virtual o proyecto ya
comenzado.
Fig. 3.15 Sub-menú “New”.
C: Nos muestra los últimos Instrumentos Virtuales con
los que hemos trabajamos, se encuentran en el orden en
el que se les ha estado utilizando y nos brinda una
herramienta para buscar Instrumentos Virtuales.
Fig. 3.16 Sub-menú “Open”.
D: Nos brinda una guía para poder familiarizarnos
con el programa y nos explica las funciones de cada
componente del Software.
Fig. 3.17 Sub-menú “New to LabVIEW”
E: Nos indica los avances y las mejoras de LabVIEW.
Fig. 3.18 Sub-menu “Upgrading LabVIEW”
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
61
F: Brinda una conexión rápida con National
Instruments en la web, en la cual encontraremos
preguntas frecuentes y foros de discusión los cuales
nos ayudan en la construcción de nuestros
proyectos.
Fig. 3.19 Sub-menú “Web Resources”
G: Aquí podemos encontrar ejemplos en los cuales
nos explican de manera general como implementar
las herramientas de `programación del software.
Fig. 3.20 Sub-menú “Examples”.
¿Cómo crear un Instrumento Virtual?
Desde este punto abreviaremos los Instrumentos Virtuales como VI´s o VI por sus siglas en ingles VIRTUAL
INSTRUMENT´S contamos con numerosas maneras de iniciar un VI a continuación se explicaran las
principales funciones, ventanas, indicadores, controles y estructura para poder realizar simulaciones.
En el momento que elegimos iniciar un Instrumento Virtual aparecen 2 ventanas para trabajar una de ellas
es el PANEL FRONTAL y la otra es el DIAGRAMA DE BLOQUES estas 2 ventanas son una sola ya que
nosotros estaremos observando la ventana del Panel Frontal mientras simulamos nuestro Instrumento
Virtual; entonces por que poner 2 ventanas si solo observaremos una, el Diagrama de Bloques es donde se
realizara la lógica de programación y donde podremos identificar posibles problemas con nuestro programa,
a continuación se explicaran cada una de ellas y sus principales componentes.-
El Panel frontal se construye con controles e indicadores, los cuales son terminales interactivos de entrada y
salida de un Instrumento Virtual, respectivamente. Los controles son perillas, botones de estado y otros; los
indicadores son gráficos, LED´s y otros. Los controles simulan los dispositivos de entrada de instrumentos y
suministran datos al diagrama de bloques del Instrumento Virtual; los indicadores simulan los dispositivos de
salida de instrumentos y despliegan datos que el diagrama de bloques adquiere o genera.
Una vez que ha sido construido el panel frontal, se adiciona el código, empleando representaciones gráficas
de funciones para controlar los objetos del panel frontal.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
62
Fig. 3.21 Panel Frontal
A continuación se explican los componentes principales del Panel Frontal:
Run: Sirve para ejecutar un Instrumento Virtual y solo se puede utilizar sui aparece como una flecha
solido de color blando.
Cuando se encuentra ejecutando un VI la flecha se tornara de color negro.
En caso de que el Instrumento Virtual tenga errores de sintaxis, la flecha tendrá un aspecto roto; si
damos clic sobre la flecha aparecerá un ERROR LIST donde nos muestra los erros que tenemos.
Run Continuously: Se utiliza para correr el VI hasta que se haga una pausa o se detenga el VI.
Abort Execution: Detiene el Instrumento Virtual en curso y se utiliza como último recurso; es
recomendable diseñar otra forma de detener el VI por medio del programa.
Pause: Se utiliza para pausar el programa, al dar clic en el este se torna color rojo, nos visualiza el
lugar donde se pauso en el Diagrama de Bloques.
Text Settings: Se emplea para personalizar el texto seleccionado.
Align Objets: Alinea los objetos dependiendo el eje o borde del cual se seleccione.
Distribute Objets: Organiza los elementos seleccionados con la misma distancia entre ellos.
Resize Objets: Si se tienen seleccionados diferentes objetos los dimensiona por igual.
Reorder: Si estamos trabajando con elementos que sobre ponen entre este botón nos ayuda para
definir cuales estarán enfrente y cuales atrás.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
63
Show Context Help Window: Despliega la ayuda de LabVIEW.
Barra de menu:
File: Abre, cierra, guarda, imprime archivos; por mencionar algunas de las funciones básicas de este botón.
Edit: Nos permite buscar y modificar archivos junto con sus componentes
View: nos visualiza los controles e indicadores herramientas para la personalización del VI entre otros.
Project: Inicia, abre o guarda un proyecto.
Operate: Opciones para controlar la operación del VI.
Tools: Opciones de configurado tanto para un proyecto, VI y LabVIEW
Window: Visualiza “error List”, portapapeles, personaliza la apariencia de las ventanas en uso y de las
paletas.
Help: Contiene la información completa del programa, de sus componentes, soporte técnico de National
Instruments así como la explicación y las características del Programa.
Una vez que se comienza a desarrollar un proyecto o
un Instrumento Virtual ejemplificaremos los
Instrumentos con CONTROLES e INDICADORES los
cuales se encuentran en la Paleta de CONTROLS.
Cada herramienta que contiene la paleta “Controls”
puede ser usada como control o como indicador
dependerá de las necesidades del programa, así
mismo, una vez que seleccionaste un elemento del
Panel Frontal y este por diseño sea un control y se
necesite un indicador bastara con hacer clic izquierdo y
cambiarlo a indicador.
Los elementos de la Paleta “Controls” se pueden
personalizar dependiendo de las necesidades y
preferencias del diseñador.
Fig. 3.22 Paleta “Controls”.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
64
El Diagrama de bloques contiene código fuente gráfico. Los objetos del panel frontal aparecen como
iconos en el diagrama de bloques. Los objetos del diagrama de bloques incluyen terminales, SubVIs,
funciones, constantes, estructuras y cables, los cuales transfieren datos entre los componentes que contiene
el diagrama de bloques.
Fig. 3.23 Diagrama de Bloques.
A continuación se explicaran los botones con los que se cuenta el Panel Frontal, los botones que tienen la
misma apariencia que la ventana del Panel Frontal tienen el mismo funcionamiento.
Highlight Execution: Despliega una ejecución animada, la cual visualiza, el flujo de los datos en el
programa; esto es sumamente eficaz para identificar problemas en la programación.
Retain Wire Values: Guarda los valores que le son indicados cuando instalamos un PROBE.
Start Single Stepping: Ejecuta paso a paso el Instrumento Virtual; a cada clic que se da y da una
pausa en el siguiente paso.
Start Single Stepping: Ejecuta la acción siguiente y da una pausa.
Step out: Termina la ejecución en curso y pausa la misma.
Capítulo III.- Lenguajes de programación y LabVIEW. LabVIEW.
65
La paleta “FUNCTIONS” contiene todas las funciones,
estructuras, formulas, simuladores, etc..., los cuales nos
facilitan la programación de nuestros Instrumentos
Virtuales.
Cabe resaltar que dependiendo la función que se elija
será el tipo de datos que fluirán por la estructura del
programa en esta parte es importante resaltar que no
podemos combinar datos los datos son ejemplificados
mediante colores a su vez pueden llevar un conjunto de
caracteres, LabVIEW nos permite controlar, modificar,
buscar, extraer y cambiar el tipo de datos mediante las
herramientas con las que cuenta este tipo de Funciones
son llamad as “CLUSTERS” y son de gran ayuda para la
facilitación de la programación modular.
Fig. 3.24 Paleta de “Functions”.
La paleta “Tools” se utiliza en cualquiera de las 2 ventanas de LabVIEW las cuales son:
Panel Frontal y Diagrama de Bloques; podemos cambiar nuestro cursor para simuladores
mecánicos, para agregar notas, para cablear o conectar, visualizar las paletas de funciones
y controles, para seleccionar una porción de la pantalla, para colocar break points, probe
data y personalizar colores de las pantallas.
Fig. 3.25 “Tools”.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
66
3.3.1 Aplicación de programación en LabVIEW.
Para poder comprender las ventanas principales de LabVIEW, las paletas de controles y funciones y la
manera en que trabajan entre sí; realizaremos un pequeño programa para aterrizar los conocimientos
adquiridos, mediante el programa tome rango de dificultad se irán aclarando y aprendiendo más
herramientas de LabVIEW y de su potencia como herramienta de trabajo.
Iniciaremos por explicar la importancia de utilizar indicadores y controles, comenzaremos con los Controles,
como su nombre los indica los podemos usar para manipular estados como: prendido y apagado ya sea un
ciclo, un led, o una variable digital que solo tenga esos estados ON, OFF a continuación se ejemplificara
esto de una manera muy sencilla sin embargo muy útil:
Como este será nuestro primer Instrumento
Virtual se mostrara paso a paso como
iniciarlo; de aquí en adelante solo se hará
referencia a estos pasos y se continuara con
lo siguiente de los VI`s.
Ejemplo 1:
Se ejemplificara una botonera en el Panel
Frontal; el código se realizara con funciones
Booleanas como son OR, AND, NOT, etc.….
La función será la siguiente; cualquier botón
enciende o apaga el “led” según el estado
en el que se encuentre.
1.-Paso uno abrir el programa LabVIEW de
NATIONAL INSTRUMENTS.
Fig. 3.26 Menú inicio de Windows.
Nos dirigimos a nuestro menú de inicio y seleccionamos el icono de National Instruments LabVIEW 8.5
Icono de
LabVIEW 8.5
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
67
1.1.-Se abrirá la siguiente ventana en la cual solo esperaremos que nuestro programa cargue los elementos
correspondientes.
Fig. 3.27 Ventana de bienvenida de LabVIEW 8.5.
2.- Una vez que aparezca esta ventana. Seleccionaremos “Blank VI” para comenzar a trabajar.
Fig. 3.28 Ventana principal de LabVIEW 8.5.
Seleccionaremos
Blank VI.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
68
2.1 A continuación aparecerán las ventanas de Panel Frontal y Diagrama de Bloques.
Fig. 3.29 Ventanas de Panel Frontal y Diagrama de Bloques.
3.- Abriremos la Paleta de “Controls” dando clic izquierdo sobre el Panel Frontal.
Fig. 3.30 Paleta “Controls” sobre el Panel Frontal.
Diagrama
de
Bloques
Panel Frontal
Paleta
“Controls”.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
69
Para desplegar las opciones de controles e indicadores posicionaremos el cursor sobre la categoría en la
que estemos interesados, esta acción desplegara más opciones como se muestra a continuación.
Fig.3.31 Despliegue de la paleta “Controls”.
Como se observa en la pantalla solo necesitamos posicionar el cursor sobre la categoría de interés y este
desplegara un submenú; Para seleccionar algún control o indicador se hace clic sobre él y este aparece
sobre el Panel Frontal, cada elemento que se desee emplear en la construcción de Instrumentos Virtuales
tendrá que ser seleccionado de esta manera en el Panel Frontal.
Una vez que tenemos el “Led” y los 2 botones “Text Buttons” nuestro Panel Frontal tendrá la siguiente
apariencia.
Fig. 3.32 Panel Frontal de la aplicación.
Para visualizar los Sub-
menús, posicionamos el
cursor sobre el menú de
interés.
Para agregar
elementos se tienen
que seleccionar de la
paleta controls o si
son de la misma
clase se copian y se
pegan.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
70
Ahora que tenemos nuestro Panel Frontal listo comenzaremos a desarrollar el diagrama grafico en el “Block
Diagram”.
Como el Panel Frontal y el Diagrama de bloques en realidad son solo uno, automáticamente aparecen los
gráficos del panel frontal como iconos los cuales nos indican que función estarán desempeñando. Se puede
apreciar que los iconos tienen un color en particular, este color nos indica que son del tipo BOOLEAN, este
tipo de datos se representan en cables de color verde.- El tipo de color nos delimita y nos guía para saber
con qué elementos se puede llevar a cabo la conexión y la lógica de programación.
También existen algunos elementos que no aparecen en el Panel Frontal; posicionándolos en el Diagrama
de Bloques, algunos, muy contados, que colocándolos en el Panel Frontal no aparecen con alguna función
en el Diagrama de Bloques.
Fig.3.33 Diagrama de Bloques de la aplicación.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
71
Existen numerosas funciones del tipo “Boolean”, sin embargo usaremos las de la paleta “Boolean” para
realizar nuestro ejemplo, a continuación se visualiza la ubicación de la paleta.
Fig. 3.34 Ubicación de la paleta “Bolean”.
Para el despliegue de nuestros iconos de programación existen varios caminos sin embargo en este caso
nos colocamos en el Diagrama de Bloques y damos clic izquierdo en nuestro ratón esta acción despliega la
paleta “Functions”, para visualizar cualquiera de los sub-menús que despliega solo necesitamos colocar
nuestro cursor sobre él, en este caso nos direccionamos al sub-menú “Programing” el cual despliega la
paleta con ese nombre, como se puede apreciar se cuanta con numerosas opciones nosotros nos
direccionamos al icono con el nombre “Boolean” este despliega las funciones con las que cuenta, cabe
destacar que las funciones que se encuentran en este sub-menú son compatibles con el tipo de datos que
manejaremos; Para ejemplificar nuestro primer ejemplo el cual es: Se ejemplificara una botonera en el Panel
Frontal; el código se realizara con funciones Booleanas como son OR, AND, NOT, etc.…. La función será la
siguiente; cualquier botón enciende o apaga el “led” según el estado en el que se encuentre.
Para conectar iconos en
LabVIEW deben de ser
del mismo tipo de
datos.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
72
Colocaremos 2 funciones del tipo Booleanas una será la compuerta “OR” y la otra la compuerta “Exclusive
OR” como se muestra en la siguiente figura.
Fig.3.35 Inserto de funciones en Diagrama de Bloques.
Se tiene la función “OR” la cual es una compuerta lógica, el funcionamiento de esta función es igual al de
una compuerta lógica “OR”, de la misma manera la función “Exclusive OR” asimila una compuerta lógica
“XOR”.
Exclusive “XOR” Compuerta “OR”
Fig. 3.36 Símbolo de compuerta XOR
Fig. 3.38 Arreglo equivalente a compuerta XOR
A B S
0 0 0
0 1 1
1 0 1
1 1 0
A B S
0 0 0
0 1 1
1 0 1
1 1 1
Fig. 3.37 Símbolo de compuerta OR
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
73
Ahora agregaremos un ciclo “While Loop” a nuestro programa el cual nos permitirá checar continuamente los
cambiamos que se realicen dentro del mismo, esto nos facilita la simulación de nuestra botonera.
Fig. 3.39 Manejo de estructuras.
Una estructura son simulaciones graficas de los ciclos y sentencias de los lenguajes de programación
basados en texto; el ciclo “While Loop” ejecuta un sub-diagrama hasta que se cumpla la condición que lo
detiene, en este caso viene con un mando binario el cual detiene la ejecución cuando este es activado, esta
preestablecido por la sentencia “STOP IF TRUE” esto se puede cambiar a “CONTINUE IF TRUE” sin
embargo este tipo de condición dependerá de la lógica de programación que se desee emplear.
LabVIEW
tiene
agrupadas
las
funciones
con las que
se cuenta.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
74
Colocaremos la estructura encerrando los elementos con los que se cuenta actualmente para condicionar
dentro del ciclo “While Loop”.
Fig. 3.40 Estructura “While Loop”.
El ciclo es el recuadro de color gris que se encuentra rodeando los elementos, al colocar el ciclo nos agrega
2 elementos automáticamente que son el recuadro con una letra i de color azul y el botón lazado a un
recuadro verde en el cual hay un círculo rojo, este tipo de señalización es un stop y el de color azul es una
iteración; una iteración es el conteo de ciclos que ha transcurrido desde que arranco la primer ejecución, se
recomienda que entre cada iteración o ejecución del ciclo se coloque un retardo para optimizar la recolección
de datos.
Para colocar una
estructura
debemos de
encerrar dentro
los elementos que
deseamos.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
75
A continuación agregaremos un “ADD SHIFT REGISTER” al ciclo “While Loop”.
Fig. 3.41 “ADD SHIFT REGISTER” en Diagrama de Bloques.
Una vez que tenemos agregado el ciclo “while” nos colocaremos sobre el marco gris y daremos clic
izquierdo, se despliega un sub-menú y seleccionaremos “ADD SHIFT REGISTER”; esta función guarda el
último valor que se ejecuto dentro del ciclo “while”.
Recordando que el ciclo “While Loop” realiza iteraciones cada iteración guarda datos, los cuales nos brindan
un estado de nuestras variables a monitorear.
ADD Shift Register
nos guarda el
último estado de
la estructura
While Loop.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de simulación en LabVIEW.
76
A continuación comenzaremos a cablera todos los elementos como se muestra en la siguiente figura.
Fig. 3.42 Cableado de componentes.
Una vez que están cableados todos los componentes como se muestra en la figura anterior procederemos a
colocar un retardo para la optimización de la simulación.
Una vez construido el Instrumento Virtual lo probaremos dando clic sobre el botón “Run”, nuestra simulación
deberá de funcionar a la perfección por lo cual no debemos de tener variación en lo acordado en el renglón
del ejemplo 1.
Para conectar nuestros iconos
solo colocamos el cursor cerca
de sus terminales.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
77
3.3.2 Aplicación de comunicación serial “ECHO”.
LabVIEW cuenta con diferentes maneras de comunicar el software con hardware, nosotros utilizaremos sus
elementos del modulo VISA los cuales pueden comunicar de la siguiente manera GPIB, serial, USB,
Ethernet, PXI, “or” VXI “instruments”, los VISA son una excelente herramienta para la comunicación, solo se
debe de definir cuál es la mejor manera de comunicar el hardware, a comparación de otros software para
realizar la comunicación solo necesitamos emplear 2 iconos del modulo VISA los cuales son “Write” y
“Read”.
Colocar las funciones del VISA en el diagrama
de Bloques.
Para interpretar adecuadamente la
comunicación serial procederemos a trabajar
desde el Diagrama de Bloques, colocando los
elementos de “Write” y “Read” de la paleta
“Functions”, “Instruments” I/O, Serial:
Fig. 3.43 Paleta serial del Visa.
“Write”: nos permite escribir o introducir datos dentro de nuestra comunicación.
“Read”: brinda la visualización de los datos que está leyendo el puerto de comunicación, esta herramienta
lee en formato “string”, lo cual nos indica que dependiendo el tipo de comunicación que se esté empleando
será el tipo de conversión de datos que se necesitara en caso de querer visualizar o extraer los datos.
Debido a debemos de empatar la
comunicación entre 2 elementos para poder
estar enviando y recibiendo datos
adecuadamente se debemos de configurar el
puerto de comunicación con la herramienta
Configure Port:
Fig. 3.44 Paleta serial del Visa.
Una vez terminada la configuración debemos de tener en cuenta que toda sesión que se abre de debe de
cerrar para los casos que nos convengan con lo cual el modulo Visa también debe de cerrarse mediante
programa para evitar dañar nuestro hardware.
Write Read
Configure Port
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
78
Colocaremos del Visa Serial el icono llamado Close.
Fig. 3.45 Paleta serial del Visa.
El icono “Close” de la Paleta Serial, nos cierra o finaliza una comunicación; lo cual programáticamente es de
gran ayuda en caso de necesitar efectos a la causa de perder conexión, o del cierre de comunicación, este
tipo de condicionamientos será de gran ayuda si necesitamos realizar tareas de reinicio de comunicación o
en su debido caso el costo de nuestro envió de datos mediante algún dispositivo de comunicación como un
modulo GPRS el cual nos consume un saldo mientras estamos conectados a la red, así mismo en el caso de
perder la comunicación o de finalizarla debemos de monitorear el estado de dicho icono, o si en algún
momento se produjo un error podemos saber qué tipo de error es y si se encuentra en la base de datos de la
ayuda contextual se puede resolver en base a las recomendaciones de la misma.
Los iconos del visa tienen distintas entradas las cuales varean dependiendo del dato que transmite es por
esto que se cuenta con varios colores de cableado sin embargo solo se explicaran 2 los cuales son: Visa
“resource name” el cableado de esta entrada o salida del icono es morado y transmite datos entre los iconos
de su misa paleta Visa; cabe resaltar que los otros iconos tienen el mismo nombre en la entrada o salida del
icono.
Close
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
79
,
Fig. 3.46 Terminales de conexión del “Visa Configure”.
Los diferentes colores con los que cuentan este tipo de herramientas son de gran ayuda en la transmisión y
recepción de datos así como configurar la velocidad de transmisión, la paridad con la que se transmite, el
estado que se tiene la transmisión ya que la podemos tener encendida o apagada el error out es una
herramienta la cual se utiliza con Clusters de Error estos nos arrojan la clave del error si es que tiene que ver
con la conexión de datos o algún factor relacionado al programa esta herramienta no nos indica cuando
tenemos algún fallo en nuestro Hardware o tipo de datos, los errores más comunes que arroja es cuando
tenemos mal el puerto de comunicación o un error en la conexión de nuestros iconos.
Los clusters son funciones que enlazan
diferentes tipos de datos se asimila a un cable
UTP el cual se utiliza para conectar cables
telefónicos o Ethernet para redes de
comunicación.
Fig. 3.47 “Clusters” de Error.
El color del cable
depende del tipo de
datos
No es
necesario
conectar todas
las terminales
del icono
Los cluster
nos ayudan
a encontrar
un error
dentro de
nuestro VI
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
80
Procederemos a colocar los elementos del Visa en nuestro Diagrama de Bloques.
Fig. 3.48 Conexión entre elementos “Visa”.
Agregar un ciclo “While Loop” a nuestra lógica de programación.
Una vez que hemos interconectado los elementos colocaremos un ciclo While para poder monitorear el flujo
de datos en la comunicación, este ciclo nos ayuda a la recolección de datos continuamente ya que tiene un
elemento que detiene su enclavamiento y si no es activado o cambiado el estado de esta condición no se
saldrá del ciclo.
Fig. 3.49 Aplicación de “echo”.
Los elementos Visa transmiten el mismo
tipo de datos por ende se pueden
conectar entre sí.
Un ciclo While realiza
repeticiones hasta que
se detiene. Iteraciones: es el
número de
repeticiones que
realiza el ciclo.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
81
Agregar un retardo a nuestro ciclo While Loop.
Una vez que tenemos conectados los elementos y encerramos los componentes del diagrama de bloques
como se muestra en la fig. 3.49, agregaremos un retardo para poder adquirir variaciones entre cada
iteración, aun sin el retardo se pueden visualizar cambios sin embargo no tendríamos datos exactos ya que
al tener un poco de ruido en la señal no estaríamos midiendo de manera adecuada y se dificultaría la
programación o la adquisición de daos para realizar acciones a este tipo de incrementos o decrementos,
Los posibles defectos o problemas con los que se contaría serian valores fluctuantes constantemente debido
a que el muestreo que está realizando es bastante rápido.
Fig. 3.50 Aplicación “echo”.
En esta imagen se observan las
diferentes opciones con las que
contamos para generar un
retardo, para realizar hojas de
cálculo por medio del software
Office, para insertar o
monitorear alarmas y
actividades, colocar fechas y
hora en reportes, etc.
Fig. 3.51 Paleta “Timing”.
El retardo se utiliza
para dar un tiempo
entre iteraciones.
Un retardo
nos permite
controlar el
tiempo
entre
iteraciones
del ciclo
While.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
82
La vista del Diagrama de Bloques debe de ser la siguiente.
Fig. 3.52 Aplicación “echo”.
Insertar texto dentro de nuestro canal de comunicación.
Como se observa tenemos conectados los elementos de transmisión y recepción del Visa, ahora si bien en
este caso estamos leyendo lo que está dentro del puerto agregaremos herramientas para poder verificar los
datos de la comunicación mediante un programa de “echo” el cual desplegara en una ventana lo que está
leyendo el puerto “Read”, así mismo agregaremos un formato de escritura para poder enviar datos por medio
de nuestro enlace de comunicación, para este tipo de formato se necesitaran emplear los elementos del
Sub-menú “String” los cuales nos permiten insertar formato, dependiendo de la hoja en la que se necesite
escribir, el tipo de datos es diferente al de los Visa “resources name” por lo tanto tendrá otro color el cual es
rosa, en ocasiones podemos convertir o extraer datos de un arreglo o un cluster, es decir cuando tenemos
un arreglo de caracteres y necesitamos extraer un valor del tipo “String”, “Boolean”, “Number” o cualquier
otro carácter con los que cuenta el programa, tendremos que emplear convertidores y buscadores de función
en la figura de abajo se muestra la paleta del Sub-menú “String”.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
83
Fig. 3.53 Paleta “String”.
En la ventana del Panel Frontal agregaremos 2 tipos de “String”, sin embargo se estará usando uno como
indicador y otro como control, una vez colocados en el Panel Frontal tendrá que tener la siguiente
presentación.
Fig. 3.54 Aplicación “echo” Panel Frontal.
Una vez que se ubicaron los elementos sobre el Panel Frontal automáticamente aparecerán en el diagrama
de bloques debemos de cambiar el estado de cada icono uno a indicador y otro a control.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
84
Ahora agregaremos los iconos del Submenú “String”; “Format” “Into string” y “End” of “Line Constant” en el
diagrama de bloques, también debemos de poder visualizar los iconos “String”, como se muestra a
continuación:
Fig. 3.55 Aplicación “echo”.
“String”: es un recuadro en el cual, dependiendo si es un control o un indicador, podemos escribir o solo leer
lo que hay dentro de este, este tipo de herramienta se emplea para visualizar leyendas, ayudas, opciones o
instrucciones, en caso de que sea solo de lectura, si el modo es un control podremos escribir dentro de este,
la mayoría de los iconos los podemos visualizar de dos maneras las cuales son “View as Icon” o “Not View
as Icon” con lo cual solo cambia su apariencia.
“End of Line”: esta herramienta la utilizamos para terminar una línea o dar un “enter” al final de un renglón, lo
cual es sumamente importante en el momento de realizar reportes o alarmas.
“Format Into String”: nos permite insertar, dependiendo del formato que se le dé, texto dentro de un
documento cualquiera, nosotros elegimos cuantos renglones y como se va a estructurar el contenido que se
desee insertar y el formato general que debe de tener en caso de establecer un estándar.
“Run”: una manera de saber si nuestro Instrumento Virtual está conectado adecuadamente es la Flecha o el
icono “Run” el cual debe de aparecer como una flecha solida de color blanco, en caso de tener problemas de
conexiones aparecerá en una superficie obscura y rota como se muestra en la figura de arriba.
“Format
Into String”. “End Of Line
Constant”
“String”
La Flecha Run
debe de estar
solida y
continua
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
85
Una vez que tenemos los elementos como se muestra en la figura anterior procedemos a cablear los
elementos como se muestra en la siguiente figura:
Fig. 3.56 Aplicación “echo”.
Una vez que se cablearon los elementos entre sí procederemos a probar nuestro Instrumento Virtual el cual
tendrá que funcionar de la siguiente manera: seleccionaremos el puerto por el cual comenzaremos la
comunicación, con el Visa “Resources name”, una vez que se tiene seleccionado el puerto de comunicación
daremos clic en el botón Run, ya sea del panel frontal o del Diagrama de Bloques, después procederemos a
escribir en nuestro “String” de escritura y de inmediato deberán de aparecer los mismos caracteres en el
“String” de lectura; a continuación se visualizan algunos errores que se cometieron apropósito para poder
detallar mas funciones de LabVIEW; en la siguiente figura aparece el “Error List”, el cual nos ayuda a
identificar errores que se cometieron al programar o conectar nuestros iconos de programación, el “Error
List” en ocasiones nos detalla el error que se está cometiendo o en su debido caso nos señala el icono que
se encuentra mal conectado o que le faltan conexiones.
Visa
Resources
name
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
86
Fig. 3.57 “Error List”.
Si nosotros damos doble clic sobre el error que nos arroja nos enviara al icono, en este caso, que lo contiene
o podemos dar clic sobre la opción Show Error, la cual nos posiciona sobre el error, ahora procederemos a
colocar los elementos que nos demanda el error como se muestra a continuación:
Fig. 3.58 Aplicación “echo”.
En la figura anterior se agrego un “Property Node” el cual nos indica el numero de Bytes que contienen
nuestra transmisión o recepción, este dato es necesario para poder configurar los datos necesarios del
“Read” del “Visa Serial” y poder correr nuestro Instrumento Virtual, así mismo se muestra nuestra flecha de
Flecha de
color blanco
y solida.
Se agrega
Property
Node.
Nos indica en que
elemento tenemos el
error.
Nos posiciona en donde
se encuentra el error.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
87
“Run” de color Blanco y solida lo cual nos quiere decir que nuestras conexiones y elementos están
conectados de manera correcta.
Agregar un “Cluster” de Error a nuestro instrumento Virtual.
Si nosotros damos clic sobre la flecha “Run” nuestro Instrumento Virtual comenzara a correr, sin embargo
podremos observar que no obtendremos resultado alguno en nuestro “String” de lectura, estos se puede
visualizar con un “Cluster” de error para saber el por qué no hay respuesta de nuestros elementos Visa; se
conecta como se muestra a continuación:
Fig. 3.59 Aplicación “echo”.
El “Cluster” de error nos muestra cual es el error que se tiene entre los elementos y se conecta entre todos
los iconos que participan en el ciclo de comunicación, al inicio se puede colocar un “Cluster” de Error In o se
crea, en este caso, una constante en el Visa Configure lo cual se hace posicionando el cursor en la terminal
de conexión de Error daremos clic izquierdo en nuestro ratón, aparecerán varias opciones nosotros
seleccionaremos crear constante, ahora para el “Cluster” de salida necesitaremos ir a la paleta de array,
“Clusters” y “matrix”, una vez situados en esta seleccionaremos un “Cluster out” el cual colocaremos al final
de nuestro flujo de datos con la finalidad que este nos visualice los resultados de la comunicación, si
queremos visualizar el flujo de datos y si es que estamos leyendo algún byte del puerto serial debemos de
presionar el botón “Highlight Execution”, el cual realiza el flujo de datos en forma lenta, esta herramienta es
de gran ayuda para averiguar si de verdad tenemos los valores que deseamos y si están llegando al icono
adecuado.
Cluster de
Error.
Se crea una
constante de
entrada.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
88
Una vez comprobado que tenemos la transmisión y que obtuvimos los mismos caracteres, nuestro Panel
Frontal debe de visualizarse de la siguiente manera:
Fig. 3.60 Aplicación “echo”.
Una vez que comprobamos que nuestro Instrumento Virtual funciona adecuadamente procederemos a
realizar modificaciones y arreglos a este, debido a que el microcontrolador no envía caracteres del tipo
“String”, sino código ASCII.
Este será uno de nuestros Instrumentos Virtuales, que se emplearan en la aplicación, también se
personalizara; cuando personalizamos un Instrumento Virtual debemos de colocar nombres en todos los
elementos que se emplean, debemos de crear una ayuda para cada función en la cual describimos de
manera concreta y simple para que fue realizado el Instrumento Virtual, se crea el icono del Instrumento
Virtual con lo cual debemos de seleccionar una imagen representativa de este, definir como se usaran las
terminales del mismo y brindar soporte respectivo del Instrumento Virtual.
Debemos de
obtener los
mismos
caracteres que
insertamos.
Cluster out;
nos muestra
un mensaje y
una marca con
el estado de
nuestra
comunicación.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
89
Acoplamiento de señal de datos.
Al tener que convertir el tipo de caracteres ASCII a un valor numérico se emplearan las herramientas de la
paleta “String/Array/Pathconversion” la cual se muestra a continuación:
Para el despliegue de esta paleta
necesitaremos colocar nuestro cursor en
Diagrama de Bloques, damos clic izquierdo a
nuestro ratón y nos direccionamos al menú
“Programing”, una vez desplegado este menú
colocamos nuestro cursor en donde dice
“String” dentro de este aparecerá un icono
llamado conversión.
Fig. 3.61 Paleta “Conversion”.
Una vez que tenemos abierta la paleta del Sub-menú buscaremos la función que dice “String to Byte”; ¿Por
qué “String to byte”? Y no “ASCII to Number”; la versión y los módulos con los que se cuenta no tienen la
función “ASCII to Number”, por lo cual debemos de convertir primero el valor “String” obtenido de nuestro
“Visa Read” a Byte y después cambiarlo a “Number” mediante la siguiente paleta:
Para desplegar esta paleta necesitaremos
posicionarnos en el menú “Programing” de nuestro
menú “Function” en el Diagrama de Bloques, nos
dirigimos al menú que dice “Numeric” y enseguida a
donde dice conversión, ahora podemos visualizar que
tenemos numerosas opciones de conversión,
nosotros podemos convertir el dato en cualquiera de
las opciones de esta paleta.
Fig. 3.62 Paleta “Conversion”.
String to Byte
Convierte un tipo de
datos, en este caso Byte,
a un número entero.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
90
Ya que tenemos identificados los elementos que emplearemos, debemos de colocarlos en nuestro diagrama
de Bloques del ejemplo “ECHO” como se muestra en la siguiente figura:
Fig. 3.63 Comunicación serial.
Dado el hecho que nuestros caracteres leídos en el “Visa Read” son del tipo “String”, necesitamos extraer
esos datos con el mismo formato, en caso de intentar hacer una conversión directa nuestros cables de
conexión se marcarían en una línea punteada de color negro con una X en medio; lo cual indica que no
podemos transmitir datos ya que no son compatibles las dos terminales de conexión, es por esto que
debemos de enviar o convertir la información primero a Byte y después de Byte pasarlos a “Numeric”.
Fig. 3.64 Comunicación serial.
Se agregan los 2 elementos
de conversión al ejemplo de
“ECHO”.
Una vez conectados los
elementos creamos un
indicador del convertidor
Double.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
91
En caso de no haber realizado la conversión los caracteres obtenidos en el “String” de lectura, en el ejemplo
“ECHO”, se hubieran visualizado en 3 “Bits”, debido al tipo de norma por la cual transmite datos el
microcontrolador la cual es: el primer bit de inicio y el ultimo bit de stop, el tercer bit (el bit que se encuentra
en medio de los dos) es el dato que está enviando el microcontrolador; esta es la norma RS-232.
Al crear un indicador en el Diagrama de Bloques automáticamente se crea un grafico en el Panel Frontal el
cual se muestra en la siguiente figura.
Fig. 3.65 Comunicación serial.
Se visualizan dos iconos debido a que es un arreglo de dos dimensiones; el convertidor “String to byte array”
envía los datos en un arreglo de “bytes” es por esto que al colocar el convertidor “To Double precision Float”
el valor lo debemos de mostrar en un arreglo, aunque solo obtengamos un solo valor tomando el otro valor
del arreglo como un 0.
Una vez colocados todos los elementos; asignaremos nombres a cada elemento del panel frontal, para
poder tener control de estos al momento de personalizar el icono del Instrumento Virtual.
También podemos ordenar y estandarizar el tamaño de cada control o indicador, su posición dentro del
Panel Frontal, el tipo de orden y de estandarizado de los elementos depende de el arquitecto del proyecto;
sin embargo entre más ordenado se encuentre el Panel Frontal y el Diagrama de Bloques será más fácil
detectar errores y corregirlos, el Diagrama de Bloques se puede ordenar respecto al flujo de datos que se
tengan en el programa o la lógica de programación que se esté implementando.
Representación grafica
del indicador Numeric.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
92
Para nombrar los elementos de nuestro Panel Frontal tomaremos como referencia su función en el programa
como se muestra en la siguiente Fig.
Fig. 3.66 Personalizando VI.
Como se puede observar retiramos un “String” y colocamos el arreglo Numérico con el nombre de Valor
decimal, dejamos el “String” escribir en caso de necesitar comprobar el funcionamiento de la comunicación,
una vez realizando los cambios en el Panel Frontal se actualiza el Diagrama de Bloques como se muestra
en la siguiente figura:
Fig. 3.67 Personalizando VI.
Para cambiarle el nombre al
Control o Indicador, se posiciona el
cursor y se da doble clic sobre el
nombre actual.
Los elementos
que se modifican
en el Panel
Frontal también
se modifican en el
Diagrama de
Bloques.
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
93
Para agregar una descripción o una ayuda de la implementación del Instrumentos Virtual nos
direccionaremos al menú “File” y seleccionaremos “VI Properties”; una vez desplegado este
seleccionaremos “Documentation” como se muestra a continuación:
Fig. 3.68 “VI Properties”.
Personalizando el Instrumento Virtual.
Para personalizar la imagen del icono de nuestro Instrumento Virtual nos dirigimos al icono y damos clic
izquierdo sobre él, una vez que se despliega el Sub-menú seleccionaremos “Edit Icon”, inmediatamente nos
aparece una pantalla la cual se muestra a continuación:
Fig. 3.69 Personalizar Icono.
Para dar formato a nuestro Icono se cuenta con las herramientas del lado izquierdo o podemos colocar una
imagen creada en otro programa, copiando y pegando la imagen desde otra ruta.
Se agrega una descripción
del Instrumento Virtual
como: ¿Qué hace? Y ¿Cómo
lo hace?
Herramien
tas para
cambiar
forma del
icono
Capítulo III.- Lenguajes de programación y LabVIEW. Aplicación de comunicación serial “ECHO”.
94
Una vez creada la imagen procederemos a cablear nuestros elementos de entrada y salida al icono
representativo del Instrumento Virtual, lo cual se realiza estando en el Panel Frontal, posicionaremos el
cursor sobre el icono y seleccionando “Show Connector”, la imagen que se tiene en el icono cambia a u
recuadro con 12 espacios de los cuales la mitad son entradas y la otra mitad son salidas, este dato lo
podemos cambiar mediante las propiedades del icono, una vez visualizado el recuadro con 12 espacios
podremos seleccionar el elemento o los elementos de entrada y salida como se muestra a continuación:
Fig. 3.70 Personalizando VI.
Para poder relacionar entradas y salidas solo necesitamos conectar un espacio en blanco del recuadro con
el elemento a controlar, ahora colocaremos nuestro Instrumento Virtual dentro de un nuevo Instrumento
Virtual en blanco para visualizar nuestra obra.
Fig. 3.71 “Sub-VI”.
El icono cambia a
este recuadro, en el
cual relacionamos
entradas y salidas.
A un VI dentro de otro
se le llama SubVI
Podemos
visualizar la
descripción que
nosotros le
dimos al
Instrumento
Virtual.
95
“DESARROLLO DE LA
METODOLOGIA PARA LA
ADQUISICION DE DATOS
DIGITALES Y ANALOGICOS CON EL
SOFTWARE LabVIEW POR MEDIO
DE COMUNICACIÓN SERIAL.”
CAPITULO IV
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Planteamiento de la aplicación.
96
4.1 PLANTEAMIENTO DE LA APLICACIÓN.
Para ejemplificar la metodología se desarrollara una aplicación la cual colectara datos provenientes de un
microcontrolador PIC16F877A, estos datos provenientes del microcontrolador serán transmitidos por el canal
de comunicación RS-232 y visualizados mediante un grafico de control desarrollado en la plataforma de
programación LabVIEW.
4.1.1 Descripción de la aplicación.
El grafico de control tendrá las siguientes características: la señal que colecte del puerto analógico tendrá la
versatilidad de poderse visualizar en los siguientes elementos; termómetro, manómetro, velocímetro y
cualquier nivel de llenado de un tanque o deposito. Los datos digitales colectados activaran señales
Booleanas en el grafico de control, las cuales nos indiquen el estado en el que se encuentra.- Funcionara de
manera automática debido a que mediante la adquisición de la señal analógica controlara una señal digital
del PIC16F877A.-
DISEÑO:
Para el correcto funcionamiento del sistema requiere de los siguientes elementos:
Fig. 4.1 Ciclo de la aplicación.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Elementos de la aplicación.
97
4.2 ELEMENTOS DE LA APLICACION.
i. CABLE USB-DB9.
Convertidor de señal USB-DB9; debido a nuestro PC es una computadora personal no cuenta con el puerto
de comunicación serial, es por esta razón que se necesitara un cable USB-DB9 el cual convierte la conexión
USB a Serial.
ii. MAX-232.
Debido a que nuestro dispositivo de comunicación serial trabaja bajo un estándar de 4.5 volts y las
características técnicas del PC son de 12voltsn será necesario implementar un dispositivo el cual nos
amplifique la señal a enviar, este dispositivo es el MAX-232, el cual trabaja con transistores y nos amplifica la
señal que enviamos por el microcontrolador al PC.
iii. PIC16F877A.
Será empleado como nuestro dispositivo de comunicación, debido a que cuenta con el puerto de
comunicación serial llamado USART; este puede enviar y recibir datos bajo el estándar RS-232 el cual
maneja 3bit´s: el primero es de inicio, el de en medio es el valor a enviar y el tercero el de salida, la
velocidad y numero de bits se selecciona mediante el programa del microcontrolador, estos datos tendrá que
ser los mismos que declaremos al realizar la lógica de programación de nuestro grafico de control; el
estándar RS-232 envía los datos bajo los caracteres ASCII.
iv. DATO DIGITAL O ANALOGICO.
Para poder obtener la señal analógica del microcontrolador será necesario usar su modulo de conversión en
el cual usaremos como referencia el voltaje con el que trabaja el microcontrolador, estos e logra conectando
un potenciómetro el cual cuenta con tres terminales los dos extremos de este se conectaran a la
alimentación del sistema la cual es de 4,5volts, y la terminal de en medio se conectara a RA0 o al Pin
numero 2, una vez obtenido este valor el microcontrolador se encarga de enviarlo por medio del puerto de
comunicación serial.
La colección de datos digitales se tendrá que realizar de la siguiente manera: el puerto digital está
compuesto por 8 Pines en estos se tiene que tener unos y ceros, para poder obtener un 0 es necesario
conectar la terminal a negativo mediante una resistencia de 1KOhmy para poder obtener un 1 es necesario
colocar la señal positiva de alimentación a la terminal negativa junto con la resistencia, para poder tener
control de estos pulsos es necesario tener un elemento que active y desactive esta conexión como un
interruptor.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Elementos de la aplicación.
98
v. Grafico de control.
Fig. 4.2 Grafico de control de LabVIEW.
Funcionamiento del grafico de control.
El indicador con el nombre “presión” recibirá los datos del puerto analógico y los visualizara en el
manómetro, el manómetro al llegar al número 5 enviara la señal al microcontrolador de activar una salida la
cual regresara el valor al grafico de control y activara el indicador con el nombre “motor”.
La variación de la medición analógica se realizara mediante un potenciómetro; el cual representara un
instrumento de medición que trabaje bajo el orden de voltaje, en este caso la señal estará dentro del rango
de 0-5v, esta señal será convertida por el microcontrolador en un rango binario de 8bit´s, estos 8bit´s son los
que utiliza el puerto de conversión analógico digital en el PORT A del PIC16F8877A.
Los datos digitales a enviar serán representados físicamente mediante una resistencia de un 1KOhm
conectada a tierra, esta conexión representa un 0, a esta misma conexión se la agregara un interruptor con
conexión a positivo, al activar el interruptor estaremos enviando un 1 al PIC16F877A.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Adquisición de datos digitales y analógicos.
99
4.3 ADQUISICION DE DATOS DIGITALES Y ANALOGICOS.
Características de entradas digitales y analógicas del PIC16F877A.
Para poder enviar datos digitales o analógicos por el puerto de comunicación serial del PIC16F877A,
debemos de cumplir con las características definidas en el programa y respetar el manejo de los puertos, los
puerto pueden trabajar como entradas o salidas, digital o analógico, ya sea configurar un bit del puerto como
entrada o como salida o configurar todo un puerto para entradas digitales, entradas analógicas, salidas
digitales, salidas analógicas en este caso trabajaremos con el puerto A como la señal analógica, para poder
convertir la señal digital a analógica utilizaremos el voltaje de referencia del microcontrolador (el voltaje de
funcionamiento de este es de 4.5v), ahora conectaremos los extremos de un potenciómetro al negativo y
positivo de la alimentación y el pin intermedio a la entrada RA0 de mi PIC; haciendo este paso estaremos
convirtiendo 4.5 volts a una escala en código ASCII, este dato será del 0-255.
Para la colección digital necesitamos enviar el estado de todos los bits que conformen el puerto debido a que
el micro en las entradas lee 1 y 0, el cero se envía conectando una resistencia de 1KOhm y el uno se logra
agregándole la señal positiva o el positivo de la fuente de alimentación a la resistencia, esta conexión debe
de estar unida mediante un interruptor.
4.3.1 Envió y transmisión de datos digitales y analógicos.
Características de la comunicación serial.
La comunicación serial tiene una norma de trabajo la cual indica que transmite en código ASCII. Envía tres
elementos los cuales son bit de inicio, dato a enviar, bit de parada, cuenta con velocidad de baudios entre
otras; nuestra comunicación debe de tener un puerto por el cual se entiendan los formatos de comunicación
este puerto es el puerto serial sin embargo podemos adquirir un cable RS.232 a DB9.
Programa a emplear del PIC16F877A.
El programa base para manejar los puertos tanto analógicos como digitales del PIC16F877A es el que se
muestra a continuación.
list p=16F877
include <p16f877.inc>
ADDR_L equ 0x20
DATA_L equ 0x21
org 0x00
nop
nop
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Envió y transmisión de datos digitales y analógicos.
100
bcf STATUS,RP0
bcf STATUS,RP1
movlw b'01000001'
movwf ADCON0
bsf STATUS,RP0
bcf STATUS,RP1
clrf TRISA
clrf TRISB
clrf TRISC
clrf TRISD
clrf TRISE
movlw b'00001110'
movwf ADCON1
bsf TRISA,0
bcf TRISC,6
bsf TRISC,7
movlw d'129'
movwf SPBRG
bsf TXSTA,BRGH
bcf TXSTA,SYNC
bcf STATUS,RP0
bcf STATUS,RP1
bsf RCSTA,SPEN
bsf STATUS,RP0
bcf STATUS,RP1
bcf TXSTA,TX9
bsf TXSTA,TXEN
bcf STATUS,RP0
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Envió y transmisión de datos digitales y analógicos.
101
bcf STATUS,RP1
bcf RCSTA,RX9
bsf RCSTA,CREN
_ESPERARX
btfss PIR1,RCIF ;PREGUNTA SI EL BUFER DE RX ES FULL
GOTO _ESPERARX; NO, IR A _ESPERA
movf RCREG,W
movwf PORTD
_ADC
bsf ADCON0,GO
_ESPERA
btfsc ADCON0,GO
GOTO _ESPERA
movf ADRESH,W
movwf TXREG
_ESPERATX
btfss PIR1,TXIF
GOTO _ESPERATX
GOTO _ESPERARX
END
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio de comunicación serial RS-232.
Diagrama de conexión del PIC16F877A para datos digitales y analógicos.
.
102
4.3.2 Diagrama de conexión del PIC16F877A para datos digitales y analógicos.
Los microcontroladores trabajan con pulsos, estos pulsos son envidos mediante un cristal, los cuales nos
ayudan a generar el tiempo entre instrucciones, la velocidad de transmisión y recepción del puerto de
comunicación USART, el tiempo y la forma de convertir las señales digitales a analógicas; por estas razones
se deberá de conectar el microcontrolador como se muestra en la siguiente figura.
Fig. 4.3 Diagrama de conexiones de PIC16F877A.
El valor de las resistencias para las entradas se encuentra estipulado por el fabricante y se pueden ver en el
Anexo 1, el valor de las resistencias para los LED`s se calcula a continuación:
Donde = 5v; = ; = .7v
De lo cual sabemos que = 10mA
Sustituyendo tenemos )+0.7v
De donde obtendremos el valor de R1:
Lo que nos da un valor de 430 Ohm. Para las resistencias del LED.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio de comunicación serial RS-232.
Diagrama de conexión del PIC16F877A-PC para datos digitales y analógicos.
.
103
4.3.3 Diagrama de conexión del acoplamiento de señal PIC16F877A con PC.
El funcionamiento del puerto de comunicación serial de nuestro ordenador tiene un estándar de trabajo de
+/-12v, por esta razón debemos de emplear un dispositivo el cual nos ayude a amplificar la señal en este
caso implementaremos el MAX-232 el cual funciona a base de transistores los cuales aumentan o
disminuyen la señal que reciben.-
A continuación se muestra el diagrama de conexión del MAX232.
Fig. 4.4 Diagrama de conexión del MAX232.
La siguiente figura muestra el diagrama de conexión del microcontrolador, el MAX232 y el DB9.
Fig. 4.5 Diagrama de conexión de PIC, MAX232, DB9.
RX
TX
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio de comunicación serial RS-232.
Hardware y software a utilizar para el desarrollo de la aplicación.
.
104
4.4 HARDWARE Y SOFTWARE A UTILIZAR PARA EL DESARROLLO DE LA APLICACIÓN.
Hardware a usar en la aplicación:
· Resistencias de 1KOhm. 9
· Capacitores de 2.2 picofaradios. 2
· Capacitores de 10 microfaradios de preferencia de tantalio. 4
· Cristal de cuarzo de 20MHz. 1
· resistencia variable (potenciómetro) de 20KΩ 1
· microcontrolador PIC16F877A 1
· fuente regulada de 4.5v 1
· Dip switch de 8 estados 1
· MAX232 1
· Cable convertidor USB-DB9 1
· Led`s 4
· Placa de pruebas proto board 1
· Computadora personal TOSHIBA Satellite Pro 1
Software a usar en la aplicación:
Software de prueba de National Instruments LabVIEW 8.5.
Driver para cable USB-DB9.
MPLAB IDE v 8.5 uso libre.
PICkit 2 uso libre.
Proteus versión de prueba.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Desarrollo de la aplicación.
105
4.5 DESARROLLO DE LA APLICACION.
LabVIEW cuenta con un modulo dedicado a la comunicación el cual lleva por nombre Instrument I/O
En este modulo encontramos las herramientas del VISA SERIAL las cuales utilizaremos para la
comunicación con el PIC16F877A, estas herramientas nos permiten trabajar con el puerto de comunicación
serial de nuestro PC y el PIC16F8877A, es decir podemos leer, escribir, establecer los parámetros de
comunicación y separar los bits de inicio y parada.
Grafico de control.
El grafico de control es la representación simbólica del proceso, en este caso contamos con señales
“Booleanas” y un indicador del tipo “Numeric”, cuando asociamos datos debemos de asegurarnos de usar
las características necesarias para poder desarrollar la lógica de programación, en este caso hacemos
referencia al tipo de datos Booleanos y Numeric; cuando recibimos los datos por el puerto de comunicación
serial RS-232 obtenemos caracteres del tipo ASCII, dado que no contamos con un convertidor directo de
ASCII a Boolean o a Numeric, se tendrá que convertir el dato recibido y después acoplarlo al tipo de datos
Numeric, así mismo la visualización de datos Boolean tendrá que acoplarse al tipo de datos recibidos,
Como realizar la lógica de programación en LabVIEW.
LabVIEW no tienen un orden específico para realizar lógica de programación, solo tiene reglas como: solo se
pueden conectar elementos con el mismo tipo de datos (color y formato), no podemos dejar elementos sin
conectar, debemos de cumplir con el requerimiento de cada icono de programación para poder usar el
mismo, cada icono ejecuta su función hasta que todas sus entradas están disponibles al terminar su
ejecución transfiere los datos al nodo siguiente.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Desarrollo de la aplicación.
106
DIAGRAMA DE BLOQUES DEL GRAFICO DE CONTROL.
Fig. 4.6 Diagrama de bloques de grafico de control.
PANEL FRONTAL DE GRAFICO DE CONTROL.
Fig. 4.7 Panel frontal de grafico de control.
Capítulo IV.- Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el software
LabVIEW por medio de comunicación serial RS-232. Pasos de la metodología.
107
Pasos de la metodología.
1.-Para poder entender el ciclo que se debe de cumplir en la adquisición de datos explicaremos el flujo de
estos en el programa, una vez que se tiene la conexión entre el PC y nuestro sistema de adquisición el cual
es: microcontrolador, MAX232, USB-DB9 debemos de establecer en el diagrama de bloques, de nuestro
grafico de control, las mismas características de comunicación que definimos en el programa del
microcontrolador; las cuales son: velocidad de transmisión 9600 baudios, numero de bits permitidos en el
puerto 8 bits, paridad sin paridad.
2.- Ya que se tiene definido este punto pasamos a identificar la existencia de bits en el puerto.
3.-una vez que se identifica la existencia de bits en el puerto de comunicación serial procedemos a leer
estos, en este caso debemos de estar monitoreando la recepción de bits en el puerto; lo cual logramos
mediante la implementación de un ciclo While el cual se ejecuta hasta que la condición que se dispone lo
detiene, con esta acción estaremos percibiendo cambios en el puerto de comunicación serial.
4.- Ahora ya que estamos leyendo el puerto de comunicación solo necesitamos agregar el icono que nos
permite escribir en el puerto de comunicación serial, esta acción la necesitamos para el control de los
puertos digitales del microcontrolador.
5.-Ya que tenemos el código ASCII que envía nuestro microcontrolador debemos de convertirlo a “Numeric”
y a “Boolean”, lo cual se logra convirtiendo el dato obtenido en Byte y después lo convertimos en un numero
entero, para poder visualizarlo en una escala de 0 a 255, esta escala proviene de la conversión de binario a
decimal en la cual representamos los 8bit`s del canal de conversión del microcontrolador en un numero
decimal, una vez convertido el dato lo podemos visualizar en cualquier elemento que visualice datos del tipo
“Numeric”.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Diagrama de flujo de la metodología.
108
4.5.1 Diagrama de flujo de comunicación serial.
N
S
Inicio
Abrir el Software de National
Instruments LabVIEW 8.5.
Abrir una nueva plantilla para
construir un Instrumento Virtual.
Configurar los parámetros de
comunicación del puerto serial.
Procesamiento de Bytes en el
canal de comunicación.
Lectura de datos.
Existen bytes en
canal de
comunicación.
Escritura de datos.
Cierre de canal de
comunicación.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Desarrollo de la metodología.
109
4.5.2 Desarrollo de la metodología para la adquisición de datos digitales y analógicos con el
software LabVIEW por medio del puerto de comunicación serial RS-232.
Paso 1.- Iniciar programa de NATIONAL INSTRUMENTS LabVIEW 8.5.
Fig. 4.8 Icono representativo del software LabVIEW de National Instruments.
Una vez seleccionado aparece la siguiente ventana.
Fig. 4.9 Ventana de bienvenida de LabVIEW 8.5.
Icono
representativo de
la plataforma de
programación
LabVIEW 8.5 de
National
Instruments.
Esta ventana nos
indica la versión
con la que se
cuenta, en este
caso LabVIEW
8.5.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Desarrollo de la metodología.
110
Paso 2.-Crear un Instrumento Virtual para la comunicación serial.
Abrir un Instrumento en Blanco:
Fig. 4.10 Abrir un Instrumento Virtual en Blanco.
Paso 3.-Configuración de parámetros para la comunicación seria:
Fig. 4.11 Configuración de puerto serial.
Abrir un
Instrumento Virtual
en Blanco.
Este icono nos
permite
configurar los
parámetros para
sincronizar la
comunicación
Serial.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Desarrollo de la metodología.
111
Debido a que debemos de establecer una sincronía entre elementos de comunicación como: velocidad,
paridad y número de bits a transmitir, utilizaremos el “VISA Configure Serial Port”.
Pasó 4.- Lectura de bytes en puerto:
Fig. 4.12 Lectura de Bytes en puerto de comunicación Serial.
La lectura de Bytes nos sirve para interpretar, ordenar y visualizar los caracteres en el formato de la norma
RS-232, sin esta herramienta nuestro puerto de comunicación no entendería los caracteres ni la
comunicación debido a que no tendría una referencia.
Pasó 5.- Lectura de bytes en el puerto.
Fig. 4.13 Lectura de datos.
Este
elemento
nos indica la
estructura
de los datos.
Para poder
visualizar los
datos
necesitamos
extraerlos del
canal VISA con
este Icono.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Desarrollo de la metodología.
112
La extracción a lectura de datos del puerto es diferente de la lectura de Bytes debido a que extraeremos los
caracteres que contienen codificados en los Bytes y no la estructura como lo es: 1bit de inicio, 1bit de
término, y el contenido.
Pasó 6.- Escritura de datos.
Fig. 4.14 Escritura de datos.
Para poder escribir datos en nuestro puerto necesitamos introducir el código o caracteres en el canal de
transmisión para lo cual usaremos el icono “Write” este icono nos permite enviar datos atreves de nuestro
canal de comunicación en el formato en el que se está trabajando.
Este icono nos permite
escribir datos en el formato
adecuado.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Desarrollo de la metodología.
113
Pasó 7.- Cierre del Puerto de comunicación.
Fig. 4.15 Cierre del Puerto de comunicación.
Una vez que hemos terminado nuestra comunicación o el ciclo de transferencia y recepción de datos
necesitamos finalizar la comunicación cerrando el ciclo, esto se logra implementando el icono “Close”, el cual
termina la comunicación serial.
Una vez que se culmino la comunicación serial se concluye el ciclo.
Es importante denotar que dependiendo las funciones que se deseen realizar o implementar en la obtención
de datos digitales y analógicos será la lógica de programación.
Cierre de
transmisión serial.
Capítulo IV.- Metodología para la adquisición de datos digitales y analógicos con el software LabVIEW por medio
de comunicación serial RS-232. Conversión de datos.
114
Visualización de datos.
Conversión de datos “String” a “Numeric”.
Los datos obtenidos del puerto de comunicación se encuentran en formato ASCII por el tipo de estándar que
maneja la comunicación serial RS-232, debido a esto convertiremos los datos.
Fig. 4.16 Conversión de datos.
La extracción de los datos recibidos por el “READ”, es en formato “STRING”, y su visualización es en
caracteres o código del tipo ASCII, por lo cual debemos de convertir los datos a “Numeric”, sin embargo no
contamos con el icono que lo hace de manera directa; por lo tanto convertimos los datos del “STRING” a
“BYTE” después los pasamos a “DOUBLE” con lo cual tenemos un arreglo de caracteres del cual solo
extraeremos los que nos interesan, al realizar esta conversión obtenemos los datos en números decimales
con lo cual nuestro valor obtenido oscila entre el valor cero y el dos cientos cincuenta y cinco.
Conversión
de datos
“String” a
“Numeric”
Análisis económico.
115
Análisis económico.
Para el desarrollo del análisis dividiremos en etapas la ejecución del proyecto.
Estas etapas se basaran en el tiempo aproximado que duro cada etapa, es decir desde el inicio hasta la
conclusión de cada una de ellas en tiempo efectivo lo cual no indica el tiempo total invertido, y se cuantificara
en horas debido a que el presente trabajo fue un desarrollo, también se tomara en cuenta el salario
promedio de un pasante de ingeniería recién egresado el cual se pretende se encuentre entre $ 14,000 y $
16,000 pesos, los tiempos se encuentran sujetos a una estimación tomada previamente.
Etapa 1.Tiempo de recolección de la información.
Con duración de 32 días tomando como estándar 2.5hrs diarias debido a que se realizaba una preselección
del material recolectado.
Esta etapa comprende el proceso de búsqueda de información la cual se baso en la necesidad que
comprende el trabajo, la recolección de información estuvo orientada a libros, páginas electrónicas y
artículos que contenían fuentes de información más fidedignas ó de profesionales con amplia experiencia en
el ramo de la materia; el tiempo estimado en la recolección de la información fue de 96hrs.
Etapa 2.Tiempo invertido en analizar y seleccionar la información.
Con duración de 64 días tomando como estándar 1.5hrs por día para realizar un análisis profundo y
selectivo.
Análisis de la información: Una vez que se recolecto la información pertinente para el desarrollo del trabajo
presente se procedió a clasificar y seleccionar la que definía de manera más explícita el tema que se
necesitaba esclarecer, esta etapa comprendió 80hrs.
Etapa 3. Tiempo dedicado al análisis y exploración del Software LabVIEW.
Con duración de 120 días tomando como estándar 2hrs por día.
En esta etapa se descargo la versión de prueba que brinda National Instruments en la siguiente página:
http://www.ni.com/trylabview/esa/ , la cual contempla 30 días como máximo, tiempo en el cual podemos
disfrutar de la mayoría de las características de este software de manera gratuita; esta etapa contemplo
120hrs.
Etapa 4.Tiempo estimado del desarrollo de la aplicación
Con duración de 35 días tomando como estándar 1.2hrs por día.
Durante este periodo se realizaron las pruebas necesarias para el desarrollo de aplicaciones que puedan
colectar datos digitales y analógicos, así mismo se detallo el proceso que se emplea para el uso del puerto
RS-232; en este periodo se comprendieron 40hrs.
Análisis económico.
116
Costo del desarrollo del proyecto.
Para establecer el costo del desarrollo del proyecto se tomara en cuenta:
Personal involucrado, tiempo de desarrollo, Hardware y Software, que se necesito para el desarrollo del
mismo, por último se toma como base un estimado del sueldo de un ingeniero aproximado de $16,000.00
mensuales.
En este caso solo hubo una persona involucrada; Hardware 1 computadora; Software: Office, Windows XP,
LabVIEW, MPLAB. PICkit 2.
El total de número de horas invertidas en el proyecto nos da una estimación de 416hrs.
El costo de hora por mano de obra se obtiene de dividir el salario mensual entre el número de días lo cual
nos arroja un costo de $100.00 por hora.
Partiendo de los datos obtenidos se realiza la siguiente fórmula: donde X es el costo por
hora y H es el total de horas acumuladas para lo cual tenemos lo que nos da un total de
$41,600.00 Horas /Hombre.
El equipo de computo que se uso tiene un costo de $16,400.00, las licencia del software fueron de carácter
gratuito y otras de la versión de prueba que ofrecen; sin embargo se calcularan los costos del mismo,
licencia de LabVIEW de National Instruments en modo developer Suite y por una duración de 3 años
incluyendo actualizaciones es de $84,848.80 en este punto se anula el precio debido a que se utilizo la
versión de prueba, Office 2010 Pro $6.001.37, Windows XP adquirido con el equipo de computo, los demás
software son de uso libre, los cuales los brinda Microchip.
Una vez contempladas las licencias sumamos el costo:
Unidad Material Precio
1 pza. Office 2010 Pro $ 6,001.37
416 hrs H/H $ 41,600.00
1 pza. PC personal $ 16,400.00
Total= $ 64,001.37
Lo cual nos arroja un precio de desarrollo de proyecto de $64,001.37
Análisis económico.
117
Costo del prototipo.
En esta etapa se involucran los precios del material que se implemento para la aplicación:
Unidad Material Precio
1pza. PIC16F877A $ 180.00
1pza. MAX-232 $ 90.00
5pzas. Capacitores de tantalio $ 250.00
12pzas. Resistencias $ 150.00
1pza. Potenciómetro $ 20.00
1pza. Fuente regulada $ 250.00
1pza. Cautín $ 220.00
1pza. Cable USB-DB9 $ 360.00
5mts. Alambre y cables para conexiones $ 50.00
1pza. Cristal de cuarzo $ 20.00
1pza. Quemador de PIC $ 480.00
Total $ 2,070.00
Teniendo los costos del desarrollo y del prototipo los sumaremos para obtener el total.
Concepto Precio
Desarrollo de proyecto $ 64,001.37
Costo de prototipo $ 2,070.00
Total = $ 66,071.37
Análisis económico.
118
Ahora realizaremos una comparativa entre la metodología y el tomar los cursos que brinda National
Instruments.
Costo de Cursos:
National Instruments cuenta con numerosos cursos de capacitación en los cuales podemos ir conociendo y
desarrollando las herramientas del entorno de programación, estos cursos se pueden vender por separado
en módulos, o en un paquete.
Los módulos tienen un precio unitario y especifican el número de días en los cuales se imparten, en estos
módulos el aprendizaje es limitado al contenido del mismo, así como las herramientas y la información.
O bien podemos tomar un curso de 6 meses con un valor de $ 48,990.00 con el nombre de Training and
Certification Membership código 780154-01.
1 año con precio de $73,490.00 mismo nombre diferente clave 780154-11.
2 años con precio de $97,990.00 mismo nombre diferente clave 780154-21.
Estas últimas tres alternativas nos dan acceso ilimitado a todos los cursos de capacitación y exámenes de
certificación de NI.
En este proceso también se desglosan las horas que se le invierte al desarrollo de la aplicación y el sueldo
del interesado en los días del curso lo cual nos da un total de 160hrs H/H con un costo de $16,000.00
Una vez que tenemos los precios calculados se suman las cantidades y se compara con el desarrollo:
Precio total tomando cursos con National Instruments es de: $136,458.8 sin IVA
Concepto Precio
Training and Certification Membership código 780154-01. $ 48,990.00
960 H/H $ 96,000.00 Total $ 144,990.00
Costo de aplicación para la adquisición de datos digitales y analógicos:
Unidad Material Precio
1pza. Tarjeta NI 9219 $13,460.00
1pza. PC con software Office $22,401.37
1pza. Sensor MPX2200 $ 317.50
2pza.
Total de $36,178.87sin IVA
Ya que tenemos el costo de total de ambos los sumamos lo cual nos da un valor de $181,168.87sin IVA,
dado que la adquisición de los cursos nos genera un IVA y el Hardware también se lo sacamos a la cantidad
total generada lo cual nos arroja un total de $208,344.20 con IVA.
Análisis económico.
119
Una vez que tenemos los costos de ambos, se puede denotar que este trabajo representa un aporte
apropiado para los estudiantes de la ESIME Azcapotzalco, debido a que solo es una introducción al manejo
del software LabVIEW. El software LabVIEW es extenso y se puede emplear en numerosas aplicaciones, sin
embargo no ha tomado mucho auge en la ciudad de México por el momento.
Este trabajo busca dar una herramienta más a todos los estudiantes, para tener la oportunidad de realizar y
desempeñar prototipos novedosos y sofisticados sin tener que realizar una inversión monetaria con la cual
no se cuenta, así mismo se pretende contar con conocimientos de los países que cuentan con tecnologías
de punta lo cual nos brindara una mejor calidad de vida al estar más preparados.
México es un país en desarrollo con lo cual los profesionistas que manejen la mayor parte de herramientas,
serán los que puedan tener acceso a procesos sofisticados y entre mas profesionistas, de escuelas públicas
mexicanas, tengan acceso a estos procesos seremos más reconocidos como mano de obra competente con
lo cual estaremos abriendo las puertas de empresas internacionales a todos los estudiantes que cuenten con
una buena preparación académica.
Conclusiones.
120
Conclusiones.
El hecho de que LabVIEW sea una herramienta de vanguardia mundial, y utilizada mas habitualmente en
otros países desarrollados, complica la información que se puede usar respecto al uso de este Software, a
menos que se cuente con un amplio presupuesto económico para adquirir un curso, el presente documento
es una excelente herramienta para tomar como base en el desarrollo de gráficos de control usando
LabVIEW y su puerto de comunicación RS-232 lo cual se puede comprobar en el capítulo IV.
LabVIEW es una potente herramienta en el desarrollo de gráficos de controla nivel software, el cual puede
conectarse con una inmensa cantidad de hardware de National Instruments, sin embargo la adquisición de
estas dos herramientas contempla un alto incremento económico. El presente documento es una aplicación
de cómo usar esta potente herramienta con hardware creado por nosotros mismos mediante el puerto de
comunicación RS-232 y un PIC 16f877A, para la adquisición de datos digitales y analógicos, cabe destacar
que este logro es parte del objetivo general y se puede comprobar en el capítulo IV.
LabVIEW es un software el cual contempla herramientas para la realización de tareas especificas y nos
brinda diferentes maneras de conexión, comunicación, análisis y despliegue de información, mediante un
ambiente de programación flexible y bastante amigable para el usuario.- En el cual podemos emplear poco
tiempo en la sintaxis del programa pudiendo aprovechar más tiempo en la mejora del mismo.
A si mismo cuenta con diferentes caminos para el procesamiento de datos, los cuales podemos visualizar en
diferentes gráficos de control sin tener que modificar parámetros del procesamiento de estas señales,
también podemos ejecutar acciones, de manera simple y practica, para el control de estos parámetros
medibles, este punto fue uno de los objetivos específicos y se puede comprobar en el capítulo III.
El puerto de comunicación serial RS-232 es habitualmente conocido por la mayoría de estudiantes y
profesionales de carreras técnicas, lo cual facilita la información de este, asimismo la mayoría de dispositivos
que procesan datos industriales tienen este puerto para poder comunicarse.
Un punto clave en la recolección de datos digitales y analógicos es el elemento de transmisión, en este caso
el PIC 16f877A, el cual facilito significativamente el desarrollo de la aplicación, debido a su puerto de
comunicación asíncrono; este se puede programar de una manera fácil y podemos modificar de forma
práctica las entradas y salidas con las que disponemos en este dispositivo. No obstante se acoplo la señal
de transmisión del PIC16f877A con un MAX-232, esto no fue más que una amplificación de señal para poder
comunicar el puerto serial de la PC con el PIC, el PC trabaja con un rango promedio de 12v y el PIC con un
rango promedio de 4.5v, este punto se puede comprobar en el capítulo II.
Conclusiones.
121
El tipo de señales a adquirir las podemos transformar o acoplar al nivel de ejecución o entendimiento del
software mediante periféricos electrónicos de bajo costo, los cuales cuenten con una gran cantidad de
información para poder desarrollarlos de manera simple y eficiente, este punto fue uno de los objetivos
específicos y se logro con éxito en el capítulo IV.
Es importante conocer y entender la comunicación del tipo de datos al realizar la transmisión de señales
para poder establecer un camino a seguir en la ejecución del procesamiento de los datos.
Los limites de nuestras variables a recolectar y la falta de eficiencia de estas se encontraran delimitadas por
el elemento que transmita, esto lo podemos identificar mediante las características técnicas ya sea que se
requieran o las que nos brinda el dispositivo.
Recomendaciones.
122
Recomendación.
Es importante tener en cuenta la versión del software que se está usando, la cual es LabVIEW 8.5, debido a
que está en constante mejora esta herramienta y es posible que para implementarlo en otras versiones se
necesiten hacer ciertas modificaciones.
El presenta es un estándar de cómo manejar el puerto de comunicación serial RS232, envió y
transmisión de datos a través de este con el software LabVIEW.
Este trabajo no es un estándar para realizar aplicaciones de adquisición de datos, debido a que
dependerá de la visión del desarrollador para emplear las herramientas que se explican.
Las características del software o del presente trabajo no están directamente ligadas al
microcontrolador.
MEJORAS A FUTURO.
Este trabajo solo explica una reducida porción de lo que puede realizar el software LabVIEW, sin embargo
es una herramienta poderosa para realizar sistemas SCADA.
Podemos emplear los parámetros de voltaje con los que cuenta el microcontrolador y hacer la comunicación
directa con el PC.
Realizar controles como PWM, variadores de velocidad, controles de temperatura, etc.…
Realizar controles de PICs para manejar 2 o 3 señales analógicas y digitales con un solo cable de
comunicación.
Estas son algunas de las mejoras con las que podemos obtener más herramientas, tanto en la programación
de PIC`s y en el manejo de esta herramienta de programación.
Glosario.
123
Glosario.
Señal: es una representación, en diversos tipos y formas, que informa.
Digital: representación de dígitos
Analógico: representación de manera continúa en el tiempo la evolución de una magnitud.
Microprocesadores: es la unidad que procesa la información dentro de un computador, construido a base
de miles de componentes electrónicos integrados
Microcontroladores: es un circuito integrado que encapsula las tres unidades fundamentales de una
computadora las cuales son: unidad central de procesamiento, memoria, periféricos de entrada y salida.
PIC: Peripheral Interface Controller el cual es una familia de los microcontroladores con memoria RISC
desarrollados inicialmente por GI.
Periféricos: cualquier dispositivo el cual comunique el exterior con la unidad central de procesamiento o que
ayude como memoria a la memoria principal.
Encapsulado: la presentación física que tienen los componentes electrónicos.
Encriptar: sinónimo de cifrar, acción para proteger un código u ocultarlo mediante una clave.
Conversores: son aquellos dispositivos que convierten un dato al especificado, por ejemplo un convertidor
analógico-digital, convierte el dato analógico a uno digital.
Set: sinónimo de asignar
Lenguaje ensamblador: es un medio de entendimiento entre el código digital y el usuario.
Acoplar: unir o encajar de manera que perfecta lo involucrado.
RISC: Reduced Instruction Set Computer, juego de instrucciones reducido, lo cual indica que con un número
corto de comandos podemos realizar tareas específicas.
Memoria tipo flash: es una memoria la cual permite leer y escribir múltiples posiciones de memoria en la
misma instrucción.
Memoria tipo EEPROM: Electrically-Erasable Programmable Read-Only Memory, es un tipo de memoria la
cual puede ser programada, leída y escrita eléctricamente.
Glosario.
124
Memoria RAM, random-access memory es la memoria donde el procesador recibe instrucción y almacena
resultados.
USART: universal asynchronous receiver/transmitter, es la transmisión y recepción asíncrona del puerto
serial.
Asíncrono: a la falta de sincronía entre 2 parámetros
Baudio: unidad de medida usada en telecomunicaciones, la cual representa la cantidad de cambios que
tiene la señal.
ASCII: American Standard Code for Information Interchange, código utilizado para representar caracteres.
ANSI: American Nationals Standards Institute, instituto que omite normas.
EIA: Environmental Impact Assessment, Evaluación de impacto ambiental.
FORTRAN: formula translator, lenguaje de programación.
COBOL: common Business Oriented Language, lenguaje de programación.
PL/1: Programming Language 1, lenguaje de programación.
BASIC: benginner´s All-purpose Symbolic Instruction Code lenguaje de programación.
RAD: Desarrollo Rápido de Aplicaciones, lenguaje de programación.
CASE: Computer Aided Software Engineering, lenguaje de programación.
LISP: “List Processing, lenguaje de programación basado en listas.
Informática: ciencia encargada del estudio y tratamiento automático de la información.
Proceso: la conjunción de etapas o pasos que existen dentro de un principio y un fin.
Codificación: acción de transformar un contenido a un código.
EDD´s: Estructuras Dinámicas de Datos, son estructuras que se amplían o se reducen según los
requerimientos que se necesiten.
Software: es la lógica empleada en un computador para resolver tareas específicas
Hardware: son las representaciones físicas de una computadora.
Glosario.
125
Sistemas embebidos: son sistemas orientados al análisis en tiempo real de algunas tareas específicas, las
cuales se encuentran en la misma tarjeta electrónica de control.
FPGA: Field Programmable Gate Array, es un componente semiconductor el cual contiene bloques de lógica
cuya interconexión y funcionalidad puede ser programada mediante de un software.
DSP: Digital Signal Processing, procesador digital de señales.
PID: Proporcional Integral Derivativo, método utilizado en el cálculo de sistemas de control.
PAC: controladores de automatización programables es el conjunto de dispositivos interconectados a una
FPGA, por ejemplo, la cual realiza tareas específicas.
PLC: controladores lógicos programables.
VI: Virtual Instruments, instrumento Virtual; se la llama a si debido a que representa elementos virtuales
físicos mediante gráficos programables.
Sub-VI: elementos virtuales dentro de elementos virtuales.
Bit: un digito del sistema de numeración binaria.
Byte: es una palabra de dígitos.
Field-Point: es una unidad de entradas y salidas, en la cual se pueden desarrollar sistemas de control.
Panel Frontal: es la ventana de LabVIEW en la cual colocamos los elementos virtuales a representar.
Diagrama de Bloques: es la ventana de LabVIEW en donde se coloca el cableado de los iconos de
programación lógica.
LabVIEW; nombre corto dado su nombre en ingles “Laboratory Virtual Instrumentation Engineering
Workbench”, el cual es llamado lenguaje G, la G de Grafico.
SCADA; iniciales de su nombre en ingles Supervisory Control And Data Acquisition.
Bibliografía.
126
Bibliografía.
(Checkland 1980) Checkland, Peter. “The System Movement and the „Failure‟ of
Management Science”. Cybernetics and Systems: An International Journal, 11. 1980.
(Hitchins 1992). Hitchins, Derek. Putting Systems to Work. John Wiley & Sons,
Chichester, England. 1992.
López Cano José Luis, Métodos e hipótesis científicas, México, 1984.
Roberto Hernández Sampieri, Carlos Fernández Collado, Pilar Baptista Lucio, Metodología de la
investigación, Mc Graw Hill, Colombia (1996).
López Cano José Luis, Métodos e hipótesis científicas, México, 1984.
Roberto Hernández Sampieri, Carlos Fernández Collado, Pilar Baptista Lucio, Metodología de la
investigación, Mc Graw Hill, Colombia (1996).
Gregorio Klimovsky, Las desventuras del conocimiento científico. Una introducción a la
epistemología, A-Z editora, Bs.As., 1997, ISBN, 950-534-275-6.
René Descartes. Discurso del método. segundo título o indicación al título principal Discours de la
methode. Pour bien conduire la raison & chercher.
Método en Diccionario de Filosofía J. Ferrater Mora, Ariel, Barcelona, 1994, ISBN 84-344-0500-8,
p. 2402.
Albert Paul Malvino, Principios de electrónica. Sexta edición. 1999.
Tocci, Ronald J., Neal S. Windmer, Gregory L. Moss. Sistemas digitales Principios y Aplicaciones.
Decima edición, 2007.
Mileaf, Harry. Electricidad serie 1-7. México, 2008.
National Instrument. LabVIEW Help, 371361D-01, August 2007.
Bibliografía.
127
Páginas de internet consultadas.
http://www.ispjae.cu/eventos/colaeiq/Cursos/Curso12.doc
http://sistemigramas.wordpress.com/2009/01/21/la-diferencia-entre-el-pensamiento-de-sistemas-duros-y-del-
pensamiento-de-sistemas-suaves/
http://es.wikipedia.org/wiki/Puerto_%28computaci%C3%B3n%29
http://www.alegsa.com.ar/Dic/comunicacion%20serial.php
http://www.dte.us.es/tec_inf/itis/estr_comp/docweb/tema4/tema4ec-3.pdf
http://www.desarrolloweb.com/manuales/manual-iniciacion-programacion.html
http://www.todo-programacion.com.ar/archives/2005/04/lenguajes_de_al.html
http://www.desarrolloweb.com/manuales/manual-iniciacion-programacion.html
http://www.desarrolloweb.com/articulos/2477.php
http://www.ispjae.cu/eventos/colaeiq/Cursos/Curso12.doc
http://www.elrinconcito.com/articulos/Analogicas_D/Comunica.htm
Cursos GMAT, GRE, TOEFL Escuela de Admisiones al Posgrado dirigida por MBAs y Coaches
www.testpoint.com.mxEnlaces patrocinados
http://www.mailxmail.com/curso-redes-transmicion-datos-1/datos-digitales-analogicos-senales-
digitales-analogicas
http://www.microchip.com Web oficial del fabricante de los PIC en inglés y chino.
http://www.msebilbao.com Microsystems Engineering, kits, libros.
http://www.ic-prog.com Software para programar dispositivos.
http://www.jdm.homepage.dk/newpics.htm Programador JDM
http://www.labcenter.co.uk/ Proteus. Simulación de microcontroladores y diseño de circuitos impresos.
http://perso.wanadoo.es/pictob/micropic.htm#pic16xxx_con_instrucciones_de_14_bits
http://www.ni.com/labview/family/esa/
http://sine.ni.com/nips/cds/view/p/lang/es/nid/202567
Anexo1
128
ANEXO 1 características técnicas del PIC16F877A:
Anexo2
129
ANEXO 2 Características técnicas del MAX232:
Anexo3
130
Anexo 3 diagrama de conexión del MAX232-PC-Microcontrolador.