CAPITULO I181.112.224.103/bitstream/27000/629/1/T-UTC-1083.pdf · los usuarios estén pensando...

154
1 CAPITULO I FOTO 1 FUENTE: EL AUTOR FUNDAMENTOS GENERALES Se describe los siguientes. 1.1 ANALISIS HISTORICOS.- La historia ha permitido al ser humano tener pleno conocimiento de cómo ha ido evolucionando la ciencia de la computación, desde sus inicios, a continuación se realizará un breve recuento histórico del desarrollo de los computadores y las tarjetas de adquisición de datos. El ser humano con la innata curiosidad que le caracteriza, siempre estuvo en la búsqueda de nuevos instrumentos y procedimientos de medida y cálculo partiendo de lo mas elemental a lo más complicado.

Transcript of CAPITULO I181.112.224.103/bitstream/27000/629/1/T-UTC-1083.pdf · los usuarios estén pensando...

1

CAPITULO I

FOTO 1

FUENTE: EL AUTOR

FUNDAMENTOS GENERALES

Se describe los siguientes.

1.1 ANALISIS HISTORICOS.- La historia ha permitido al ser humano tener

pleno conocimiento de cómo ha ido evolucionando la ciencia de la computación,

desde sus inicios, a continuación se realizará un breve recuento histórico del

desarrollo de los computadores y las tarjetas de adquisición de datos. El ser humano

con la innata curiosidad que le caracteriza, siempre estuvo en la búsqueda de nuevos

instrumentos y procedimientos de medida y cálculo partiendo de lo mas elemental a lo

más complicado.

2

En 1924, Bull en Francia patenta algunos dispositivos electromagnéticos para

análisis numéricos, crea una sociedad que luego seria la firma Bull en Europa.

Con el descubrimiento de los semiconductores o transistores y coincidiendo

con el desarrollo de la Segunda Guerra Mundial que causó una gran presión social,

obligo a los científicos a mejorar la tecnología existente para adaptarla a procesos y

trabajos bélicos, paralelamente se pusieron a punto los semiconductores o transistores

cuyas propiedades conocían desde mucho antes.

En 1943 en la escuela de Ingeniería Electrónica de Moore, bajo la dirección de

John Mauchly y Presper Echert, se construyó la UNIVAC esta computadora digital

utilizaba diodos de cristal .

La IBM (Thomas Watson) en 1970 emplean los circuitos integrados y esta

firma lanzó los primeros computadores personales (PC), así comenzó la revolución de

este campo debido a los adelantos casi diarios que se van suscitando en la tecnología

de la fabricación e integración.

En casa y en la oficina, el ordenador personal continúa con su progreso. El PC

se ha establecido en un gran número de campos. Los componentes hardware y

software están siendo cada vez más potentes y más rentables. Es lógico, por tanto, que

la industria quiera tomar provecho de este hecho, para reducir costes y/o incrementar

la productividad.

Ciertas tareas industriales están actualmente en manos de los ordenadores

desde hace tiempo: desde emplear la tecnología Windows cuando se manejan pedidos

3

y/o se ajustan parámetros de maquinaria hasta preparar o visualizar datos

prácticamente de cualquier tipo.

No hay que sorprenderse entonces, que los especialistas en automatización y

los usuarios estén pensando ahora en qué forma se pueden transferir al PC otras

tareas, para poder llegar a un mayor ahorro. Más recientemente un gran número de

simuladores de PLC (controladores lógicos programables) por software ha aparecido

en el mercado, que están ayudando a transferir el control de tareas al disco duro y

presentan una automatización más efectiva en costes en una simple pieza de hardware

(el PC).

TARJETAS DE EXPANSIÓN. Como el sistema operativo sólo puede

proporcionar respuestas suaves en tiempo real lo más simple es emplear extensiones

hardware para las tareas críticas (placas de expansión PC) y soluciones software para

el resto de tareas. Esto nos lleva a una compatibilidad con futuros sistemas operativos

y una solución totalmente factible actualmente. Estas tarjetas de expansión asumen las

tareas críticas en tiempo real que el ordenador (PC) no puede atender, se está

hablando de tarjetas que incorporan DSPs (Procesadores de Señales Digitales) o

microcontroladores y que aportan una ayuda a la anterior “sobrecarga” mencionada

para los ordenadores (PC).

FOTO 2

4

FUENTE: EL AUTOR

LA ESTRUCTURA ABIERTA. Aún no se ha establecido un estándar para poseer

extensiones compatibles en tiempo real de sistemas operativos. De una forma

estrictamente determinante, los sistemas estándar actuales deben ser modificados de

forma general, así que la principal ventaja de un sistema basado en PC - su estructura

abierta – pude llegar a ser un inconveniente. No obstante, la estructura abierta,

permite a la empresa o el desarrollador más libertad en la elección de la herramienta

adecuada para el análisis, diseño y programación del sistema SCADA. La solución

comienza a ser propietaria nuevamente (cada empresa ofrece su solución) y la

conversión a futuras generaciones de sistemas operativos lo hace más difícil.

5

FOTO 3

FUENTE: EL AUTOR

1.2 OBJETIVOS E HIPÓTESIS.-

GENERAL.- Dar un enfoque a la comunicación entre el computador y el ambiente

externo a través de señales eléctricas que se transmiten del exterior.

ESPECÍFICOS:

- Dar una introducción a las comunicaciones especialmente de tipo paralelo entre la

PC y dispositivos periféricos de entrada y salida, así como la descripción de sistemas

de Adquisición de datos y Supervisión de control digital, especificando los tipos de

interfaces de comunicación.

6

- Alcanzar un grado de desarrollo tecnológico que se ajuste a las nuevas exigencias

de la industria de la automatización y del control estadísticos de procesos.

- HIPÓTESIS.- .- El diseño de un HARDWARE E IMPLEMENTARLO EN

UN SOFTWARE permitirá la comunicación entre el computador y el medio externo a

través de sensores de temperatura.

FOTO 4

FUENTE: EL AUTOR

FOTO 5

7

FUENTE: EL AUTOR

1.4 METODOLOGIA.- Para ello tenemos.

MÉTODOS Y TÉCNICAS.

Para la investigación se utilizará las siguientes técnicas.

A) MÉTODO INDUCTIVO.- Pues parte de lo particular a lo general al señalar que

el sensor de temperatura podrá adaptarse a diversos ambientes pueden ser estos un

edificio en construcción en donde activara una alarma en caso de incendio o en la

Industria al vigilar la temperatura de calderos y así indicar si esta o no a nivel de la

temperatura permitida.

B) OBSERVACIÓN DE CAMPO.- Al ver los requerimientos que podrían contribuir

al bienestar social lo mejor es prevenir que lamentar . Muchas personas o empresas

8

pueden perder su vida o posesiones debido a que no han sido advertidas

convenientemente de peligro por este motivo se ha observado conveniente crear una

tarjeta DAQ con censor de temperatura para que advierta de este peligro.

1.4.- SISTEMAS SCADA Y HMI1 La respuesta nos aclara el concepto.

QUÉ ES EL SOFTWARE SCADA?QUÉ ES EL SOFTWARE SCADA?QUÉ ES EL SOFTWARE SCADA?QUÉ ES EL SOFTWARE SCADA?

El software SCADA es aquél que permite ver en una pantalla el esquema de

una instalación controlada por autómatas y sobre ésta se reflejan los valores clave y se

pueden variar las consignas.

FOTO 6

FUENTE: EL AUTOR

1 INSTRUPEDIA 99 , NATIONAL INSTRUMENTS , www.natinst.com .

9

Imaginemos un depósito de agua en el que hemos incorporado un sensor de

temperatura y una resistencia.

Nuestro sistema intenta mantener el agua a la temperatura de consigna de 43º

que hemos definido. En la pantalla veremos la temperatura real medida por el sensor

y podremos programar una nueva consigna.

Si entra agua fría en el depósito, el sistema activará la resistencia para alcanzar de

nuevo la temperatura deseada. Mientras tanto, por pantalla monitorizaremos todo el

proceso.

FOTO 7

FUENTE: EL AUTOR

El sistema SCADA (Supervisión Control y Adquisición de Datos) es un sistema

utilizado actualmente en el control de procesos, que puede ser desarrollado bajo

10

cualesquier plataforma que permita al usuario visualizar de manera fácil el proceso

monitoreado, las ventajas que se obtienen al utilizar sistemas SCADA son:

• Interface gráfica para el usuario (GUI).

• Control de la tendencia histórica (Trending).

• Fijación de parámetros de control (PID) y alarmas.

• Intercambio dinámico de datos (DDE).

• Flexibilidad para manejo de protocolos como Modbus, Serial, etc.

• Procesamiento de datos OLE para control de procesos.

En necesario aclarar que el sistema SCADA involucra tanto software como

hardware es decir se trata de un lazo completo de control que puede valerse de

técnicas digitales como analógicas, no así los sistemas HMI que son netamente el

lenguaje de programación gráfico.

La figura muestra un sistema SCADA, en el cual se pueden observar el empleo

de diferentes plataformas para la adquisición de datos como Bus GPIB(Bus de

interface de propósito General), plataforma SCXI (Instrumentos extendidos y señales

acondicionadas), protocolos de puertos seriales (Mod Bus protocolo Modicom bus).

11

Figura 1.1 - Esquema típico de un sistema SCADA

Los sistemas HMI ( Human-Machine Interface) son plataformas gráficas de

programación sobre las cuales se desarrollan los programas de aplicación (software),

estos sistemas ofrecen al usuario monitorear en tiempo real un proceso industrial y

además realizar un control estadístico del mismo (SPC statistical process control).

12

La figura muestra una plataforma de interface gráfica para el usuario (GUI)

desarrollada bajo el software Lookout de National Instruments en la que se pueden

observar las tendencias históricas (Trending) así como control estadístico del proceso

(SPC).

Figura 1.2- Ejemplo de una plataforma HMI desarrollada en Lookout.

1.5.- SISTEMA DE CONTROL DIGITAL DIRECTO (DDC)

El control digital directo tuvo sus inicios en los años 60, en este el computador

llevaba a cabo todos los cálculos que efectuaban individualmente cada controlador,

como controles P + I, P + I + D, los cuales generaban directamente las señales de

control de las válvulas. Este tipo de control se denomina Control Digital Directo o

DDC (Direct Digital Control) en el cual las técnicas digitales a más de fijar el valor

13

del setpoint y verificar el estado de la variable dinámica son utilizadas para realizar la

comparación y dar una señal de corrección, las señales digitales son parte integrante

del lazo de control como lo indica en la figura 1.3 . Este control realiza las siguientes

funciones:

a. Explora las variables de entrada analógicas o digitales.

b. Las compara con el setpoint e introduce la señal de error en el algoritmo de

control correspondiente.

c. Envía las señales de salida a los diferentes elementos de control final del

proceso.

d. Se disponen de instrumentos analógicos en forma paralela con el computador

en los puntos críticos y actúan como reserva en los casos de producirse fallas en

el sistema2.

Figura 1.3 - Diagrama en bloques de un Control Digital Directo DDC.

1.6.- SISTEMA DE CONTROL DIGITAL POR SUPERVISION

(DSC)

2 CREUS Antonio “Instrumentación Industrial” Marcombo S.A. Barcelona España 1981 Págs. 553, 554.

INTRODUCCION DE DATOS

D / A

A / D

E. C. F.

ACONDICION DE MEDIDA

PROCESO

TRANSDUCTOR

SISTEMA DIGITAL

Y PC

C

14

Es una extensión natural de los sistemas de adquisición de datos (DAQ´s) en el

que involucra el uso de una computadora en el proceso realimentado.

Las técnicas digitales son empleadas para verificar el estado de la variable

dinámica y adicionalmente para fijar el valor del setpoint como lo muestra la figura

1.4.

Figura 1.4- Diagrama de bloques de un sistema DSC

Varias cargas en ciertos procesos cambian y para aumentar la eficiencia y

mantener la operación dentro de ciertos límites preestablecidos es ventajoso cambiar

el valor del setpoint. El control digital por supervisión (DSC), también llamado

“control por puntos de consigna”, es una extensión del DATA LOGGING 3 .Con el

desarrollo de las computadoras digitales de alta velocidad, con gran capacidad de

almacenamiento se hace posible obtener datos interactivamente y en forma

automática, monitoreando por medio de displays mediante un comando y ejecutando

cálculos de los datos obtenidos para obtener una evaluación apropiada en las técnicas

de control.

3CURIS Johnson, “Process Control Instrumentation Technology”, Prentice Hall, Englewood, 1974

CONTROL PROPIO

A / D

E. C. F.

ACONDICION DE MEDIDA

PROCESO

TRANSDUCTOR

PC o SISTEMA DIGITAL

C

∑∑∑∑

D / A

INTRODUCCION DE DATOS

Csp E

- Cm

15

1.7.- TIPOS DE COMUNICACIÓN De los cuales tenemos.

1.7.1.- PUERTO SERIE4

El puerto serie o puerto RS-232 en los computadores personales es muy útil

para controlar periféricos, interconexión con dispositivos tales como mouses,

impresoras, microcontroladores, ordenadores, etc. Los canales seriales de la PC son

programables, su comunicación es asíncrona y nos brinda la posibilidad de programar

los bits de datos, bits de arranque, bits de parada, bits de paridad.

En la comunicación serial la información se transmite bit a bit por una o dos

líneas de enlace de datos, lo que hace que disminuya significativamente el número de

líneas; además la distancia de comunicación que puede ser extremadamente grande,

para lo cual se ayuda de los equipos llamados módem. En la figura se presenta un

ejemplo de comunicación serie.

Ventajas:

• Los canales seriales (COM1, COM2, etc.) son totalmente programables.

• Permite programar los bits de paridad y los bits de parada.

• Dispone de un sistema priorizador de interrupciones, que controla las

interrupciones de transmisión, recepción, error y línea de estado.

• Existen recursos de diagnóstico a través de funciones loop back o lazo de

realimentación.

Desventajas:

4RICARDO ZELENOVSKY “IBM PC Para Ingenieros” E.S.P.E (Facultad de Ingeniería Electrónica), Quito Ecuador, 1995 Cap. X.

16

• Permite solamente comunicación asíncrona.

• Requiere de más tiempo para la transmisión de datos.

Las señales del puerto serial de la PC están disponibles en un conector tipo D,

macho de 9 o 25 pines, este conector generalmente se encuentra en la parte posterior

del computador.

Figura 1.5 - Ejemplo de comunicación serial

1.7.2.- MODOS DE TRANSMISIÓN

Modo Símplex: Se transmite los datos en una sola dirección ejemplo del PC a

la impresora.

Modo Dúplex (Half Dúplex): Se transmiten los datos en forma alterna, en este

modo de comunicación la transmisión es en los dos sentidos pero no al mismo

instante.

TXD

RXD

GND

RXD TXD GND

1

1

MICROCONTROLADOR

C.P.U

17

Modo Full Dúplex: Se transmite o se recibe datos al mismo tiempo por una

sola línea virtual.

1.7.3.- PUERTO PARALELO

El puerto paralelo también conocido como el puerto de la impresora, permite la

conexión con impresoras paralelas, también puede usarse como puerto I / O genérico

y para comunicación entre PCs. En la figura 1.6 se observa un ejemplo.

Figura 1.6- Ejemplo de comunicación paralelo.

Ventajas:

• Tiene una velocidad de comunicación muy alta (velocidad de compuerta).

Desventajas:

• Necesita un cable físico para cada línea.

• Se utiliza líneas independientes para la transmisión y recepción de datos.

• Sólo se puede utilizar a cortas distancias (máximo 7 metros).

• Necesita de un programa dedicado.

DISPO - SITIVO TX

1

2

8

DISPO - SITIVO RX

1

2

8

bits bits

18

El puerto paralelo se representa por las letras LPT1 (puerto paralelo 1) LPT2

(puerto paralelo 2), todos los pines de I/O están disponibles en un conector tipo D de

25 pines hembra en la parte posterior del computador.

1.8 ACONDICIONAMIENTO DE SEÑALES. De los cuales tenemos.

1.8.1 MÓDULOS SCSI (SEÑALES ACONDICIONADAS PARA LA

INSTRUMENTACIÓN)

Los dispositLos dispositLos dispositLos dispositivos SCSIivos SCSIivos SCSIivos SCSI

En teoría, los dispositivos deben ser independientes de las operaciones del

procesador. El ordenador solo necesita enviar los mandatos y los datos al periférico y

esperar una respuesta (las impresoras. por ejemplo. tabajan de esta manera).

FOTO 8

19

FUENTE: EL AUTOR

En la actualidad, los puertos paralelo y serie son puertos específicos para

dispositivos, de modo que el PC se limita a enviar la información al puerto,

independientemente del dispositivo conectado, y no reconoce de forma automática (es

decir, sin la intervención de controladores o del sistema operativo) cuál es el

periférico que se está utilizando. Esto permite, por ejemplo, que dispositivos antiguos

puedan funcionar en ordenadores recientes. En síntesis, es el concepto que emplea la

interfaz SCSI. Los ordenadores y dispositivos se diseñan e integran sin la necesidad

de asegurar compatibilidades de hardware concretas, que se aseguran por las

especificaciones de la interfaz.

SCSI, que en términos de bus es un conjunto de cables, hilos y terminadores,

cada uno con su nombre y propósito concretos. utiliza un conjunto limitado de

instrucciones mandatos que permiten que tanto el sistema como el dispositivo se

comuniquen a través del bus. Para ello se basan en el principio de independencia del

dispositivo, característico de esta interfaz y una de sus propiedades principales. Por

ejemplo, todas las unidades de disco duro se consideran semejantes en la interfaz

SCSI (a excepción de su capacidad total) y, para una clase de dispositivos concreta,

puede reemplazarse un disco instalado por otro nuevo, sin tener que modificar la

configuración del sistema.

Dado que la iniciativa en la configuración y la comunicación reside en el

dispositivo y no en el sistema, el ordenador es capaz de utilizar un reducido conjunto

de mandatos estándar para garantizar la transferencia de datos hacia y desde el

dispositivo.

20

Adaptadores SCSIAdaptadores SCSIAdaptadores SCSIAdaptadores SCSI

De forma similar al control de los discos duros para interfaz IDE, que se

efectúa mediante una tarjeta específica (incorporada a la placa base en casi todos los

modelos), los dispositivos SCSI utilizan un adaptador conocido como controladora

SCSI o simplemente, tarjeta SCSI, que desde el punto de vista lógico de la interfaz se

considera un dispositivo más. Actúa de puente entre el bus SCSI y el bus interno de

entrada/salida del PC, enviando y recibiendo los mandatos necesarios y transfiriendo

los datos de los dispositivos conectados al bus SCSI.

Iniciadores y objetivosIniciadores y objetivosIniciadores y objetivosIniciadores y objetivos

Básicamente, en un bus SCSI existen dos tipos de dispositivos: los iniciadores

y los objetivos. Los primeros inician el proceso de comunicación cuando debe

realizarse alguna tarea, mientras que los segundos responden a los mandatos e

instrucciones de los iniciadores. Esta relación no se establece en un único sentido, ya

que un dispositivo físico puede actuar a la vez como iniciador y como objetivo

durante la transferencia de datos.

Un bus SCSI puede soportar varios dispositivos de forma simultánea pero en

todo momento debe existir un iniciador y un objetivo. Aunque no sea necesariamente

así siempre, en general, el adaptador SCSI (la tarjeta de expansión instalada en la

ranura de la placa base) es el iniciador y los otros dispositivos (discos duros, lectoras

o grabadoras de CD-ROM, por ejemplo) son los objetivos.

21

IdentificadoreIdentificadoreIdentificadoreIdentificadoressss

Un bus SCSI puede soportar un número elevado de dispositivos, pero para

evitar cualquier conflicto en la comunicación, cada uno de ellos debe identificarse de

manera individual. Si el bus admite hasta ocho dispositivos, cada uno de ellos se

identifica con un número (ID) que puede tener un valor desde 0 hasta 7, o un valor

comprendido entre 0 y 15, cuando son 16 los dispositivos soportados (incluyendo el

adaptador, que se considera un dispositivo SCSI más).

La negociaciónLa negociaciónLa negociaciónLa negociación

Dado que el cable utilizado para el bus SCSI es común a todos los

dispositivos, cada uno de ellos debe obtener permiso de todos los restantes antes de

tomar el control del bus, lo que se conoce como fase de arbitraje. En la fase de

selección cuando uno de los dispositivos ha tomado el control (normalmente, el

adaptador), procede a contactar con el dispositivo con el que debe comunicarse. Una

vez establecido el contacto, comienza en realidad el proceso de comunicación.

Las distintas fases que intervienen en este proceso forman parte de lo que se

conoce como negociación, que lleva a cabo un dispositivo de la cadena SCSI para

acceder y utilizar el bus, y que comienza cuando el bus está libre. Esta circunstancia

es conocida por todos los dispositivos mediante una señal específica, denominada

BSY, que reciben por uno de los conductores del cable.

Se procede entonces a cambiar esta señal (de manera que el resto de

dispositivos detecten el nuevo estado del bus) y se envía una señal por el conductor

del cable correspondiente a su identificador.

22

Cables y conectoresCables y conectoresCables y conectoresCables y conectores

La interfaz SCSI utiliza una topología de bus concreta. Cada uno de los

dispositivos conectados al bus debe estar encadenado de forma lineal al dispositivo

que le precede mediante un cable apropiado, por lo que el conjunto de dispositivos

recibe el nombre de cadena SCSI. Se trata de una característica obligatoria. así que

los dispositivos (incluyendo el adaptador) se conectan a uno o dos dispositivos más y

nunca a un número mayor.

Los conectores SCSILos conectores SCSILos conectores SCSILos conectores SCSI

En la actualidad, existen ocho tipos distintos de conexiones SCSI (cuatro si no

se diferencia entre conectores macho o hembra) incluyendo todas las aparecidas desde

la publicación de las especificaciones oficiales de 1986, cuando la interfaz SASI se

tomó como base para cl estándar SCSI.

FOTO 9

23

FUENTE : EL AUTOR

Los terminadoresLos terminadoresLos terminadoresLos terminadores

Terminadores pasivos, que son los más antiguos y sencillos, indicados para los

buses de velocidad reducida (SCSI simple).

Terminadores activos, similares a los anteriores pero con reguladores de

voltaje que aportan mayor consistencia en la terminación del bus y que resultan

indicados desde Fast SCSI hasta Ultra SCSI.

Por último, los terminadores FPT (Forced Perfect Termination, terminación

perfecta forzada). Representan el tipo de terminadores más avanzado y además de

reguladores de voltaje, utilizan diodos. Esto elimina prácticamente la posibilidad de

que se refleje la señal. Ambos terminadores deben instalarse al final de la cadena

SCSI, después de los últimos dispositivos, incluyendo los que puedan desconectarse

24

de la alimentación eléctrica mediante un interruptor o los que no se usen

temporalmente.

CABLES SCSI CABLES SCSI CABLES SCSI CABLES SCSI

Cable A Cable original estándar con 50 conductores. Se utiliza para buses de ocho

bits y en dos configuraciones diferentes:

normal (en general para dispositivos internos) y de alta densidad (más

estrecho)

Cable B Para el estándar SCSI-2 y en los protocolos Wide SCSI. Prácticamente en

desuso. Se combina con un cable A para poder disponer de los 68

conductores necesarios en buses de 16 bits.

Cable P Cable de 68 conductores, definido en el estándar SCSI-3. Reemplaza la

combinación de cables A y B más antigua en los buses de 16 bits.

TIPOS DE DISPOSITIVOS TIPOS DE DISPOSITIVOS TIPOS DE DISPOSITIVOS TIPOS DE DISPOSITIVOS

Acceso aleatorio Escáneres

(discos duros) Discos magnetoópticos

Acceso secuencial Dispositivos de comunicación

(unidades de cinta) Escáneres

Impresoras Discos magnetoópticos

Unidades de CD-ROM Dispositivos de comunicación

FOTO 10

25

FUENTE: EL AUTOR

Los estándaresLos estándaresLos estándaresLos estándares

Cada uno de los protocolos SCSI se engloba en uno de los estándares

aprobados por el comité ANSI, cuyas especificaciones se detallan en la

documentación oficial. Estos estándares son:

SCSISCSISCSISCSI----1111

Desde 1986. Es el más antiguo y se basa en buses de ocho bits y transferencia

asíncrona para todos los comandos y datos. Utiliza tecnología bipolar y terminaciones

pasivas. Los conectores, tanto internos como externos, son de 50 patillas (el conector

externo se conoce como Centronics 50).

26

SCSISCSISCSISCSI----2222

Desde 1994. Utiliza transferencia asíncrona para el envío de comandos y

síncrona para los datos. Permite terminadores pasivos y activos y señales diferenciales

(tecnología denominada HVD, High Voltage Differential o diferencial de alto voltaje).

Para los protocolos Wide (de 16 bits), se usan conectores B de 68 patillas.

SCSISCSISCSISCSI----3333

A partir de 1996. Es una colección de documentos que cubren las

especificaciones físicas, el protocolo básico de la intcrfaz y el conjunto de mandatos

primarios. Cada uno de estos documentos tiene sus propias versiones y revisiones.

Los principales son:

SPI (SCSI Parallel Interface)SPI (SCSI Parallel Interface)SPI (SCSI Parallel Interface)SPI (SCSI Parallel Interface)

Define las conexiones y señales eléctricas del bus SCSI paralelo, incluyendo el

cable y conector P de alta densidad, con 68 patillas.

FastFastFastFast----20202020

Conocido también con el nombre de Ultra SCSI, contiene las secciones en las

que se define la interfaz de bus ancho que duplica la transferencia de SPI.

FastFastFastFast----40404040

27

Especificaciones de la interfaz SPI-2 (correspondiente al protocolo Ultra2

SCSI que alcanza un ancho de banda de hasta unos 80 MB/s, con una nueva interfaz

eléctrica LVD (Low Voltage Differential, diferencial de bajo voltaje).

SPISPISPISPI----3333

Cubre las especificaciones de la interfaz Fast-80DT conocida con el nombre

de Ultra3 SCSI, en la que se introduce corrección de errores CRC (Cyclic

Redundancy Check, comprobación de redundancia cíclica).

EPI (EPI (EPI (EPI (EnhanEnhanEnhanEnhanced Parallel Interface, ced Parallel Interface, ced Parallel Interface, ced Parallel Interface, interfazinterfazinterfazinterfaz paralela ampliada)paralela ampliada)paralela ampliada)paralela ampliada)

Documentación técnica que describe el diseño de sistemas SCSI. Entre otros

aspectos, detalla la longitud de los cables y los parámetros eléctricos que permiten

combinar en un mismo sistema dispositivos para bus normal (50 polos) y ancho (68

polos).

CARACTERISTICAS BASICAS CARACTERISTICAS BASICAS CARACTERISTICAS BASICAS CARACTERISTICAS BASICAS

Cada especificación SCSI utiliza una velocidad de frecuencia y un ancho de

bus característicos, que determinan la cantidad máxima de información que puede

transmitirse, calculada mediante el producto de estos dos parámetros. La tabla

siguiente recoge estos valores para los protocolos existentes.

Protocolo

de interfaz

Estándar

Velocidad

del bus

(MHz)

Ancho

del bus

Ratio de

transferencia

(MB/s)

Longitud

máxima

del cable

Número

máximo de

dispositivos

28

SE (m) por bus

SCSI SCSI-l 5 8 4.77 6 8

Fast SCSI SCSI-2 10 8 9.54 3 8

Wide

SCSI SCSI-2 5 16 9.54 6 16

Fast Wide

SCSI SCSI-2 10 16 19.07 3 16

Ultra

SCSI SCSI-3 20 8 19.07 1.5 (**) 8

Ultra

Wide

SCSI

SCSI-3 20 16 38.15 1.5 (**) 16

Ultra2

SCSI SCSI-3 40 8 38.15 12 (LVD) 8

Ultra2

Wide

SCSI

SCSI-3 40 16 76.29 12 (LVD) 16

Ultra3

SCSI SCSI-3 40 (*) 16 152.59 12 (LVD) 16

(*) Ultra3 y la implementación Ultra 160/m. utilizan la misma frecuencia que Ultra2,

si bien envían dos bytes por cada ciclo de reloj. Esto puede inducir a concluir

erróneamente que utilizan buses de 32 bits.

29

(**) Ultra SCSI y Ultra Wide SCSI pueden utilizar también cables con una distancia

máxima entre dispositivos de cuatro metros, aunque en este caso el número máximo

de éstos se reduce a cuatro y ocho respectivamente.

1.8.2 PLATAFORMAS VXI.1.8.2 PLATAFORMAS VXI.1.8.2 PLATAFORMAS VXI.1.8.2 PLATAFORMAS VXI.---- Los sistemas basados en VXI ofrecen otras

ventajas que van más allá del alto número de puntos de medida. Hay una gama

extraordinariamente amplia de conmutadores con diversas topologías y componentes

de conmutación. Incluyen conmutadores de armadura, de láminas, de estado sólido,

de RF y de microondas. Se pueden configurar en escáners, multiplexores y matrices o

elementos de conmutación para usos generales. Se pueden optimizar para velocidad

de conmutación, frecuencia, potencia, resistencia de contacto, fiabilidad o

flexibilidad. El VXI ofrece dos tamaños de módulos, los "B" y "C". El tamaño "C"

ofrece el mayor número de puntos de relés. El tamaño "B" más pequeño ofrece una

densidad de relés reducida a un precio inferior. Los módulos del tamaño "B"

funcionan también muy bien en un equipo principal de tamaño "C", mediante el uso

de un adaptador.

En resumen, puede decirse que el VXI ofrece un medio excepcional de

solucionar los problemas y aprovechar las oportunidades creadas por los cambios que

se están produciendo en la industria electrónica. Proporciona una solución muy

conveniente para tratar las aplicaciones de medidas existentes y de nueva aparición,

que implican una gran variedad y un gran número de puntos y bloques asociados de

información.

30

Su factor de forma proporciona la proximidad necesaria a los DUTs

(dispositivos bajo prueba) y su excelente selección de topologías de conmutadores y

configuraciones de relés la convierten en una solución muy atractiva.

FOTO 11

FUENTE: EL AUTOR

Esta capacidad de conmutación y la flexibilidad de sus soluciones de

interconexión, combinadas con el excepcional entorno operativo estrechamente

acoplado y la coordinación de la temporización, hacen que el VXI resulte una opción

muy atractiva.

1.8.3 MÓDULOS PXI (Componentes periféricos para la

instrumentación).

31

El diseño de la instrumentación es un campo competitivo, y los fabricantes se

están esforzando constantemente aumentar funcionalidad mientras que

simultáneamente reducen el tiempo-a-mercado y el coste. Para resolver estas

demandas, los sistemas de la instrumentación se han desarrollado más de cerca a la

palancada que existía, tecnologías disponibles. El estándar modular de la

instrumentación de PXI, adoptado en 1998, es sí mismo un estudio en la tecnología

existente del leveraging para entregar el alto rendimiento, instrumentación modular

del bajo costo. Es estas calidades que condujeron 38 por ciento de crecimiento del

mercado de PXI en 2001, según un informe de la industria por Frost y Sullivan, un

año en que la mayoría de las otras plataformas de la prueba consideraron

declinaciones grandes.

Dos elementos dominantes de un estándar modular de la instrumentación son

la interconexión del módulo y el empaquetado (o forme el factor). En esta generación

más reciente de instrumentos, los diseñadores dieron vuelta al autobús componente

periférico de la interconexión (PCI) debido a su velocidad, su tarifa de transferencia

de explosión de 132 Mbytes/sec es casi 10 por el de estándares anteriores, y sus

modos numerosos para el control de módulo. Otra ventaja de usar el PCI era que los

diseñadores podrían dibujar del mercado extenso del ordenador personal (PC) para los

componentes del software y del bajo costo.

32

Aunque la PC era un recurso excelente, el empaquetado de escritorio de la PC

no fue satisfecho a los ambientes industriales exigentes previstos para los nuevos

diseños del instrumento. Las PC no fueron diseñadas para los ambientes industriales,

y por lo tanto no proporcionan la conectividad, la ayuda que se refrescaba, la

resistencia de la EMI, y la capacidad de la ranura necesitada para muchos sistemas de

alto rendimiento de la instrumentación. Para solucionar estos problemas, los

diseñadores adoptaron ruggedized el estándar de la Euro-Tarjeta para empaquetar.

Este acceso permitido a la historia larga del diseño y a la amplia ayuda del

vendedor para los diseños del tablero y del recinto. Con la interconexión de menor

importancia y los cambios de empaquetado, el estándar de CompactPCI fue propuesto

y tiene desde aceptación en el mercado de aumento ganada.

Sin embargo la coordinación de las operaciones del multi-módulo exigió

funcionalidad adicional. Las extensiones de VMEbus para el estándar de la

instrumentación (VXI), un estándar modular anterior del instrumento, demostraron la

ventaja de incluir señales auxiliares tales como una referencia común de la frecuencia

del sistema, disparadores controlados de la sincronización, y un sistema genérico que

33

señalaba banderas. Otra vez con una cierta modificación, el sistema de la señal del

auxiliar VXI fue agregado al estándar de CompactPCI para formar las extensiones del

PCI para el estándar de la instrumentación (PXI). Por diseño, la mayoría de los

productos de PXI son completamente inter-operables con los productos de

CompactPCI.

FOTO 12

FUENTE: EL AUTOR

De sus raíces en el ordenador personal dinámico (PC), la Euro-Tarjeta rugosa,

y los mercados de la herencia VXI, la especificación de PXI está proporcionando la

dirección para una nueva generación de un rendimiento más alto, equipo de prueba de

un costo más bajo.

¿Cómo utilizo PXI?

34

Los módulos de PXI se diseñan para poner funciones en ejecución específicas,

tales como análisis de la captura de la señal análoga, de la señal del RF, o generación

de la forma de onda. Para controlar estas funciones, un chasis de CompactPCI o de

PXI y un regulador del sistema son necesarios. Según lo mencionado antes de que la

mayoría de los módulos de PXI se puedan mezclar libremente con los módulos de

CompactPCI, solamente las señales auxiliares de PXI tales como la referencia común

de la frecuencia no estarán disponibles. Dos configuraciones están disponibles:

operación auxiliar del chasis con un anfitrión de escritorio u operación independiente

del chasis con un regulador encajado. En el desarrollo y usos superiores del

instrumento del banco, la manera más económica de utilizar los instrumentos de PXI

está con una PC de escritorio para el control y un acoplamiento del anfitrión-a-esclavo

para la conexión a los módulos de PXI. El acoplamiento del anfitrión-a-esclavo actúa

mientras que un puente normal del PCI y los módulos de PXI aparecen como

dispositivos normales del PCI debajo del encargado del dispositivo de hardware de

PC. Esta configuración permite el acceso completo al ambiente de la PC en un precio

relativamente barato.

35

Para muchos otros usos, los instrumentos de PXI residirán en última instancia

en un estante con el otro equipo tal como encendido un piso de la fábrica o se desea la

operación alejada del sitio o portable. En estos ajustes el uso de las PC del tablero del

escritorio no es factible y una PC encajada debe ser utilizada. Un monitor y un teclado

pueden ser unidos al regulador para el desarrollo o eliminar errores y después ser

quitados o ser substituidos por una conexión del LAN para un uso más último. Esta

configuración es algo más alta en coste pero permite la mayoría de la flexibilidad de

tamaño del ajuste operacional y de un sistema más pequeño. (Adaptado de un artículo

por la visita de ZTEC Inc. el Web site de ZTEC en www.ztec-inc.com)

36

1.9 INTERFACE DE COMUNICACIÓN GPIB IEEE486.- Encontramos

Instrumentación programada: En los tiempos actuales, el precio de la mano de obra

supone uno de los costes más onerosos en los procesos de verificación y ensayo.

Además se debe tener en cuenta la posibilidad del error humano en un proceso

de test medianamente duradero. La instrumentación programada ofrece una solución

técnica y económica al problema, mediante la explotación de los interfaces de

instrumentación más estándar como son GPIB, VXI y el puerto serie RS-232. El otro

campo de trabajo de este grupo consiste en el diseño y/o explotación de los sistemas

de adquisición de datos procedentes de variables físicas mediante transductores,

dentro del cual se encuentran las tarjetas de adquisición de datos, registradores, etc.

La experiencia adquirida por este grupo de trabajo trata de alcanzar la solución

óptima con el mínimo coste en equipamiento y mantenimiento, por parte del usuario.

Tal vez uno de los patrones más importantes es la interfase digital IEEE 488,

para prueba de instrumentación programable y otros equipos. Estandarizar la interfase

entre equipos de prueba permite la conexión entre piezas de equipo de prueba de

laboratorio, sin importar su fabricación para crear avanzados sistemas de equipo de

prueba automáticos ATE (Automatic Test Equipment).

FOTO 13

37

FUENTE: EL AUTOR

El bus GPIB se basa en la transmisión de palabras de datos de ocho bits, con

un bus de datos paralelo de ocho líneas. Se utiliza varios bits de estado para aumentar

el datos de ocho bits pero se transmiten por líneas separadas. El sistema 488 es

básicamente un sistema de corta distancia para equipos de prueba montados en un

gabinete dentro de una misma habitación y no para la transmisión a largas distancias,

vía telefónica ni por cualquier otro medio de comunicación. Las 16 señales activas :

* Bus de datos (8 líneas)

* Bus de control de transferencia de datos Handshake (3 líneas).

* Bus para el control general de la interconexión (5 líneas).

38

CAPITULO II

EL PUERTO PARALELO O LPT1

Historia, evolución y tipos de puertos paralelos

Historia

En 1981, la IBM (International Business Machines) introdujo la Computadora

Personal (PC). El puerto paralelo (Standart Parallel Port SPP) estaba incluido en el

primer PC y se agregó a éste como una alternativa al bajo rendimiento del puerto

serial, para utilizarlo como controlador de las impresoras de matriz de punto de alto

desempeño. Este puerto tenía la capacidad de transmitir 8 bits de datos a la vez (del

PC a la impresora), mientras que el puerto serial lo hacía de uno en uno. En el

momento que el puerto paralelo fue presentado, las impresoras de punto fueron el

principal dispositivo externo que se conecto a éste. Al hacerse extensamente utilizado,

el puerto paralelo llegó a ser la respuesta para conectar dispositivos más rápidos.

Después de este inicio, tres grandes grupos de problemas aparecieron a los

desarrolladores y usuarios de este puerto: Primero, aunque éste había aumentado su

velocidad considerablemente, no había cambio en la arquitectura o desempeño. La

máxima velocidad de transferencia alcanzable estaba por los 150 kbyte /seg. y era

extremadamente dependiente del software. Segundo, no había un estándar para la

interfase eléctrica. Esto causaba muchos problemas cuando se quería garantizar la

operación en múltiples plataformas. Por último, la forma de diseño que le dieron,

limitaba la distancia de los cables externos hasta un máximo de 1,8 metros. En 1991

hubo una reunión de fabricantes de modo que se pudiera desarrollar un nuevo

39

estándar para el control inteligente de impresoras a través de una red. Estos

fabricantes, donde estaban incluidos Lexmark, IBM, Texas Instruments y otros,

formaron la Network Printing Alliance (NPA), como una respuesta a estas

necesidades.

Evolución

Desde la introducción del PC al mercado, el puerto paralelo ha sufrido varias

modificaciones para hacerlo más veloz. Ya que el puerto original era unidireccional,

se creó el puerto bidireccional. El puerto bidireccional fue introducido con el PS/2

compatible. Este permite una comunicación de 8 bits en ambas direcciones. Algo

interesante de notar es que el puerto original tenía la posibilidad de ser bidireccional

realizando una conexión entre dos pines de un componente electrónico que venía

incluido en éste. (Dicho de otro modo, el puerto original es bidireccional en diseño

básico, pero no en el diseño operacional). Finalmente se han creado el Enhanced

Parallel Port (EPP) y el Extended Capability Port (ECP). Estos dos últimos son al

puerto estándar como el Pentium al 286, además de ser bidireccionales.

Inicialmente el puerto paralelo se utilizó para la comunicación con impresoras.

Actualmente se utiliza también para manejar otros periféricos como CD ROM, cintas

de copia de respaldo, discos duros, tarjetas de red, protectores de copia, scanners, etc.

Tipos de puerto paralelo

En la actualidad se conoce cuatro tipos de puerto paralelo:

o Puerto paralelo estándar (Standart Parallel Port SPP)

o Puerto Paralelo PS/2 (bidireccional)

40

o Enhanced Parallel Port (EPP)

o Extended Capability Port (ECP)

En la siguiente tabla se muestra información sintetizada de cada uno de estos

tipos de puertos.

SPP PS/2 EPP ECP

Fecha de

Introducción

1981 1987 1994 1994

Fabricante IBM IBM Intel, Xircom y

Zenith Data

Systems

Hewlett

Packard y

Microsoft

Bidireccional No Si Si Si

DMA No No No Si

Velocidad 150 Kbyte/seg. 150 Kbytes/seg. 2 Mbytes/seg. 2 Mbytes/seg.

Manejo del puerto paralelo

En las aplicaciones que involucran el computador y la adquisición de datos es

necesario emplear alguno de los puertos del computador, o bien realizar la aplicación

enfocada a trabajar con una tarjeta de expansión, ya sea de estándar ISA (casi

desaparecido) o bien con tecnología PCI. Estas dos ultimas opciones, a pesar de ser

completamente posibles no se consideran adecuadas puesto que son tecnologías

cambiantes, que obligan a una renovación del hardware de la aplicación, además de

tener que destapar la caja del equipo para instalarlas. Son estas razones, además de la

41

facilidad en el manejo del puerto paralelo, la que nos motiva a trabajar apoyados en

este.

En general el puerto paralelo de cualquier computador personal puede trabajar

en varios modos dependiendo de aspectos como si se trata de entrada y salida de

datos, si se requieren el uso de la memoria del puerto, etc. El modo mas empleado,

que además lo poseen todos los computadores sin importar que tan viejo sea es el

modo estándar o spp (standard parallel port).

El modo spp esta diseñado empleando un enfoque en el que el computador

envía datos a través del puerto hacia una impresora y recibe únicamente algunas

señales de control, por lo que el puerto se maneja empleando tres registros: el de

datos, que funciona como salida de datos; el registro de control, que posee función

mixta de entrada y salida; y el de estado que funciona como entrada.

Como ya se menciono, en modo SPP, estos pines están agrupados en tres

registros y se encuentran mapeados como tal en el computador. La ubicación de estos

registros varia de acuerdo a tres direcciones base usadas para direccionarlos como se

indica en la siguiente tabla.

Puesto que ni el registro de estado ni el de control poseen por si mismos 8 bits

libres para la entrada de datos es necesario realizar un arreglo empleando 5 bits de un

registro y 3 del otro. En la siguiente tabla se indica como es la distribución de pines

42

que se empleara en el puerto para recibir el dato resultante de la conversión análogo-

digital.

Esto supone que del bit 2-8 (el de menor peso en la salida del ADC) al 2-6 se

reciben por el registro de control, mientras que los restantes 5 bits se reciben por el

registro de estado. Es de tener en cuenta que, como se indica en los datos de la figura ,

se tienen algunos bits invertidos dentro de los registros empleados, por lo que es

necesario invertirlos. Por la facilidad de manejo se determino realizar la adecuación

de los datos, esto es generar mascaras para aislar los bits que nos interesan de cada

registro e invertir los que sea necesario por software, asunto que se explica en la

siguiente sección.

2.1 EL PUERTO DE SALIDA DE 8 BITS 378.- La figura 2.1siguiente

muestra como los registros están conectadas a los pines del conector.

Bit 7 Bit 6 Bit 5 Bit 4 Bit3 Bit 2 Bit 1 Bit 0

PINES 9 8 7 6 5 4 3 2

Figura 2.1 registros de 8 bits para salida.

Estos pines deberán ser capaces de “ source/sink” 2,6/24 mA. Una institución

de OUT escribe directamente en los pines del conector. Al escribir 1 en un bit, resulta

43

un nivel TTL alto en la salida. Este registro también puede ser leído con una

instrucción IN, lo que permite verificar si los datos están siendo correctamente

transferidos. Notar que esto no funciona como entrada, ya que lee la salida del 373.

Figura 2.2 Esquema de los registros de salida.

2.2 EL PUERTO DE ENTRADA DE 5 BITS 379.- La figura 2.3 siguiente

indica como este registro está ligado a los pines del conector.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0.

PINES 11 (L) 10 12 13 15 _ _ _

(L) indica una inversión.

Figura 2.3 Registro de 5 bits para entrada.

Una lectura desde esta dirección, con una instrucción IN, refleja el estado

inmediato de estos pines. El pin 10 puede ser utilizado para provocar una interrupción

44

(IRQ7), con una transición de bajo para alto (↑). Es necesario que el bit 4 del registro

37AH esté en 1.

2.3 EL PUERTO BIDIRECCIONAL DE 4 BITS 37A.- La figura 2.4

siguiente indica como este registro está ligado a los pines del conector.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PINES _ _ _ Hab IRQ7 17(L) 16(H) 14(L) 1(L)

RESET _ _ _ 0 1 0 1 1

Figura 2.4 (L) indica que el pin es invertido.

Registro de 4 bits bidireccional.

El bit es utilizado para controlar la habitación de IRQ 7. Cuando este bit es

colocado en 1, la interrupción puede ocurrir. Estas salidas son accionadas por colector

abierto. Esto les permite trabajar tanto como entrada como salida. Ellas están

conectadas a Vcc por resistores de 4,7 K (pull-up); pueden recibir hasta 7 mA y

todavía mantener un nivel bajo de 0.8 V.

Para funcionar como salida, se debe usar la instrucción OUT, para escribir en

los pines. Para ser usada como entrada, es necesario antes programar todas las salidas

en 1, esto va a permitir que elementos externos tengan para 0, cada una de las

entradas. Al configurarse ese puerto para entrada, o sea, al escribir 1 en todos los

pines, debe tomarse en cuenta que algunos pines están invertidos.

Cuando trabajan como salida, ese puerto (como cualquier salida a colector

abierto) presenta una demora en las transiciones de bajo para alto, pues toda la carga

45

es hecha por el “pull up” pasivo de 4,7 K Ω. Es mas conveniente usar ese puerto

como entrada.

2.4 PINES DEL PUERTO PARALELO. La tabla de la figura 2.5 muestra un

resumen del puerto paralelo, ordenado de acuerdo a las direcciones, de los bits de los

registros:

Figura 2.5 Direcciones de los bits de los registros en puerto paralelo.

2.5 COMUNICACIÓN USANDO EL LPT1.- El puerto paralelo es una

atractiva solución para comunicación entre computadoras. Esto se debe a dos motivos

principales:

• Más veloz que el puerto serial,

• No necesita de ninguna interface.

46

Al lado de estas ventajas, algunos problemas existen:

• Confección del cable,

• Necesidad de un programa dedicado.

En este ítem se hace el estudio del problema y la presentación de una posible

solución. Lo que se espera de una conexión entre dos computadores es que cada una

de ellas pueda recibir o transmitir, inclusive simultáneamente, o sea, se busca una

conexión “full duplex”. Por este motivo el cable paralelo debe tener dos vías de datos:

una para recibir y otra para transmitir.

Para el envío de los datos, se necesita de dos líneas de “ handshake”: STROBE

y ACKNOWLEDGE. Usando STROBE, el transmisor avisa al receptor de que hay un

nuevo dato en la vía de datos. Usando ACNOWLEDGE, el receptor avisa al

transmisor de que ya leyó el dato que está en la vía de datos.

Figura 2.6 Primera solución para conexión entre dos computadoras.

47

2.6 PROTOCOLOS DE ENLACE DEL LPT1.- Para realizar la

transmisión y recepción de los datos, la solución mas sencilla es utilizar un protocolo

semejado al de la impresora. El transmisor coloca la información en la vía de datos y

pulsa la línea de STROBE para alertar al receptor; este al percibir un pulso de

STROBE , lee los datos y pulsa la línea de ACKNOWLEDGE, indicando que la vía

de datos está libre. Esto significa que cada computadora debe detectar dos pulsos:

ACK_IN y STRB_IN. La única forma de detectar pulsos con seguridad es utilizando

interrupción habilitada por flanco. En la PC hay apenas una interrupción destinada al

puerto paralelo (IRQ7) y que ya está destinada a la línea STROBE. O sea, no hay

como detectar con seguridad el pulso de ACKNOWLEDGE. Por eso se adopta un

protocolo basado en niveles.

Figura 2.7 Utilización de STROBE y ACKNOWLEDGE trabajando por nivel

48

Para transmitir un byte, en este canal full duplex, se utiliza un protocolo de 4

fases. A continuación hay una descripción detallada de estas 4 fases, abordando en

separado la transmisión y la recepción. Como el nivel de activación de las líneas es

totalmente irrelevante, se utilizó la activación en nivel alto. En esta descripción T

significa señal activada y F señal desactivada.

TRANSMISIÓN :

FASE 0: si BUSY=F, entonces escribir el LSN, STRB=T, fase=1;

FASE 1: si ACK=T, entonces STRB=F, fase=2;

FASE 3: si ACK=T, entonces STRB=F, fase=0;

RECEPCIÓN:

FASE 0: si STRB=T, entonces leer el LSN, ACK=T, BUSY=T, fase1;

FASE 1: si STRB=F, entonces ACK=F, BUSY=F, fase2;

FASE 3: si STRB=F, entonces ACK=F, BUSY=F, fase 0;

En los algoritmos de transmisión y recepción notase que hay una gran

semejanza entre las fases 0,2 y 1,3. En este ejemplo la señal de BUSY no tiene

función y solamente refleja la señal de ACKNOWLEDGE pero, esta línea puede ser

usada para permitir protocolos de comunicación de mayor complejidad.

2.7 APLICACIONES.

Veamos cómo controlar el puerto a través de Visual Basic (cualquier versión

de 32 bits). Para ello, necesitaremos tener en nuestro directorio de sistema

49

("C\windows\system") una librería especial llamada INPOUT32.DLL. Además de la

mencionada librería se incluye un módulo (denominado "inpout32.bas") con las

correspondientes llamadas a la DLL. Una vez descargada la librería basta agregar el

módulo al proyecto para disponer entonces de la instrucción out, similar a BASIC.

En este momento estamos en condiciones de desarrollar un primer circuito

básico de prueba. Éste va a consistir en prender o apagar 8 Leds conectado cada uno a

los pines D0 a D7. El diagrama esquemático es el siguiente:

En donde J1 es la ficha DB-25 del puerto paralelo, R1 a R8 son resistencias de

1/8W de 330 ohms. D1 a D8 son leds. Finalmente IC1 es un SN74AC541 o similar.

50

Una vez montado, este circuito será de gran utilidad para probar cualquier

programa que utilice el puerto paralelo. Las distintas aplicaciones de éste son

inmensas.

Para leer datos desde el puerto se utiliza otra instrucción que, como la anterior,

posee una sintaxis similar en los diversos leguajes. Para BASIC y VISUAL BASIC,

se escribe como inp. En "C" este comando recibe el nombre de inport o bien inportb

(ambas en la cabecera "dos.h"). Finalmente en ensamblador la intrucción es inp. En

todos los casos el único argumento de la instrucción es la dirección que, en este caso,

corresponde con la del puerto más uno. Recordemos que se disponen 5 líneas de

entrada y que una de ellas se encuentra negada. Un circuito típico para probar la

lectura del puerto paralelo es el siguiente:

51

Nuevamente J1 es la ficha DB-25. R1 A R5 son resistencias de 1/8 W 10

kiloohms. S1 a S5 son pulsadores o llaves. Nótese que el circuito tiene en cuenta la

línea negada, lo que "normaliza” la lectura.

Tomando como referencia a estos circuitos se puede diseñar y construir un sin

número de circuitos y aplicaciones utilizando el puerto paralelo y cualquier lenguaje

de programación.

Algunas aplicaciones son: Control de motores paso a paso, sistemas de alarma,

generador de señales digital, fuente digital, efectos de luces, efectos sonoros,... y

muchos más.

2.8 DIAGRAMA DE BLOQUES DE UNA LÍNEA DE DATOS POR

EL PUERTO PARALELO.

El puerto paralelo está formado por 17 líneas de señales y 8 líneas de tierra.

Las líneas de señales están formadas por tres grupos:

o 4 Líneas de control

o 5 Líneas de estado

o 8 Líneas de datos

En el diseño original las líneas de control son usadas para la interface, control

e intercambio de mensajes desde el PC a la impresora.

Las líneas de estado son usadas para intercambio de mensajes, indicadores de

estado desde la impresora al PC (falta papel, impresora ocupada, error en la

impresora).

52

Las líneas de datos suministran los datos de impresión del PC hacia la

impresora y solamente en esa dirección. Las nuevas implementaciones del puerto

permiten una comunicación bidireccional mediante estas líneas.

Cada una de estas líneas (control, estado, datos) puede ser referenciada de

modo independiente mediante un registro.

Los registros del puerto paralelo

Cada registro del puerto paralelo es accesado mediante una dirección. El

puerto paralelo tiene tres registros:

o Registro de datos

o Registro de estado

o Registro de control

En la tabla que se muestra a continuación se muestra la relación que existe

entre las líneas físicas del conector del PC y los registros.

Tabla general del puerto paralelo

DB25 Señal Registro Tipo Activo Sentido

1 Control 0 C0- Salida Bajo Invertido

2 Dato 0 D0 Salida Alto Directo

3 Dato 1 D1 Salida Alto Directo

4 Dato 2 D2 Salida Alto Directo

5 Dato 3 D3 Salida Alto Directo

6 Dato 4 D4 Salida Alto Directo

53

7 Dato 5 D5 Salida Alto Directo

8 Dato 6 D6 Salida Alto Directo

9 Dato 7 D7 Salida Alto Directo

10 Estado 6 S6+ Entrada Alto Directo

11 Estado 7 S7- Entrada Bajo Invertido

12 Estado 5 S5+ Entrada Alto Directo

13 Estado 4 S4+ Entrada Alto Directo

14 Control 1 C1- Salida Bajo Invertido

15 Estado 3 S3+ Entrada Alto Directo

16 Control 2 C2+ Salida Alto Directo

17 Control 3 C3- Salida Bajo Invertido

18-25 Tierra

Notas:

Un dato en alto es un 1, un dato en bajo es un 0

La entrada y salida son desde el punto de vista del PC

Esquema

El puerto paralelo esquemáticamente, se describe a continuación. Nótese la

conexión al bus ISA en la parte izquierda y los registros en la parte derecha.

54

Figura 2.8 Esquema de un puerto paralelo.

Descripción de los componentes

El puerto paralelo originalmente estaba formado por los siguientes

componentes:

o 1 Latch para manejar el registro de datos

o 1 Buffer para controlar la retroalimentación del registro de datos

o 1 Buffer para manejar el registro de estado

55

o 1 Latch para manejar el registro de control

o 1 Buffer para controlar la retroalimentación del registro de control

o 1 Multiplexor para direccionar los puertos en el bus ISA

o 1 Driver bidireccional para conectar con el bus ISA

Explicación del funcionamiento mediante el BIOS y el MS-DOS

IBM especificó direcciones base para el puerto paralelo estándar (dentro del

espacio de direccionamiento de Entrada/Salida del 80x86). El adaptador de impresora

podría usar la dirección base 3BCh, o más tarde 378h o 278h.

El BIOS (Basic Input Output System) de IBM crea en el momento de arranque o

POST (Power On Seft Test) una tabla en el espacio de la memoria principal (RAM)

para 4 direcciones base de puerto paralelo de impresora, estos se almacenan como 4

bytes empezando con la dirección de memoria 408h. Durante el arranque, el BIOS

comprueba si hay puertos paralelos en las direcciones base 3BCh, 378h, y 278h, en

ese orden, y almacena la dirección base de cualesquiera que hayan sido encontrados

en posiciones consecutivas de la tabla. Las posiciones que no son usadas pueden estar

en 0, o como algunos BIOS lo hacen, le colocan la dirección del primer puerto

encontrado.

Algunos programas pueden ignorar esta tabla, pero esta es usada por lo menos

por el propio BIOS (mediante la INT 17 de E/S de impresora) y por el MS-DOS.

El BIOS detecta estos puertos escribiendo AAh al registro de datos (en la dirección de

E/S Base + 0), y luego si en el registro de datos se lee AAh. Significa que hay un

puerto.

Normalmente la asignación de direcciones es como sigue:

56

Dirección Nombre Ubicación

3BCh LPT1 Adaptador de impresión primario

378h LPT2 Adaptador de impresión

secundario

Las referencias a cada registro del puerto se realizan de la siguiente forma:

o Base (datos)=base+0

o Estado=base+1

o Control=base+2

Por ejemplo, si encontramos que la dirección base es 378h, entonces las

direcciones del registro de datos, estado y control serán:

o Base (datos)=378h

o Estado=379h

o Control=37Ah

Cada una de ellas permite accesar a los siguientes bits (descritos en la tabla

general):

o Base (datos)=D0, D1, D2, D3, D4, D5, D6, D7

o Estado=S3, S4, S5, S6, S7

o Control=C0, C1, C2, C3

57

CAPITITULO III

DIGITALIZACIÓN DE SEÑALES ANALÓGICAS

EXTERNAS.

Para ello se describe el software de adquisición de datos.

SISTEMA DE ADQUISICIÓN DE DATOS A TRAVES DEL

PUERTO PARALELO Y PLATAFORMA LABVIEW

Resumen: En el campo de la automatización electrónica y la instrumentación

moderna es usual el empleo de soluciones apoyadas en ordenadores. A continuación

se presenta una aplicación en la cual se realiza, de una manera sencilla y eficiente, un

muestreo y digitalización de datos análogos empleando conversor análogo a digital, el

puerto paralelo del PC y plataforma Labview.

Palabras clave: Interfaces, adquisición de datos, digitalización, conversor análogo a

digital ADC, puerto paralelo, Labview, muestreo.

1. Introducción

En gran cantidad de aplicaciones, tanto a nivel académico, como a nivel

industrial, es necesario registrar el valor de diferentes variables físicas que

evolucionan en función del tiempo, para su posterior análisis y/o control.

En muchos casos, estas mediciones se realizan mediante medidores análogos,

registrando de forma manual sus valores con respecto al tiempo. Sin duda, solo en

58

algunas pocas (muy pocas) aplicaciones, el procedimiento del operario con un reloj

satisface los requerimientos de precisión tanto en tiempo, como en el valor de la

variable registrada.

Es claro que en la gran mayoría de aplicaciones, es deseable tener un grado de

precisión suficientemente alto,tanto en el tiempo entre muestra y muestra, así como en

el valor registrado.

El objetivo de la presente aplicación es tener una herramienta para la

adquisición de datos, que permita realizar un muestreo de un voltaje variable en el

tiempo a intervalos de tiempo iguales y con la mayor precisión posible

2. Planteamiento del problema

En general el sistema se divide en tres bloques principales: sistema de conversión de

datos análogos a datos digitales, sistema de interfaz a través del puerto paralelo, y

sistema de control, visualización y registro de los datos en el computador.

Este planteamiento esta enfocado a una arquitectura por niveles que permitan

el cambio de tecnología en cualquiera de los niveles, todo pensando en desarrollos

posteriores.

Cada nivel tendrá funciones especificas dependiendo de las características de

cada subsistema.

3. Diseño del sistema

59

Como ya se mostró, el sistema esta compuesto de tres partes básicas:

a) conversión de datos análogos a datos digitales.

b) Interfaz a través del puerto paralelo.

c) Control, visualización y registro de los datos en el computador.

A continuación se explica los requerimientos de cada parte y la solución

propuesta en este desarrollo.

La mayoría de los transductores generan una señal de salida analógica. Por

ejemplo un transductor de temperatura; si la temperatura varia de manera continua, la

salida del transductor mostrara una variación continua y hay posiblemente una

infinidad de números posibles para los valores de salida. El convertidor

Analógico/Digital (convertidor A/D o ADC) es el dispositivo electrónico utilizado en

los sistemas de adquisición de datos para convertir las señales analógicas de los

transductores en el código digital utilizado por la computadora.

La representación digital del valor de salida del transductor es un código

relacionado con la salida analógica del transductor, pero no describe exactamente la

salida.

Por ejemplo, podría conectarse la salida de un transductor a un relevador que

opera un foco; si el voltaje es menor o igual a 5volts el foco esta apagado, si el voltaje

de salida del transductor es mayor a 5volts el foco se enciende. Los estados de

prendido y apagado del foco son un código digital que representa la salida del

transductor.

60

De manera similar la salida del transductor se podría representar por dos focos,

por lo que existirían cuatro estados posibles para el par de focos:

Foco 1 Foco 2

V<2.5 Apagado Apagado

2.5≤V<5.0 Apagado Encendido

5.0≤V<7.5 Encendido Apagado

7.5≤V Encendido Encendido

Con dos focos la salida del transductor ahora se representa con mas precisión,

en forma digital, que con un foco. Estos sistemas de focos representan formas

primitivas de convertidores A/D. El sistema de un foco es un convertidor A/D de 1-bit

y el sistema de dos focos es un convertidor A/D de 2-bits. Un bit tiene dos estados

posibles encendido o apagado. Dentro de la computadora, se usan los flip-flops para

representar tales estados.

En general, la salida de un convertidor A/D tiene 2N valores posibles, donde N

es el número de bits usado para representar la salida digital. El sistema de 1-bit tiene

dos estados de salida posibles, 0 y 1, y el sistema de 2-bits tiene 22 = 4 estados de

salida posibles(00,01,10 y 11 en representación binaria). Los Sistemas de adquisición

de datos computarizados normalmente utilizan convertidores A/D con 8-bits, de

menos, donde el número de estados posibles es 28(igual a 256), estos estados se

representan por números binarios con valores entre 00000000 y 11111111. Un

ejemplo es 10000001,dado que existe una conversión directa entre números

61

binarios(base 2) y decimales(base 10), esta salida se establece como 129 en decimal.

La representación física actual en la salida del ADC es, sin embargo, binaria.

Aunque la circuiteria de los ADC´s puede variar ampliamente, desde un punto

de vista externo estos pueden ser descritos por tres características principales. La

primera es el número de bits usado para representar la salida, entre más grande sea el

número de bits mas grande será el número de estados posibles para la salida y la

entrada analógica será representada con mayor precisión por la salida digital. La

segunda característica es el rango de entrada; y la tercera es la velocidad de

