Control de puerto paralelo con VB de excel

Saludos... Espero me puedas ayudar.. En una hoja en excel estoy capturando datos y quiero crear un macro que cada vez que capture un dato me envíe un pulso por el puerto paralelo(solo utilizare un bit de los 8 del puerto), con este pulso incrementare un circuito contador. ¿Me podrías ayudar con el macro?..
De antemano gracias

1 Respuesta

Respuesta
1
Hay alguna incógnita que necesito saber para poder responderte correctamente, o intentarlo al menos.
Estás capturando datos y guardándolos en una excel, pero ¿Cómo los capturas? ¿Cómo los guardas? Supongo que tendrás una aplicación en Visual Basic en la cual según que condiciones ejecutarás un guardado de datos en excel, ¿no?
Si es así puedes aprovechar el momento del guardado para crear una función en visual que haga lo que me pides.
Ahora bien. Dependiendo del sistema operativo que uses la parte del puerto paralelo puede ser relativamente sencilla o más complicada. Si usas Windows 98 puedes programar los puertos directamente usando las instrucciones en bajo nivel y llamadas a la BIOS(si es así confírmamelo y te daré más información). Pero si usas Windows XP el sistema no te dejará acceder directamente a los puertos y te dará errores al intentar ejecutar el programa de VB.
Pero VB tiene en sus versiones a partir del 2005(que yo sepa) la posibilidad de agregar un elemento al Form llamada "serialport" que te permite controlar los puertos... eso si.. los serie, no los paralelos. No he trabajado casi con los puertos paralelos, ya que para las aplicaciones industriales que es donde yo trabajo se usa el serie casi siempre.
Coméntame algún dato más e intentare ayudarte mejor.
Gracias por responder...
Usando winXP.
El proceso es el siguiente:
Con un lector de código de código de barras se esta capturando las piezas que están pasando por la estacion; en una hoja de excel se están guardando los registros; con un macro se se registra la hora de cada registro y se guardan los cambios. En la hoja ya mediante fórmulas llevo un control de piezas producidas, tiempo de producción, etc...
Ahora, lo que quiero hacer es un tablero con displays para ir visualizando cuantas piezas van(osea cada vez que scanee una pieza, mandar un pulso por el puerto para incrementar el circuito contador).. lo de la circuitería y todo eso ya lo tengo, soy electrónico.. nomas me falta comunicar la pc al circuito... si te parece que mediante el puerto serie se puede hacer y es mejor, pues le entramos por ahí...
¿Conoces el entorno de programación Visual Basic?
¿El programa del lector de códigos es comercial o lo creaste tu?
Si conoces visual Basic y el programa es tuyo es muy sencillo. Basta con que en el cuadro de componentes busques el "SerialPort" y lo copies en tu Form. Una vez hecho esto configuras el dispositivo en propiedades, dándole un velocidad lo más baja posible 2400bps por ejemplo. Y creas un función específica para que cuando capte datos envíe la señal por el puerto serial. Por ejemplo algo así:
Private Function envia_señal()
SerialPort1. Close() ' Con ésto limpiamos lo que pueda haber en el buffer
SerialPort1. Open() ' Preparamos el puerto para la escritura
SerialPort1.Write("1")  ' Mandamos un dato
SerialPort1.Close()       ' Cerramos el puerto
End Function
Ahora bien, como a ti lo que te interesa es una señal digital 1/0 y no un dato... deberás mirar los protocolos serie, como sabrás hay diferentes. Con o sin HandShake, duplex, half duplex... etc etc. Encuentra aquél que envíe por la patilla TR(creo recordar) un bit de aviso para la comunicación... así engañaremos a tu circuitería del display.
Directamente desde Excel no sé como se accede a éste tipo de programación, siento no poder informarte más en ése campo y espero que ésto te sirva. Para cualquier duda o sugerencia aquí estaré.
La pc detecta el scanner como si fuera un teclado, código que va leyendo lo va registrando en la hoja de excel. Con el macro que hice es como se registra la hora, se guarda, etc.
Estoy usando EXCEL VISUAL BASIC 6.3, y no encuentro el componente SERIALPORT, de echo no veo ni el cuadro de componentes, ¿tengo qué agregar una librería o algo así? ¿O tengo que instalar el Visual basic solo? Agradezco tu ayuda, he echo varios macros pero no se mucho de programar en visual
He trasteado un poco con esa aplicación, y aunque desconozco completamente como funciona y las posibilidades que tiene, parece que me ha dejado implementar una función similar a la anterior que te propuse, sin darme errores de sintaxis. No he podido comprobar si funciona, ya que no tengo material electrónico a mano para medir tensiones de salida en el puerto serie.
Si buscas en google "serialport" VB encontrarás las opciones de configuración añadiendo un "." y el nombre de la propiedad a configurar como he hecho yo abajo con la velocidad o baudios por segundo. Espero que te funcione.
private function puerto()
serialport.baudrate=2400
try
serialport.Close
serialport.Open
serialport.write ("1")
serialpor.Close
Catch As EXCEPINFO
MessageBox.Show ("error al escribir")
Serialport. Close
Endtry
Endfunction

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas