Hallo!
Ich möchte eine kleine Maschine bauen, die Teile über ein Fließband transportiert und einfeche Bearbeitungen macht - z. B. drehen, wenden, zur Seite schieben. (z. B. wird über eine Lichtschranke die Position des Teils erkannt - liegt es falschrum auf dem Band, muss es gedreht werden.) Auf den Fließband befinden sich mehrere Teile in gleichen Abständen. Sie werden sozusagen mit jedem Takt von einer Bearbeitungsstation zur nächsten weitergeschoben. Die Teile müssen zum Drehen/Wenden im richtigen Moment gegriffen werden.
Das Fließband wird über einen echten Servomotor mit Servotreiber (von JMC) angetrieben. Die Position könnte ich also zu jeder Zeit bestimmen. Ich bin mir noch nicht sicher, ob die Geschwindigkeit innerhalb eines Vorschubtaktes konstant ist oder (wahrscheinlicher) langsam beschleunigt und wieder abbremst. Wahrscheinlich werde ich versuchen, dei Teile möglichst schnell vor zu schieben, dabei aber die Beschleunigung zu begrenzen und dann gibt es einen Moment Stillstand, wo das Teil z. B. gedreht werden kann. Vielleicht ist es aber auch besser, das Band durchgehend mit konstanter Geschwindigkeit laufen zu lassen. Es gibt Bewegungen, die gleichzeitig mit dem Vorschub stattfinden (z. B. beim Wenden). Es gibt auch unterschiedliche Teile, so das je nach dem Typ die Taktzeiten, Geschwindigkeiten, Beschleunigungen und die Bewegungen selbst variiert werden können/müssen. Die Geschwindigkeit kann auch insgesamt variiert werden - wenn die Maschine angelaufen ist und alles funktioniert, kann man sie hochdrehen. Dem Servo gebe ich also entsprechende Befehle oder Parameter, damit er beschleunigt und bremst usw., um das Fließband wie gewünscht anzutreiben.
Die Motore (Servos SG90 oder Schrittmotore), die die Bewegungen der Teile machen, müssen nun synchron zur Fließbandbewegung gesteuert werden. Aber wie sage ich diesen Motoren, wann sie starten und wie schnell sie sich bewegen sollen, damit die Bewegung bei variierenden Geschwindigkeiten (Taktzeiten) oder Beschleunigungen des Bandes immer in der gleichen Weise synchron zur Fließbandbewegung ist.
Ich vermute, es wird etwas hakelig, wenn ich die Zeit (sagen wir mal eine Sekunde pro Takt) in Abschnitte zerlege, die Positionen berechne und die Motore/Servos an die gewünschte Stelle steuere. Dann bekomme ich ruckelige Bewegungen oder ich muss sehr kurze Zeitintervalle nehmen, was sicher größeren Rechenaufwand bedeutet. Eigentlich sollen die Bewegungen ja fließend sein.
Wie kriegt man das hin? Hat jemand Erfahrung, wie man so eine Synchronisierung von Motoren/Bewegungen generell macht?
Letztlich will ich das mit einem µC steuern.