conversión, el tiempo que toma crear una salida digital después de que al dispositivo

se le indica hacer la conversión.

El rango de entrada de un ADC es el rango de voltaje analógico de entrada

sobre del cual el convertidor producirá una representación digital de salida. Los

voltajes de entrada fuera de rango no producirán una representación digital

significativa de la entrada. El rango de entrada de los ADC´s se clasifica como

unipolar o bipolar. Un convertidor unipolar solo puede responder a entradas

analógicas con el mismo signo (ejem. 0 a 5 volts o 0 a -10 volts), y uno bipolar puede

convertir entradas positivas y negativas (valores típicos son ±5 y ±10 volts).

3.1 CONSIDERACIONES DEL HARDWARE. Se encuentran.

1.- PARÁMETROS ANÁLOGOS DE I/O.- Para configurar apropiadamente una

tarjeta DAQ con entradas y salidas análogas, debe primero entenderse los efectos que;

resolución, rango y ganancia tienen en la calidad de la señal digitalizada.

Dependiendo del tipo de tarjeta que se va a utilizar, se puede configurar los

parámetros mediante jumpers o software.

62

RESOLUCIÓN.- Nos referimos a resolución por el número de bits que el ADC

utiliza para representar una señal análoga. Por ejemplo, un ADC de 3 bits divide el

rango dentro de 8 divisiones. Un código digital binario entre 000 y 111 representa

cada división. El ADC traslada cada medida de la señal análoga para una de esas

divisiones. En la figura se indica la onda seno obtenida por 3 bits ADC. La señal

digital no es una buena representación de la señal original porque la conversión tiene

pocos niveles discretos para representar la variación de voltaje de la señal análoga.

Pero incrementando la resolución a 16 bits, el número de divisiones se incrementa

desde 8 a 65,536. Con lo cual se puede tener una mejor precisión en la representación

de la onda analógica.

Figura 3.1 Efectos de resolución en ADC.

RANGO.- Los rangos son los niveles de voltaje máximo y mínimo que el ADC puede

digitalizar. El ADC en muchas tarjetas DAQ tiene la característica de seleccionar los

rangos, de esta manera tomar la más adecuada disponibilidad en base a la resolución.

Por ejemplo, en la figura el ADC de 3 bits tiene 8 divisiones digitales dentro de un

rango de 10V. Si seleccionamos el rango de –10V a +10V como indica la figura, el

63

mismo ADC ahora separa un rango de 20V dentro de ocho divisiones. El pequeño

incremento de voltaje detectable, cambio de 1.25V a 2.5V, dando como resultado una

menor precisión en la representación.

Figura 3.2 Efectos del rango en la resolución del ADC.

GANANCIA.- La ganancia se refiere a la atenuación o amplificación de la señal que

puede ocurrir antes que la señal sea digitalizada. Cuando se aplica ganancia a la señal,

se puede disminuir el rango de entrada del ADC, permitiendo de esta manera disponer

de todos los niveles digitales posibles para representar la señal análoga.

Por ejemplo, usando un ADC de 3 bits y con un rango de 0 a 10V, la figura

indica los efectos de una ganancia aplicada para una señal que fluctúa entre 0 y 5V.

Con una ganancia aplicada de 1, el ADC usa solo cuatro de las ocho divisiones

en la conversión. Pero aplicando la señal con una ganancia de 2 antes de ser

digitalizada, el ADC usa todas las 8 divisiones, y la representación digital es mucho

más precisa.

64

Figura 3.3 Efectos de ganancia en la precisión del ADC.

CONSIDERACIONES PARA LA SELECCIÓN DE PARÁMETROS DE

ENTRADA DE LA SEÑAL ANÁLOGA.

La resolución, rango y el parámetro de ganancia de la tarjeta DAQ determinan

el mínimo cambio detectable en el voltaje de entrada. Este cambio en el voltaje de

entrada es representado como 1 LSB el cual es llamado el CODE WIDTH. El mínimo

cambio detectable es calculado por la ecuación. Por ejemplo, una tarjeta DAQ de 12

bits con un rango de entrada 0V a 10V y una ganancia de 1, detecta un cambio a

2.4mV mientras la misma tarjeta con un rango de entrada de –10 a +10V detecta solo

un cambio a 4.8 mV como se muestra en los cálculos.

Esto es importante para corregir el margen de rango de entrada de la tarjeta

para la señal de entrada. Si los cambios de la señal de entrada son más pequeños que

65

la resolución de la tarjeta, se debería amplificar la señal. Por ejemplo, si es usada una

ganancia de 10 en la tarjeta con un rango de 10V y una resolución de 12 bits la

precisión se incrementa desde 2.4mV a 2.44 uV.

3.1.1. DETALLES DEL COMPUTADOR .- Dependiendo del tipo de tarjeta

que disponga , se tiene que ubicar varios parámetros fijando swich y jumpers en la

tarjeta, antes de instalar la tarjeta en el computador. Otros tipos de tarjetas DAQ como

las PLUG and PLAY (PnP) fijan sus parámetros por medio de software. En este tema

se discutirá varios parámetros de la tarjeta que se configuran en el hardware si la

tarjeta no es PLUG and PLAY.

Tres son los parámetros que se debe ajustar en la tarjeta DAQ, que determinan

como la tarjeta se puede comunicar con el computador. Esos parámetros son la

dirección base I/O, el nivel de interrupción, y el canal de DMA.

1 EL DIRECCIONAMIENTO BASE I/O .- La tarjeta DAQ se comunica con el

computador primeramente a través de registros. El software escribe hacia los registros

de configuración en la tarjeta para configurar la tarjeta. El software lee los datos del

registro en la tarjeta para obtener el estado de la tarjeta o una señal de medida. Los

parámetros de direccionamiento base I/O determinan en que espacio de la memoria

del computador los registros de la tarjeta residen.

2 NIVEL DE INTERRUPCION. – Otra forma de comunicar la tarjeta DAQ con el

computador es a través del proceso de interrupción, las interrupciones son muy

importantes en la operación de los computadores.

66

Ellos dan al procesador la habilidad de responder prontamente a los

periféricos. Se puede pensar en un proceso de interrupción en una campana o un

timbre. Si su puerta no tiene un timbre, debería ir periódicamente a la puerta para ver

si algo a pasado en un tiempo en particular. Esto resulta muy ineficiente. Con un

timbre, solo se necesita ir a la puerta cuando el timbre suena, y estaremos seguros de

que algo esta allí esperando. Una tarjeta DAQ puede usar una interrupción como un

timbre, para procesar la señal indicando que tiene datos esperando para ser leidos. A

cada dispositivo que utiliza un proceso de interrupción se le debe asignar un nivel

diferente de interrupción, caso contrario, si los dispositivos tienen los mismos niveles

de interrupción pueden entrar en conflicto.

3 ACCESO DIRECTO A MEMORIA (DMA).

La tercera manera de comunicar la tarjeta DAQ hacia el computador es a

través del ACCESO DIRECTO A MEMORIA (DMA). El DMA es un método de

transferencia de datos, en el cual los datos son transferidos directamente desde los

periféricos a la memoria del computador, no utilizando para ello el procesador. El

DMA es usualmente requerido para realizar máxima velocidad de transferencia de

datos, esto es muy útil para dispositivos que necesitan enviar datos a altas

velocidades. A cada dispositivo que utiliza DMA debe asignarse un canal separado de

DMA, caso contrario, entraran en conflicto con los dispositivos.

4 CONFIGURACIÓN DE LA TARJETA DAQ.

Dependiendo del computador utilizado, tres son los parámetros que son fijados

en forma diferente.

67

PC/XT/AT Bus. Si su tarjeta DAQ no es PnP , jumpers y dip switches

determinan el direccionamiento base I/O, el nivel de interrupción, y el canal(s) de

DMA. Se debería verificar que el sistema del computador no tenga otro hardware con

esos parámetros. Si se cambia los jumpers, se debe realizar el correspondiente cambio

en el software de configuración.

5 CONFIGURACION DE LAS I/O ANÁLOGAS.

Las tarjetas DAQ tiene varios parámetros de configuración para las I/O

análogas que controlan la operación del ADC Y DAC. Algunas tarjetas usan solo

configuración por software para fijar los parámetros I/O, mientras otras pueden

hacerlo por hardware. Una tarjeta que se puede configurar por software , se configura

utilizando el software de configuración.

3.2 ACONDICIONAMIENTO DE SEÑALES ANALÓGICAS.

Tenemos a continuación.

3.2.1. AMPLIFICADORES ANALÓGICOS PARA LA

INSTRUMENTACIÓN.

Los primeros amplificadores operacionales usaban el componente básico de su

tiempo: la válvula de vacío. El uso generalizado de los AOs no comenzó realmente

hasta los años 60, cuando empezaron a aplicarse las técnicas de estado sólido al

diseño de circuitos amplificadores operacionales, fabricándose módulos que

realizaban la circuitería interna del amplificador operacional mediante diseño discreto

de estado sólido. Entonces, a mediados de los 60, se introdujeron los primeros

amplificadores operacionales de circuito integrado. En unos pocos años los

68

amplificadores operacionales integrados se convirtieron en una herramienta estándar

de diseño, abarcando aplicaciones mucho más allá del ámbito original de los

computadores analógicos.

Con la posibilidad de producción en masa que las técnicas de fabricación de

circuitos integrados proporcionan, los amplificadores operacionales integrados

estuvieron disponibles en grandes cantidades, lo que, a su vez contribuyó a rebajar su

coste. Hoy en día el precio de un amplificador operacional integrado de propósito

general, con una ganancia de 100 dB, una tensión offset de entrada de 1 mV, una

corriente de entrada de 100 nA. Y un ancho de banda de 1 MHz. es inferior a 1 euro.

El amplificador, que era un sistema formado antiguamente por muchos

componentes discretos, ha evolucionado para convertirse en un componente discreto

él mismo, una realidad que ha cambiado por completo el panorama del diseño de

circuitos lineales.

Con componentes de ganancia altamente sofisticados disponibles al precio de

los componentes pasivos, el diseño mediante componentes activos discretos se ha

convertido en una pérdida de tiempo y de dinero para la mayoría de las aplicaciones

dc y de baja frecuencia. Claramente, el amplificador operacional integrado ha

redefinido las "reglas básicas" de los circuitos electrónicos acercando el diseño de

circuitos al de sistemas. Lo que ahora debemos de hacer es a conocer bien los AOs,

cómo funciona, cuáles son sus principios básicos y estudiar sus aplicaciones

3.2.2. CONFIGURACIONES BÁSICAS DE AMPLIFICADORES.

Los amplificadores operacionales se pueden conectar según dos circuitos

amplificadores básicos: las configuraciones (1) inversora y (2) no inversora. Casi

69

todos los demás circuitos con amplificadores operacionales están basados, de alguna

forma, en estas dos configuraciones básicas. Además, existen variaciones

estrechamente relacionadas de estos dos circuitos, más otro circuito básico que es una

combinación de los dos primeros: el amplificador diferencial.

3.3 ACONDICIONAMIENTO DE SEÑALES DIGITALES. Se hallan.

3.3.1. CONVERSORES DAC (DE DIGITAL A ANALÓGICO).

¿En que consiste un convertidor Digital/Analógico?

R. Un convertidor D/A. Es un dispositivo Electrónico que convierte una señal digital

en una señal analógica.

Un convertidor D/A esta provisto de un arreglo de resistencias (R-2R), las cuales

están conectadas a un amplificador sumador de tal manera que la resolución depende

del numero de entradas digitales.

¿Cuántos pines tiene el DAC?

R. Este DAC tiene 20 pines; 8 para entrada de datos, 5 que funcionan como entradas

de control, una entrada del voltaje de referencia, uno para la alimentación, 2 para

conectarse a tierra, y además tiene tres pines los cuales van conectados a un

amplificador operacional para convertir la corriente en voltaje de salida.

¿Por qué se requirió utilizar un Amplificador Operacional en esta práctica?

R. Para convertir la corriente de salida en voltaje.

¿Qué se observó en el osciloscopio? ¿y por qué?

70

R. En el osciloscopio se observó la salida del convertidor digital analógico en una

forma escalonada este efecto observado es provocado porque el convertidor retiene el

dato actual hasta que le llega otro dato nuevo, es decir, en este caso el DAC entrega a

la salida lo que le entrega el convertidor analógico digital, pero como el convertidor

analógico digital genera un tiempo de retardo, entonces el DAC tiene que retener el

dato hasta que el ADC proporciona un dato nuevo. Esta operación de retardo es

realizada por medio de unos registros internos del DAC.

¿Qué resolución tiene este convertidor?

R. La resolución esta directamente relacionada con el número de entradas digitales o

bits en el DAC. Por ejemplo este DAC utilizado tiene 256 pasos y por lo tanto tiene

una resolución de 8 bits.

Descripción general del DAC:

R. Este DAC esta hecho de Silicio y Cromo tiene una resolución de 8 bits, este

dispositivo puede ser conectado directamente con el 8080, 8048, 8055, Z80 y otros

populares microprocesadores.

El DAC utilizado contiene buffer doble los cuales permiten una salida de voltaje

mientras se introduce la próxima palabra digital.

3.3.2 CONVERSIÓN DE DATOS ANÁLOGOS A DIGITAL.

Los requerimientos de este subsistema se acotan en dos aspectos básicos:

tiempo de muestreo, y regulación del tiempo entre muestra y muestra.

71

Como se desea un desarrollo de bajo costo y fácil implementación, se emplea

un conversor análogo-digital comercial de la firma national semiconductor, el ADC

0808.

El circuito integrado ADC 0808 es un componente electrónico de tecnología

CMOS con un conversor analógico a digital de 8 bits, un multiplexor análogo de ocho

entradas y control lógico compatible con el funcionamiento de un microprocesador,

característica que permite conectarlo directamente a un bus de expansión del

computador. El conversor analógico digital de 8 bits emplea la técnica de

aproximaciones sucesivas para realizar la conversión.

El diseño del ADC 0808 ofrece alta velocidad frente a su costo, gran

desempeño, mínima dependencia de la temperatura, y mínimo consumo de potencia.

La figura 3.4. se muestra un diagrama de ubicación de los pines.

Diagrama de la distribución de pines del ADC 0808

3.3.2.1 ADC DE RAMPA DIGITAL.- Tenemos.

Circuitos Convertidores A/D

ADC de rampa digital

72

Una de las versiones mas sencillas de ADC es la que emplea un contador

binario como registro y permite que el reloj incremente el estado del contador un paso

a la vez hasta que V AX >= VA . Este tipo de convertidor recibe el nombre de ADC de

rampa digital debido a que la forma de onda de VAX es una rampa (en realidad un

escalera).

La figura 3.5 es el diagrama de un ADC de rampa digital . Como se observa,

este contiene un contador, un DAC, un comparador analógico y una compuerta AND

de control.

La salida del comparador también proporciona la señal de fin de conversión.

Se supone que Voltaje de referencia es mayor la operación del mismo es la siguiente

Se aplico el pulso de Convertir para poner el contador en cero esto permito el

paso de los pulsos del reloj por la compuerta AND. Cuando las entradas del DAC son

todas cero, la salida de este es Voltaje analógico = 0. Dado que Voltaje de referencia

> Voltaje analógico la salida es cero. A medida que cambia el contador, la salida del

DAC, aumenta un paso a la vez, este proceso continua hasta que Voltaje analógico

alcanza un paso que excede a Voltaje de referencia por una cantidad igual o mayor

que Vt (por lo general de 10 a 100uV). En este momento la salida del comparador

cambia de estado y no permite el flujo de pulsos hacia el contador, por el cual este

deja de contar.

El contenido del contador es la representación digital del Voltaje de

Referencia.

73

Figura 3.5 Diagrama del convertidor A/D de rampa digital.

DESARROLLO Simulación e Implementación

Una vez establecida la teoría el paso siguiente es la simulación de un circuito como

el mostrado en la figura . Con esto nos damos cuenta si el circuito próximo a

implementar cumplirá con las características que buscamos.

El circuito simulado se muestra en la figura , en la cual se puede apreciar que

consta con todos los elementos presentados en el diagrama es decir DAC, contador y

comparador.

74

3.3.2.3 EL ADC 0808.- Analógico digital de 8 bits.

Manejo del conversor analógico digital ADC 0808.

En la figura se muestra el diagrama del circuito de conversión análogo a digital, la

señal de clock (reloj) es generada mediante un circuito integrado LM555, el cual se

configura como oscilador con una frecuencia aproximada a los 180 KHz. Si se desea,

este oscilador puede ser reemplazado por uno de mayor frecuencia, pues el ADC 0808

puede tolerar frecuencias de reloj de hasta 400KHz.

Figura 3.6 Diagrama de conexión del adc 0808 en la configuración empleada.

Las señales de start (inicio) y ALE (habilitación de canal) se emplean ligadas

como un solo pin de control que selecciona el canal del conversor que se emplea y, al

mismo tiempo, le indica al circuito integrado que inicie el proceso de conversión.

Es importante tener en cuenta que el proceso de conversión toma de ocho a

doce ciclos de reloj, lo que significa que el tiempo mínimo de muestreo debe ser

mayor a 0.2 milisegundos, es decir, la frecuencia máxima de muestreo posible con el

adc en la configuración descrita y reloj a 110 KHz es de 5 KHz.

75

Además de estas consideraciones el ADC posee un multiplexor que permite

realizar el muestreo de diferentes variables con un solo equipo, pero no de forma

estrictamente simultanea, pues si se realiza el muestreo en tres canales “a la ves”, el

circuito integrado realizara el muestreo del primer canal, luego del segundo y

finalmente el tercero, es decir solo es posible realizar un muestreo en cada instante.

Esto implica que si se requiere emplear dos canales del dispositivo con la

frecuencia de reloj empleada, la máxima rata de muestreo es de unas 2500 muestras

por segundo (se reduce a la mitad respecto a las mismas condiciones con solo un

canal).

Es importante que la señal de reloj suministrada al dispositivo sea lo mas

pura posible, pues cualquier oscilación puede ser tomada como un pulso generando

errores en el funcionamiento del dispositivo.

3.3.2.3 CARACTERÍSTICAS DEL CONVERTIDOR ANALÓGICO

A DIGITAL

A la salida digital de un convertidor analógico a digital ideal de 4 bits se

gráfica en función del voltaje de entrada analógica. .

De manera análoga a lo que ocurre con los convertidores digital a analógico, la

resolución de un convertidor analógico a digital se define de dos maneras. Primero,

es el número máximo de códigos de salida digital.

76

Esta expresión de la resolución del convertidor es la misma que en el caso del

convertidor analógico y se repite aquí :

resolución = 2n

La resolución también se define como la razón de cambio del valor en el

voltaje de entrada, Vi, que se necesita para cambiar en 1 LSB la salida digital.

Si se conoce el valor del voltaje de entrada a escala completa, ViFS, que se

requiere para producir una salida digital de todos los unos, es posible calcular la

resolución mediante: resolución = VIFS / -1

En su forma más simple, la ecuación de entrada-salida de un convertidor

digital a analógico está dada por :

Código de salida digital = equivalente binario de D

donde D es igual al valor decimal de la salida digital ; o sea, D es igual al número de

bits menos significativos en la salida digital y D se calcula a partir de

D = Vi/resolución

77

Figura 3.7 Características de entrada Salida de un ADC.

78

CAPITULO IV.

CONDICIONES PARA UN DISEÑO DE ADQUISICION

DE DATOS (DAQ) .

Uno de los mas importantes parámetros de un sistema de entrada análoga es la

velocidad cual la tarjeta muestrea una señal. Para determinar una apropiada velocidad

de muestreo, se debería conocer el máximo rango de frecuencia de la señal que se

necesita muestrear, la precisión que se requiere desde sus datos, algún ruido en el

sistema que puede afectar a la señal análoga, y la compatibilidad de la tarjeta DAQ.

4.1 ENTORNO DE PROGRAMACIÓN GRAFICA.

La Programación Grafica surgió como resultado del caos producido cuando

los lenguajes tradicionales se enfrentaron a los grandes problemas de software. Puesto

que a medida que se van desarrollando los lenguajes, se van desarrollando también las

posibilidades de resolver problemas cada vez más complejos.

La programación gráfica es una nueva forma o técnica de programación que se

utiliza para desarrollar programas más eficientes y con gran fiabilidad.

4.1.1 VENTAJAS Y DESVENTAJAS DE LA PROGRAMACIÓN

GRAFICA. Encontramos en la programación grafica y tradicional.

EN LA PROGRAMACIÓN GRÁFICA. - Los programas se dividen en entidades

independientes que se relacionan con otras partes del programa, en donde cada

entidad se considera un “gráfico” que contiene datos (sus características) y

79

procedimientos (su comportamiento). Es decir, un “grafico” es una entidad que

contiene datos y los procedimientos que operan sobre esos datos. A los elementos de

un grafico se les conoce como “miembros”, los procedimientos que operan sobre los

gráficos se denominan “métodos” , y los datos se denominan “datos miembro”.

Entonces , un programa consta de un número de gráficos, los cuales se comunican

entre si mediante “métodos” a través del envío de “mensajes” que son acciones que

debe ejecutar el gráfico.

EN LA PROGRAMACIÓN TRADICIONAL .- los programas constan de

procedimientos y datos: donde cada procedimiento actúa como una “caja negra” que

realiza una tarea específica sin preocuparse de lo que hace internamente. Esta técnica

de programación permite desarrollar programas con empaquetamiento de código en

procedimientos que los vuelven transportables y modulares: aunque los datos se tratan

separadamente de los procedimientos, porque los datos utilizados son frecuentemente

globales o se pasan en los parámetros de los procedimientos.

4.2 LABVIEW Y ADQUISICIÓN DE DATOS EN PUERTOS

PARALELOS. Las funciones son.

LAS FUNCIONES IN PORT Y OUT PORT

Como su nombre lo indica, estas funciones o VI’s son las encargadas de

recibir y enviar datos a través de los puertos; se encuentran en la paleta de funciones

del diagrama, en la opción Advanced, en el recuadro de Port I/O y se distinguen por

los iconos mostrados en la figura .

80

Figura 4.1 Iconos de los VI’s inport y outport.

La función InPort posee dos parámetros de entrada: La dirección de registro,

que especifica la posición del registro empleado, por lo tanto es un dato numérico. El

segundo parámetro de entrada consiste en un dato booleano que indica si el dato

recibido desde la posición indicada es un byte (falso) o una palabra, es decir 2 bytes

(verdadero). La salida de esta función consiste en un dato de tipo numérico.

La función OutPort tiene tres parámetros de entrada: La dirección de registro,

que especifica la posición del registro empleado para enviar la información. El

segundo parámetro de entrada consiste en un dato booleano que indica si el dato

enviado a la posición indicada es un byte (falso) o una palabra (verdadero). El tercer

parámetro es el dato que se va a enviar.

TRATAMIENTO DE DATOS

El VI de control de adc y puerto paralelo contiene los algoritmos necesarios para

realizar la conversión del dato análogo a digital mediante el adc 0808 y la posterior

adquisición del dato a través del puerto paralelo. Estos algoritmos se organizan en

forma de secuencia de la siguiente forma:

- Envío de la señal de inicio de conversión.

- Tiempo de espera

- Recepción del dato a través del puerto paralelo.

El envío de la señal de inicio consiste en generar un pulso a través de un pin

del puerto paralelo. En la aplicación diseñada esta operación toma 3 pasos de una

secuencia con un total de cinco.

81

En cada uno se realiza la operación de salida de puerto, primero un cero luego

un uno y de nuevo un cero, así se tendrá el pulso de inicio de la conversión.

En el paso cuatro de la secuencia se tiene un tiempo de espera de un

milisegundo dado por la función de esperar mostrada en la figura .

Figura 4.2 Función “esperar”

Para acondicionar los datos recibidos a través de los registros de estado y

control del puerto paralelo es necesario aplicar mascaras realizando la operación AND

del dato recibido por cada registro.

Para el registro de estado la mascara es el dato 11111000 binario, mientras que

para el dato recibido través del registro de control es 00000111. Luego de esta

operación resta invertir los bits que sea necesario y agrupar el dato, como puede

apreciarse en la figura 4.3 .

82

Por ultimo se incluye el voltaje de referencia (que debe coincidir con el Vref del

ADC) para lograr finalmente un valor del voltaje registrado mediante el ADC.

4.2.1 USO DE LabVIEW

En este apartado se discuten los aspectos necesarios para familiarizarse con el uso de

LabVIEW, incluyendo las ventanas Panel y Diagram, menús de LabVIEW y la

ventana de jerarquía.

Asimismo se discuten otros aspectos necesarios como el uso de los modos edit

y run; creación de objetos; herramientas y obtención de ayuda.

4.2.2 VENTANAS PANEL Y DIAGRAM

Cada VI tiene dos ventanas separadas, pero relacionadas entre sí. La ventana Panel

contiene el panel frontal de nuestro Vi. La ventana Diagram es aquella en la cual se

construye el diagrama de bloques. Se puede conmutar entre ambas pantallas con el

83

comando Show Panel/Show Diagram (Mostrar Panel/Mostrar Diagrama) de¡ menú

Windows (Ventanas). Usando los comandos Tile (literalmente "baldosas"; podemos

traducir por Parcelas), dentro de ese mismo menú, podemos posicionar las ventanas

Panel y Diagram una al lado de la otra o una encima de la otra.

4.2.3 MENÚS DE LABVIEW

La programación en LabVIEW obliga a utilizar con frecuencia los diferentes menús.

La barra de menús de la parte superior de la ventana de un Vi contiene diversos

menús pull-down (desplegables). Cuando hacemos clic sobre un ítem o elemento de

esta barra, aparece un menú por debajo de ella. Dicho menú contiene elementos

comunes a otras aplicaciones Windows, como Open (Abrir), Save (Guardar) y Paste

(Pegar), y muchas otras particulares de LabVIEW.

La siguiente figura muestra la barra de menús para la versión 3.1 cuando la

ventana Panel está activa. El menú Functions reemplaza al Controis cuando la

ventana Diagram está abierta.

File (Archivo) Sus opciones se usan básicamente para abrir, cerrar, guardar

imprimir Vis.

Edit (Edición) Se usa principalmente para organizar el panel frontal y el

diagrama de bloques y establecer nuestras preferencias.

84

Operate (Función) Sus comandos sirven para ejecutar el Vi.

Controls (Controles) Con este menú, podemos añadir controles e indicadores al panel

frontal. Cada opción dentro de este menú visualiza una paleta con los controles e

indicadores para esa opción. El menú Controis sólo está disponible cuando la

ventana Panel está activa.

Functions (Funciones) Construimos el diagrama de bloques con este menú. Cada

opción visualiza una paleta con sus ¡conos disponibles. El menú

Functions sólo está disponible cuando la ventana Diagram está activa.

Windows (Ventanas) Se usa para situar rápidamente las ventanas abiertas y para abrir

ventanas de los diferentes subVIs.

Text (Texto) Se utiliza para cambiar la fuente, estilo y color del texto.

Heip (Ayuda) Presenta ayuda sobre los diferentes iconos y otros aspectos de

LabVIEW.

File (Archivo) Misma función.

Edit (Edición) Misma función.

Operate (Función) Presenta nuevas opciones como pueden ser la impresión cuando

85

acaba la ejecución.

Project (Proyecto) Presenta los niveles de jerarquía, los subvis que lo integran, los

que están sin abrir, busca Vis, etc.

Windows (Ventanas) Se utiliza básicamente para mostrar (Show) ventanas, como

pueden ser las de información, historia¡, controles/funciones, herramientas,

portapapeles, etc.

Help (Ayuda) Misma función.

El menú de LabVIEW que utilizaremos con más frecuencia es el menú pop-up

(emergente) de objetos, al cual accedemos situando el cursor sobre el objeto en

cuestión y pulsando el botón derecho del ratón. Si la pulsación se hace sobre un

espacio vacío, el menú que se obtendrá vendrá en función de la herramienta

seleccionada.

4.2.4 ADQUISICIÓN DE DATOS.- Un desarrollo en LabView se basa en el

empleo de los “VI” o instrumentos virtuales, que en un sentido practico consiste en un

objeto con entradas y salidas, y una función especificada dentro de este. La estructura

de este lenguaje de programación denominado G permite llamar o incluir un VI

dentro de otro, permitiendo jerarquizar los VI’s.

La creación de un VI dentro de Labview supone dos partes: el diseño del panel

frontal, en donde se encuentran las entradas y salidas (controles e indicadores) del VI,

86

y el diagrama de flujo de datos, en donde se configura el funcionamiento del VI; en

un sentido practico es el algoritmo que define el comportamiento de la aplicación.

4.2.5 ANALISIS DE DATOS.- Para acceder a la paleta de controles dentro del

panel de control basta con oprimir el botón derecho del ratón teniendo el puntero

sobre la ventana correspondiente a este, de forma similar se logra el acceso a la paleta

de funciones dentro del diagrama de flujo de datos (llamado simplemente diagrama).

LabView permite manipular distintas estructuras de datos, como boléanos

(binarios), numéricos, cadenas, arreglos y clusters. Los clusters son una poderosa

estructura que permite realizar arreglos compuestos por distintos tipos de datos.

Dentro del Diagrama la estructura del dato se distingue por el color que toma el lazo

correspondiente, por ejemplo, los boléanos se distinguen por el color verde

4.2.6 VISUALIZACIÓN DE DATOS.- Como ya se menciono con

anterioridad, National Instruments LabView es la plataforma sobre la cual se

desarrollo el software de esta aplicación. LabView es un software de programación

grafica, obviamente enfocada al manejo de objetos, y desarrollado pensando en

sistemas de instrumentación y control, lo que lo hace de gran utilidad para la

adquisición y análisis de los datos.

Por ultimo es importante tener en cuenta que en el ambiente de programación

G (LabView) el puntero del ratón cumple diversas funciones, distinguiéndose cada

una por la figura que toma el puntero, por ejemplo si el cursor tiene forma de carrete

de hilo funciona como herramienta de conexión.

87

4.2.7 CREACIÓN DE INSTRUMENTOS VIRTUALES. Tenemos.

Uso de los modos EDIT (Edición) y RUN (Ejecución)

Podernos crear o cambiar un VI cuando éste está en el modo Edit. En él, las

herramientas de edición se habilitan en la paleta de¡ modo Edit, por debajo de la barra

de¡ menú de ventana, como se indica a continuación:

Cuando estamos listos para probar nuestro VI, hacemos clic sobre el botón de

modo Q o seleccionamos Change to Run Mode (Cambio al Modo de Ejecución)

desde el menú Operate. Haciendo esto compilamos el Vi y lo ponemos en el modo

Run. En este punto podemos disponer de las opciones de depuración, ejecución del

VI, diferentes modos de ejecución, impresión de datos, etc.

Si lo que queremos es ejecutar el Vi desde el modo Edit sin pasar al modo

Run, hemos de hacer clic sobre la flecha de ejecución. Si fuese necesario, LabVIEW

compilaría primero el VI, después conmuta al modo Run, ejecuta el Vi y vuelve al

modo Edit una vez que el Vi se ha ejecutado.

Éste es uno de los puntos que ha sufrido una mayor modificación en la versión

Los iconos correspondientes a estos modos se indican a continuación:

88

Se puede observar que es aquí donde aparece el tratamiento de los diferentes

tipos de letras y la alineación y distribución de objetos. Así mismo vemos que no

aparece ninguna herramienta.

Otro aspecto a destacar es el botón Pause (pausa) IM. Al hacer clic en él se

para la ejecución del VI y vamos al diagrama de bloques, parpadeando la siguiente

secuencia que se ejecutará.

4.2.7.1 CREACIÓN DE OBJETOS

Para elaborar el panel frontal hemos de situar sobre él los objetos deseados mediante

su selección desde el menú Controls. Creamos objetos sobre el diagrama de bloques

seleccionándolos desde el menú Functions. Por ejemplo, si queremos crear un knob

o botón rotatorio sobre el panel frontal, primero 'hemos de seleccionarlo desde la

paleta Numeric (Numérico) del menú Controls, como se indica en la siguiente

figura. El objeto aparecerá en la ventana Panel con un rectángulo negro o gris que

representa una etiqueta de identificación o Label. Si queremos usarla en ese mismo

momento, introduciremos el texto desde el teclado. Después de haberío hecho,

cualquiera de las siguientes acciones completa la entrada:

· Pulsar < Shift + Enter >

· Pulsar < Enter > del teclado numérico.

89

· Clic sobre el botón Enter en la paleta de herramientas.

· Clic fuera de la etiqueta.

Cuando creamos un objeto sobre el panel frontal, al mismo tiempo se crea el

terminal correspondiente sobre el diagrama de bloques. Este terminal se usa tanto

para leer datos desde un control como para enviarlos a un indicador.

Si se selecciona Show Diagrarn (Mostrar Diagrama) desde el menú

Windows, podremos ver el diagrama correspondiente al panel frontal. Este diagrama

contendrá terminales para todos los controles e indicadores del panel frontal.

Todos los objetos en LabVIEW tienen asociados menús pop-up, los cuales

podemos obtener pulsando el botón derecho del ratón sobre dicho objeto. Mediante la

selección de sus diferentes opciones podremos actuar sobre determinados parámetros,

como el aspecto o comportamiento de ese objeto.

90

Por ejemplo, si no hubiésemos introducido texto en la etiqueta del control

anterior, ésta habría desaparecido al hacer clic en cualquier otro lado. Para volver

a visualizarla tendríamos que obtener el menú pop-up de ese control y seleccionar

Label del menú Show (figura ).

Los menús Controis y Functions se hallan como ventanas flotantes que

podemos tener visibles o no. Si no lo están, utilizaremos la opción Show Controls

Palette (Mostrar paleta de controles) o Show Functions Palette (Mostrar paleta de

funciones) del menú Windows.

Otra opción es hacer clic con el botón derecho de¡ ratón en cualquier área libre

de la pantalla: Aparecerá el menú Controls o Functions según estemos en la ventana

Panel o Diagrarn, respectivamente.

4.2.7.2 HERRAMIENTAS DE LabVIEW

Una herramienta es un modo de funcionamiento especial del ratón. Las usamos para

llevar a cabo funciones específicas de edición o ejecución.

91

• La herramienta Operating (Funcionamiento) maneja los controles del panel

frontal (y los indicadores en el modo Edit). Es la única herramienta disponible en el

modo Run.

• La herramienta Positioning 1 (Situación) selecciona, mueve y redimensiona

objetos.

• La herramienta Labeling (Etiquetado) crea y edita textos.

• La herramienta Wiring (Cableado) enlaza objetos del diagrama de bloques y

asigna a los terminales del conector del Vi los controles e indicadores del panel

frontal.

• La herramienta Coloring (Coloración) colorea diversos objetos y los fondos.

Se puede cambiar de herramienta haciendo lo siguiente:

·Clic sobre el icono de la herramienta que queremos.

·Usando la tecla TAB para seleccionar la siguiente herramienta.

·Pulsando la tecla SPACE para cambiar entre la herramienta Operatíng y Positioning

cuando la ventana Panel está activa, y entre las herramientas Wiring y Positioning

cuando la ventana Diagram es la activa.

• Operate Value (Valor Operativo) H. Misma función que Operating.

• Position/Size/Select (SituaciónTamaño / Selección') M. Realiza la misma

función que Positioninq.

• Edit Text (Edición de Texto) Misma función que Labeling.

• Connect Wire (Conexión de Cables) @. Misma función que Wiring.

• Object Popup (Menú pop-up del objeto) M. Función nueva. Despliega el menú

pop-up asociado al objeto. Tiene el mismo efecto que si pulsamos el botón derecho

del ratón sobre el objeto.

92

• Scroll Window (Desplazamiento de la pantalla) IJ. Función nueva. Desplaza la

pantalla en la dirección que deseemos para ver posibles zonas ocultas.

• Set/Clear Breakpoint (Establecer/Quitar puntos de ruptura) ál. Función nueva.

Permite poner tantos puntos de ruptura como deseemos a lo largo del diagrama de

bloques. Cuando durante la ejecución se llega a uno de ellos, LabVIEW conmuta

automáticamente al diagrama de bloques. Usamos esta misma herramienta para quitar

los puntos.

• Probe Data (Sonda de datos).

4.2.7.3 TIPOS DE DATOS EN LABVIEW. CONTROLES E

INDICADORES

LabVIEW ofrece una gran variedad de tipos de datos con los que podemos

trabajar respondiendo a las necesidades reales con las que nos encontraremos. Uno de

los aspectos más significativos de LabVIEW es la diferenciación que efectúa en el

diagrama de bloques entre los diferentes tipos de controles o indicadores, basada en

que cada uno de ellos tiene un color propio.

De esta manera, y como consecuencia de una memorización o asimilación

práctica, nos será muy fácil identificarlos y reconocer inmediatamente si estamos

trabajando con el tipo de datos adecuado. Distinguimos los siguientes tipos, los

cuales pueden funcionar tanto como controles como indicadores (entre paréntesis

queda reflejado el color con el que queda representado en el diagrama de bloques):

Boolean (verde claro)

93

Los tipos de datos booleanos son enteros de 16 bits. El bit más significativo

contiene el valor Booleano. Si el bit 15 se pone a 1, entonces el valor del control o

indicador es true (verdadero); por el contrario, si este bit 15 vale 0, el valor de la

variable booleana será false (falso).

Numéricos: Hay diferentes tipos

Extended (naranja) Según el modelo de ordenador que estemos utilizando los

números de coma flotante con precisión extendida presentan el siguiente formato:

Macintosh:96 bits (formato precisión extendida MC68881 - MC68882)

Windows: 80 bits (formato precisión extendida 80287)

Sun: Formato 128 bits

HP-UX: Son almacenados como los números en coma flotante de doble

precisión.

Double (naranja) Los números en coma flotante de doble precisión cumplen con el

formato de doble precisión IEEE de 64 bits. Es el valor por defecto de LabVIEW.

Single (naranja) Los números en coma flotante de precisión simple cumplen con el

formato de precisión simple IEEE de 32 bits.

Long lnteger (azul) Los números enteros largos tienen un formato de 32 bits, con o sin

signo.

94

Word lnteger (azul) Estos números tienen un formato de 16 bits, con o sin signo.

Byte lnteger (azul) Tienen un formato de 8 bits, con o sin signo.

Unsigned Long (azul) Entero largo sin signo.

Unsigned Word (azul) Palabra sin signo.

Unsigned Byte (azul) Byte sin signo.

Complex Extended (naranja)Número complejo con precisión extendida.

Complex Double (naranja) Complejo con precisión doble.

Complex Single (naranja) Complejo con precisión simple.

Arrays (depende del tipo de datos que contenga)

LabVIEW almacena el tamaño de cada dimensión de un array como long integer

seguido por el dato. El ejemplo que sigue muestra un array unidimensional con

números en coma flotante de precisión simple. Los números decimales a la izquierda

presentan el desplazamiento donde empieza cada array en la posición de memoria.

95

Los arrays booleanos se almacenan de manera diferente a los booleanos

escalares. Estos arrays se almacenan como bits empaquetados. El tamaño de la

dimensión viene dado en bits en lugar de bytes. El bit 0 se guarda en la posición más

alta de memoria (215), y el bit 15 en la posición más baja (20).

La figura muestra un ejemplo de un array booleano bi-dimensional. El elemento

0 de cada dimensión se almacena en una nueva palabra entera ignorándose los bits sin

usar de las dimensiones previas.

Strings (rosa) LabVIEW almacena los strings como si fueran un array uni-

dimensional de bytes enteros (caracteres de 8 bits).

Handies Un handie es un puntero que apunta a un bloque de memoria

relocalizable. Un handie sólo apunta a datos definidos por el usuario. LabVIEW no

reconoce qué es lo que hay en ese bloque de memoria. Es especialmente útil para

96

pasar un bloque de datos por referencia entre nodos de interficie de código (Code

Interface Nodes o CiNs).

Paths (verde oscuro) LabVIEW almacena las componentes tipo y número de

un path en palabras enteras, seguidas inmediatamente por las componentes del path.

El tipo de path es 0 para un path absoluto y 1 para un path relativo. Cualquier

otro valor indicaría que el path no es válido. Cada componente del path es una cadena

Pascal (P-string), en la cual el primer byte es la longitud de la P-string (sin incluir el

byte de longitud).

Clusters (marrón o rosa) Un cluster almacena diferentes tipos de datos

de acuerdo a las siguientes normas:

Los datos escalares se almacenan directamente en el cluster; los arrays,strings,

handies y paths se almacenan indirectamente. El cluster almacena un handie que

apunta al área de memoria en la que LabVIEW ha almacenado realmente los datos.

Para conectar terminales se usa la herramienta Wiring (cableado).

4.2.8 PROGRAMACIÓN ESTRUCTURAL

A la hora de programar, muchas veces es necesario ejecutar un mismo conjunto

de sentencias un número determinado de veces, o que éstas se repitan mientras se

cumplan ciertas condiciones. También puede ocurrir que queramos ejecutar una u

97

otra sentencia dependiendo de las condiciones fijadas o simplemente forzar que unas

se ejecuten siempre antes que otras.

Para ello LabVIEW dispone de cuatro estructuras fácilmente diferenciables

por su apariencia y disponibles en la opción Structures del menú Function de la

ventana Diagram:

4.2.8.1 ESTRUCTURAS ITERATIVAS: FOR LOOP Y WHILE

LOOP

FORLOOP

Usaremos For Loop cuando queramos que una operación se repita un número

determinado de veces. Su equivalente en lenguaje convencional es:

For i = 0 to N-1

Ejecuta subdiagrama

Al colocar un For Loop en la ventana Diagram observamos que tiene

asociados dos terminales:

1.- Terminar contador: Contiene el número de veces que se ejecutará el subdiagrama

creado en el interior de la estructura. El valor del contador se fijará externamente (ver

también Arrays en el capítulo 6).

2.- Terminal de iteración: Indica el número de veces que se ha ejecutado la

estructura: Cero durante la primera iteración, uno duretnte la segunda y así hasta

N-1.

98

Ambos terminales son accesibles desde el interior de la estructura, es decir, sus

valores podrán formar parte del subdiagrama pero en ningún caso se podrán

modificar.

WHILE LOOP

Usaremos Whíle Loop cuando queramos que una operación se repita mientras

una determinada condición sea cierta. Su equivalente en lenguaje convencional es:

Do ejecutar subdiagrama While condición is TRUE

(Aunque esta estructura es más similar al comando Repeat-Untíl, ya que se repite

como mínimo una vez, independientemente del estado de la condición).

Al igual que For Loop contiene dos terminales:

1.-Terminal condicional: A él conectaremos la condición que hará que se ejecute el

subdiagrama. LabVIEW comprobará el estado de este termina¡ al final de cada

iteración, si su valor es TRUE (verdadero) continuará, pero por el contrario si su valor

es FALSE (falso) detendrá la ejecución.

99

2.- Terminal de iteración: Indica el número de veces que se ha ejecutado el bucle y

que, como mínimo, siempre será una (l=O).

Al hacer pop-up tanto en el For Loop como en el Whíle Loop se despliega el

siguiente menú:

Show Label: Oculta o visualiza la etiqueta de identificación del Loop y, si no existe,

permite ponerla.

• Description: Permite añadir comentarios.

• Replace: Cambia el For Loop o el While Loop por cualquier otra función de

la paleta Structs & Constants.

• Remove Loop: Borra la estructura While o For pero sin eliminar el

subdiagrama de su interior.

• Add Shift Register: Añade los shift register (registros de desplazamiento).

100

4.2.8.2 REGISTROS DE DESPLAZAMIENTO

Los registros de desplazamiento o shift register son variables locales, disponibles

tanto en el For Loop como en el While Loop, que permiten transferir los valores del

final de una iteración al principio de la siguiente.

Inicialmente shift register tiene un par de terminales colocados a ambos lados

del Loop; el terminal de la derecha almacena el valor final de la iteración hasta que

una nueva hace que este valor se desplace al terminal de la izquierda, quedando en el

de la derecha el nuevo valor. Un mismo registro de, desplazamiento puede tener más

de un terminal en el lado izquierdo; para añadirlo escogeremos la opción Add

Element (añadir elemento) del menú pop-up. Cuantos más terminales tengamos en el

lado izquierdo más valores de iteraciones anteriores podremos almacenar.

El menú pop-up tiene otros dos comandos:

• Remove element: Borra un terminal del lado izquierdo siempre y cuando el

registro de desplazamiento tenga asociado más de uno.

• Remove All: Borra todo el registro de desplazamiento, tanto los termínales de

la izquierda como el de la derecha.

Un mismo Loop puede tener varios registros de desplazamientos siendo

conveniente inicializarlos, para que los terminales de la izquierda tengan el valor

101

deseado cuando se produzca la primera iteración. Shift register puede trabajar con

cualquier tipo de datos siempre y cuando los datos que se conecten a cada terminal

sean del mismo tipo.

Al finalizar la ejecución de todas las iteraciones el último valor quedará en el

terminal de la derecha; uniéndolo a un indicador del mismo tipo de dato fuera del

Loop podremos obtener su valor.

Pero existe otra posibilidad para pasar datos de forma automática desde el

interior de la estructura al exterior. Cuando un cable atraviesa los límites del Loop,

aparece en el borde un nuevo terminal llamado túnel que hace de conexión entre el

interior y el exterior, de forma que los datos fluyen a través de él después de cada

iteración del Loop, pudiendo guardar de esta manera no sólo el último valor de todas

las iteraciones sino también los valores intermedios. A esta posibilidad que tienen

tanto el For como el While de acumular arrays en sus límites automáticamente se le

llama auto-indexing o autoindexado.

4.2.6 PROGRAMACIÓN ESTRUCTURADA

LabVIEW habilita por defecto auto-indexing en el For Loop ya que es más

frecuente utilizar esta estructura para crear arrays que no el While Loop, en el cual

esta opción está deshabilitada por defecto y cuya utilización podría provocar

problemas de memoria debido a que no sabemos cuantas veces se va a ejecutar. No

obstante, haciendo pop-up en el túnel se puede habilitar o deshabilitar esta opción.

4.2.6.1 ESTRUCTURAS CASE Y SEQUENCE

102

Este tipo de estructuras se diferencia de las iterativas en que puede tener

múltiples subdiagramas, de los cuales solamente uno es visible a la vez. En la parte

superior de cada estructura existe una pequeña ventana que muestra el identificador

del subdiagrama que se está mostrando. A ambos lados de esta ventana existen dos

botones que decrementan o incrementan el identificador de forma que podamos ver el

resto de subdiagramas.

CASE

Usaremos la estructura Case en aquellas situaciones en las que el número de

alternativas disponibles sean dos o más. Según qué valor tome el selector dentro de

los n valores posibles, se ejecutará en correspondencia uno de los n subdiagramas.

La estructura Case consta de un terminal llamado selector y un conjunto de

subdiagramas, cada uno de los cuales está dentro de un case o suceso y etiquetado por

un identificador del mismo tipo que el selector; éste será booleano o numérico. Si se

conecta un valor booleano al selector, la estructura tendrá dos Case: False y True.

Pero si se conecta un valor numérico la estructura podrá tener hasta 214 Case.

103

En este caso la estructura Case engloba dos sentencias diferentes de otros

lenguajes convencionales:

1.- lf condición true then ejecutar case true

else ejecutar case false

2.- Case selector of

l:ejecutar case 1;

n:ejecutar case n

end

Case no cuenta con los registros de desplazamiento de las estructuras

iterativas pero sí podemos crear los túneles para sacar o introducir datos. Si un case o

suceso proporciona un dato de salida a una determinada variable será necesario que

todos los demás también lo hagan; si no ocurre de esta manera será imposible ejecutar

el programa.

SEQUENCE

Esta estructura no tiene su homóloga en los diferentes lenguajes

convencionales, ya que en éstos las sentencias se ejecutan en el orden de aparición

pero, como ya sabemos, en LabVIEW una función se ejecuta cuando tiene disponible

todos los datos de entrada. Se produce de esta manera una dependencia de datos que

hace que la función que recibe un dato directa o indirectamente de otra se ejecute

siempre después, creándose un flujo de programa.

104

Pero existen ocasiones en que esta dependencia de datos no existe y es necesario

que un subdiagrama se ejecute antes que otro; es en estos casos cuando usaremos la

estructura Sequence para forzar un determinado flujo de datos. Cada subdiagrama

estará contenido en un frame o marco y estos se ejecutarán en orden de aparición:

Primero el frame 0 o marco 0, después el frame 1 y así, sucesivamente, hasta el

último.

Al contrario del Case, si un frame aporta un dato de salida a una variable los

demás no tendrán por qué hacerlo. Pero tendremos que tener en cuenta que el dato

estará solamente disponible cuando se ejecute el último frame y no cuando se ejecute

el frame que transfiere el dato.

Debido a la similitud de los menús pop-up de la estructuras Case y Sequence

vamos a estudiarlos de forma conjunta indicando en cada caso las posibles diferencias

que puedan existir:

105

• Show Label: Oculta o visualiza la etiqueta de identificación de la estructura y, si

no existe, permite ponerla.

• Description: Permite añadir comentarios.

• Replace: Cambia la estructura Case o Sequence por cualquier otra función de la

paleta Structs & Constants.

• Remove Case Structure o Sequence: Borra completamente la estructura Case o

Sequence y todos los subdiagramas menos el que se esté visualizando en el momento

de la ejecución de este comando.

• Add Sequence Local (añadir secuencia local): Esta opción está sólo disponible en

el menú de la estructura Sequence y se utiliza para pasar datos de un frame a otro.

Una pequeña flecha con la punta hacia el exterior de la estructura indica el

frame de origen de la secuencia local, mientras que una flecha apuntando hacia el

interior indica que la secuencia local contiene un dato de salida. Todos los frames

posteriores al que contiene la secuencia local que origina el dato podrán disponer de

él, no siendo así para los frames anteriores en los cuales aparecerá un cuadrado vacío

que indicará que los datos no están disponibles.

106

• Show Case o Show Frame: Nos permite ir directamente al subdiagrama que

queremos visualizar sin tener que pasar por todos los case o frame intermedios que

pudiera haber. Al pulsar esta opción, un menú conteniendo todos los identificadores

se desplegará y sólo tendremos que señalar con el cursor del ratón el que deseamos

ver. Si sólo hubiese dos subdiagramas nos aparecerá directamente el nombre del

único identificador que podemos visualizar, como es el caso del case con selector

booleano.

• Add Case After o Add Frame After: Este comando inserta un subdiagrama vacío

inmediatamente después del que se está visualizando.

• Add Case Before o Add Frame Before: Inserta un subdiagrama vacío justo un

nivel por encima de¡ que se está visualizando.

• Duplicate Case o Duplicate Frame: Inserta una copia del subdiagrama visible

inmediatamente después de él.

• Make This Case o Make This Frame: Mueve un subdiagrama a otra posición.

• Remove Case o Remove Frame: Borra el subdiagrama visible. Este comando no

está disponible si solamente existe un case o un frame.

Se puede ver en el caso de las estructuras Sequence y Case numérico. En el

primer caso, si sólo hay una secuencia, no aparece ningún identificador de frame;

mientras que si hay más de uno, se nos indica en cuál estamos y cuántos hay. Lo

mismo pasa con la estructura Case, sólo que, en este caso tendremos, como mínimo,

dos posibles estados. Todo ello queda reflejado a continuación:

107

Formula Node o nodo de fórmula es una función de características similares a las

estructuras vistas anteriormente, disponible en la paleta Structs & Constants del

menú Functions, pero que, en lugar de contener un subdiagrama, contiene una o más

fórmulas separadas por un punto y coma. Usaremos Formula Node cuando

queramos ejecutar fórmulas matemáticas que serían complicadas de crear utilizando

las diferentes herramientas matemáticas que LabVIEW incorpora en sus librerías.

Una vez escrita la fórmula en el interior del rectángulo sólo tendremos que añadir los

terminales que harán la función de variables de entrada o de salida; para ello

desplegaremos el menú pop-up de la estructura y ejecutaremos el comando Add

Input (añadir entrada) o Add Output (añadir salida).

Menú pop-up Formula Node

Figura 4.4 Formula Node

Cada variable, además, tendrá otro menú pop-up que permitirá definirla como

de salida si anteriormente era de entrada, o de entrada si en un principio era de salida

(Change to Output o Cambiar a Salida, Change to Input o Cambiar a Entrada).

También podremos eliminarla mediante el comando Remove.

108

No hay límite para el número de variables o de fórmulas y nunca podrá haber

dos entradas o dos salidas con el mismo nombre, aunque una salida sí podrá tener el

mismo nombre que una entrada. Todas las variables de salida deberán estar asignadas

a una fórmula por lo menos una vez.

La tabla muestra algunas de las funciones de Formula Node:

abs(x) Devuelve el valor absoluto de x.

Acos(X) Calcula el coseno inverso de x en radianes.,l

acosh(x) Calcula el coseno hiperbólico inverso en radianes.

Asin(x) Calcula el seno inverso de x en radiahes.

asinh(x) Calcula el seno hiperbólico inverso en radianes.

atan(x,y) Calcula la tangente inversa de y/x en radianeg,.

atanh(x) Calcula la tangente hiperbólico inversa en radianes.

COS(X) Calcula el coseno de x en radianes.

cosh(x) Calcula el coseno hiperbólico de x en radianes.

109

cot(x) Calcula la cotangente de x en radianes.

CSC(X) Calcula la cosecante de x en radianes.

exp(x) Calcula el valor de e elevado a x.

ln(x) Calcula el logaritmo natural de x.

log(x) Calcula el logaritmo de x en base 1 0.

log2(X) Calcula el logaritmo de x en base 2.

max(X,Y) Compara x con y, y devuelve el mayor valor.

min(x,y) Compara x con y, y devuelve el menor valor.

mod(x@y)@ Calcula el cociente de x/y.

rando Genera un número aleatorio entre 0 y 1.

Sic(x) Calcula la secante de x en radianes.

sign(x) Devuelve 1 si x es mayor que 0, 0 si x es igual a 0 y -1 si x es menor

que cero.

110

Sin(x) Calcula el seno de x en radianes.

sinc(x) Calcula el seno de x dividido por'x en radianes.

sinh(X)@ Calcula el seno hiperbólico de x en radianes.

sqrt(x) Calcula la raíz cuadrada de x.

Tan(x) Calcula la tangente de x en radianes.

tanh(x) Calcula la tangente hiperbólico de x en radianes.

4.2.6.2 VARIABLES LOCALES Y GLOBALES

Las variables son imprescindibles en cualquier tipo de problemas, ya que

permiten almacenar la información necesaria para su resolución.

En LabVIEW todos los controles introducidos en el Panel Frontal que generan

un termina¡ en la ventana Diagrama van a ser variables, identificabas por el nombre

asignado en la etiqueta. Pero puede ocurrir que queramos utilizar el valor de cierta

variable en otro subdiagrama o en otro Vi o, simplemente, que queramos guardar un

resultado intermedio. La forma mas sencilla de hacerlo es generando variables

locales y/o globales dependiendo de la aplicación.

VARIABLES LOCALES

111

En las variables locales los datos se almacenan en algunos de los controles o

indicadores existentes en el Panel Frontal del Vi creado; es por eso que estas variables

no sirven para intercambiar datos entre VI's. La principal utilidad de estas variables

radica en el hecho de que una vez creada la variable local no importa que proceda de

un indicador o de un control, ya que se podrá utilizar en un mismo Diagrama tanto de

entrada como de salida.

Las variables locales están disponibles en el menú Structs & Constants de la

paleta Function y disponen de¡ siguiente menú pop-up:

• Change To Read Local o Change To Write Local: Permite escoger entre leer o

escribir en el control.

• Select Item: Visualiza una lista con el nombre de todos los controles existentes en

el Panel Frontal y de ella escogeremos el control al cual queremos que haga referencia

nuestra variable. Es por esto que para poder crear la variable local será

imprescindible que el control tenga asignado un nombre de identificación. Una vez

creada la variable local, si en algún momento se cambia el nombre del control origen,

será necesario cambiar también el nombre de la variable local ya que LabVIEW no

actualiza los cambios.

• Show Label: Muestra una etiqueta con el nombre del Vi al que pertenece la

variable local.

• Description: Permite añadir comentarios.

• Replace: Sustituye la variable local por cualquier otra función.

112

VARIABLES GLOBALES

Las variables globales son un tipo especial de VI, que únicamente dispone de

Panel Frontal, en el cual se define el tipo de dato de la variable y el nombre de

identificación imprescindible para después podernos referir a ella.

Cuando escogemos la función Global del menú Structs & Constants creamos

un nuevo terminal en el Diagrama; este terminal corresponde a un VI que inicialmente

no contiene ninguna variable. Para poderias añadir haremos doble clic en el terminal

y se abrirá el panel frontal. Una vez abierto, las variables se definen igual que

cualquier control o indicador de un VI normal. Podemos crear un Vi para cada

variable global o definirlas todas en el mismo, que es la opción más indicada para

cualquier aplicación. Cuando terminemos de colocar todas las variables grabaremos

el VI y lo cerraremos. Si una vez cerrado queremos añadir nuevas variables, bastará

con volverlo a abrir e introducir los cambios necesarios. Para añadir nuevos

terminales que hagan referencia a las variables globales creadas, no volveremos a

ejecutar la función Global ya que esto crearía un nuevo Vi sino que abriremos el ya

existente mediante el comando VI.. del menú Functíon y seleccionaremos la variable

en concreto a través del comando Select ltem del menú pop-up. Además, este mismo

menú cuenta con otra opción que nos permite utilizar una variable ya creada para leer

datos o para almacenarlos: Se trata del comando Change To Read Global o Change

To Wríte GlobaL

ATTRIBUTE NODE

Los attribute nodes o nodos de atributos se pueden considerar como variables

que dependen únicamente del terminal a partir del cual se han creado y que permiten

113

leer o modificar atributos del panel frontal de un control o indicador como, por

ejemplo, cambiarlo de color, hacerlo invisible, desactivarlo, leer posiciones de

cursores, cambiar escalas, etc. Para crear un attribule node basta con seleccionar la

opción Create Attribute Node del menú pop-up de cualquier control del Panel Frontal

o terminal del Diagrama de Bloques (se puede desplegar primero desplegamos el

menú pop-up del objeto y a continuación tomamos la opción Create. Podremos crear

un attribute node o variable local). Una vez creado aparece en el Diagrama un

nuevo nodo que puede ser tanto de escritura como de lectura. Una pequeña flecha a la

izquierda del nodo indica que éste es de escritura, mientras que una flecha a la

derecha indica que es de lectura. Además los attribute nodes tienen su propio menú

pop-up como se muestra a continuación.

• Change All To Read o Change All To Write: Dependiendo de si el nodo es de

escritura o de lectura aparecerá una opción u otra que nos permitirá cambiar entre

ambas. Debido a que un mismo attribute node puede tener más de un terminal

Figura Menú pop-up de una variable global

usaremos esta opción cuando queramos que todos ellos sean de escritura o de lectura.

• Find Control: Encuentra el control asociado a dicho attribute node en el Panel

Frontal.

• Find Terminal: Encuentra el terminal asociado a dicho attríbute node en el

Diagrama de Bloques.

114

• Find Attribute Nodes: Muestra todos los attribute nodes existentes en el

Diagrama y que están asociados a dicho control.

• Show Label: Oculta o visualiza la etiqueta identificativa del atribuye node.

• Description: Permite añadir comentarios.

• Replace: Sustituye el attribute node por cualquier otra función.

• Change To Read o Change To Write: Cambia a modo de escritura o de lectura

únicamente el terminal seleccionado dejando los demás tal y como estaban.

• Select ltem: Visualiza todos los atributos disponibles para el control asociado al

attribute node y permite cambiar un atributo por otro diferente. Podemos acceder

directamente a esta opción colocándonos encima del atributo que deseamos cambiar y

pulsando el botón izquierdo del ratón.

Por ejemplo, los atributos para un control numérico son:

Y para un string :

Remove Element.- Borra el terminal seleccionado.

Add Element. Añade un nuevo terminal.

115

Algunos controles como los graph tienen un gran número de atributos. Muchos

de estos atributos se agrupan en categorías, como es el caso de Y Scale rifo para un

indicador XY Graph. Una pequeña flecha a la derecha del atributo nos indica que se

trata de una categoría.

Se pueden seleccionar todos los atributos de una categoría de una sola vez

mediante el comando All elements (todos los elementos), aunque también podemos

seleccionarlos individualmente escogiendo el atributo específico.

INDICADORES GRAFICOS

En muchas ocasiones es necesario para una mayor comprensión de los

resultados obtenidos representarlos gráficamente. Para ello LabVIEW dispone de

cinco tipos de gráficos accesibles desde el menú Controls de¡ panel Frontal bajo e

ítem Graph, divididos en dos grupos: Los indícadores charl y los indicadores graph.

Un indicador graph o indicador gráfico es una representación bídimensional

dE una o mas gráficas. El graph recibe los datos como un bloque. Un indicador

116

chartc de trazos también muestra gráficas, pero éste recibe los datos y los muestra

puntc por punto o array por array, reteniendo un cierto número de puntos en pantalla

mediante un buffer disponible para ello.

4.2.6.3 INDICADORES CHART Se encuentran los siguientes.

WAVEFORM CHART

Waveform chart es un tipo especial de indicador numérico que muestra una o

mas gráficas, reteniendo en pantalla un cierto número de datos definido por nosotros

mismos. Los nuevos datos se añaden al lado de los ya existentes, de forma que se

pueden comparar entre ellos.

Los datos se pueden pasar uno a uno al chart o mediante arrays,

Evidentemente es mucho conveniente pasar múltiples puntos a la vez ya que de esta

manera sólo es necesario redibujar la gráfica una vez y no una por cada punto (figura

).

Es posible dibujar varias gráficas en un mismo chart, uniendo los datos de

cada gráfica en un cluster de escalares numéricos de forma que cada escalar que

contiene el cluster se considera como un punto de cada una de las gráficas para una

misma abcisa. Se puede ahorrar tiempo uniendo los clusters en arrays y después

pasando todo el array a la gráfica.

117

Desplegando el menú pop-up se tiene acceso a las siguientes opciones:

• Change to Control o Change to Indicator: Dependiendo de si la waveforrn es

un control o un indicador nos permitirá cambiar entre ellas.

• Find Terminal: Muestra el terminal asociado en el Diagrama de bloques.

• Show Label: Permite poner una etiqueta de identificación a la waveform chart y,

si ya existe, la visualiza.

• Show Legend: Permite poner una etiqueta de identificación a cada una de las

gráficas.

118

• Show Palette: Activa una paleta que permite hacer zooms, desplazar la gráfica

de forma rápida, ajustar automáticamente la escala de los ejes, cambiar el formato y la

precisión de los indicadores numéricos y elegir entre escala lineal o logarítmica.

• Show Digital Display: Es un indicador que muestra el último valor que se ha

cargado en pantalla. Hay un indicador por cada gráfica.

• Show Scrolibar: Permite ver los valores anteriores contenidos en el buffer.

• Show X Scale: Visualiza la escala del eje de abcisas.

• Show Y Scale: Visualiza la escala del eje de ordenadas.

• Reinitialize to Default: Actualiza el último punto obtenido al valor por

defecto.

• Make Current Value Default: Convierte el último punto obtenido en el valor

por defecto.

• Description: Permite añadir comentarios.

• Clear Chart: Borra el contenido del buffer.

• AutoScale X: Ajusta de forma automática el rango de valores de X para una

correcta visualización.

• AutoScale Y: Ajusta de forma automática el rango de valores de Y para una

correcta visualización.

• Update Mode: Permite escoger entre tres modos de visualizar los nuevosstrip

chart, scope chart y sweep chart. El modo strip chart es el modo por defecto y

consiste en que cada nuevo valor se coloca a la derecha del display, mientras que

valores anteriores se desplazan hacia la izquierda. En el modo scope chart cada nuevo

valor se coloca a la derecha del anterior, empezando por el margen izquierdo del

display. Cuando se llega al margen derecho se borra todo el display y se comienza de

nuevo desde la izquierda. El modo scope chart es mucho más rápido que el modo

119

strip chart ya que no es necesario realizar todo el proceso de desplazar la pantalla

hacia la izquierda para cada nuevo punto. El modo sweep chart actúa como el modo

scope chart, alvo que ahora cuando se llega al final de la pantalla, ésta no se borra y se

S comienza de nuevo desde el principio, donde una línea vertical se mueve hacia la

derecha cada vez que se añade un nuevo punto.

• Create Attribute Node: Crea un nodo asociado al terminal del que procede en el

Diagrama de Bloques.

• Replace: Permite sustituir la waveform chart por cualquiera de los controles e

indicadores del Panel Frontal.

• X Scale and Y Scale: Permite escoger el estilo de la escala, tipo de rejilla, punto

inicial, incremento entre punto y punto, formato y precisión de estos puntos.

• Transpose Array: Cuando se representa más de una gráfica en una misma chart

utilizando arrays, waveform chart interpreta por defecto las filas como gráficas

diferentes. Pero si a nosotros nos interesa que sean las columnas las gráficas

diferentes, utilizaremos este comando para convertir las columnas en filas.

• Stack Plots: Normalmente cuando se representan más de una gráfica todas ellas

se sitúan en un mismo display. Pero puede ocurrir que las escalas de las ordenadas

sean muy diferentes entre ellas o que simplemente nos interese representarlas por

separado, cada una en un display. Para conseguir esto activaremos el comando Stack

Plot de forma que cada gráfica aparecerá con su propia escala y su propio display.

Cuando Stack Plots está activado, en su lugar aparece el comando Overlay Plot que es

el que dibuja todas las gráficas en un mismo display.

Chart History Length: Mediante este control podemos fijar el número de

puntos que waveform chart almacenará en el buffer que, por defecto, serán 1024.

120

INTENSITY CHART

Mediante íntensíty chart podemos mostrar datos tridimensionales colocando

bloques de colores sobre planos cartesianos. Para ello crearemos arrays

bidimensionales de números donde los índices de un elemento corresponderán a las

coordenadas X e Y, y el contenido a la coordenada Z, que tendrá asociado un color

para cada posible valor. Previamente será necesario definir la escala de colores que

vamos a utilizar a través de los atribuye nodes mediante el ítem Z Scale lnfo: Color

Array o Color Table, o a través de la rampa de colores visualizada junto a la gráfica.

Figura 4.5 Indicador intensity chart

Evidentemente, la escala de colores que podamos visualizar dependerá de la

resolución de nuestro monitor.

121

Cada vez que se envíe un nuevo conjunto de datos, estos aparecerán

representados a la derecha de los ya existentes. Intensíty chart soporta los tres modos

de visualización de waveform charl y también dispone de un buffer cuyo tamaño es,

por defecto, de 128 puntos. Las opciones disponibles para íntensity chart son

prácticamente las mismas que para waveform chari. únicamente, debido a que existe

una nueva coordenada, aparecen en el menú opciones para ésta, como son:

• Show Ramp: Visualiza u oculta la rampa de colores.

• Show Color Array: Permite fijar los colores de la rampa.

• Show Z Scale: Visualiza u oculta la escala z.

• AutoScale Z: Ajusta de forma automática el rango de valores de z a la escala de

colores.

• Z scale: Permite escoger el estilo de la escala, tipo de rejilla, punto inicial,

incremento entre punto y punto, formato y precisión de estos puntos.

4.2.6.4 INDICADORES GRAPH Se encuentran los siguientes.

WAVEFORM GRAPH

Waveform graph representa una serie de valores Y equiespaciados dada siempre

una distancia delta de X (ÁX) comenzando a partir de un valor inicial Xo. A un

mismo punto X, sólo le puede corresponder un valor de Y,. Cuando se representa una

nueva serie de datos, al contrario de lo que ocurría en los indicadores chart, estos

datos reemplazan a los ya existentes en lugar de añadirse al lado, y pierden los valores

representados con anterioridad.

Existen dos posibilidades a la hora de representar una única gráfica en una

waveform graph. La primera consiste en unir un array de valores numéricos

122

directamente a la graph de forma que ésta interpreta cada valor como un nuevo punto

comenzando en X=0 e incrementando X en 1 para cada punto.

La segunda consiste en crear un cluster en,.el cual, junto con el array de

valores, se indica el valor inicial Xo y el incremento AX.

Figura 4.6 Representación de una sola gráfica

Existe la posibilidad de representar más de un gráfica en una misma waveform

graph. Para ello es necesario unir los datos de las diferentes gráficas en un formato

que LabVIEW sepa interpretar. Utilizar un formato u otro vendrá determinado

principalmente por las características de las gráficas a mostrar. Así, si todas las

gráficas tienen un mismo escalado X y un mismo número de puntos, bastará con crear

un array bidimensional de valores numéricos donde cada fila de datos es una únicá

gráfica. LabVIEW interpretará estos datos como puntos en la gráfica comenzando en

X=0 e incrementándola en 1. Si nos interesa cambiar el punto inicial o el incremento

de x, crearemos un cluster que contendrá el array bidimensional y los valores de xo y

Áx.

123

Figura 4.7 Representación de múltiples gráficas con el mismo número de puntos

Mediante el comando Transpose Array del menú pop-up podemos hacer que

LabVIEW interprete las columnas como gráficas diferentes en lugar de las filas.

Puede ocurrir que el número de elementos de cada gráfica sea diferente. En

ese caso es necesario crear un cluster para cada array de datos y después unir todos los

clusters en un array. Esto es necesario debido a que LabVIEW no permite crear

arrays de arrays. Al igual que anteriormente si nos interesa que el punto inicial sea

diferente de cero o que el incremento sea diferente de 1, crearemos un cluster que

contenga el array de clusters de array y los nuevos valores de Xo y ÁX.

124

Figura 4.5 Representación de múltiples gráficas con diferente números de puntos.

Finalmente, si ni el escalado ni el número de puntos de la gráfica es el mismo

para todas ellas, lo que haremos será crear un cluster por cada gráfica que contendrá

un array de datos, un valor Xo y un valor ÁX. Y con todos los clusters de las

diferentes gráficas crearemos un array. Este último formato es el más completo de

todos porque permite fijar un valor Xo y un valor ÁX diferente para cada gráfica.

Figura 4.8 Representación de múltiples gráficas con diferente número de puntos y

diferente escalado

XY GRAPH

En XY Graph un punto X, puede tener varios valores Y, lo que permite, por

ejemplo, dibujar funciones circulares. XY Greph representa una coordenada (Xi, Y,)

donde los valores de X no tienen porque estar equiespaciados como ocurría en las

waveform graph.

Para representar una única gráfica en una XY Graph existen dos posibilidades.

125

La primera consiste en crear un cluster que contenga un array de datos X y un

array de datos Y. La segunda consiste en crear un array de clusters, donde cada cluster

contiene un valor de X y un valor de Y.

Figura 4.9 Posibles representaciones de una única XY Graph

Al igual que en las waveform graph existe la posibilidad de representar más de

una gráfica en una misma XY Graph (figura ). Pero, en este caso, tan sólo existen dos

formatos posibles derivados de los dos formatos vistos anteriormente para una única

gráfica. El primer formato es un array de gráficas, donde cada gráfica es un cluster de

un array X y un array Y. Y el segundo formato es un array de clusters de gráficas,

donde cada gráfica es, a su vez, otro array de clusters conteniendo un valor X y un

valor Y.

INTENSITY GRAPH

Intensíty graph es exactamente igual que íntensity chart salvo que intensity

graph no retiene valores anteriores, por lo que cuando un nuevo bloque de valores se

carga, éstos sustituyen a los ya existentes.

126

Los comandos disponibles en los menús pop-up de los indicadores graph

tienen las mismas utilidades que los descritos en los indicadores chart, por lo que no

se han mencionado en este apartado. Solamente existe una diferencia importante y es

que los indicadores graph disponen de cursores que nos permiten movernos por la

gráfica.

Figura 4.10 Posibles representaciones de múltiples XY Graph

GRAPH DURSORS

La paleta de cursores está disponible desde la opción Show Cursor Display del menú

pop-up (figura 4.9 ).

127

• Nombre del cursor: Permite introducir una etiqueta de identificación del cursor.

Podemos tener tantos cursores como deseemos.

• Posición X, Posición Y : Indica las coordenadas en las que se encuentra el

cursor; en los indicadores íntensíty graph aparece también la coordenada Z. Podemos

mover el cursor directamente a una posición concreta introduciendo las coordenadas

del punto deseado.

Figura 4.11 Paleta de cursores

• Selector del cursor: Selecciona el cursor a mover. Se pueden seleccionar a vez

tantos cursores como deseemos.

• Control de la apariencia del cursor: Abriendo el menú mediante el bot

izquierdo del ratón podemos modificar algunas características del cursor:

128

• Cursor Style: Selecciona la forma con la que se indica el punto sobre el cual

encuentra el cursor.

Figura 4.12 Submenú Cursor Style.

• Point Style: Selecciona el estilo del punto que marca la posición del cursor.

Figura 4.13 Submenú Point Style

• Color. Selecciona el color del cursor.

• 9 Show Name: Muestra el nombre del cursor sobre la gráfica.

• Bring to Center: Mueve el cursor hasta el centro de la pantalla cambiando las

coordenadas de éste.

• Go to Cursor,. Modifica las escalas X e Y de forma que podamos ver el cursor,

pero sin cambiar las coordenadas de éste.

129

• Control del movimiento del cursor: El candado cerrado indica que el cursor se

moverá siguiendo la gráfica (opciones Lock to plot y Snap to point), mientras que el

candado abierto indica que el cursor se moverá libremente (opción Free). Si hubiese

más de una gráfica el menú nos permitirá escoger sobre cual de ellas queremos que se

mueva el cursor. El comando Allow Drag, cuando está activo, permite desplazar la

gráfica directamente con el puntero del ratón.

Control de la dirección del cursor: Mueve los cursores seleccionados punto por

punto en la dirección indicada.

4.3 CONFIGURACION DEL PUERTO LPT1 A LA TARJETA

DAQ

Para el presente trabajo es necesario configurar las salidas y entradas del

puerto paralelo el cual como se analizo anteriormente tiene 3 registros los cuales serán

configurados de la siguiente manera:

• El registro 378Hex que contiene 8 bits de salida será empleado como líneas de

salida de datos para propósito general las cuales en primera instancia serán líneas para

el control del ADC 0808 en la selección del canal analógico a digitalizar (A y B del

0808) el pulso de inicio de digitalización (Start y Ale del 0808) y finalmente

separación de bits MSB y LSB en grupos de 4 bits cada uno para entrada de datos por

el registro 379Hex. En segunda instancia estos 8 bits de salida serán utilizados para

activación de 4 reles de 24Vdc (Out relé) y 4 salidas d voltaje cada una de 24Vdc

130

(Digital Out).Para lograr este propósito es necesario separar las líneas del bus común

que se esta empleando del registro 378Hex esto se consigue mediante circuitos

74LS244 que son compuertas de tres estados (“1” lógico , “0” lógico y alta

impedancia). Adicionalmente para las salidas a rele y voltaje es necesario memorizar

los datos puesto que en un instante están controlando el ADC y luego provocando

activación de salidas que puede producir conflictos o descoordinación en el control

entonces es necesario utilizar circuitos 74LS373 (Tipo Latch ) para grabar los datos

de salida en especial los de activación de relés y voltaje.

• El registro 379Hex contiene 8 bits de entrada de datos pero solo 5 líneas

disponibles de las cuales serán empleadas los bits 3,4,5 y 7 para entrada de datos de

propósito general que en primera instancia ingresaran los bits del ADC 0808 en

grupos de 4 bits cada uno (LSB y MSB) que son separados por el bit # 3 del registro

378Hex que se explico anteriormente el cual controla un circuito 74LS244 (tres

estados) . En segunda instancia serán empleadas estas líneas para ingresar datos

digitales de 24Vdc exteriores , esto se consigue utilizando otro circuito 74LS244 el

cual es controlado por el bit # 2 del registro 37A Hex . El bit # 6 de este registro

379Hex se lo utiliza con la línea EOC del ADC 0808 (EOC=Fin de conversión) para

indicar al programa (Software LabView) que se a terminado la digitalización del canal

asignado y que se puede proceder a leer los adtos presentes en el registro 379Hex.

• El registro 37A Hex es un registro bidireccional (IN/OUT) que para nuestra

tarjeta se lo utilizara solo como salida (OUT) y se empleara 3 bits de los 4 disponibles

para líneas de control . El bit # 0 cumple la función de separar los datos de salida del

bus común 378Hex como se explico anteriormente en control del ADC 0808 y salidas

a relé / voltaje mediante controlar 2 circuitos 74LS244 como se indica en la figura a

continuación .

131

El bit # 1 sirve para guardar o memorizar los datos de salida a rele y voltaje

del 378Hex , esto se logra mediante producir un pulso en la línea Latch del circuito

74LS373 . El bit # 2 se emplea en la separación de lineas de los datos del ADC (bits

LSB /MSB) y los datos exteriores (Digital In 24Vdc) mediante un circuito 74LS244

(tres estados).

En la figura siguiente a mas de mostrar la configuración del puerto paralelo

LPT1 y su distribución o asignación de pines se indican también las fuentes de

alimentación que se emplean que son de +5Vdc , +12 Vdc , -12Vdc , +24 Vdc y de la

red 110VAC , tambien se muestra la asignación de pines del ADC 0808 ,el reloj

(CLK) que esta formado por el circuito 555 y demás elementos para producir un

frecuencia de 500 KHz , compuertas 74LS14 que son inversores smith trigger que

sirven para generar formas de onda cuadradas con un mínimo de transición de alto a

bajo y viceversa como es en el caso del CLK y para el control de los circuitos

74LS244, también se observan circuitos opto acopladores 3041 que nos sirven para

proteger a la PC de voltajes superiores a los 5Vdc puesto que proveen aislamiento de

7000 voltios , y finalmente se observa el acondicionamiento de las senales analógicas

(SCXI = Signal Conditioning eXtensions for Instrumentation) para el sensor de

temperatura LM335 , utilizando para ello circuitos LM 741 que son amplificadores

operacionales en varias configuraciones como seguidores de tensión , restadores ,

inversores , conversores de corriente a voltaje , este acondicionamiento es necesario

puesto que el sensor de temperatura LM335 tiene una función de trasferencia de

10mV por grado Kelvin es decir a una temperatura de 0° grados Celsius se tendra un

voltaje de 2.73Vdc. y a una temperatura de 100° grados Celsius el voltaje será de

132

3.73Vdc.Esto se logra convirtiendo los grados Celsius a grados kelvin mediante la

ecuación:

°K = 273 + °C

Entonces si °C = 0 grados.

La temperatura kelvin es: °K = 273 grados.

Y el voltaje generado en el sensor LM 335 sera : Vs = 273 ° K*(10mV / °K)

Vs = 2.73 Vcd.

Si °C = 100 grados

La temperatura kelvin será : °K = 273 + 100 , °K = 373 grados.

Y el voltaje generado es Vs = 373°K * (10mV / °K) , Vs = 3.73Vdc.

El procedimiento es similar para cualquier temperatura en grados Celsius para

generar el voltaje en el sensor. NOTA (VER EN ANEXOS).

133

4.3.1 ASIGNACION DE PINES DE ENTRADA Y SALIDA DEL

PUERTO LPT1

A continuación se describe la asignación de cada uno de los bits de los 3

registros del puerto paralelo con la respectiva función que cumple con un estado de “1

“ lógico o con “0” lógico según la descripción que se menciono arriba.

Pines Sentido 378 H

bits

379 H

bits

37A H

bits

Función

1 IN/OUT 0 37A Bit 0 = “0” 37A Bit 0 = “1”

2 OUT 0 A Dir Ch 0808 Out rele 1 /NO/NC

3 OUT 1 B Dir Ch 0808 Out rele 2 /NO/NC

4 OUT 2 Start / Ale 0808 Out rele 3 /NO

5 OUT 3 Msb / Lsb 0808 Out rele 4 /NO

6 OUT 4 ----- Digital out 1 24Vdc

7 OUT 5 ----- Digital out 2 24Vdc

8 OUT 6 ----- Digital out 3 24Vdc

9 OUT 7 ----- Digital out 4 24Vdc

10 IN 6 EOC (fin de conversión) 0808

Función del bit 3 del 378 H para separar lineas Msb/Lsb del

ADC 0808 y bit 2 del 37A H para digital in , sobre el 379H

378 Hex

Bit 3=”0“

378 Hex

Bit 3=”1“

37A Hex

Bit 2=”0“

37A Hex

Bit 2=”1“

11 IN 7 M b7 adc L b3 adc Msb/Lsb D in 3 24 V

12 IN 5 M b6 adc L b2 adc Msb/Lsb D in 2 24V

13 IN 4 M b5 adc L b1 adc Msb/Lsb D in 1 24V

14 IN/OUT 1 Latch 74373 =”0” No Latch 74373= “1”

15 IN 3 M b4 adc L b0 adc Msb/Lsb Din 0 24V

16 IN/OUT 2 Msb/Lsb 0808=”0” Digital In 24 V = “1”

134

17 IN/OUT 3 ------ ------

18-25 GND Referencia Referencia

135

CAPITULO V

IMPLEMENTACION DE LA COMUNICACION

TARJETA DAQ CON EL COMPUTADOR

Para ello analizaremos.

5.1 DISENO DEL SOFTWARE DE APLICACIÓN CON LA

TARJETA DAQ

Luego de haber asignado los pines del puerto LPT 1 con la función respectiva

que deben desempeñar cada uno y el momento (secuencia) y tiempo (duración) en que

cada línea debe activarse o desactivarse se procede al diseño del programa bajo el

software LabView de Natinal Instruments que es una herramienta diseñada como se

ha explicado en capítulos anteriores para la instrumentación con el cual podemos

acondicionar y controlar señales sean analógicas o digitales , realizar cálculos ,

controlar periféricos externos como tarjetas I/O , enlaces DDE sea a través de tarjetas

Plug and Play , el puerto LPT1 , interfaces seriales como RS-232 , RS-485 todas estas

operando en tiempo real , resumiendo en una sola palabra se puede construir

instrumentos Virtuales con LabView es decir podemos hacer que la PC funciones o

efectué las mismas operaciones que un instrumento real solo que no es tangible ,

pudiendo realizar como por ejemplo osciloscopios , voltímetros , controles de

temperatura y cualquier variable (nivel, caudal, presión, velocidad, frecuencia, etc) y

mas complejo aún supervisar y controlar plantas (Procesos productivos de una

fabrica) enteras como control de motores , válvulas , análisis estadístico llamándose

esto último los sistemas SCADA (supervisión control y adquisición de datos).

136

A continuación se procede a describir la programación realizada para lo cual

es necesario recordar ciertas características que posee LabView y los datos que

maneja que ya fueron descritos en capítulos anteriores pero que son necesarios tener

en cuenta para comprender mejor el programa creado .

Entre las características tenemos:

• Programación totalmente gráfica (interconexión mediante iconos)

• Secuencial es decir ejecuta las operaciones condicionadas en orden jerarquico

y retorna nuevamente al inicio o donde sea requerido.

• Trabaja en tiempo real con variables dinámicas exteriores.

• Puede intercambiar datos con diferentes programas como Excel, Visual Basic

y otros a través de DDE (data dinamic exchange – intercambio dinamico de

datos).

