nutellahase
Level-2
- Beiträge
- 180
- Reaktionspunkte
- 28
-> Hier kostenlos registrieren
Hallo hätte da mal eine grundlegende Frage zur Getriebeberechnung mit Modulofunktion. Modulo heißt ja nichts anderes dass sich mich ständig innerhalb eines bestimmten Intervalls bewege (z.B. Modulo 720 => 0-719).
Jetzt habe ich hier einen Baustein wo so ein Getriebe mittels Drehgeber berechnet wird. Dessen Welle ist mit einem Zahnrad mechanisch verbunden. Ich weiß aber leider nicht wie der Ersteller dieses Bausteins auf die Getriebeposition kommt.
Die Kommentare sind für mich auch sehr schwammig...
Mechanik:
Zahnrad besteht aus 20 Zähne
Zähne pro Takt : 2 Zähne => Pro Maschinentakt bewegt sich also das Zahnrad um zwei Zähne weiter, d.h. nach 10 Takten hat das Zahnrad eine volle Umdrehung gemacht!
1 Geberumdrehung = 8192 Inkremente => nach 10 Takten habe ich mich einmal im Kreisbewegt
max. Umdrehungen d. Gebers = 4096 Umdrehungen => Multiturn nach 8192*4096 Inkrementen beginnt der Geber wieder bei 0 (in der Steuerung beobachtet)
Und ab hier weiß ich dann nicht mehr weiter:
Das sieht ja nicht nach einem einfachen Dreisatz aus. Was für eine Einheit hat meine Position dann eigentlich? Oder ist dies Einheitslos? Außerdem wird an einer anderen Stelle ein ev. Überlauf miteinberechnet wozu dient der? Der Wert läuft dann wirklich zwischen 0-1024! Ist dieser Rechenschritt für irgendjemand nachvollziehbar?? Warum wird hier zuerst moduliert und dann durch den Zähler dividiert??
Jetzt habe ich hier einen Baustein wo so ein Getriebe mittels Drehgeber berechnet wird. Dessen Welle ist mit einem Zahnrad mechanisch verbunden. Ich weiß aber leider nicht wie der Ersteller dieses Bausteins auf die Getriebeposition kommt.
Die Kommentare sind für mich auch sehr schwammig...
Mechanik:
Zahnrad besteht aus 20 Zähne
Zähne pro Takt : 2 Zähne => Pro Maschinentakt bewegt sich also das Zahnrad um zwei Zähne weiter, d.h. nach 10 Takten hat das Zahnrad eine volle Umdrehung gemacht!
1 Geberumdrehung = 8192 Inkremente => nach 10 Takten habe ich mich einmal im Kreisbewegt
max. Umdrehungen d. Gebers = 4096 Umdrehungen => Multiturn nach 8192*4096 Inkrementen beginnt der Geber wieder bei 0 (in der Steuerung beobachtet)
Und ab hier weiß ich dann nicht mehr weiter:
Code:
Errechnete Werte
8192 = (8192 *2)/20 = (8192*1)/10 = 8192/10
8388608 = Getriebe * 8192 = 1024 * 8192
33554432 = Inkr/Umdr * Anzahl/Umdr = 8192 * 4096
L #AktuellePosition
L #Nenner // 10
*D
L #Getriebeoffset
+D
L #Modulowert // 8388608
MOD
DTR
L #Zaehler // 8192
DTR
/R
T #Position
Das sieht ja nicht nach einem einfachen Dreisatz aus. Was für eine Einheit hat meine Position dann eigentlich? Oder ist dies Einheitslos? Außerdem wird an einer anderen Stelle ein ev. Überlauf miteinberechnet wozu dient der? Der Wert läuft dann wirklich zwischen 0-1024! Ist dieser Rechenschritt für irgendjemand nachvollziehbar?? Warum wird hier zuerst moduliert und dann durch den Zähler dividiert??