[gelöst] KUKA stoppt ohne erkennbaren Grund

  • Hallo, ich hab ein komisches Problem. Folgendes Szenario:


    Wir haben einen KR6 Jahrgang 1999 mit KRC1 V2.2.8. Der lief bis jetzt ohne unlösbare Probleme. Der Roboter läuft ohne externe SPS im AUT Modus. Die "interne SPS" i.e. das sps.sub steuert die ganze Anlage. Das ist nicht viel, es hat knapp 400 Zeilen, bei der letzten Erweiterung sind etwa 70 Zeilen dazugekommen.


    Der Roboter bleibt nun häufig stehen. Manchmal passiert das mehrmals pro Stunde. Nicht so, als ob jemand den Bedienerschutz öffnet, sondern wie bei einem "halt" (Submit und Interpreter bleiben grün, Run wird rot). Ein Drücken auf "start" lässt den Kuka weiterlaufen, als wäre nichts gewesen.


    Das passiert immer nur dann, wenn der Roboter auf eine Variable BOHREN == FALSE wartet, während dem das sps.sub die Bohrmaschine steuert, deutlich bevor das Bohren abgeschlossen und die Variable vom sps.sub auf FALSE gesetzt wird.


    Im sps.sub habe ich natürlich keine "halt" oder "wait (for)" programmiert. Ist alles schön zyklisch. Im wartenden Programm ist auch kein "halt" drinnen. Nur der WAIT FOR BOHREN == FALSE, in welchen der Kuka stehen bleibt.


    Ist mein sps.sub zu lang geworden? Ist da irgend ein watchdog versteckt eingebaut? Kann ich mir eigentlich nicht vorstellen. Normalerweise läuft das sps.sub einfach länger, wenn mehr drinnen ist...


    Falls jemand eine Idee hat, wie ich das angehen könnte -> Bin für jede Hilfe dankbar :)


    Gruss, rob


    PS: Es passiert nun auch an einer anderen Stelle. Dort in einem WAIT SEC 2 (nicht im sps) während im sps.sub ein Timer für ein Entmagnetisiergerät läuft. Aber auch hier in einem WAIT und ohne Roboterbewegung...

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

    Einmal editiert, zuletzt von rob ()

  • Schritt für Schritt zum Roboterprofi!
  • Das Problem ist gelöst. Die Moral lautet:


    Lange Schrittketten im sps.sub, die auf SWITCHs aufbauen sind böse:


    Anstatt dessen sind IFs zu verwenden ELSE IF vermeiden!


    Ich vermute dass der Interpreter bei einem SWITCH oder ELSE IF (das Zweite hab ich gar nicht erst probiert weil die Vermutung nahe liegt, dass das Gleiche passiert...) die ganze Struktur laden muss, und dass das das sps.sub nicht verkraftet.


    Nach dem Umbau der Schrittkette in pure IF THEN ENDIFs läuft die Sache tadellos. Schon seit zwei Wochen jetzt.


    Nochmal, das bezieht sich nur aufs sps.sub.


    cheers o/

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

  • Hallo,
    nö, das kann ich nicht bestätigen.


    Ich hab' schon Schrittketten mit Case im SPS.SUB programmiert:
    - mehrere voneinander unabhängige,
    - mehrere ineinander verschachtelt,
    - mehr als 30 Zustände,
    - inklusive Zugriff auf serielle Schnittstelle.


    alles in einem SPS.SUB, der einige Tausend Zeilen hat.


    Da gibt es keine Probleme.


    Vermute da eher einen logischen Fehler im Programm.


    Hermann

  • Naja, es handelt sich um 12 Jahre alte Krücken. Welcher logische Fehler könnte denn einen "halt" auslösen? Also nicht einen "stop" mit in die Bremsen fallen, sondern so als würde man im Programm "HALT" schreiben.


    Hab auch nichts geändert an der Logik, ausser den SWITCH zu ersetzten. Kann man eigentlich nicht viel falsch machen.


    Wie auch immer, das Problem war reproduzierbar auf 5 Robotern mit 2.2.8 und 3.2.24


    Mit >=5.2ern hatte ich das nie, da laufen auch SWITCHs mit Schnittstellen. Allerdings kann ich dort den Problemswitch nicht testen, weil das ganz andere Anlagen sind...

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

  • Ja, das mit dem Stop ist ein Argument, hatte ich übersehen.


    Der oben erwähnte grosse SPS.SUB wurde auf einer der allerersten KRC2
    verwendet. Keine Ahnung mehr was das für eine Version war,
    aber auf keinen Fall V5.x. Allerhöchstens V 4.x.


    Hermann

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