FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Extraer peso de balanza por puerto com
Buenas tardes amigos:
Ante todo muchas gracias por leer este hilo y quisiera pedirles que me apoyen en resolver este problema que tengo y estoy dando vueltas en círculos y no logro entender muchas cosas. bueno les detallo: Quiero extraer de una balanza por el puerto com el peso, actualmente tengo lectura de la balanza a través del Hyper Terminal, y lo lee sin problema alguno. he probado 2 cosas, que puede encontrar en este foro: (1) La Clase TRS232 que encontré en un hilo de este foro, lamentablemente no lo se usar y no se que parámetros tengo que poner
por ejemplo para usar esta clase pongo las siguientes lineas:
me sale un montón de errores, que he comentado en la implementación de la clase para que pueda correr pero al final cuando ya va a votar el resultado no lee esta linea:
sale del código y no da ningún resultado (2) La opción que probé es el uso de un componente que descarge e instalé , por siacaso estoy usando XE8, este componente TComPort, que tiene todas las propiedades que tiene el HyperTerminal, las pongo pero no sale nada y tampoco puedo conectarme oca les paso el código:
Quiero agradecerles de antemano su tiempo e interés, por ayudarme muchas gracias. Atentamente, Javier Villa - PERU |
#2
|
|||
|
|||
Unable to open com port (Error: 5)
El error que sale es:
Unable to open com port (Error: 5) |
#3
|
|||
|
|||
Possible solución
Buenos días javicho,
A mi en el trabajo me toco hacer lo mismo, por medio de un puerto COM en una bascula. Por lo que veo, o no lo has pasado, no inicias o le pones un valor al Handle. En mi caso yo lo hago asi, es como si abrieras un archivo: Código:
hComm := CreateFile(PChar('\\.\COM3'), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Esto iria antes del IF(INVALID_HANDLE_VALUE). El otro problema que me encontré es que leer y escribir són asincronos, es decir, el hace la escritura y no se espera, inmediatamente hace la lectura y nunca me devolvía nada, tuve que hacer un sleep(300) para poder darle tiempo a enviar algo. También debo decirte que yo el búfer lo tengo con ANSIChar, con Char no me iba. En el momento de de leer los datos de vuelta, no los leas todos. En mi caso solo me eran utiles los primeros 7 (000.000) el resto era basura. Por cierto la variable sTmp(donde guardas el resultado de la comunicación en ningún momento la inicializas (el típico [varible] := ''), si no lo haces puede que te mantenga los datos que tenia anteriormente en esa dirección de memoria y lo que tu quieras te lo ponga al final de esa línea de caracteres residuales. Con todo esto, te debería de funcionar, si no lo hace me comentas y lo miramos. |
#4
|
||||
|
||||
También es necesario saber qué protocolo usa esa balanza.
|
#5
|
|||
|
|||
Muchas gracias por las respuestas compañeros, he avanzado algo instale el componente TComPort y estuve probando y probando hasta que agarro y me devolvió el peso, aunque esta solución implica que tienes que instalar ese componente en el Delphi que uses y también no se puede usar el HyperTerminal a la vez con mi programa, solo accede una sola aplicación, esto me demoró mucho en darme cuenta (principiante jejejeje).
Pero tengo otros problemas. 1. es que se des configura los puerto COM en mi maquina, igual tuve que poner el driver anterior y ahí funcionó. 2. Solo funciona una vez que hago el pesado, para la segunda vez tengo que desconectar y volver a conectar y nuevamente ingresar al sistema para que se logre conectar nuevamente a la balanza. Amigos si me pudieran ayudar por favor, que podría ser: 1. Les comento mi programa ejecuta una pantalla sonde en un Grid lista rollos tejidos para pesar. 2. Selecciona el rollo a pesar y sale una pantalla donde se conecta la balanza, se pone el código del tejedor y luego graba. durante el primer rollo funciona perfecto, pero cuando quiero ingresar al segundo rollo ya no se conecta a la balanza. pongo en un timer el siguiente código:
Queridos amigos si me pudieran ayudar se los agradeceria enormemente, de antemano les agradezco por haberme respondido. Un abrazo, Javier Villa - PERU. |
#6
|
||||
|
||||
Así a simple vista creo que no estás usando el sistema lógicamente.
La balanza siempre está funcionando, por lo que tú solamente debes leer su respuesta cuando te haga falta. No es necesario un timer para hacer eso. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Leer Scanner y Peso de Balanza Datologic Magellan 8300/ 8400 | ambiorixml | Varios | 6 | 11-04-2021 10:25:33 |
Envío de datos a balanza puerto serie | espinete | Varios | 8 | 20-04-2009 14:26:05 |
Leer codigo de barras y peso a travez de un puerto serie | Wolfyx | Conexión con bases de datos | 4 | 04-12-2006 05:23:32 |
Problemas con una balanza. | Gabriel2 | Varios | 2 | 06-12-2005 23:41:07 |
peso del installshield. | kwan | Varios | 2 | 26-09-2003 12:06:32 |
|