Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.340 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Programm wird mit Laufzeit immer langsamer

  Alt 16. Mär 2021, 06:54
Das letzte mal, dass ich mit RS232 zu tun hatte, war zu Turbo-Pascal-Zeiten. Mal sehen, ob meine Erinnerungen dazu noch ausreichen, dein Problem einzugrenzen.

Du schreibst, dass alle 5 Sekunden Temperatur, Drehzahl und Status abgefragt werden. Ich nehme an, dass du dafür auch einen Timer verwendest. Wird dort die Verbindung jedesmal neu initialisiert oder greifst du auf eine bestehende Verbindung zu? Im zweiten Fall kann sich der günstige Abfragezeitpunkt ständig verschieben. Wenn ich mich richtig erinnere, kommt von der seriellen Schnittstelle ein Startbit und dann erst die Daten. Wird das Startbit verpasst, musst du warten, bis das nächste Startbit übertragen wird. Im Laufe der Zeit, kann es dann zu Verschiebungen kommen, die zu Wartezeiten führen. Wenn das die Ursache für dein Problem sein sollte, kann eine regelmäßige Initialisierung der Verbindung eine Verbesserung bringen.

Stoppst du den Timer, wenn die Daten abgefragt werden? Das wäre ziemlich wichtig, da der sonst vielleicht mehrfach während einer Abfrage ausgelöst würde. In dem Fall misst du vielleicht gar nicht die richtige Zeit bei der Auslösung des Timers oder es kommt zu anderen Problemen und die Verzögerung ist eine sekundäre Auswirkung.

Laufen auf dem Rechner noch andere Programme oder werden gelegentlich andere Programme dort gestartet? Ich halte es zwar für unwahrscheinlich, aber wenn du Charts und VirtualStringTree verwendest, benötigst du Hauptspeicher. Je nach Umfang, Laufzeit und Nutzung anderer Programme, kann der Hauptspeicher fragmentiert sein. Auch das kann dann zu Verzögerungen führen. Aber ich vermute den Fehler eher an einer anderen Stelle.
Peter
  Mit Zitat antworten Zitat