Modi, Sitzungen und Anhalten
Diese Referenz richtet sich an Entwickler von Steuerungssoftware. Der gemeinsam genutzte Controller übernimmt den Sitzungsaufbau für Wiedergabe, Teleoperation und Optimierung; Führen Sie daneben keine zweite manuelle Setup-Sequenz aus.
Beim Zurücksetzen wird der Legacy-Modus ausgewählt. Die Extension-Konfiguration befindet sich im RAM und wird nicht automatisch vom EEPROM wiederhergestellt. Vor einem Neustart muss die Software ihre Fähigkeiten überprüfen und das Protokoll 9.0 unterstützen.
Legacy-Modus
Der Legacy-Modus unterstützt die Standard-STS-Registerschnittstelle, einschließlich Motorleistung, Betriebsmodus, Positions- und Geschwindigkeitsbefehle sowie Statusmesswerte. Vorhandene STS-Software kann die Register 0 – 86 verwenden, ohne die Erweiterung zu aktivieren.
In älteren Positionsmodi wird die gemessene Position auch außerhalb der gespeicherten Grenzen beibehalten, wenn die Motorleistung ohne einen neuen Positionsbefehl aktiviert wird. Es wird kein altes Ziel erneut abgespielt und die Welle nicht bis zur nächsten Grenze bewegt. Neue Positionsbefehle sind weiterhin auf die gespeicherten Grenzwerte begrenzt.
Die Erweiterung verwendet ihre eigenen Bewegungs- und Steuerungseinstellungen. Verstärkungswerte sollten nicht direkt zwischen den beiden Modi kopiert werden, da ihre Maßstäbe unterschiedlich sind. Die Unterstützung der Standardbefehle garantiert nicht das identische physikalische Verhalten aller Servomodelle.
Erweiterungsmodus starten und stoppen
Die folgende Sequenz verwendet die später dokumentierten Registernummern und Befehle. Die Auswahl bereitet eine Sitzung vor. Die Aktivierung der Motorleistung startet die Steuerung.
- Suchen Sie die IDs der angeschlossenen Servos und lesen Sie die Fähigkeiten jedes Servos ab. Suchen Sie nach
ARMCund Version9.0. Wiederholen Sie diese Prüfung nach einem Reset oder einer Firmware-Änderung. - Schalten Sie die Motorleistung aus, indem Sie das Legacy-Drehmoment-Aktivierungsregister 40 auf
0setzen. Beenden Sie eine beliebige bestehende Sitzung und wenden Sie alle dauerhaften Legacy-Einstellungen an. - Schreiben und lesen Sie die vollständige Konfiguration (
0xA0) zurück, einschließlich der Geschwindigkeits-Feedforward-Einstellungen und der Schwerkraftanstiegsrate. - Schreiben Sie
mode=1und eine neue Sitzungsnummer ungleich Null in0xB8(insgesamt 3 Bytes). Dadurch wird der Erweiterungsmodus ausgewählt und der nächste Start vorbereitet; Der Strom bleibt ausgeschaltet. - Setzen Sie das Register 40 auf
1. Die Firmware überprüft Sensoren, Schutzstatus, Konfiguration und gespeicherte Positionsgrenzen und erfasst dann die gemessene Position als anfängliches Halteziel. Befehlszähler, I-Korrektur und Schwerkraftkompensation beginnen bei Null. Lesen Sie0xC1und warten Sie auf die richtige Sitzung, die aktuell verwendbaren Messungen, den aktivierten Motorantrieb und die Ausgangsbereitschaft. - Senden Sie Ziele und etwaige Schwerkraftaktualisierungen. Lesen Sie das Feedback, um zu überprüfen, welche Befehle angenommen wurden und wie genau das Servo ihnen folgt.
- Der Servo beendet seine letzte Bewegung und hält das Ziel, bis ihm ein neues Ziel gegeben wird. Setzen Sie das Register 40 auf
0, um den Motor auszuschalten und die Sitzung zu beenden. Um zum Legacy-Modus zurückzukehren, lassen Sie die Stromversorgung ausgeschaltet und schreiben Siemode=0, session=0in0xB8.
Wenn ein Start fehlschlägt, kehrt das Register 40 zu 0 zurück. Die normale Schreibbestätigung allein bestätigt den erfolgreichen Start nicht: Überprüfen Sie die Registerauslesung und Rückmeldung. Jeder Startversuch verbraucht die vorbereitete Sitzung. Beheben Sie nach einem fehlgeschlagenen Start, einer Drehmomentabschaltung oder einer Schutzabschaltung die Ursache und schreiben Sie 0xB8 mit einer neuen Sitzungsnummer, bevor Sie das Drehmoment erneut aktivieren. Durch wiederholtes Aktivieren des Drehmoments während der Steuerung bleiben die Ziel-, Kompensations- und Befehlszähler erhalten.
Befehle, die einen angetriebenen Motor bewegen oder anpassen, erfordern fertige Hardware, keinen gemeldeten Fehler und Sensorwerte, die nicht länger als 2 ms sind. Der Controller aktualisiert normalerweise alle 1 ms und akzeptiert Intervalle bis zu 2 ms. Längere Lücken führen dazu, dass die Motorleistung deaktiviert wird.
Vermeiden Sie bei Verwendung der Erweiterung ältere Schreibvorgänge in das Betriebsmodusregister 33 oder die Bewegungsregister 41 – 47 : Sie schalten den Motor aus und verlassen den Erweiterungsmodus. Durch das Speichern dauerhafter Einstellungen wird auch die Erweiterungssteuerung beendet. Wenn Sie das Register 40 auf 0 setzen, bleibt der Erweiterungsmodus ausgewählt, bereit für die Einrichtung einer weiteren Sitzung.
Wenn keine Hostbefehle mehr eintreffen
Das Servo beendet die letzte akzeptierte Bewegung und behält dieses Ziel bei. Die Schwerkraftkompensation nähert sich weiterhin dem zuletzt angeforderten Wert und bleibt dort. Es sind keine wiederholten Nachrichten erforderlich, um die Sitzung aktiv zu halten, und der Verlust der Host-Kommunikation führt nicht selbst zu einer Änderung des Ziels oder zum Abschalten der Motorleistung.
Um die Richtung des Servos zu ändern, senden Sie ein anderes Ziel. Um den Motor freizugeben, setzen Sie die Drehmomentfreigabe auf Null. Sensorfrischeprüfungen, Motorschutz und der Firmware-Watchdog bleiben beim Bewegen und Halten aktiv.
Unterscheiden Sie drei Zeitmechanismen
| Mechanismus | Was es prüft |
|---|---|
| Aktualität des Firmware-Sensors | Verwendbare lokale Messungen; Für Steuerbefehle mit Stromversorgung sind Messwerte erforderlich, die nicht älter als 2 ms sind |
| Host-Checks | Frame-/Feedback-Alter und Schwerkraftfristen; Ein Verstoß löst den entsprechenden Bereinigungsversuch aus |
| Fehlende Busnachrichten | An sich handelt es sich nicht um eine Firmware-Zeitüberschreitung, die die Warteschleife oder die letzte Schwerkraftanforderung löscht |
Das Host-Befehlsintervall ist nicht das ms-Steuerintervall des Servos 1. Ein Servo kann die akzeptierte Bewegung fortsetzen, nachdem der Host aufgehört hat zu laufen.
Werkzeugstoppverhalten
| Werkzeug / Veranstaltung | Erwartete Aktion |
|---|---|
| Extension-Wiedergabe: Normaler Abschluss oder Strg+C | Behalten Sie das letzte Ziel und den aktiven Halt bei; Warten Sie bei konfigurierter Schwerkraft die verbleibende Bewegung und bestätigen Sie die endgültige Kompensation |
| Teleoperation: Normaler Abschluss oder Strg+C | Hören Sie auf, neue Ziele auszugeben, und behalten Sie die Macht bei; Das Warten auf den Abschluss hängt davon ab, ob die Schwerkraft konfiguriert ist |
| Tuning: normale Fertigstellung | Stellen Sie die konfigurierte Grundlinie wieder her und behalten Sie die Sperre bei |
| Tuning: Strg+C während eines Batches | Unterbrechen Sie die Drehmomentabschaltung und versuchen Sie es |
| Legacy-Wiederholung: normaler Abschluss | Behalten Sie die letzte Pose bei |
| Legacy-Wiedergabe: Strg+C oder Fehler | Versuchen Sie, das Drehmoment abzuschalten |
| Rekorder: erfolgreicher Abschluss | Lassen Sie ausgewählte Motoren stromlos |
| Schließen des Viewers | Hat keinen Einfluss auf die Hardwaresteuerung |
| Prozess abgebrochen oder Bus getrennt | Es kann sein, dass die Aufräumarbeiten nie eintreffen; Firmware kann das letzte Ziel und die Schwerkraft beibehalten |
Wenn ein Schwerkraftmodell konfiguriert und die Motoren bereit sind, bedient der gemeinsam genutzte Controller die verbleibende Bewegung und Schwerkraft, wartet auf 200 ms Ruhezeit mit einem 30-Abschluss-Timeout und bestätigt die endgültige Kompensation. Ruhe bedeutet, dass Planer inaktiv sind und jede gemessene Position während dieser 200 ms innerhalb eines Ein-Zählbereichs bleibt; Es stellt keinen Zielfehler von Null fest.
Modellfehler, abgelehnte Aktualisierungen, veraltetes Feedback, verlorener Besitz, Alarme und validierte Temperaturen bei oder über 60 °C lösen einen verifizierten Drehmomentabschaltversuch aus. Eine Ausnahme ist eine versäumte Schwerkraftfrist während einer etablierten Warteschleife, wenn zwei neue Durchgänge in derselben Sitzung gesunde stationäre Motoren bestätigen. Der Lauf schlägt immer noch mit holdRetained: true fehl und wird nicht automatisch fortgesetzt.
Ohne ein Schwerkraftmodell führt der gemeinsam genutzte Controller diese letzte Ruhepause nicht durch. Die Wiedergabe benannter Posen wartet normalerweise auf jedes Ziel innerhalb der konfigurierten Toleranz, aber Strg+C kann diese Wartezeit unterbrechen. Daher kann die Wiedergabe oder Teleoperation beendet werden, während der Motor weiter auf das letzte Ziel zufährt.
Strg+C ist kein Hardware-Notstopp. Abschluss und Drehmomentfreigabe hängen von der Arbeitskommunikation ab; Die Installation muss einen sicheren mechanischen Zustand gewährleisten.
Startseite der Dokumentation · Quellrevision: a995f77 . Extension 9.0 .

