![]() |
Re: Auf Timer verlassen?
|
Re: Auf Timer verlassen?
Zitat:
|
Re: Auf Timer verlassen?
Außerdem ist der Timer (TTimer) Nachrichtengesteuert (Windows-Messages siehe
![]() Heißt, selbst wenn die Message zufällig pünklich verschickt wird, dann landet sie erstmal im Message-Queue und wird erst im TTimer ausgelößt, wenn die Nachrichtenverarbeitung an dieser Nachricht vorbeikommt. Da zu dann noch das schon genannte Proplem des Multiprozessings. Egal wie, genaue Verarbeitung kann es nie geben. Und dieses Problem haben auch Linux und Mac. Einzige Lösungen wären z.B. Interrupt-gesteuerte Timer oder eine Umstellung auf Single-Prozessverarbeitung. |
Re: Auf Timer verlassen?
Zitat:
![]() [edit]link korrigiert[/edit] |
Re: Auf Timer verlassen?
Zitat:
Ich denke mal daß kann selbst dieses Linux nicht zu 100%. Aber im Notfall kann man auch ein Windowsprogramm in einen Zustand versetzen, daß dieses nahezu so läuft, als liefe es in einem Echtzeitsystem, allerdings mit dem Nachteil, daß eventuell das System so belastet wird, daß nichts Anderes mehr reagiert. Höchste Prozess- und Threadpriorität für einen Prozess. Wer sowas mal, vorallem auf einem SingleCore, über "längere" Rechenzeit hinweg versucht hat, der weiß was ich meine. Daß Problem ist esben, daß in eigentlich allen modernen Systemen (mit einigen wenigen Ausnahmen) immer irgendwas parallel läuft, womit die Grundvorausetzung für eine Echtzeitbehandlung doch eigentlich nahezu ausgeschlossen ist. (unzählige Treiber, Services und Co. sind doch ständig aktiv) Dank Multiprozessoring könnte man aber ein Programm an einen physischen Kern binden ... wenn man dann noch allen anderen Prozessen verbietet diesen Kern zu nutzen und es auch noch nahezu ausgeschlossen ist, daß die restlichen Resourcen/Harwarekomponenten sich nicht gegenzeitig so stark beeinflussen, so daß die Abarbeitung in dem reservierten Kern zu sehr beeinflußt wird, dann würde das Programm dort wohl nahezu in Echtzeit reagieren können. |
Re: Auf Timer verlassen?
Weiterhin muss noch beachtet werden, dass die Anwendung selber auch die Verarbeitung eines Timer-Events blockieren kann.
Wenn dieses ausgeführt wird, dann wird in dieser Zeit keine Warteschlange abgearbeitet:
Delphi-Quellcode:
Somit ist es nicht nur das Betriebssystem sondern auch die Anwendung, die eine Echtzeitverarbeitung verhindert.
procedure TForm1.Unsinn;
begin Sleep( 10000 ); // Beispiel für einen Code, der 10 Sekunden für die Verarbeitung benötigt end; Eine wirkliche Echtzeitverarbeitung ist aber auch nur in wenigen Fällen wirklich notwendig (z.B. in der Steuer- und Regeltechnik). Keinen Anwender interessiert es, ob der Download wirklich und wahrhaftig in 13,865743 Sekunden beendet ist. |
Re: Auf Timer verlassen?
Zitat:
|
Re: Auf Timer verlassen?
So hat zwar lange gedauert aber ich habs endlich gefunden, wollten ja glaube ich auch noch andere wissen wie das geht.
![]() Das ist die Realtime Suite und damit lassen sich punktgenau aktionen unter Windows steuern. |
Re: Auf Timer verlassen?
Zitat:
Außer Kithara gibts da noch u. a.: TwinCat von Beckhoff OnTime von Ontime InTime von Tenasys (setze ich ein) Gruß Erich |
Re: Auf Timer verlassen?
Gehen diese System nicht in Richtung Soft-SPS?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz