Das ist sicherlich der beste Weg. Wenn Du jemanden direkt fragen kannst, tue das. Da kann man viel schneller Rückfragen stellen an Leute, von denen man sich selbst schon ein Bild gemacht hat.
Ich habe letztes Jahrtausend (zu Zeiten, als der LTP-Port noch das A und O der Steuerungsprogrammierung war) mal eine proprietäre Schrimosteuerung auf 16 Kanälen mit einem 68332 (mit TPU = Time processor unit, quasi ein Timer-Coprozessor) programmiert. Das gute Stück sollte Schrittmuster für Linien und Bögen mit linearer Beschleunigung/Bremsung generieren, wobei die Kanäle beliebig zu sýnchronisierten Gruppen (1 Master, mehrere Slaves, die der Masterbewegung relativ folgten) zusammengefasst werden konnten.
Abgesehen davon, dass das Projekt nie für mehr als drei Achsen verwendet wurde, hat sich die Uhr doch bestimmt weitergedreht. Es gibt doch sicher mittlerweile auch Normen, die die Beschreibung von Bahnen in Linien, Bögen und Splines beschreibt.
Ansonsten dürfte die Vorgehensweise so sein, wie früher: Bei den typischen Anforderungen an die Taktrate der einzelnen Achsen irgendwo im 10..50-kHz-Bereich (Mikrostep) nutzt man Timer, die durch kurze Geradenstücke irgendwo im ms-Bereich Bahnen interpolieren. Da man kaum einen Controller mit 21 Timern findet, wird man die Sache auf mehrere kleine untereinander synchronisierte Controller verteilen, denen man jeweils für jeden OnBoard-Timer so kleine Befehle wie "Generiere mit Timer0 in den nächsten 2ms 83 Schritte in positive Drehrichtung" in den Fifo schreiben kann.
Ob man dann noch die Zerlegung der Bahnen am PC (so wie es der 3D-Drucker mit G-Code tut) als Vorberechnung vornimmt oder on the fly durch eine Zwischenstation (PC sendet Linien und Bögen, Mastercontroller zerhackt das in Liniensegmente, Taktcontroller führen die Liniensegmente im erforderlichen Timing aus), muss man dann sehen. Wird wohl darauf ankommen, ob diese einmalig berechneten Pattern ausreichen, oder ob das System auf irgendetwas reagieren, also selbständig etwas entscheiden muss, das Einfluss auf die berechnete Bahn hat. Steppermotoren mit Positionsrückmeldung wären z.B. ein Beispiel dafür. Hier würde man typischerweise bei diagnostiziertem Schrittverlust auf einer Achse die anderen Achsen abbremsen, um den Fehler möglichst klein zu halten und asap zu korrigieren.
Was ne Herausforderung ist: Stepperendstufen gibt's fertig aufgebaut wie Sand am Meer. Die Versorgung dafür macht das System allerdings anfällig. Bei 21 Achsen sollte man sich im Vorfeld über die Dynamik im klaren sein. Das sind 21 Kandidaten zur Erzeugung von Spannungseinbrüchen und Rückspeisungen über die Freilaufdioden. Wenn das nicht sauber verdrahtet und entstört ist, wird das nix.
Lesezeichen