Usb y labVIEW , entre otros

**** funtions
library name or path : en este campo se indicara la ruta de la libreria .activando la casilla inferior la ruta podra indicarse desde el diagrama de bloques

funtion name : aqui se elegira una de las varias funciones que puede tener la libreria

thread : indica si puede haber multiples llamadas a lamisma libreria ( reentrant) o no ( run in ui thread ) , en este ultimo caso las llamdas se realizaran en el sistema de ejecusion del interfaz para asegurarse que solamente haya un hllo realizando la llamada

***** parameters
en esta pestaña hay varios campos en los que se indicaran los parametros de la funcion . habra un parametro de retorno ( return type ) y varios parametros a los que se le asignara un nombre y un tipo .

***** callbacks
permite configurar llamadas a otras funciones en cierto instanmtes claves de la ejecusion del nodo . reserve especifica la funcion a llamar cuando reserva un espacio de tiempo y memoria para cada llamada en un vi reentrante . unreserve es lo contrario a lo anterior . abort : permite configurar una funcion cuando se intenta abortar la ejecucion del vi .

*******funtion prototype
va mostrando una reconstruccion de la cabecera de la funcion al estilo "C" de acuerdo con lo que el programador indique en los campos anteriores, puede servirpara comparar el resulatdo con la cabecera generica en c para estas funciones
- type data type pass indican el tipo de datos del para,etro seleccionado , labview no puede reconocer todos los tipos de datos de los diferentes lenguajes de programacion existentes pero hay equivalencias entre la mayoria de tipos de otros lenguajes y los de labview

equivalencias :


Código:
             C                 labview                                            C                       labview 
         bool          .......       I32                                   short          ........  i16
         boolean     .......       U8                                      dword, hwnd    ........  U32 
         byte          .......       U8                                    double         ........  DBL
         chart, cstr  .......       string                                 unsigned int  ........   U32
         word         ........      U16                                    unsigned short  ......   U16
         float          ........      sgl                                  int, long     .........  I32
 
Muy buen post!, siguo de cerca tus comenarios y experiencias debido a que estoy empezando a trabajar con la comuncacion usb y labview, agradezco toda tu información y proximamente tenga un resultado seguro lo subo.. estamos en contacto

ycnan
 
retomando alguna inquietud que surgio por ahi y devolviendonos atras en el foro , vamos a realizar ahora el envio de datos del pic al pc con el modo cdc no tiene muchas ciencia pero igual lo realizaremos, lo primero seria entonces el programa del microcontrolador que es el siguiente
Código:
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include ".\libreria\usb_cdc.h" // descriptores del dispositivo clase cdc 

void main() {
   int8 dato;
   set_tris_b(0x01);    // puerto b0  como entrada 
   usb_cdc_init(); // Configuramos al puerto virtual.
   usb_init(); // Inicializamos el stack USB.
   while(!usb_cdc_connected()) {}    // espera a detectar una transmisión de la PC (Set_Line_Coding).
   do{
       usb_task();
         if (usb_enumerated()){  // Espera a que el dispositivo sea enumerado por el host.
            if(usb_cdc_kbhit()){ // En espera de nuevos caracteres en el buffer de recepción.
                 if(usb_cdc_getc()=='1'){ //¿ si lo que llegó fué el caracter '1'?
                      dato=input_d();  //  entonces lee lo que haya en el puerto b0 
                       printf(usb_cdc_putc,"%c",dato); envio el dato leido 
                 }
               }
           }
       }while (TRUE); // bucle infinito.
}

y despues a continuacion el codigo en labview necesario para la recepcion de datos
 
el programa es basico lo que hace primero es enviar un caracter en este caso es "1" el micro detecta si le llego ese indicador y ahi si comienza el envio de datos el programa espera hasta que dicho puerto contenga los datos en el host y lee un dato este esta en string asi que despues se transformadorrma el booleano para ser representado por un led
 

Adjuntos

  • recibir_datos_cdc_662.rar
    121.2 KB · Visitas: 789
muy buen tema lo estoy siguiendo desde ahora...
una consulta este vi podria captar conversiones del AD a 200 Hz de frecuencia de muestreo?, la idea es graficar un sensor en tiempo real
 
