Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
ich möchte 2 Timer laufen lassen. Dabei soll der eine Timer alle X Sekunden und der zweite Timer alle Y Sekunden ablaufen. Dann möchte ich jedesmal, wenn der 2. Tmer abläuft einen Wert (Value) um 100 / (X/Y) erhöhen. Damit würde ich eine Art Ladebalken visualisieren.
Beispiel:
X = 5s
Y = 50 ms
Value_init = 0
100 / (5000ms/50ms) = 1
Dann würde man bei jedem Schritt + 1 rechnen. So sollte ich von 0 auf 100 kommen bis zum Ende der 5s,
wenn ich die Berechnung alle 50 ms durchführe. Ich lande aber bei 61.
Hi,
ich möchte 2 Timer laufen lassen. Dabei soll der eine Timer alle X Sekunden und der zweite Timer alle Y Sekunden ablaufen. Dann möchte ich jedesmal, wenn der 2. Tmer abläuft einen Wert (Value) um 100 / (X/Y) erhöhen. Damit würde ich eine Art Ladebalken visualisieren.
Beispiel:
X = 5s
Y = 50 ms
Value_init = 0
100 / (5000ms/50ms) = 1
Dann würde man bei jedem Schritt + 1 rechnen. So sollte ich von 0 auf 100 kommen bis zum Ende der 5s,
wenn ich die Berechnung alle 50 ms durchführe. Ich lande aber bei 61.
Kann sich das einer erklären?
Der Code würde wie folgt aussehen:
timerMotorSimulaton(IN := TRUE, PT := X);
timerMotorStep(IN := TRUE, PT := Y);
IF timerMotorStep.Q THEN
END_IF
IF timerMotorSimulaton.Q THEN
timerMotorSimulaton(IN := FALSE);
END_IF