Entre los datos que maneja tenemos:

• Boleanos (TRUE or FALSE) que son de color verde en LabView.

• Enteros (Integer) con signo (Signed) y sin signo (Unsigned) que son de color

azul que pueden ser representados en 8,16 o 32 bits

(I8,I16,I32,U8,U16,U32).Además pueden expresados en formato decimal (0-

9) hexadecimal (0-F) en octal (0-7) y binario( 0-1).

• De precisión extendida y doble precisión (EXT ,DBL) que son de color

tomate.

• Cadena de caracters tipo Ascii que son de color rosado.

• De tipo array (arreglo) colección de datos de un mismo tipo para manipulación

múltiple que son de color café.

137

• Controles e indicadores , siendo un control aquel elemento que en el momento

de correr el programa (RUN) puede el usuario manipular el valor y ser

cambiado cuantas veces se requiera este se diferencia del indicador porque

posee un contorno exterior mas visible o acentuado , mientras que el indicador

su contorno no es acentuado es mas delgado y este sirve solo para

visualización en modo RUN el usuario no puede manipular su valor,

solamente un control puede variar a un indicador.

Luego de esta explicación procedemos a describir la función de cada Sub VI

(progrmas locales o subrutinas del programa general).

5.1.1 DESCRIPCIÓN DEL PROGRAMA QUE CONTROLA AL

ADC 0808.

Puesto que el ADC 0808 requiere de una secuencia lógica para su

funcionamiento y la activación de ciertas líneas en un instante y en otro instante

provoca la salida de datos ya digitalizados del canal seleccionado que igual requieren

manipulación se creo el programa siguiente.

138

Figura 5.1

La figura 5.1 anterior es la ventana de edición en LabView del Sub VI 378ADC

IN se observan los 4 canales del ADC 0808 que pueden ser seleccionados (IN 0, IN 1,

IN 2 , IN 3 ) estos son controloes digitales (true or false), en este instante esta

activado el canal IN 0 y el ADC 0808 indica una digitalización de 5.02Vdc que estan

en la tarjeta exterior, la indicación de 5.02 se observa en el indicador VOLTAJE A

que es un indicador de precisión extendida (EXT) también están los indicadores para

los otros canales (voltaje B,C,D) ,como se logro esto en las siguientes figuras se

detalla .Cabe mencionar que se puede elegir entre 1 a 4 canales simultaneos y pueden

ser cualesquiera no importa el orden.

139

Figura 5.2

La figura 5.2 es la ventana de programación en LabView del SubVI anterior

(378ADC IN) se observa los 4 canales de indicación en color tomate Voltaje A, B, C,

D que son variables locales (extenciones de la variable principal) de escritura (Local

Varible Write) que en este caso estan funcionando como controles (borde externo mas

acentuado) a diferencia del indicador “Temp.” (borde externo no acentuado) mas

adelante se indican las variables principales de voltaje A, B, C, D y se observara que

son indicadores .Temp es el resultado de multiplicar Voltaje A por 20 como se

observa.Voltaje es un array (color café) que en la pantalla de edición es una sub

pantalla (waveform Chart) que grafica las 4 variables de precisión extendida voltaje

A, B, C ,D . Tambien se observa una sentencia de secuencia que posee 5 pasos a

ejecutar (0[0---4]) ,se encuentra ejecutando el paso # [ 0 ] dentro del cual se observa

el Sub VI Out Port el cual es llamado para ejecutar la escritura en el puerto LPT 1 en

este caso el registro (puerto) que se emplea es el 37A HEX y el dato que se esta

140

escribiendo el el bit 0 de este puerto es cero (“0” lógico / false) para ello es necesario

emplear una conversión de boleano (0 /0/0/--) a tipo array boleano en primer lugar y

luego de array boleano ( 00000---) a entero de sin signo de 16 bits ( U 16) .

Figura 5.3

En la figura 5.3 se observa la secuencia # 1 ( 1[0..4] ) en la cual se observan

otras sentencias como por ejemplo la sentencia CASE ( True / False) que es

condicionada por el control boleano IN 0 y cuando es verdadero (True) ejecuta otra

sentencia de secuencia de 0 a 2 ( 0[0..2] ) , se observa en la secuencia 0[0..2] la

escritura del bit 3 del puerto 37A Hex es decir el dato que se escribe en este instante

es 100 en boleano y en decimal expresado en entero de 16 bits es cuatro 4 y en

hexadecimal es 04.

141

Figura 5.4

La figura 5.4 muestra la sentencia de secuencia 1[0..2] en la cual se observa que

se ejecutan 2 Sub Vis el M-Start y el MSB-LSB , el sub VI M-Start requiere una entra

en este caso el canal 0 y arroja 2 salidas posteriormente serán descritos que función

desempeña este sub VI a igual que MSB-LSB cabe mencionar que estos 2 sub VI

fueron diseñados totalmente para nuestra aplicación (propiedad intelectual) , la salida

del sub VI MSB-LSB es un dato decimal de 16 bits que es multiplicado por una

constante de precisión extendida (color tomate) cuyo valor es 0.0197 y finalmente

escribe el valor en el indicador (variable tomate con contorno exterior no asentada)

VOLTAJE A , en esta secuencia se observan tanto la variable principal Voltaje A

como su variable local en modo de escritura (local variable write) que se explico en

la figura 5.2. La razón de multiplicar el valor de salida del sub VI MSB-LSB por la

constante 0.0197 es del calculo de convertir 0 voltios a 00 en Hex (decimal 0) hasta 5

voltios en FF en Hex ( decimal 255) entonces si dividimos 5 voltios para 255 que sera

142

el valor máximo que arroja el ADC 0808 (1111 1111) al digitalizar los 5 voltios que

es hex es FF y decimal es 255 se tiene un valor de 0.0197 es decir cada 19.7 mV

(miliVoltios) la salida del ADC varia en un BIT , por ejemplo si deseamos digitalizar

la temperatura ambiente con el sensor LM 335 el cual como se indico tiene una

función de 10mV / grado Kelvin y arroja un voltaje de 2.93 Vcd a 20 grados Celsius

la digitalización que arroja el ADC 0808 sera de 1001 0100 en boloeano en

hexadecimal es 94 Hex y en decimal llega a ser 148 todo esto arroja el ADC según su

resolución ,configuración y asignación de valores que se describieron en capítulos

anteriores , entonces luego de ejecutarse los sub VI y después de todas estas

transformaciones que estos efectúan el valor que se tiene de digitalización en decimal

fue de 148 para trasformar a la escala de voltaje (0 a 5Vdc) es necesario multiplicar

este valor por la constante 0.0197 y se tiene que es 2.9156 que aproximado es 2.92

VDC es decir hay una variación de 10 mv entre el valor real con el digitalizado en

LabView (diferencia casi insignificante) ,el mismo proceso es par cualquier valor de

temperatura a digitalizarse.

La figura 5.5 muestra la sentencia CASE en el estado de False igual es

condicionada por el control boleano IN 0 y en este caso tiene que escribir en el

indicador voltaje A un valor de 0 lo cual indica que no se esta empleando este canal

del ADC 0808 y no se ejecutaran ninguna sentencia ni cálculos como cuando el canal

es activo. Nótese que voltaje A es otra variable local ahora en modo lectura (local

variable read) que a diferencia de la variable local en modo write (escritura) tiene el

contorno externo no acentuado, pueden observarse las dos variables locales en este

instante .

143

Figura 5.5

Luego de esta descripción del canal In 0 , todos los demás canales In 1 ,In 2 ,In3

siguen los mismos pasos descritos en las otras secuencias es decir en la 2[0...4] se

ejecuta todo similar a lo descrito pero con las variables de controles e indicadores que

corresponden al canal In 1 (voltaje B ) , en la secuencia 3[0..4] se ejecuta todo con

IN2 y Voltaje C , en 4[0..4] todo lo que es con In 3 y voltaje D.

A continuación se describen las funciones que efectúan los sub VI M-Start y el

MSB-LSB que se indicaron anteriormente.

La figura 5.6 muestra el sub VI M START su pantalla de edición donde se

observa los bits de entrada del registro 379 Hex que se utilizan en este caso son el b7,

b5, b4, b3 el bit b6 es utilizado por la línea EOC del ADC 0808 y corresponde a IRQ

7 .

144

Figura 5.6

Además se observa el control Mux ADC y los indicadores de MSB LSB en

estos últimos tenemos los datos ya digitalizados (15 MSB / 15 LSB) en hexadecimal

en la pantalla de programación tenemos la secuencia 0[0..3] la cual activa 2 sub Vis

como son el MUX ADC (diseñado para la aplicación) y el OUT PORT para escribir

en el registro 378 Hex en los 4 bits ,los 2 primeros son para direccionar el canal del

ADC a ser digitalizado utilizando el su VI MUX ADC, el tercero produce un pulso de

START (“1” lógico) en la secuencia 1[0..3] y luego retorna a “0” en la secuencia

2[0..3] en donde se tiene un tiempo de conversión de 2 mili-Segundos en la secuencia

3[0..3] se tiene otras 3 sub secuencias como indica la figura 5.7 , se puede observar

que se ha activado el bit 3 de LSB con lo cual podemos leer los 4 bit menos

significativos que ha arrojado el ADC 0808 de su digitalización .

145

Figura 5.7

Luego en la siguiente secuencia 1[0..3] se observa la lectura del registro 379

Hex y algunas herramientas de programación que nos sirven para separar los bits que

necesitamos como son el b7, b5, b4, b3 y finalmente se tiene el valor en hexadecimal

en el indicador LSB como se muestra en la figura 5.8. Para leer los 4 siguientes bits

mas significativos se cambia a false el bit 4 del registro 378 Hex y el proceso es

similar al ya descrito.

146

Figura 5.8

5.2 CONEXIÓN DE LA TARJETA DAQ CON EL COMPUTADOR

Para realizar la conexión de la tarjeta que contiene el ADC 0808 y demás

elementos como reles de salida , voltajes de salida / entrada, y señales analógicas ,fue

necesario construir un cable de trasmisión paralela con conectores DB 25 en un

extremo tipo macho y en el otro extremo un tipo hembra similar al cable de impresora

,como se menciona con anterioridad es necesario la ayuda de circuitos auxiliares para

direccionamiento de líneas como son circuitos 74LS244 que son compuertas 3 state es

decir funcionan normalmente como las compuertas normales pueden producir estados

de “1” lógico , “0” lógico y adicionalmente poseen otra línea de control que provoca

un estado de alta impedancia es decir bloquea las salidas con una alta resistencia en el

orden de los Mega ohms con esto podemos unir salidas de varios 74LS244 y

construir un bus común como se tiene en esta aplicación en la salida de los datos MSB

/ LSB que arroja el ADC 0808 y al diseccionar las salidas del registro 378 Hex para

147

en un instante controlar al ADC y luego provocar las salidas de rele y voltaje. Toda la

circuiteria interna auxiliar funciona con 5 voltios , otros circuitos funcionan con 12

VDC y voltaje negativo de 12 voltios ,rels y fuentes de salida funcionan con 24 Vdc y

las entradas digitales son voltaje de 0 / 24 VDC. Tanto salidas como entradas están

protegidas contra voltajes superiores a los 5 Vdc que son los niveles con los que

trabaja el puerto paralelo para ello se emplea circuitos opto-acopladores 30 41 los

cuales son transistores que son activados por un haz de luz que emite un diodo LED el

aislamiento que producen son de 7000 voltios entonces la parte de potencia como

reles de estado sólido (SSRs solid state relay) y contactores que manejan señales altas

como 110 , 220 , 440Vac están completamente aislados y no existe el peligro de que

se introduzcan en la PC a través del puerto paralelo. El ADC 0808 sus entradas a

digitalizarse son de 5 Vdc es decir voltaje continuo y están protegidos por diodos

Zener de 5 VDC con lo cual se asegura que las señales no destruyan al ADC por

superar los 5 voltios . El oscilador que produce la señal de reloj ( CLK) para el ADC

0808 es un circuito LM555 en configuración de Astable ( Autodisparable por

retroalimentación) esto se consigue mediante resistencias de 120 ohmios y un

capacitor de 0.01uF (microfaradios 10 E-6) logrando con esto obtener una frecuencia

de 600 KHz que es ideal para la digitalización esto se consigue mediante la ecuación

que rige el funcionamiento del circuito astable que es:

T = Th + Tl (Periodo T = tiempo en alto Th + tiempo en bajo Tl)

Th = R * C * Ln 2 ( R resistencia , C capacitor , Ln logaritmo natural )

Th = 120 * (0.01 10 E –6) * Ln 2

Th = 0.831776 10 E-6 segundos = 0.831776 uS (micro-segundos)

T

Th Tl

148

CAPITULO VI

ANALISIS DE PRUEBAS Y RESULTADOS

Se lo realiza en.

6.1 PRUEBAS DE TRANSMISIÓN Y RECEPCIÓN DE DATOS EN

EL LPT1.

En el presente desarrollo del proyecto fue necesario realizar pruebas y

comprobaciones como envío de datos y recepción de datos, que se detallan a

continuación.

6.2 CODIFICACIÓN DE DATOS ADQUIRIDOS.

Para realizar la transmisión y recepción de los datos, la solución mas

sencilla es utilizar un protocolo semejando al de la impresora. El transmisor coloca la

información en la vía de datos y pulsa la línea de STROBE, para alertar al receptor;

este al percibir un pulso de STROBE, lee los datos y pulsa la línea de

ACKNOWLEDGE, indicando que la vía de datos está libre. Esto significa que cada

computadora debe detectar dos pulsos: ACK_IN y STRB_IN. La única forma de

detectar pulsos con seguridad es utilizando interrupción habilitada por flanco. En la

PC hay una interrupción destinada al puerto paralelo (IRQ7) y que ya esta destinada a

la línea de STROBE.

Para el envió de los datos, se necesita de dos líneas de “varias líneas”:

STROBE y ACKNOWLEDGE. Usando STROBE, el transmisor avisa al receptor de

que hay un nuevo dato en la vía de datos. Usando ACNOWLEDGE, el receptor avisa

al transmisor de que ya leyó el dato que está en la vía de datos.

149

Con estos dos parámetros se inicia el proyecto del cable paralelo. El uso de

una via de datos de 8 bits para cada computadora, lleva a un total de 20 líneas:

• 8 líneas para los datos a transmitir,

• 8 líneas de datos a recibir,

• 2 líneas para transmitir y recibir STROBE,

• 2 líneas para transmitir y recibir ACKNOWLEDGE.

El puerto paralelo ofrece 17 líneas:

• 8 líneas de salida,

• 5 líneas de entrada,

• 4 líneas vi direccionales (colector abierto).

El programa para la transmisión de datos fue desarrollado en el entorno de

programación Lab VIEW de National Instruments el cual se ve a continuación.

150

6.3 CONCLUSIONES Y RECOMENDACIONES Tenemos.

A. CONCLUSIONES.

1.- Se ha logrado cumplir con los objetivos de esta tesis: El estudio de la tarjeta de

adquisición de datos con sensores de temperatura y humo, así como sus aplicaciones

en el control de flujo y monitoreo de señales para la activación de los instrumentos

que prevengan un incendio.

2.- Con el uso de un computador, más la utilización de las tarjetas de adquisición de

datos se puede crear sofisticados sistemas de adquisición y control, para

implementarlos en el campo de la instrumentación o para la experimentación y

estudio en laboratorios donde se necesita medir las señales análogas o digitales,

también para realizar análisis estadísticos o monitoriar los comportamientos y la

respuesta de los procesos.

3.- Particularmente se nota que el software labVIEW es mucho mas flexible para la

adquisición, monitoreo y control de datos porque se ha probado su gran capacidad de

adaptabilidad con cualesquier hardware.

4.-Ante los diferentes tipos de indicadores se plantea la necesidad de escoger entre

uno u otro. Decir cuándo se debe utilizar cada uno es muy difícil ya que depende de

cada aplicación y, además, puesto que en programación no hay nada imposible,

podemos llegar a hacer que una gráfica simule el comportamiento de otra; sólo hace

falta un poco de tiempo y paciencia

151

5.-Esta aplicación es una herramienta bastante útil pues permite monitorear un voltaje

análogo proveniente de cualquier dispositivo electrónico desde el computador, lo que

abre la posibilidad de guardar y analizar los datos e incluso tomar acciones de control

desde el software.

Implementar el software en lenguaje G da la posibilidad al usuario de

modificar el funcionamiento del mismo de una manera sencilla, lo que hace a la

aplicación mas flexible y eficiente.

6.- Cuando se realice la programación (software) se debe tomar en cuenta la respuesta

de los dispositivos, para no tomar datos erróneos.

7.- Cuando se realice la calibración de los diferentes lazos de control se debe tomar en

cuenta el tiempo de respuesta de los diferentes elementos que forman dicho lazo y el

tipo de respuesta de estos dispositivos.

8.- Una conclusión muy clara al finalizar el proyecto consiste en reconocer la gran

utilidad que presenta el uso del computador en la actualidad, más en aquellos procesos

en que el control debe tender a lo exacto y en los que el instrumento a supervisar esta

muy alejado.

B. RECOMENDACIONES.

1.- Se recomienda a los usuarios que antes de efectuar el arranque del programa se

verifique todas conexiones entre la PC y los módulos de procesos así como la

152

configuración de los mismos lo cual involucra analizar su dirección, prioridad, y

demás parámetros que fueron mencionados en el capítulo II de este documento.

2.- En lo posible no debe alterarse el programa principal o uno de sus subprogramas

(Sub Vis) que aparecen en la pantalla de programación de LabVIEW, porque una sola

alteración o modificación hará que los controladores no respondan a los mensajes

enviados o peor aún todo el sistema se desconfigurará totalmente.

3.- Cuando se utilicen las señales digitales de las tarjetas de adquisición de datos se

recomienda utilizar un opto-aislador como medio para separar los niveles de

referencia del sistema de adquisición de datos.

4.- En lo referente a la realización de proyectos como este consideramos que es

necesario seguir ejecutándolos porque solo así se fomenta la investigación en los

estudiantes y lo que es más se logra crear un criterio formado de los mismos, lo cual

será beneficioso en su vida profesional.

5.- Este tipo de trabajo de investigación, se debería implementar en laboratorios o

sitios donde el peligro de un incendio sea mas evidente y en un lugar no al alcance de

personas sin autorización.

6.- Se recomienda utilizar un procesador de 700 Mhz o mas de velocidad para evitar

lasos de perdida entre la señal y la comunicación exterior así como un mínimo de 32

Mb en RAM.

153

BIBLOGRAFIA.

• Tom Sheldon, Enciclopedia de Redes -LAN TIMES 1991.

• THE FOXBORO COMPANY : “Instruction Book 761CNA and 761CSA Single

Station Micro Controllers”, Edición 1995.

• “AC24AT/AC422AT USER´S GUIDE”, [http://www.opto22.com] Edición

Diciembre de 1998.

• NATIONAL INSTRUMENTS: “Measurement and Automation Catalogue”,

Edición 1999.

• Tutorial [http://members.es.tripod.de/Rendfield/tut1.html] Edición 1995.

• SOISSOS , “Instrumentación Industrial”, Editorial Limusa México, Edición 1994.

• “USER´S GUIDE Controllers 761C Single Station” www.foxboro.com. 15 de

septiembre 1999.

• ZELENOVSKY , RICARDO ,“IBM PC Para Ingenieros”E.S.P.E. Quito-

Ecuador-1995.

• INSTRUPEDIA 99 NATIONAL INSTRUMENTS ,[http:// www natinst.com]. 15

de enero 1999

• CREUS, Antonio “Instrumentación Industrial” Marcombo S.A. Barcelona

España -1995.

• CURTIS, Johnson, “Process Control Instrumentation Technology”, Prentice Hall,

Englewood, -1974

• National Instruments. Measurement and Automation Catalog. 2000

• National data Adquisition Databook.Nationmal semiconductor. 1995

• Gary W Johnson 1994. Labview Graphical programming.

154

• Ronald J. Tocci . Sistemas digitales

• FLOYD, 97 Thomas L. Floyd. Fundamentos de Sistemas Digitales. Prentice Hall.

1997.

• HAYES, 96 J. P. Hayes. Introducción al diseño lógico digital. Addison-Wesley

iberoamericana.

• LabVIEW for Windows, User Manual; National Instruments; 1994.

• LabVIEW for Windows, Function Reference Manual, Ntional Instruments: 1994.

• LabVIEW Data Adquisition Course Manual , National Instruments; 1996.

• LEWIN, 85 Douglas Lewin. Design of Logic Systems. Van Nostrand Reinhold.

1985.

ANEXOS.

- Anteproyecto.

- Circuito impreso para el conector de la tarjeta 1 Analogico y 2 Digital.

- Circuitos 1 y 2 de la asignación de pines I/O del puerto LPT1

- Front Panel y Block Diagram de la programación CASE en lenguaje G para el

monitoreo y control del sistema automatizado con sensores en sistemas contra

incendios.