KUKA KRC4 $POS_ACT Position Mismatch After Loop: Advance Run Troubleshooting — figure 1

KUKA KRC4 $POS_ACT Positionsabweichung nach Schleife: Fehlerbehebung beim Vorauslauf

KUKA KRC4 $POS_ACT gibt nach dem ersten Programmschleifendurchlauf den doppelten A-Versatz der Werkzeugdaten zurück. Die Ursache wurde auf das Verhalten des ...

Bei KUKA-KRC4-Steuerungen mit KSS 8.2 oder 8.3 beobachten Programmierer gelegentlich, dass $POS_ACT nach der ersten Schleifeniteration einer Bewegungsroutine ungefähr den doppelten vorgesehenen A-Versatz des Werkzeugs meldet. Der Roboter ist dabei nicht physisch gesprungen; der Advance Run Pointer lief in nachfolgende Anweisungen weiter, während $POS_ACT weiterhin eine befohlene, werkzeug- und basisabhängige Pose widerspiegelte, die nicht mehr der Messung entsprach, die der Programmierer protokollieren oder als Rahmenreferenz verwenden wollte.

KUKA KRC4 $POS_ACT-Positionsabweichung nach Schleife: Fehlerbehebung beim Advance Run – Abbildung 1 Anzeige am KUKA-KRC4-Handbediengerät zum Vergleich von befohlener $POS_ACT mit gemessener $POS_ACT_MES während eines Schleifenprogramms.

$POS_ACT ist im Sinne der programmierten Roboterpose die befohlene Istposition, die durch das aktive Werkzeug und die aktive Basis transformiert wird. Daher hängt sie davon ab, wann der Interpreter weiterläuft. $POS_ACT_MES ist die gemessene Position aus dem Rückmeldepfad des Roboters und die sicherere Variable, wenn die physische Pose an einem Synchronisationspunkt benötigt wird. Die Verwechslung beider Variablen erzeugt Symptome eines „doppelten Versatzes“, die nach dem ersten Zyklus wie ein Fehler bei der Werkzeugkalibrierung aussehen – insbesondere wenn ein A-Achsen-Werkzeugversatz innerhalb einer Schleife angewendet wird, die vom Advance Run bereits teilweise ausgewertet wurde.

Der Advance Run Pointer als Ursache

Der Advance Run von KUKA führt bevorstehende Anweisungen aus, bevor der Roboter das genaue Ende der aktuellen Bewegung erreicht. Dieses Vorabladen ist für die Bahnverschleifung unerlässlich, bedeutet aber auch, dass Zuweisungen und Rahmenberechnungen, die $POS_ACT lesen, früher ausgelöst werden können, als es dem menschlichen Verständnis von „Ankunft“ entspricht. Bei der ersten Iteration kann das Timing zufällig korrekt aussehen. Bei der zweiten Iteration kann sich ein relativ zu einer vorzeitig gelesenen $POS_ACT angewendeter Versatz mit der Werkzeugtransformation addieren und in Anzeigen oder Aufzeichnungen als ungefähr das Zweifache der A-Versatzkomponente erscheinen.

KUKA KRC4 $POS_ACT-Positionsabweichung nach Schleife: Fehlerbehebung beim Advance Run – Abbildung 2 Darstellung, wie der Advance Run Pointer in die Schleifenlogik weiterläuft, während der Roboter noch das vorherige Bewegungssegment abschließt.

