Forum: Win32/Win64 API (native code)
by BigAl,
16. Sep 2022
Das war das erste was ich versucht habe :-)
Forum: Win32/Win64 API (native code)
by BigAl,
14. Sep 2022
Ist ja vielleicht schon langsam off-topic aber ich habe neue Erkenntnisse:
Das von mir beschriebene Verhalten tritt nur unter Windows 11 auf (auf 5 Maschinen getestet, 2 x Win 11, 3 x Win 10). Bei Windows 10 bleiben die Threads absolut stabil. Und das ganze Unabhängig davon ob die Priorität auf den Anwendungen oder auf die Hintergrundprozesse eingestellt wird.
Auch auf dem Zielsystem,...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Lesen tue ich mit leicht modifizierten Snap7. An einer 1500 schaffe ich damit via gemanagtem Netz ca. 550 Polls pro Sekunde, wobei derzeit nur alle 500 ms gelesen wird (was sich aber zeitweise ändern kann). Ist halt eine Entwicklung. Wie gesagt: Top-Speed wären temporär ein Log alle 100ms. Wenn's schneller werden muss, dann werden die Daten ehe in der SPS mit Zeitstempel versehen. Dann ist die...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Es geht um die Datenerfassung an einer Industrieanlage. Da hat ein Pi nichts verloren :-). Die Daten kommen von einer SPS...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Ok. hab eben mal ein paar anderen Maschinen getestet. Auflösung auf älteren Rechner 16ms auf aktuellen 1ms...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Also: Habe mal Now etwas näher analysiert. Die Auflösung ist - meiner Meinung nach - 1 ms:
var
OldTime: TDateTime = 0.0;
OldTick: UInt64;
Times: TArray<TDateTime>;
begin
try
OldTick := GetTickCount64;
repeat
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Das mit dem Fokus war auch mein erster Gedanke. Allerdings merke ich erst einen Verlangsamung wenn ich die Anwendung minimiere. Lass ich das Fenster offen und lege eine andere Anwendung in den Vordergrund bleibt die Genauigkeit...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Was mich wundert ist, dass unter normalen Umständen (Fenster nicht minimiert) die Schwankung immer maximal bei +/-1 ms ist. Wäre die Auflösung von "Now" (GetLocalTime) bei 16ms - wird zumindest überall behauptet - dann müsste ich doch immer ein Vielfaches von 16ms als Schwankung erhalten. Tatsächlich bewegt sich das aber immer im Bereich +/-1 ms.
Wo habe ich da den Denkfehler???
Ich habe...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Ok. Das schaue ich mir mal genauer an. Grundsätzlich gibt es ja Möglichkeiten. Es können ja z.B. auch Audio oder Videodaten im Hintergrund aufgezeichnet werden, was zeitkritischer ist. Allerdings muss ich halt Aufwand/Nutzen abwägen. Und wie gesagt: Mit Reaktion < 100ms ist es kein Problem (was derzeit gegeben ist). Ich muss mir das mal auf dem "schwachbrüstigeren" Zielsystem anschauen....
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Hallo Jaenicke,
danke für eine Antwort! Ja, mir ist schon klar, dass es mit "real time" und Windows immer etwas hakt. Aber ich bewege mich im Bereich von 1 ms, und das ist eigentlich nichts "schnelles" (wobei real time ja erstmal nichts über Geschwindigkeit sondern über Reaktionsverhalten aussagt). Ich hatte das ganze auch schon anders implementiert, mit genauerer Zeitmessung etc. und auch...
Forum: Win32/Win64 API (native code)
by BigAl,
12. Sep 2022
Hallo zusammen,
ich habe eine Thread geschrieben, welche Daten in möglichst exakten Abständen loggen soll. Das funktioniert soweit auch ganz gut, solange die Anwendung nicht minimiert ist. Sobald ich die Anwendung minimiere scheint Windows (Windows 11) die Thread zu verlangsamen. Solange die Anwendung nicht minimiert ist (auch wenn sie nicht das obere Fenster ist), dann ist der maximale Fehler...