1. Satzanwahl, 2. "Verschleifen nicht möglich"

  • Hallo zusammen,


    ich habe zwei Fragen an euch.


    1. In meinem Roboterprogramm (KRC2, KR180-2PA) habe ich mehrere Positionen die berechnet werden. Nun ist es möglich das bei z.B. falscher Zuweisung des Z-Wertes der Roboter aus dem Arbeitsbereich fährt. Der Roboter stoppt mit der Meldung "Softwareendschalter Ax". Der Programmlaufzeiger steht natürlich noch auf dem besagten Fahrbefehl. In dieser Situation ist es nicht möglich den Programmlaufzeiger über Satzanwahl zu versetzen (z.B. auf die nächste Programmzeile). Musste dann immer über "Abwählen" und dann neu "Anwählen" gehen. Gibt es da eine Möglichkeit den Programmlaufzeiger trotzdem zu versetzen, ohne wieder neu anfangen zu müssen?


    2. Kann man (wie bei ABB) die Meldung "Verschleifen nicht möglich" ausschalten? Und wann genau kommt diese Meldung? In meinem Programm kommt diese Meldung aber ich weiß noch nicht genau warum.


    Gruß Harry

  • Schritt für Schritt zum Roboterprofi!
  • ich hatte erst gestern die Fehlermeldung und konnte ohne Probleme den nächsten Befehl anwählen und ausführen. Der nächste Befehl war ebenfalls eine Bewegung.
    Kann es sein, dass du im Meldefenster noch Meldungen hattest, die Quittiert werden mussten?
    Das einzige was ich schonmal hatte war, dass der Programmzeiger ganz weg war. Dann musste ich erst einen Befehl weiter oben anwählen, um danach den tiefer liegenden anwählen zu können.

  • Außerdem gibt es eine Variable ( $holdnoapprox, $noapprox, .. oder so ähnlich). Wird diese auf True gesetzt, so bleibt an jedem Punkt, der nicht überschleifbar ist der Rob mit einer Stopmeldung stehen

  • Meinst du mit ""Verschleifen nicht möglich" das Überschleifen von Punkten? Dann musst du den $ADVANCE Wert noch setzten oder höher setzten.
    zB auf 2


    Als ich am Anfang vergessen habe, den Wert zusetzten hatte ich auch andauernt diese Fehlermeldung und konnte so das Problem lösen.

  • Hallole,


    Zu dem Problem mit dem nicht versetzbaren Satzzeiger:


    Ist der Verfahrsatz ziemlich am Ende eines Unterprogramms?
    Dann ist der Vorlaufzeiger schon aus dem Unterprogramm raus
    in das aufrufende Programm zurückgesprungen.
    Und die Satzanwahl funktioniert nicht mehr.


    Für diese Situation müsste dann der Stack irgendwie rückwärts manipuliert
    werden, und das ist wohl nicht so einfach zu lösen.


    Gruss Hermann

  • Hallo,


    soviel ich verstanden habe hast du einen Punkt der immer neu berechnet wird und beim Anfahren dieses Punktes kann es passieren das dieser so berechnet wurde das der Roboter aus seinen Softwareendschalter hinausfahren würde.


    Nun, da bleibt er natürlich stehen und es gibt auch keinen anderen Punkt den du evt anwählen könntest um aus den Softends zu kommen.


    Es gibt natürlich mehrere Wege nach Rom.
    Ich würde es aber so machen:


    Da der Punkt berechnet wird gehe ich mal davon aus das es eine Basis oder Nullkoordinate gibt.
    Sollte der Roboter wieder in seine Softends kommen, schau dir die Koordinaten an wo er hinfahren wollte.
    Diese würde ich dann abfragen bevor ich den Punkt anfahre. Sind die Werte der Koordinaten gleich oder größer der abgefragten koordinaten würde ich einfach meinem Bewegungspunkt die Basiskoordinate zuweisen.


    Das ist eine Lösung. Allerdings kann ich nicht wissen ob das in deiner Applikation akzeptabel ist.





    MfG

  • Die Variable heißt $stopnoapprox. Im Handbetrieb bleibt der Roboter mit einer Stopmeldung stehen und im Automatikbetrieb kommt dann einfach nur die Meldung.


    Das Beste ist es allerdings immer, die Programmierung so zu machen, daß diese Meldung niemals kommen kann. Möchte heißen, daß in Bewegunspunkten, nach denen Du z.B. einen Ausgang setzt, einfach das CONT hintendran wegläßt.

    Weniger als 100% wird nicht akzeptiert :)

  • Hallo,


    die Meldung "Ueberschleifen nicht moeglich" sollte der Aesthetik halber niemals auftauchen.
    Das Setzen von Ausgängen, Wartezeiten und Warten auf Signale, oder wenn $Advance zu klein ist, lösst jedesmal einen Vorlaufstop aus (dann wird in T1 und T2 diese Meldung ausgegeben und es wird ein Genauhalt gemacht).
    Mich wuerde nicht die Meldung stoeren (sieht mann in Automatik eh nicht), sondern eher die Taktzeit.
    Daher, an Stellen, an welchen ein Vorlaufstop ausgeloesst werden muss (z.B beim Greifen) immer einen Genauhalt programmieren (Cont weglassen). Ausgänge kann man mit einem Trigger setzen (Synout), damit der Roboter nicht anhaelt.
    Wenn man auf ein Signal wartet, kann man ein cont in die Zeile davor stellen. Der Roboter fährt dann durch, wenn das Signal schon da ist und wartet, wenn es noch fehlt.
    Dann koenne zu grosse Ueberschleifradien die Ursache sein - in diesem Fall reduzieren.
    Liegen zum Beispiel zwei Linearbewegungen annaehernd auf einer Gerade, ist ueberschleifen generell nicht moeglich - dann ist nachteachen angesagt.
    Nachteachen hilft immer, wenn im Programm kein Vorlaufstop ausgeloesst wird.


    Gruss Stefan

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden