-
-
Erfahrener Benutzer
Roboter-Spezialist
hmmm ich kann leider nicht abschätzen, wie sich mehrere Timer (negativ) gegenseitig beeinflussen.
Bei 8-Bit Timern hätte ich Angst, dass sich die häufigeren Aufrufe beider Schrittmotoren gegenseitig ins "Handwerk" fuschen.
Außerdem steigt so die komplexität des Codes, ich müsste ja die beiden Timer wesentlich komplexer gegenseitig kompensieren (Eine Interrupt-Abartbeitung verzögert die des anderen) (soweit das überhaupt möglich ist).
Derzeit laufen die Motoren im Halbschritt = 400Schritte / Umdrehung. Der eine Motor hätte dafür eine Drehzahl von 3-4U/s -> *400 = 1600 Impulse - kommen noch die Wartezeiten (Ein-Aus) hinzu - werden daraus (habe ich vergessen) sogar 3200 Interrupts/sekunde.
Den Timer verwende ich auch für die Berechnung der Ein-Zeiten um ein maximal langen Ein-Impuls an der Schrittmotorendstufe zu haben.
[EDIT]
Danke für den Tip mit dem Simulator - konnte so genau die Zeitlich gemessene Differenz berechnen/ermitteln - also das haut sehr genau hin.
Jetzt muss ich den Code noch optimieren:
Bei maximaler Drehzahl beträgt der Timer 0.4ms - die Rechen-Verzögerung beläuft sich dabei auf 0.12ms zusätzlich!
-
Erfahrener Benutzer
Fleißiges Mitglied
Es wäre hilfreich wenn Du etwas mehr von Deinem Code posten würdest damit man verstehen kann was Du vor hast.
Für mich riechts stark nach ner CNC-Steuerung welche direkt mit G-Code gespeist werden soll und Deine Berechnungen könnten für Kreisbahnfahrten/Radiuskorrekturen von Nöten sein.
Das bleibt bei den wenigen Programmschnippseln aber Spekulation und bringt Dich nicht weiter.
Wenn Du die Motoren im Halbschritt betreibst nützt Dir die feine Auflösung der Encoder wenig wenn Dein Getriebe nicht passend aufgebaut und die ganze Anlage nicht in einem vollklimatisiertem Raum steht.
-
Erfahrener Benutzer
Roboter-Spezialist
Also geplant ist nur eine (langsame) 2-Achs-Steuerung!
Eventuell war noch eine externe Einspeisung von Bewegungsbefehlen (G-Codes) angedacht.
Aber für eine CNC-Steuerung wird ein Atmega (zum jetztigen Zeitpunkt) definitiv nicht reichen - bei einem Vorschub von 1000mm mit 3mm Steigung und Halbschritt bei 2Achsen-Bewegung ist der Atmega rein rechnerisch an der Grenze! Und da ist eine Interpolation noch nicht bedacht.
Jetzt bin ich abert erstmal damit beschäftigt das Ganze unter C++ (gcc) zum Laufen zu bekommen. Die Bascom-Demo schränkt zu stark ein, auch wenn sie wesentlich übersichtlicher/einfacher ist.
Sobald ich den Code übersetzt habe werde ich versuchen ihn zu optimieren. Dann kann ich nochmal mehr über eine CNC-3-Achs-Steuerung spekulieren!
-
Erfahrener Benutzer
Fleißiges Mitglied
Ohne Dir zu Nahe treten zu wollen:
Ich glaube das Du Dich vorher nochmal ganz intensiv mit G-Code auseinandersetzen solltest. Der kann nämlich schon seines Alters wegen kaum Rechenlast verursachen.
Wie schon weiter vorne geschrieben macht eine Auflösung im µm-Bereich ohne Temperaturkompensation (thermisch wie auch Messtechnisch) keinen Sinn. Alles unter 1/100mm Zustellung lässt sich nur noch mit hochpräzisen Werkzeugmaschinen erreichen die dann ohnehin mit entsprechenden Mess- und Antriebssystemen ausgestattet sind.
Anders beschrieben:
Einmal gegen das Werkstück gehaucht oder in dem Raum, in dem die Maschine steht was vom Tisch geschmissen und der Versuch das Maß auf 2µm genau zu halten ist für'n Arsch.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen