-> Hier kostenlos registrieren
Hi Leute,
ich wollte die Ausführungszeit eines Programmabschnitts messen.
Ich habe das wie folgt realisiert:
IF xB1=True THEN
U:=230;
TON(IN:=xB1,PT:=t#10s);
zeit1:=TON.ET;
zeit11:=Time();
FOR i:=0 TO 30000 BY 1 DO
wert:=wert+1;
x:=x+1;
RR:=RR+1;
P:=(U*U)/RR;
y:=SQRT(x);
z:=SIN;
e:=EXP(x);
m:=ATAN(e);
END_FOR
zeit2:=TON.ET;
zeit22:=Time();
END_IF
Dauer:=zeit2-zeit1;
Dauer1:=zeit22-zeit11;
Mit der Funftion Time() funktioniert es und es berechnet mir eine Dauer von ca. 24ms. Ich dachte nun, dass es mit dem TON Timer und des abgreifens von ET auch genauso funktioniert. Aber die Werte sind immer identisch und die Differenz damit 0.
Könnte mir jemand kurz erklären warum und ht jemand vieleicht ne Idee wie es mit einem IEC Timer machen könnte????
Möchte oder muss die Funktion Time() nämlich vermeiden.
Vielen Dank schonmal
Grüßle
ich wollte die Ausführungszeit eines Programmabschnitts messen.
Ich habe das wie folgt realisiert:
IF xB1=True THEN
U:=230;
TON(IN:=xB1,PT:=t#10s);
zeit1:=TON.ET;
zeit11:=Time();
FOR i:=0 TO 30000 BY 1 DO
wert:=wert+1;
x:=x+1;
RR:=RR+1;
P:=(U*U)/RR;
y:=SQRT(x);
z:=SIN;
e:=EXP(x);
m:=ATAN(e);
END_FOR
zeit2:=TON.ET;
zeit22:=Time();
END_IF
Dauer:=zeit2-zeit1;
Dauer1:=zeit22-zeit11;
Mit der Funftion Time() funktioniert es und es berechnet mir eine Dauer von ca. 24ms. Ich dachte nun, dass es mit dem TON Timer und des abgreifens von ET auch genauso funktioniert. Aber die Werte sind immer identisch und die Differenz damit 0.
Könnte mir jemand kurz erklären warum und ht jemand vieleicht ne Idee wie es mit einem IEC Timer machen könnte????
Möchte oder muss die Funktion Time() nämlich vermeiden.
Vielen Dank schonmal
Grüßle