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:
Código Delphi
[-]
procedure TRolloDatoForm.Timer2Timer(Sender: TObject);
var Peso, Limpio:String;
Ancho,i:integer;
begin
Try
self.ComPort1.Connected := false;
self.cmbPuerto.ItemIndex := 0;
self.ComPort1.Port := 'COM4';
self.ComPort1.BaudRate := br9600;
self.ComPort1.StopBits := sbOneStopBit;
self.ComPort1.DataBits := dbEight;
self.ComPort1.Parity.Bits := prNone;
self.ComPort1.Timeouts.ReadInterval := 100;
self.ComPort1.Timeouts.ReadTotalConstant := 0;
self.ComPort1.Timeouts.ReadTotalMultiplier := 0;
self.ComPort1.Timeouts.WriteTotalConstant := 250;
self.ComPort1.Timeouts.WriteTotalMultiplier := 1;
self.ComPort1.Connected := true;
self.ComPort1.ReadStr(Peso,15);
Ancho := length(Peso);
Limpio := '';
for I := 1 to Ancho do
if (Peso[i]='0') or (Peso[i]='1') or (Peso[i]='2') or (Peso[i]='3') or (Peso[i]='4')
or (Peso[i]='5') or (Peso[i]='6') or (Peso[i]='7') or (Peso[i]='8') or (Peso[i]='9')
or (Peso[i]='.') then
Limpio := Limpio + Peso[i];
self.PesoEdit.Text := Limpio;
Except
self.Timer2.Enabled := false;
self.PesoEdit.Text := '0.00';
self.Id_TrabajadorCalcEdit.TabOrder := self.Id_TrabajadorCalcEdit.TabOrder - 1;
self.PesoEdit.TabOrder := self.Id_TrabajadorCalcEdit.TabOrder + 1;
End;
Queridos amigos si me pudieran ayudar se los agradeceria enormemente, de antemano les agradezco por haberme respondido.
Un abrazo,
Javier Villa - PERU.