Ver Mensaje Individual
  #2  
Antiguo 14-05-2024
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 111
Reputación: 22
javicho_villa Va por buen camino
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        := self.cmbPuerto.Text;
    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;

    //Application.MessageBox(PChar('No se puede conectar con la balanza, ingrese manualamente el peso'),
    //'Error de ingreso de información ...',Mb_ok+mb_IconExclamation);

  End;

Queridos amigos si me pudieran ayudar se los agradeceria enormemente, de antemano les agradezco por haberme respondido.

Un abrazo,

Javier Villa - PERU.
__________________
Javier Villa Sánchez
[email protected]
Responder Con Cita