Interfaz de control para PICs USB-BULK (LabVIEW - C#)

gracias..!! ya intale la version 7.6 de proteus y ahora si se instalo el driver.. sabes yo tb probe con las versiones que mencionas y sigo sin encontrar solucion alguna... lo que quisiera es hacer funcionar los drivers en windows 7x64 y con proteus 8... en eso estoy x ahora.. si encuentro la solucion de seguro la posteo! pero si alguien sabe que nos informe..
 
Disculpen mi ignorancia soy nuevo en esto de los microcontroladores pero quisiera saber para que sirve en la practica, cuales son sus alcances, que puedo realizar con el mismo o es simplemente un juguete?. Se me rompió la placa electrónica del lavarropas, la heladera o el split, no la consigo, lo puedo reemplazar con esto?. Puedo desconectar la computadora?.
Saludos.
 
Hola:

Puedes hacer de todo, incluso el control de una lavadora, o como lo llaman ustedes, lavaropas. Si quieres algo serio y fiable, paga un PLC.

Saludo.
 
Dejo una variante del SubVI de LabVIEW para la comunicación Bulk. En este caso cada una de las acciones (Apertura de la comunicación, lectura, escritura y cierre de comunicación) se realizan con bloques individuales.

La ventaja respecto del SubVI del 1º post es que se evita la apertura y cierre de la comunicación en cada llamado al mismo, haciendo más eficiente la comunicación. También permite individualizar el proceso de lectura y escritura, haciendo posible la realización de estas acciones en distintas etapas, según fuera necesario.



Nunca olvidarse de colocar el bloque final de cierre de comunicación! En caso de abrirla y luego no cerrarla, es posible que deban reiniciar la PC o eventualmente borrar y reinstalar el driver para que el hardware vuelva a ser detectado.

En la descripción de cada bloque se encuentran detalladas las entradas y salidas correspondientes.

PD: por favor algún mod colocar esta información en el 1º post.

Saludos

Excelente post mnicolau, limpio, claro y útil, agradecería mucho que resubieras este nuevo vi para Labview2010.

Al momento me llevo 2 días trastear con la simulación y después de probar con Win8 x86/x64+Proteus 8 SP1, 7.10, 7.9, 7,8 conseguí simularlo en Proteus 7.6 SPO+Win7 x86 y concluí que el problema de Proteus 8 + Win8 x64 son los certificados del driver "Eltima USB software"(que viene en Proteus 8 SP0 C:\Archivo de programa\Labcenter\Driver USB) que tiene la firma de certificado original firmado hasta el 2012; pueden revisarlo con VisualStudio 2012.

Es por ello que a dinoelectro y a otros les funcionó las simulaciones cuando publicaste el post, incluso intenté forzar la firma digital para este año por software pero sin éxito.

Sin embargo tal vez este equivocado y alguien pudo simularlo en una instalación fresca de Win8 x64 o x86.

PD: Espero que reconsideres en liberar la contraseña del "modulo usb" en Labview.

Gracias por compartir y felicitaciones.
 
Última edición:
Hola amigos!!

Alguien lo pudo hacer andar con WIN de 64bits?? Cual es el link de descarga de la libreria mpusbapi.dll necesaria??? Algun ejemplo completo para C# please!!

Gracias :D
 
Hola Mnicolau, excelente post!, estoy tratando de ejecutarlo en Win7 x86 con proteus 7.9, todo anda bien, instalo el emulador usb. Cuando ejecuto la simulación anda perfecto y se levanta la instalación del driver, pregunta, este driver funcionaría en mi máquina con win 7? o es sólo para xp? no logro instalarlo. Si lo tienes para win7 pudieras facilitarlo?,

alguien lo pudo levantar en win 7?

gracias.
 
Gracias femioxantos por el comentario,
El driver funciona perfecto para XP, 7 y 8. Tanto para x86, como para x64.

Cual es el problema a la hora de instalarlo?

Saludos
 
hola mnicolau, no se si estoy mal, por favor corrígeme si es así:

1. abro el dsn en proteus 7.9 modo administrador(ya tengo instalado el driver emulador usb del proteus)
2. en el pic modifico la ruta del .hex pues en el proyecto apuntaba a propia.hex
3. ejecuto el proyecto y veo el osciloscopio y el usb analizer.
4. windows levanta el instalador del driver y no lo encuentra.
5. me voy al administrador de dispositivos y le doy actualizar driver de forma manual, busco la carpeta Driver Interfaz. pero windows me dice que no encuentra driver.

qué crees que pueda ser, o definitivamente yo lo entiendo mal?

gracias de nuevo por tu colaboración.
 
Hola Nicolau felicitaciones por tu proyecto y gracias por compartirlo.

quiero implementarlo pero en lugar del PIC18F2550 utilizo PIC18F4550, supongo que no hay casi ningun cambio en el hardware (excepto la alimentacion del pic, no estoy seguro si la conexion usb aliemnta al pic a los pines Vdd y Vss porque en el esquema de proteus no se ve)

en cuanto al firmware solo debo cambiar la libreria del 2550 por la del 4550?
para el 4550 tambien sirve el PID y VID de 4D8 y 0010?

y el driver que subiste sirve de igual manera para el 4550?

de todas formas muchas gracias por tu aporte, espero que me puedas ayudar con mis inquietudes

Saludos !!!
 
Gracias femioxantos por el comentario,
El driver funciona perfecto para XP, 7 y 8. Tanto para x86, como para x64.

Cual es el problema a la hora de instalarlo?

Saludos

hola mnicolau, no se si estoy mal, por favor corrígeme si es así:

1. abro el dsn en proteus 7.9 modo administrador(ya tengo instalado el driver emulador usb del proteus)
2. en el pic modifico la ruta del .hex pues en el proyecto apuntaba a propia.hex
3. ejecuto el proyecto y veo el osciloscopio y el usb analizer.
4. windows levanta el instalador del driver y no lo encuentra.
5. me voy al administrador de dispositivos y le doy actualizar driver de forma manual, busco la carpeta Driver Interfaz. pero windows me dice que no encuentra driver.

qué crees que pueda ser, o definitivamente yo lo entiendo mal?

gracias de nuevo por tu colaboración.
 
hola mnicolau, no se si estoy mal, por favor corrígeme si es así:

1. abro el dsn en proteus 7.9 modo administrador(ya tengo instalado el driver emulador usb del proteus)
2. en el pic modifico la ruta del .hex pues en el proyecto apuntaba a propia.hex
3. ejecuto el proyecto y veo el osciloscopio y el usb analizer.
4. windows levanta el instalador del driver y no lo encuentra.
5. me voy al administrador de dispositivos y le doy actualizar driver de forma manual, busco la carpeta Driver Interfaz. pero windows me dice que no encuentra driver.

qué crees que pueda ser, o definitivamente yo lo entiendo mal?

gracias de nuevo por tu colaboración.

Prueba con Proteus 7.6 SP0 sobre Windows Xp o 7 de x86, si lees las respuestas anteriores notaras que muchos probaron con proteus 7.9 sin exito. Yo use con Proteus 7.6 SP0 y no dio problemas, mnicolau asegura que corre en x64 y x86 de Win XP,7 y 8, pero no aclaró si fue en una instalación nueva de Windows.
 
Hola, estudio Ingenieria Electronica, debo presentar un proyecto y estaba pensando en una interfaz en Labview para controlar motores DC o paso a paso con un ATmega8, o almenos enviar algun tipo de dato al microcontrolador, encender un led, etc. He revisado aportes anteriores en el foro, (inlcuso este) pero quisiera que me den una idea concisa de lo que se necesita para comunicar la pc desde LabView con el Microcontrolador, algunos conceptos puntuales, pues nocion ya tengo. Y si fuera posible ejemplos para poder guiarme o alguna informacion adicional; de antemano, gracias por su ayuda.

Saludos
 
Estoy haciendo un sistema de control de temperatura de una termobalanza.
Uso Labview 12.0 y un PIC.
Sucede que logro leer y escribir bien por un corto tiempo y luego obtengo un error de las funciones Visa. ¿Qué puedo hacer?

Este es el error que me sale:
Error- 1073807339
 
Última edición por un moderador:
Si tenés la posibilidad de googlear (o cualquier otro buscador):
https://www.google.com.ar/?gws_rd=ssl#q=labview+visa+error+1073807339

Cita de http://digital.ni.com/public.nsf/allkb/874B379E24C0A0D686256FCF007A6EA0

Solution:

There are several reasons why you might receive this error message, the most common of which are detailed below:

  • A timeout error is generally indicative of a different problem. Check the command strings sent to the VISA Read and Write calls and ensure that they are written in the proper syntax for your instrument.

    Note: A new line or carriage return is often required at the end of a command. A good way to test this in LabVIEW is to right-click the command string control on the front panel and change the display to '\' Codes Display mode. In this mode, a carriage return is \r, a line feed is \n, and an end of line is \r\n. Verify that the command being sent to the serial device has the termination character that the device requires.
  • The port's communication settings may not be configured correctly. Verify that the Baud Rate, Data Bits, Parity, Stop Bits, and Flow Control are set correctly to correspond with your hardware requirements.
  • This error may be induced by attempting to read more bits than are available at the serial port.
    • The VISA Property Node for Bytes At Port should be implemented to ensure that the data read by VISA is limited to exactly the amount of data available.
      VISAbytesatport.png
    • Additionally, can verify that you are not trying to read too many bytes by reading only 1 byte at a time. If you do not get the error when doing so, increment the number of bytes you read until you get the timeout error again. This tells you how many bytes that command sends back.

      Note: If you still receive the error while reading only 1 byte, verify the command to make sure it has been written correctly and that you have also terminated the command string correctly (as brought up in solution 1).
  • Older instrumentation may not respond rapidly to commands written to the port, causing a large delay between VISA Write and VISA Read. Applications designed to interface with this type of instrumentation should anticipate this delay, and implement a Wait function between VISA Write and Read to effectively avoid a potential timeout error.
    VISAreadwriteDelay.png
  • Timeouts can also occur when you read or write large amounts of data, since large data sets often take longer than the default timeout period of 2000 ms to transfer across the serial port. You can manually designate the VISA Session Timeout in different ways, depending on your development system. Please see below for instruction on setting the VISA Timeout:

    LabVIEW: You can use VISA Set Timeout located in the Functions palette under Instrument I/O»VISA»VISA Advanced
    VISAtimeout.png

    LabWindows™ /CVI: You can use the viSetAttribute function with its Attribute_Name parameter is set to VI_ATTR_TMO_VALUE.
    Note: Changing the Timeout value for your VISA session will affect all VISA Writes and Reads in your session. However, you are able to set this property/attribute at any point during the session, allowing you to configure it as needed.
///////////////////////////////////
Hay algo en castellano también: http://digital.ni.com/public.nsf/allkb/97D814071169A8B48625735D005AEBB2



Error -1073807339 al utilizar "VISA Read" o "VISA Write" en un VI Serial


Software Primario: Driver Software>>NI-VISA
Versión de Software Primario: 2.6
Versión de Software Primario Corregido: N/A
Software Secundario: N/A
invis.gif

Problema: Cuando trato de hacer una lectura o escritura con VISA, obtengo el error de VISA -1073807339:
"VISA: (Hex 0xBFFF0015) Timeout expired before operation completed."
¿Cómo puedo corregir este error?


Solución: Sigue los siguientes pasos para eliminar este u otros errores de “timeout” (error que surge cuando se ha cumplido el tiempo de espera para que suceda algún evento específico) serial.
1. Verifica que todos los parámetros de la configuración serial sean correctos (por ejemplo, razón de baudio, bits de datos y bits de parada). Tanto el dispositivo como el puerto serial deben tener la misma configuración.

2. Intenta incrementar el valor de “timeout” de la sesión de VISA. Este error ocurre frecuentemente cuando estás leyendo o escribiendo grandes cantidades de datos y toma un tiempo mayor que el tiempo preestablecido para enviar o recibir datos.

3. Si este error surge al hacer una lectura VISA, verifica que no estés tratando de leer demasiados bytes. Lee solamente 1 byte a la vez durante la detección de errores.

Nota: Si no obtienes el error ahora, incrementa el número de bytes que lees hasta que obtengas el error nuevamente. Esto te dirá cuantos bytes regresa dicho comando.

También puedes utilizar un Nodo de Propiedad para leer el Número de Bytes en el Puerto Serial. Haz click derecho sobre el Nodo de Propiedad y selecciona “Select VISA Class>>I/O Session>>Serial Instr”. Posteriormente haz click derecho en el Nodo de Propiedad y selecciona “Properties>>Serial Settings>>Number of Bytes at Serial Port”.

4. Si aún recibes el error mientras lees un solo byte, verifica el comando para asegurarte que ha sido escrito correctamente.
Nota: Verifica que has terminado el comando de caracteres correctamente. Una nueva línea o un retorno de carrete usualmente se requieren al final de un comando. Una buena forma de probar esto en LabView es hacer click derecho en el control de “string” en el panel frontal y cambiar la forma en que se despliega al modo '\' Codes Display. En este modo, el retorno de carrete es “\r”, una nueva línea es “\n”, y un fin de línea es “\r\n”. Verifica que el comando enviado al dispositivo serial tiene el carácter de terminación que el dispositivo requiere.



Ligas Relacionadas:
KnowledgeBase 3F4AG87U : Default Time-out for VISA Read and Write VIs
 
Atrás
Arriba