Einzelnen Beitrag anzeigen

willyxv

Registriert seit: 25. Okt 2010
29 Beiträge
 
Delphi XE Enterprise
 
#1

TComPort ließt nach einer Stunde keine daten mehr

  Alt 27. Feb 2012, 13:54
Hallo,

folgendes Problem, die Anwendung soll über die serielle Schnittstelle die Daten einer Wage empfangen. Die Wage selbst sendet kontinuirlich die Daten in Form von 16 Zeichen.
Mit folgendem Code fange ich die Daten auf und Zeige den Wert in einem Label an.
Die Variable aktwert ist global definiert und wird alle 30 Sekunden von einem Timer in eine DB gespeichert.

Delphi-Quellcode:
procedure TForm1.ComPort1RxFlag(Sender: TObject);
var
  Str1 : String;
  Posi : integer;
  wert : char;
begin
  wert := '';

  ComPort1.Readstr(str1, 100000) ;
  comport1.ClearBuffer(true, true);
         
  Posi := Pos(wert,Str1);
  if Posi > 8 then
  begin
   Posi := Pos(wert,str1);
   str1 := Copy(str1, Posi -9, 8);
   aktwert := StrToFloat(str1);
   aktuellerwert.Caption := floattostr(aktwert);
  end;
end;
Das Programm funktioniert auch so weit so gut. Nur nach etwa 1 Stunde (manchmal auch erst später) ändert sich der Wert nicht mehr und der Com Port empfängt keine Daten mehr. Die Wage selber sendet jedoch noch. (Mit Meßgerät überprüft)

Schließt man nun den Com Port und öffnet ihn wieder empängt er wieder die Daten. Ich habe bereits mehrere verscheidene USB-Seriell Adapter sowie direkte serielle Anschlüsse getestet überall das gleiche Problem. Bei neueren Computer tritt es jedoch erst wesentlich später auf daher denke ich das der Speicher irgendwo voll läuft ich weiß nur nicht wo.

Ich bin für jede Hilfe dankbar.

MfG Willy
  Mit Zitat antworten Zitat