este vi en especifico no ya que solo esta hecho para leer un bit , pero se podria redisenar ( de hecho yo ya lo realice pero no con cdc ) uno perfectamente para que lea el conversor del micro , logicamente asiendo algun muestreo de las señal ........ pues bien yo lo hice con señal de 60 Hz , y con un pic 18f4550 ........ ahora si el muestreo alcanza a llegar a 200 hz con este micro no sabria decirte creo , que en esto se quedan un poco colgados estas series de micros
no he probado hasta que frecuencia se podria hacer el muestreo " ...
la solucion seria utilizar otro tipo de dispositivos por si no se puede. saludos
 
yo me encuentro trabajando en esto justamente en aquisicion de una señal de un sensor a 200Hz via USB y mostrar los datos en un grafico con Labview.
Tratare de publicar aca mis resultados,

Jokelnice: con lo referente al muestreo del micro este tiene un tiempo de conversion bastante rapido (del orden de los microsegundos), asi que se podria muestrar mucho mas rapido que eso (200Hz).
En lo que estoy entrampado es en la adquisicion por labview, que muestre las lecturas R.T.

Jonathan: si pudieras darme algunas claves de como hacer esto te agradeceria...
 
aca va un ejemplo de lo que he podido hacer .....................en este ejemplo no hice muestreo simplemente leia el conversor ( 10 bits ) y lo enviaba por usb_ bulk , la idea es mejorarlo para realizar muestreo de señal , pero ya es algo ,un avance significativo
"para mi proyecto tambien tengo que utilizar dos sensores y despues obtener una grafica caracteristica que se obtiene al graficar estas dos señales es decir sensor1 vs sensor2
........ saludos

YouTube - conversor adc y usb
 
Que tal jokelnice...he entradao en este foro ya que actualmente me encuentro desarrollando un proyecto con USB y la aplicación debo hacerla con Labview, supongo ue esta información que publicas me sera de gran ayuda, de antemano gracias.

También he seguido el foro de que propones arriba(Control de dispositivos a través del módulo USB del PIC18F2550) y estoy seguro que todo este conocimiento me servira bastante para poder relizar el proyecto.

Son bastante buenos estos foros, pues es aqui en donde he encontrado más información útil y no tan repetitiva.

No llevo practicamente nada del proyecto, pero en cuanto tenga algo de avance informaciónrmare como va todo.
 
jokelnice:
esto es lo que necesito, si fuera posible que adjuntes el codigo del vi aca en el foro para que lo pidamos ver te lo agradeceria. Yo se que trabajas con Labview 8.6, podrias exportarlo a la version 8.5 por favor que es la que trabajo...
espero tus comentarios
 
si claro colegas si yo trabajo con 8.6 , pero ya instale la 8.2 que es la otra que tengo para que la mayoria de gente pues los pueda ver , tan pronto lo diseñe en 8.2 muestro resultados basicos ............... una cosa .....los vi que se muestran en este foro algunos estan bloqueados es decir que se ejecutan pero no deja ver su codigo , para verlo solo participen y comenten " esto es solo para que entre todos mejoremos muchas cosas " dejen sus datos y se brindaran las claves ......... saludos
 
Hola! a todos muy buen aporte
me gustaria saber como utiliza la libreria call library function para poder utilizar las funcion
de lectura y escritura
como edito Fuction prototype

gracias por sus aporte
 
adrianjpc dijo:
Hola! a todos muy buen aporte
me gustaria saber como utiliza la libreria call library function para poder utilizar las funcion
de lectura y escritura
como edito Fuction prototype

gracias por sus aporte

como estamos adrianjpc , si claro podria mostrar lo del call library, pero cuando hablamos de funciones de escritura y lectura , estamos haciendo refererencia a las del usb , o a otras funciones saludos y espero poderte ayudar
 
Me gustaria saber como adquiriste datos analogicos desde labview
en el comentario anterior diste un ejemplo me gustaria saber como
le hiciste.

tengo problema de la lectura de un sensor devido a k la lectura es muy lenta
se tarda como uns 3seg para leer no se a k se deva
me gustaria que me ayudaras.
 
adrianjpc dijo:
Me gustaria saber como adquiriste datos analogicos desde labview
en el comentario anterior diste un ejemplo me gustaria saber como
le hiciste.

tengo problema de la lectura de un sensor devido a k la lectura es muy lenta
se tarda como uns 3seg para leer no se a k se deva
me gustaria que me ayudaras.

los datos analogicos se adquieren a tavez del PIC el labview lee los datos del microcontrolador a travez del puerto que elijas manejar, yo creo que el retardo de los 3 segundos se deba a la programacion del micro, comparter el codigo para ver y poder ayudarte
 
Atrás
Arriba