Guten Morgen,
@hathor: mit deiner Delay Procedure bekomme ich einen Integerüberlauf
mit der anderen Procedure aus der CodeLib habe ich weiterhin eine Auslastung von 100%. Also von der Auslastung komm ich nicht runter. Ich habe mir jetzt selbst eine Procedure geschrieben mit der ich genauer als in Millisekunden warten kann und muss somit zumindestens nicht andauernd das Netzwerk belasten. Klappt erstaunlich gut.
Code:
procedure warten(const zeit_ms:double);
var
start,akt,freq: Int64;
begin
QueryPerformanceFrequency(freq);
QueryPerformanceCounter(start);
akt:=start;
while (akt-start)*1000/freq<zeit_ms do begin
application.ProcessMessages;
QueryPerformanceCounter(akt);
end;
end;
@Helmi: ich habe leider keine Möglichkeit das SPS Programm zu ändern.
Also ich habe auch einen acht Kern Prozessor eingebaut, deswegen liegt die CPU Auslastung insgesamt für das Auslesen bei 25%. Auf weiteren zwei Kernen werte ich die Daten noch etwas aus und dann bleiben immer noch vier für den ganzen Rest. Der PC ist auch nur für die Aufgabe zuständig, ob das alles dauerhaft konstant funktioniert muss ich mal sehen.