-> Hier kostenlos registrieren
Guten Morgen zusammen,
ich habe ein Nockensteuerwerk in SCL entwickelt welches Drehgeberdaten über eine SM338 verarbeitet.
Es funktioniert auch alles soweit super. Das einzige Problem das ich habe ist, falls ein Nocken über den Nulldurchgang parametriert wird (z.B. 355° - 15°)
passt meine Formel nicht mehr.
Momentan prüfe ich so:
Nocken im Bereich von 0 - 360 passen soweit:
z.b.
T_RE_CAM_Begin = 220°
T_RE_CAM_End = 300°
CAM_CH.ACTUAL_POS = 280°
==> Nocken ist aktiv da 280° größer 220° und kleiner 300°
Nocken im Bereich des Nulldurchgangs z.B. 355° - 15° passen nicht:
z.b.
T_RE_CAM_Begin = 355°
T_RE_CAM_End = 15°
CAM_CH.ACTUAL_POS = 3°
==> Nocken ist nicht aktiv da 3° nicht größer als 355°
Natürlich könnte ich das über ein weiters if oder else_if lösen z.B.
Ich möchte das aber nicht doppelt im Code haben.
Weiß jemand eine mathematische Formel mit welcher folgendes auch im Nulldurchgang gültig ist:
Komm einfach nicht dahinter
Grüße Pico
ich habe ein Nockensteuerwerk in SCL entwickelt welches Drehgeberdaten über eine SM338 verarbeitet.
Es funktioniert auch alles soweit super. Das einzige Problem das ich habe ist, falls ein Nocken über den Nulldurchgang parametriert wird (z.B. 355° - 15°)
passt meine Formel nicht mehr.
Momentan prüfe ich so:
//Aktuelle Position ist im Nockenbereich
IF CAM_CH.ACTUAL_POS >= T_RE_CAM_Begin AND
CAM_CH.ACTUAL_POS <= T_RE_CAM_End THEN
//Nocken aktiv
;
END_IF;
Nocken im Bereich von 0 - 360 passen soweit:
z.b.
T_RE_CAM_Begin = 220°
T_RE_CAM_End = 300°
CAM_CH.ACTUAL_POS = 280°
==> Nocken ist aktiv da 280° größer 220° und kleiner 300°
Nocken im Bereich des Nulldurchgangs z.B. 355° - 15° passen nicht:
z.b.
T_RE_CAM_Begin = 355°
T_RE_CAM_End = 15°
CAM_CH.ACTUAL_POS = 3°
==> Nocken ist nicht aktiv da 3° nicht größer als 355°
Natürlich könnte ich das über ein weiters if oder else_if lösen z.B.
IF T_RE_CAM_Begin > T_RE_CAM_End THEN
;//To Do: Nullübergng fehlt
END_IF;
Ich möchte das aber nicht doppelt im Code haben.
Weiß jemand eine mathematische Formel mit welcher folgendes auch im Nulldurchgang gültig ist:
Komm einfach nicht dahinter

IF CAM_CH.ACTUAL_POS >= T_RE_CAM_Begin AND
CAM_CH.ACTUAL_POS <= T_RE_CAM_End THEN
Grüße Pico