kiestumpe
Level-1
- Beiträge
- 726
- Reaktionspunkte
- 84
-> Hier kostenlos registrieren
Hallo,
ich versuch gerade eine MOD-Funktion für Gleitkomma, REAL zu implementieren. Der Hintergrund: Ich möchte einen Nockenwerk simulieren, dass auch mit bei 20.1 z.B. Schalten kann.
Der Winkel muss imho zunächst mal auf Mod 360 Grad runtergekürzt werden
Als Vorgabe sind:
Mein Problem ist, dass die MOD-Funktion zwei Integer benötigt,
bei TRUNC funktionierts bei Einschalten korrekt, jedoch gehts dann bei N! nur ein ganzahligen Schritten, also N1 = 20.0 und N1 = 20.6 haben die gleiche Auswirkungen.
Aber wie komme ich an die Nachkommastelle von Winkel_zykl? Steh grad ein bisschen auf der Leitung :-?
Gruss K.
ich versuch gerade eine MOD-Funktion für Gleitkomma, REAL zu implementieren. Der Hintergrund: Ich möchte einen Nockenwerk simulieren, dass auch mit bei 20.1 z.B. Schalten kann.
Der Winkel muss imho zunächst mal auf Mod 360 Grad runtergekürzt werden
Als Vorgabe sind:
Code:
VAR_INPUT
// Eingangsparameter
Winkel: REAL; // Aktueller Drehwinkel
N0 : REAL; // Nocken-Anfang (
N1 : REAL; // Nocken-Ende
END_VAR
VAR_OUTPUT
// Ausgangsparameter
Nocken : BOOL; // Nocken betätigt
END_VAR
VAR_TEMP
Winkel_zykl : REAL; // Zyklischer Winkel
END_VAR
Winkel_zykl := TRUNC(Winkel) MOD 360; // + Realzahl
IF (Winkel_zykl >= N0 ) AND (Winkel_zykl <= N1) THEN
Nocken := TRUE;
ELSE
Nocken := FALSE;
END_IF;
END_FUNCTION
bei TRUNC funktionierts bei Einschalten korrekt, jedoch gehts dann bei N! nur ein ganzahligen Schritten, also N1 = 20.0 und N1 = 20.6 haben die gleiche Auswirkungen.
Aber wie komme ich an die Nachkommastelle von Winkel_zykl? Steh grad ein bisschen auf der Leitung :-?
Gruss K.