Step/Dir Input Servo Drive: Wie funktioniert es intern im Vergleich zu einem Serial Input Drive?

Ich glaube, dass die gängigste Art von Servoantrieben auf STEP/Direction-Eingabe basiert, die von den Schrittmotorsteuerungen geerbt wird.

Meine Frage ist, wie funktioniert die Art des Controllers intern?

Meine Logik sagt: Der Schritteingang ist mit einem "Timer" im Zählermodus im Mikrocontroller verbunden, und basierend auf der Richtungseingabe wird das Aufwärts- / Abwärtszählen automatisch ausgewählt. Diese Zahl wird dann von einem Encoder-Impulszähler subtrahiert und die Differenz in eine PID-Schleife eingespeist. Stimmt das?

Wenn dies richtig ist, unterscheidet sich seine Leistung von einem Servoantrieb, der eine serielle Schnittstelle verwendet, um die erforderliche Position direkt zu erhalten? Das Hauptanliegen ist die Bewegungsplanung, da Sie bei einem solchen Laufwerk die Schritte beim Starten und Stoppen nicht langsam füttern, um die Beschleunigung und Verzögerung zu steuern.

Ich würde nicht sagen, dass sie die häufigsten sind. Es gibt viele, und die meisten aktuellen Servocontroller unterstützen auch Schritt und Richtung als Eingabe (sowie Takt-/Gegentaktimpulse und Quadratur), aber ich vermute, dass sowohl das traditionelle analoge +/-10 V als auch das moderne Protokoll basierend (sercos , modbus, können) die Schritt-/Richtungs-Controller (aus Gründen, die Marco erwähnt hat) übertreffen.

Antworten (1)

Die richtige Antwort wäre sehr umfassend, also werde ich versuchen, die Grundlagen zu beantworten.

Sie haben Recht mit der Verwendung von Zählern zur Bestimmung des Positionssollwerts.

Unterscheidet sich seine Leistung von einem Servoantrieb, der eine serielle Schnittstelle verwendet, um die erforderliche Position direkt zu erhalten?

Ja, da digitale Daten zyklisch zu deterministischer Zeit gesendet werden, während Step/Dir einen FPGA/ASIC benötigen würde, um den Drehzahlsollwert aus der Frequenz-/Periodenmessung von Impulsen zu berechnen, wodurch die Sollwertinformationen nicht deterministisch werden, was in der Tat nicht gut ist Weiterleitung an die PID-Schleife. Es gibt einen Verzögerungsfilter erster Ordnung, um den Geschwindigkeitssollwert glatter zu machen.
Darüber hinaus können digitale Daten sowohl Geschwindigkeits- als auch Positionssollwerte haben, ohne dass eine Ableitung von der Impulsfrequenz erforderlich ist.

Das Hauptanliegen ist die Bewegungsplanung, da Sie bei einem solchen Laufwerk die Schritte beim Starten und Stoppen nicht langsam füttern, um die Beschleunigung und Verzögerung zu steuern.

Das ist falsch. Der Sollwert muss die Implementierung des Bewegungsprofils haben, bei dem die Beschleunigungs-/Verzögerungsgeschwindigkeit berücksichtigt wurde. Die Dinge sollen nicht mit einem Impulsstoß angetrieben werden, sondern eine kontrollierte Art des Sendens von Impulsen mit einem bestimmten Bewegungsprofil.

Es gibt verschiedene Antriebe/Ansätze:
1. Einzelachse, nicht synchronisiert: Sie können einen Bewegungsprofilgenerator in den Antrieb einbauen lassen, dann senden Sie nur den Positionssollwert, der Antrieb erledigt den Rest mit den Parametern Ruck, Beschleunigung, Verzögerung, Geschwindigkeit.
2. Mehrachsige, synchronisierte Bewegung: Der Antrieb arbeitet wie ein Geschwindigkeitsregler, die Bewegungsplanung und der Positionsregelkreis werden in einem übergeordneten System berechnet. Die digitalen Daten sind: Geschwindigkeit,...

BEARBEITEN:

Einzelachse (eingebauter Bewegungsprofilgenerator). Normalerweise senden Sie über serielle Kommunikation. Zielposition und Steuerbits:
- Servo ein, Freigabe: legt Strom an den Motor und löst die Bremse (falls vorhanden)
- /Stop: der Antrieb trudelt bis zum Stillstand mit einer festgelegten Rampe aus, die zum sanften Stoppen der Maschine verwendet wird
- /StopE : Antrieb trudelt mit sehr hoher Verzögerung bis zum Stillstand aus, zu verwenden für Notstopp
- PosEnable - Setzen Sie dieses Bit, um Positionierfahrt zu ermöglichen, Antrieb fährt auf Zielposition

Dann haben Sie einige Statusbits für Ihre App, vielleicht ein Bit, das anzeigt, dass die Position erledigt ist, wichtig ist. Wenn der Antrieb die Zielposition erreicht, setzt er dieses Bit, aber aufgrund der Kommunikationsverzögerung wissen Sie nie genau, ob sich dieses Bit auf die aktuelle oder auf die vorherige Bewegung bezieht. Sie sollten einige Tricks anwenden, um dieses Bit entsprechend der tatsächlichen Position und der Zielposition auszuwerten, und einen eigenen Code erstellen, der dieses Bit anzeigt, wenn sich der Antrieb im Toleranzfenster befindet. Oder eine andere gute Möglichkeit besteht darin, die Zielposition vom Antrieb zum Host zurückzuschleifen, dies ist möglich, wenn Sie ein benutzerdefiniertes Kommunikationstelegramm einrichten können.

Antriebe mit denen ich gearbeitet habe (Siemens, Lenze, SEW, Indramat) erlauben die Änderung der Zielposition bei aktiver Positionierung, neues Profil wird aus Istposition, Geschwindigkeit, ... berechnet, ich denke, das ist eine Grundfunktion aller Antriebe mit eingebautem -in Profilgenerator.

Tolle Antwort, könnten Sie näher auf "Einzelachse nicht synchronisiert" eingehen. Wenn Sie also eine Position senden (Punkt-zu-Punkt-Bewegung), bestimmt die Steuerung das Bewegungsprofil und wie viel Zeit benötigt wird, um die Zielposition zu erreichen, und teilt sie dann auf Punkte, an denen an jedem Punkt die Geschwindigkeit und Beschleunigung (oder das Drehmoment) in die entsprechende Schleife eingespeist werden, richtig ?? wenn nein, bitte erklären, wenn ja, was ist, wenn während dieser Bewegung ein weiterer Befehl empfangen wird (ähnlich wie im Tracking-Modus, natürlich muss ein neues Bewegungsprofil berechnet werden, aber beschädigt dies die Bewegung und verursacht plötzliche Rucke?
@ElectronS Ich habe meine Antwort bearbeitet.
Vielen Dank, ich werde auch die Datenblätter und Bedienungsanleitungen der von Ihnen genannten Unternehmen (Seimens, Lenze ...) auf weitere Details überprüfen. Ich bekomme das Bild jetzt klarer, Grüße :)