Techniken zur Behebung

  • Fügen Sie am Synchronisationspunkt, an dem der Advance Run vor dem Lesen oder Schreiben von posenbezogenen Daten angehalten werden muss, WAIT SEC 0 ein.
  • Rufen Sie BAS(#INITMOV,0) auf, wenn Sie Bewegungsparameter neu initialisieren, damit nachfolgende Bewegungen mit einem sauberen Basierungszustand beginnen, anstatt einen halb ausgewerteten Kontext zu übernehmen.
  • Setzen Sie $ADVANCE=0 in Abschnitten, die eine kritische Posenerfassung, Werkzeugversatzberechnung oder schleifenübergreifende Rahmenaktualisierung durchführen. Stellen Sie später für den Produktionsdurchsatz wieder einen Wert ungleich null ein.
  • Verwenden Sie $POS_ACT_MES, wenn die Anwendung die gemessene kartesische Pose statt des vom Pointer abhängigen befohlenen Werts benötigt.
; Beispiel für ein Synchronisationsmuster (konzeptionell)
$ADVANCE=0
WAIT SEC 0
; Jetzt die gemessene Pose erfassen
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Advance für die Verschleifung entsprechend den Anforderungen der Zelle wiederherstellen
$ADVANCE=3

Diagnosesequenz

  1. Zeichnen Sie $POS_ACT und $POS_ACT_MES in der fehlerhaften Schleife bei Iteration 1 und Iteration 2 an derselben Programmzeile auf.
  2. Bestätigen Sie, dass sich die Nummern des aktiven Werkzeugs und der aktiven Basis zwischen den Iterationen nicht geändert haben.
  3. Setzen Sie $ADVANCE testweise auf 0 und führen Sie den Test erneut durch. Verschwindet der doppelte A-Versatz, ist die Wechselwirkung mit dem Advance Run bestätigt.
  4. Ersetzen Sie für die Versatzberechnung verwendete Posenauslesungen durch $POS_ACT_MES oder schützen Sie sie mit WAIT SEC 0.
  5. Führen Sie den Advance Run nur außerhalb des kritischen Abschnitts wieder ein und prüfen Sie Zykluszeit und Bahnqualität.
Variable / Aufruf Bedeutung Verwendung
$POS_ACT Befehls-Pose (werkzeug-/basisabhängig) Allgemeiner Bewegungskontext; Vorsicht beim Advance Run
$POS_ACT_MES Gemessene Pose Protokollierung, Prüfungen, Versatzberechnung an Synchronisationspunkten
WAIT SEC 0 Unterbricht den Advance Run Vor kritischen Lese-/Schreibvorgängen
BAS(#INITMOV,0) Initialisiert die Bewegungsbasis neu Nach Synchronisationen oder Moduswechseln
$ADVANCE=0 Deaktiviert den Advance Run Enge, posenkritische Abschnitte (KSS 8.2/8.3)

Gemessene und befohlene Pose nach der Synchronisation bestätigen

Eine Neukalibrierung des Werkzeugs, weil $POS_ACT „doppelt“ aussieht, kann einen einwandfrei eingemessenen TCP dauerhaft beschädigen. Ebenso führen zusätzliche kompensierende Versätze in der SPS oder in einem Submit-Interpreter ohne Verständnis des Advance Runs zu versionsabhängigen Behelfslösungen. Dokumentieren Sie bei der Aufzeichnung von Traces für den Herstellersupport, welche KSS-Version in der Zelle läuft – 8.2 oder 8.3 – und vermerken Sie, ob Optionen für absolute Genauigkeit oder spezielle Basen aktiv sind.

Roboter- und SPS-Integrationszellen, die Posen über einen Feldbus austauschen, sollten festlegen, ob der gemeinsame Rahmen befohlen oder gemessen ist, und diese Definition in der Schnittstellenspezifikation dokumentieren. Eine frühzeitige Abstimmung dieser Vereinbarung verhindert falsche Ausschussereignisse, wenn ein SPS- und PAC-Systeme-Sequencer auf eine Pose reagiert, die der Advance Run tatsächlich noch nicht erreicht hat.

Über die Autorin

Elena Vogt | Ingenieurin für Roboterintegration – KUKA / diskrete Fertigungszellen

Elena Vogt ist auf die Inbetriebnahme von KUKA KRC4/KSS, die Diagnose von Werkzeugrahmen und SPS-Roboter-Handshakes in gemischten diskreten Zellen spezialisiert. Ihr Schwerpunkt liegt auf Nebenwirkungen des Advance Runs, gemessenen und befohlenen Posenvariablen sowie stabilen Abwägungen zwischen Zykluszeit und Prozessleistung.

KUKA KRC4 $POS_ACT Positionsabweichung nach Schleife: Fehlerbehebung beim Vorauslauf

KUKA KRC4 $POS_ACT gibt nach dem ersten Programmschleifendurchlauf den doppelten A-Versatz der Werkzeugdaten zurück. Die Ursache wurde auf das Verhalten des Advance Run Pointers zurückgeführt.

Bei KUKA-KRC4-Steuerungen mit KSS 8.2 oder 8.3 beobachten Programmierer gelegentlich, dass $POS_ACT nach der ersten Schleifeniteration einer Bewegungsroutine ungefähr den doppelten vorgesehenen A-Versatz des Werkzeugs meldet. Der Roboter ist dabei nicht physisch gesprungen; der Advance Run Pointer lief in nachfolgende Anweisungen weiter, während $POS_ACT weiterhin eine befohlene, werkzeug- und basisabhängige Pose widerspiegelte, die nicht mehr der Messung entsprach, die der Programmierer protokollieren oder als Rahmenreferenz verwenden wollte.

KUKA KRC4 $POS_ACT-Positionsabweichung nach Schleife: Fehlerbehebung beim Advance Run – Abbildung 1 Anzeige am KUKA-KRC4-Handbediengerät zum Vergleich von befohlener $POS_ACT mit gemessener $POS_ACT_MES während eines Schleifenprogramms.

$POS_ACT ist im Sinne der programmierten Roboterpose die befohlene Istposition, die durch das aktive Werkzeug und die aktive Basis transformiert wird. Daher hängt sie davon ab, wann der Interpreter weiterläuft. $POS_ACT_MES ist die gemessene Position aus dem Rückmeldepfad des Roboters und die sicherere Variable, wenn die physische Pose an einem Synchronisationspunkt benötigt wird. Die Verwechslung beider Variablen erzeugt Symptome eines „doppelten Versatzes“, die nach dem ersten Zyklus wie ein Fehler bei der Werkzeugkalibrierung aussehen – insbesondere wenn ein A-Achsen-Werkzeugversatz innerhalb einer Schleife angewendet wird, die vom Advance Run bereits teilweise ausgewertet wurde.

Der Advance Run Pointer als Ursache

Der Advance Run von KUKA führt bevorstehende Anweisungen aus, bevor der Roboter das genaue Ende der aktuellen Bewegung erreicht. Dieses Vorabladen ist für die Bahnverschleifung unerlässlich, bedeutet aber auch, dass Zuweisungen und Rahmenberechnungen, die $POS_ACT lesen, früher ausgelöst werden können, als es dem menschlichen Verständnis von „Ankunft“ entspricht. Bei der ersten Iteration kann das Timing zufällig korrekt aussehen. Bei der zweiten Iteration kann sich ein relativ zu einer vorzeitig gelesenen $POS_ACT angewendeter Versatz mit der Werkzeugtransformation addieren und in Anzeigen oder Aufzeichnungen als ungefähr das Zweifache der A-Versatzkomponente erscheinen.

KUKA KRC4 $POS_ACT-Positionsabweichung nach Schleife: Fehlerbehebung beim Advance Run – Abbildung 2 Darstellung, wie der Advance Run Pointer in die Schleifenlogik weiterläuft, während der Roboter noch das vorherige Bewegungssegment abschließt.

Techniken zur Behebung

  • Fügen Sie am Synchronisationspunkt, an dem der Advance Run vor dem Lesen oder Schreiben von posenbezogenen Daten angehalten werden muss, WAIT SEC 0 ein.
  • Rufen Sie BAS(#INITMOV,0) auf, wenn Sie Bewegungsparameter neu initialisieren, damit nachfolgende Bewegungen mit einem sauberen Basierungszustand beginnen, anstatt einen halb ausgewerteten Kontext zu übernehmen.
  • Setzen Sie $ADVANCE=0 in Abschnitten, die eine kritische Posenerfassung, Werkzeugversatzberechnung oder schleifenübergreifende Rahmenaktualisierung durchführen. Stellen Sie später für den Produktionsdurchsatz wieder einen Wert ungleich null ein.
  • Verwenden Sie $POS_ACT_MES, wenn die Anwendung die gemessene kartesische Pose statt des vom Pointer abhängigen befohlenen Werts benötigt.
; Beispiel für ein Synchronisationsmuster (konzeptionell)
$ADVANCE=0
WAIT SEC 0
; Jetzt die gemessene Pose erfassen
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Advance für die Verschleifung entsprechend den Anforderungen der Zelle wiederherstellen
$ADVANCE=3

Diagnosesequenz

  1. Zeichnen Sie $POS_ACT und $POS_ACT_MES in der fehlerhaften Schleife bei Iteration 1 und Iteration 2 an derselben Programmzeile auf.
  2. Bestätigen Sie, dass sich die Nummern des aktiven Werkzeugs und der aktiven Basis zwischen den Iterationen nicht geändert haben.
  3. Setzen Sie $ADVANCE testweise auf 0 und führen Sie den Test erneut durch. Verschwindet der doppelte A-Versatz, ist die Wechselwirkung mit dem Advance Run bestätigt.
  4. Ersetzen Sie für die Versatzberechnung verwendete Posenauslesungen durch $POS_ACT_MES oder schützen Sie sie mit WAIT SEC 0.
  5. Führen Sie den Advance Run nur außerhalb des kritischen Abschnitts wieder ein und prüfen Sie Zykluszeit und Bahnqualität.
Variable / Aufruf Bedeutung Verwendung
$POS_ACT Befehls-Pose (werkzeug-/basisabhängig) Allgemeiner Bewegungskontext; Vorsicht beim Advance Run
$POS_ACT_MES Gemessene Pose Protokollierung, Prüfungen, Versatzberechnung an Synchronisationspunkten
WAIT SEC 0 Unterbricht den Advance Run Vor kritischen Lese-/Schreibvorgängen
BAS(#INITMOV,0) Initialisiert die Bewegungsbasis neu Nach Synchronisationen oder Moduswechseln
$ADVANCE=0 Deaktiviert den Advance Run Enge, posenkritische Abschnitte (KSS 8.2/8.3)

Gemessene und befohlene Pose nach der Synchronisation bestätigen

Eine Neukalibrierung des Werkzeugs, weil $POS_ACT „doppelt“ aussieht, kann einen einwandfrei eingemessenen TCP dauerhaft beschädigen. Ebenso führen zusätzliche kompensierende Versätze in der SPS oder in einem Submit-Interpreter ohne Verständnis des Advance Runs zu versionsabhängigen Behelfslösungen. Dokumentieren Sie bei der Aufzeichnung von Traces für den Herstellersupport, welche KSS-Version in der Zelle läuft – 8.2 oder 8.3 – und vermerken Sie, ob Optionen für absolute Genauigkeit oder spezielle Basen aktiv sind.

Roboter- und SPS-Integrationszellen, die Posen über einen Feldbus austauschen, sollten festlegen, ob der gemeinsame Rahmen befohlen oder gemessen ist, und diese Definition in der Schnittstellenspezifikation dokumentieren. Eine frühzeitige Abstimmung dieser Vereinbarung verhindert falsche Ausschussereignisse, wenn ein SPS- und PAC-Systeme-Sequencer auf eine Pose reagiert, die der Advance Run tatsächlich noch nicht erreicht hat.

Über die Autorin

Elena Vogt | Ingenieurin für Roboterintegration – KUKA / diskrete Fertigungszellen

Elena Vogt ist auf die Inbetriebnahme von KUKA KRC4/KSS, die Diagnose von Werkzeugrahmen und SPS-Roboter-Handshakes in gemischten diskreten Zellen spezialisiert. Ihr Schwerpunkt liegt auf Nebenwirkungen des Advance Runs, gemessenen und befohlenen Posenvariablen sowie stabilen Abwägungen zwischen Zykluszeit und Prozessleistung.

Einen Kommentar hinterlassen

Bitte beachten Sie, dass Kommentare genehmigt werden müssen, bevor sie veröffentlicht werden.