FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayudemos a utilizar Comport (Rs232)
Hola a todos
Estoy tratando de utilizar los componentes Comport para la captura de datos de una balanza electronica me he encontrado con una serie de problemas he revisado los ejemplos que traen estos componentes funcionan de maravilla pero aun no consigo hacer lo mismo con mis programas. Ejemplo utilizo el ejemplo Miniterm el cual es exactamente lo que quiero hacer pero en el evento de captura si no incluto un showmessage() el valor que envia no es el correcto he estado revisando y puede ser un problema de la cadena que envia el dato (estoy leyendo un articulo que encontre a la manera de tratar cierto tipo de cadenas ). Espero que personas con un mayor conocimiento puedan apoyar con un granito de arena al fin de poder saber todos como se deben utilizar estos o otros componetes de forma practica En espera de sus respuesta y sabiendo de su alto sentido de ayuda y apoyo quedo muy agradecido Nota : codigo que utilizo en la captura del dato Código PHP:
__________________
IVAND |
#2
|
||||
|
||||
Colaboremonos entonces...
Bueno, te cuento una buena.. tengo alguito de experiencia haciendo software para basculas, me facilitaria de harto saber si te estas comunicando directamente con la bascula o estas usando un indicador como intermediario...
Yo he hecho la mayoria de estos software en Delphicito y el Java, pero para serte sincero, nunca use ese componente que mencionas...(commport) ... Mejor te sale hacer una cosa, create tu propia libreria de captura de datos por el puerto Serial usando las instrucciones del Window (SDK)... a continuacion te mando el codigo de la unidad que podrias usar... Código:
unit URS232; interface uses Windows, SysUtils; type TRS232=class private hCommFile : THandle; sPuerto : String; public constructor Create(lsPuerto: String; liBanda:Cardinal; liByteSize, liParidad, liBitParada:Byte); function LeerBuffer: string; procedure EscribirBuffer(lsMensaje:string); end; implementation { TRS232 } constructor TRS232.Create(lsPuerto: String; liBanda:Cardinal; liByteSize, liParidad, liBitParada:Byte); var CommTimeouts : TCommTimeouts; CommConfig: TCommConfig; sizeConfig : Cardinal; begin sPuerto := lsPuerto; hCommFile := CreateFile(PChar(sPuerto), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); with CommTimeouts do begin ReadIntervalTimeout := 0; ReadTotalTimeoutMultiplier := 0; ReadTotalTimeoutConstant := 300; WriteTotalTimeoutMultiplier := 0; WriteTotalTimeoutConstant := 200; end; if not SetCommTimeouts(hCommFile, CommTimeouts) then raise Exception.Create(Problemas estableciendo CommTimeouts); GetCommConfig(hCommFile, CommConfig, sizeConfig); with CommConfig do begin dcb.BaudRate := liBanda;//9600;//38400;//<-- Se comunica a esa velocidad ???? dcb.ByteSize := liByteSize; //8; dcb.Parity := liParidad;//NOPARITY; //EVENPARITY; dcb.StopBits := liBitParada;; end; if not SetCommConfig(hCommFile, CommConfig, sizeConfig) then raise Exception.Create(Problemas al querer establecer la configuracion); end; procedure TRS232.EscribirBuffer(lsMensaje: string); var NumberWritten:dword; begin if hCommFile = INVALID_HANDLE_VALUE then raise Exception.Create('No se puede enviar los datos'); WriteFile(hCommFile, PChar(lsMensaje)^, Length(lsMensaje), NumberWritten, nil); end; function TRS232.LeerBuffer: string; var sTmp:string; c1:integer; chBuffer:array[0..255] of char; NumberOfBytesRead : dword; begin if hCommFile=INVALID_HANDLE_VALUE then exit; if not ReadFile (hCommFile, chBuffer, sizeof(chBuffer), NumberOfBytesRead, Nil) then raise Exception.Create('Imposible leer datos desde el puerto'); for c1:= 0 to NumberOfBytesRead - 1 do sTmp:= sTmp+chBuffer[c1]; result:=sTmp; end; end. Espero te sirva de ayuda cumpa, ami me funca... claro si es que estas trabajando en delphicito... ... cualquier cosa mantengamonos en contacto... Atte.. Jobev Lee |
#3
|
||||
|
||||
Hola,
Me he tomado la libertad de editar un tanto la unidad que ha publicado Jobev Lee para que esta compile (faltaban simplemente un par de comillas simples en alguna que otra cadena de caracteres) y para mostrarla dentro de las etiquetas DELPHI, tan oportunas en este caso como útiles para quien quiera echar un vistazo al código de la unidad que a continuación copio:
Actualización: Si a alguien le place, puede descargarse la unidad que puede verse más arriba en el archivo que se adjunta a este mensaje. Última edición por dec fecha: 25-08-2005 a las 16:23:27. Razón: (actualización) |
#4
|
|||
|
|||
Atentos como siempre
Gracias a todos x colaborar estoy probando la unidad que enviaron y la probare .. les comento que el dato es tomado directamente de la bascula en modo ininterrumpido es decir siempre la balanza esta enviado el dato por lo que se muestra en el display de esta se debe reflejar en la pantalla de mi pc Nuevamente gracias Espero que mas colaboren con nuevas ideas para avanzar todos De antemano, Gracias
__________________
IVAND |
#5
|
||||
|
||||
Ups.. gracias. cumpa por la correcciòn... jejeje... pero vale.....
|
#6
|
|||
|
|||
Gracias a la invalorable ayuda de mi amigo Fidel por fin he utilizado correctamente los componentes Comport ... con el permiso otorgado por Fidel cualquier compañero que necesite el codigo puede pedirmelo con gusto se los enviare
Atentamente, Iván Dávila
__________________
IVAND |
#7
|
|||
|
|||
Ayuda balanza
Tengo una balanza XWILD-15P y no consigo de ninguna manera capturar información de ella alguien conoce esta balanza y puede decirme algo se agradeceria la respuesta es bastante urgente.
Un saludo.
__________________
Katalan |
#8
|
||||
|
||||
Cita:
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
Llevo dias buscando información en san google
Tengo delante el manual de la balanza y no me pone nada para conectarla con un pc. He llamado al proveedor y me han mandado 3 folios que no los entiendo los he puesto adjuntados al mensaje, yo ya he usado el puerto serie para lectores de codigos de barras y nunca he tenido ningun problema, la cosa es que no consigo recibir ningun dato de la bascula nada, la foto de la bascula esta en esta url. Y como te dije anteriormente es bastante urgente,
http://www.balanzadirect.com/listado...cp=120&idp=122 Estas son las caracteristicas de las basculas XWILD-15P Balanza comercial de precio/peso/importe Aprobación CE de modelo con Verificación de serie 'M' Plato de pesada de acero inoxidable Dimensiones balanza, 360x385x435mm Visor frontal (vendedor) y posterior (comprador) 4 modos de iluminación del display 5 PLU directos alfanumericos Batería interna recargable Salida de datos RS-232 para impresora o PC (opcional) Con 3 lineas de cabecera de ticket Descuento en el total de venta Total de ventas diarias Como se puede ver pone conexión a pc. Si por favor alguien puede ayudarme se lo agradeceria
__________________
Katalan |
#10
|
|||
|
|||
Hola!
De entrada no aparecen los adjuntos, en el enlace de la imagen dice que la opcion de salida serial es OPCIONAL ¿ya verificaste que la tenga instalada tu bascula? |
#11
|
||||
|
||||
saludos cordiales me parece importante que publiques el trabajo con las librerias y de partida indiques el web site donde se consiguen.
saludos |
#12
|
|||
|
|||
Hola:
He utilizado la libreria URS232, la cual me permitio usar el constructor Create para crear el puerto pero no logro escribir y leer del mismo alguien podria mandarme un ejemplo sencillo de como leer y escribir. Muchas Gracias |
#13
|
|||
|
|||
Buenas, yo también me estoy pegando con una báscual SC1 de la empresa Sensocar, y en mi caso para que me dé el PESO he de enviarle la cadena 'SN' + Retorno (13), pero no consigo hacerlo. Sin ninguna cadena, sí que me devuelve, pero no sé cómo enviarle 'SN' y que me devuelva el Peso. Utilizo un programa 'Realterm' para comprobar que, en efecto, hay comunicación y enviándole 'SN' de devuelve el peso. En fin, a ver si alguien avanzado en la materia me sabe dar una respuestas.
Muchas gracias. |
#14
|
|||
|
|||
Usar comport
Cita:
******************Podrias facilitarme el codigo fuente para utilizar correctamente el componente comport en delphi 6 para una bascula Datalogic Magellan 8300 / 8400? |
#15
|
|||
|
|||
Buenas,
Equipo, este es el codigo que estoy utilizando pero no me funciona con la bascula DATALOGIC MAGELLAM 8300, alguien me puede colaborar.
Última edición por Casimiro Notevi fecha: 16-04-2020 a las 12:44:14. |
#16
|
|||
|
|||
Te puedo pasar un programita que es de un companero del foro para que pruebes con los parametros , creo que eso puede ser
asumiendo que ya has probado que la bascula envie los datos bien puedes probar con hyperteminal si es asi me indicas un correo para pasartelo
__________________
IVAND |
#17
|
|||
|
|||
Hola ivan,
Aqui esta mi correo: ambiorixml @ gmail . com Muchas gracias de ante mano Última edición por Casimiro Notevi fecha: 16-04-2020 a las 21:11:20. |
#18
|
||||
|
||||
No hace falta publicar emails, basta con pulsar en el nick y aparece un menú con distintas opciones, una de ellas es enviar por email.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#19
|
|||
|
|||
Distinguido Casimiro, muchas gracias por la aclaracion, ya le había remitido un correo a ivan por esta via.
Por otra parte para que me puedan colaborar mejor, aqui les dejo lo que he logrado investigar de la básculas Datalogic Magellam 8200, 8300 y 8400 respectivamente. Tambien pongo de su conocimiento que he probada casi todas las propuestas sugeridas en los distintos foros de este portal sin obtener resultados positivos. Por ultimo tambien, les dejo código fuente utilizado de la ultima prueba de lectura de esta bascula o Balanza Datalogic Magellam, recordandoles que la misma no solamente lee pesos , sino que también codigos de Barras. Los hallazgos que tengo hacen referencia a que lo primero que hay que hacer es instalar el programa que viene con ella, llamado Datalogic OPOS Package. El cual instala los controladores (dll y ocx's necesarios), dentro del mismo, viene un programa llamado Dual Test, con él podemos hacer las pruebas utilizando el software de Datalogic, pero como es sólo para pruebas, no nos servirá para otra cosa, más que probar tanto la balanza (báscula) como el lector de códigos de barra. Luego indican utilizar librería de la instalación OPOS.Scale.1.13. Balanza = CreateObject("OPOS.Scale.1.13") esto lo vi en FOXPRO. Tratando de instalarla pori active x, la misma no es compatible con delphi 6 así que posición anterior. Hermano IVAND, espero por su colaboración, favor no me abandonen, ya que tengo una aplicacion desde hace varios años en un supermeracado, compraron estas basculas y el chiste de que a través de una pistola para leer codigo de barra y un dispositivo que traduce el peso de la bascula, ya no es funcional para el negocio, resuelven pero necesito dar el paso. Por favor me podrian todos colaborar....? Codigo Fuente:
Última edición por Casimiro Notevi fecha: 17-04-2020 a las 12:00:09. |
|
|
|