Submit erneut starten lassen und Abfrage ob Submit läuft

  • Hallo,


    Mein Submit Interpreter wird beim Start eines Programms beendet und muss dann immer neu angewählt werden.

    Ich übergebe die $POS_ACT und wenn kein TOOL bzw BASE ausgewählt ist bricht der Submit Interpreter ab.

    Ich habe schon versucht $ACT_BASE und $ACT_TOOL abzufragen, aber leider funktioniert das nicht.

    Die Übergabe läuft in einem externen Submit (MultiSubmit), damit die wichtigeren Daten nicht abgebrochen werden.


    Ich wollte jetzt gerne wissen wie ich den externen Submit in meinem Hauptsubmit starten kann.

    Dazu habe ich den Befehl

    CWRITE ($CMD, STAT, MODE, "RUN/R1/SPSSUB()")

    in der KUKA Doku gefunden um den Submit starten zu können, jetzt fehlt mir noch die Abfrage ob der Submit läuft oder nicht


    Ich danke euch schon mal für die Hilfe

    LG Ben

  • Schritt für Schritt zum Roboterprofi!
  • Hallo bewo,


    Du kannst die Abfrage hiermit machen:

    Über diese Problematik gab es schon diverse Posts hier im Forum.

    Wieso verhindert Du den Stop des Interpreters nicht, z.B. mit ON_ERROR_PROCEED ?

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.


  • Hab ich ausprobiert, aber der extended Submit beendet sich trotzdem


    Ich kenne ON_ERROR_PROCEED nicht (Ist mein erstes Projekt)


    Ich habe das jetzt so probiert, aber das klappt nicht (Auf dem Panel wird dann ein rotes Rechteck im grünen Punkt von S angezeigt):


    In der Haupt SPS.SUB:


    IF $PROG_INFO[3].P_STATE <> #P_ACTIVE THEN         ; Wenn der Extended Submit-Interpreter 1 (3) nicht aktiv ist

    CWRITE ($CMD, STAT, MODE, "RUN/R1/SPSSUB()")      ; wird die SPSSUB() neu gestartet

    ENDIF


    In der Extendet SPSBUB.SUB:


    IF ($ACT_BASE > 0) AND ($ACT_TOOL > 0) THEN

    IF (VarState("$POS_ACT.X") == #INITIALIZED) THEN

    ; aktueller Koord-Wert X

    KOORD_X_ACT_A769_A800 = REAL_TO_INT16($POS_ACT.X*10.0)

    ENDIF

    IF (VarState("$POS_ACT.Y") == #INITIALIZED) THEN

    ; aktueller Koord-Wert Y

          KOORD_Y_ACT_A801_A832 = REAL_TO_INT16($POS_ACT.Y*10.0)

    ENDIF

    IF (VarState("$POS_ACT.Z") == #INITIALIZED) THEN

    ; aktueller Koord-Wert Z

          KOORD_Z_ACT_A833_A864 = REAL_TO_INT16($POS_ACT.Z*10.0)

    ENDIF

    IF (VarState("$POS_ACT.A") == #INITIALIZED) THEN

    ; aktueller Koord-Wert A

          KOORD_A_ACT_A865_A896 = REAL_TO_INT16($POS_ACT.A*10.0)

    ENDIF

    IF (VarState("$POS_ACT.B") == #INITIALIZED) THEN

    ; aktueller Koord-Wert B

          KOORD_B_ACT_A897_A928 = REAL_TO_INT16($POS_ACT.B*10.0)

    ENDIF

    IF (VarState("$POS_ACT.C") == #INITIALIZED) THEN

    ; aktueller Koord-Wert C

          KOORD_C_ACT_A929_A960 = REAL_TO_INT16($POS_ACT.C*10.0)

    ENDIF

    ; Koordinaten Wert E1 von eigenem Roboter

          KOORD_E1_OWN_A737_A752 = REAL_TO_INT16($AXIS_ACT.E1)

    ENDIF

  • Es gibt eine Suchfuntion im Forum, da findest Du schon alles dazu. Genau Dein Problem wurde da schon mehrfach durchgekaut.

    Es heißt "Suchfunktion" .. aber egal .. statt darauf hinzuweisen, wären direkte Links zu den Beiträgen jetzt hilfreicher, anstatt eben nur auf die Suchfunktion hinzuweisen. Danke für nichts.

    Mein Name ist Hase. Ich weiß von nix.

  • Bitte gern geschehen.;)

    Es gilt immer: Schreibfehler die gefunden werden, dürfen behalten werden (da hat wieder mal die KI der Autokorrektur unbemerkt zugeschlagen)

    Wer meint, dass einem hier im Forum jegliche Arbeit abgenommen wird hat wohl den Sinn des Forums nicht ganz verstanden.

    Wenn Dir das Eintippen des Begriffs "on_error_proceed" in das Suchfeld zu viel Arbeit ist, dann ist das nicht mein Problem.

    Immer schön freundlich bleiben.

  • Bitte gern geschehen.;)

    Es gilt immer: Schreibfehler die gefunden werden, dürfen behalten werden (da hat wieder mal die KI der Autokorrektur unbemerkt zugeschlagen)

    Wer meint, dass einem hier im Forum jegliche Arbeit abgenommen wird hat wohl den Sinn des Forums nicht ganz verstanden.

    Wenn Dir das Eintippen des Begriffs "on_error_proceed" in das Suchfeld zu viel Arbeit ist, dann ist das nicht mein Problem.

    Immer schön freundlich bleiben.


    Tatsächlich gebe elchi2018 etwas Recht. Die meisten Suchen führen mich nicht weiter, da nur darauf verwiesen wird, dass es die Funktion ON_ERROR_PROCEED gibt, aber nicht wie ich sie ausführe.


    Der User Drudge hat es aber in einem Post gut erklärt (Glaube ich zumindest aktuell^^):

    "mit dem Befehl ON_ERROR_PROCEED wird bei der nächsten Zeile (analog zu CONTINUE) kein Fehler ausgeworfen, sondern die Variable $ERR beschrieben. Wenn nach der Ausführung $ERR.NUMBER == 0 ist, dann wurde die Zeile fehlerfrei abgearbeitet. Vielleicht sparst du damit umständliche SWRITE und VARSTATE Konstrukte . . ."


    Das habe ich jetzt so ausprobiert:

    ; aktueller Koord-Wert X

    ON_ERROR_PROCEED

    KOORD_X_ACT_A769_A800 = REAL_TO_INT32($POS_ACT.X*10.0)

    ; aktueller Koord-Wert Y

    ON_ERROR_PROCEED

    KOORD_Y_ACT_A801_A832 = REAL_TO_INT32($POS_ACT.Y*10.0)

    ; aktueller Koord-Wert Z

    ON_ERROR_PROCEED

    KOORD_Z_ACT_A833_A864 = REAL_TO_INT32($POS_ACT.Z*10.0)

    ; aktueller Koord-Wert A

    ON_ERROR_PROCEED

    KOORD_A_ACT_A865_A896 = REAL_TO_INT32($POS_ACT.A*10.0)

    ; aktueller Koord-Wert B

    ON_ERROR_PROCEED

    KOORD_B_ACT_A897_A928 = REAL_TO_INT32($POS_ACT.B*10.0)

    ; aktueller Koord-Wert C

    ON_ERROR_PROCEED

    KOORD_C_ACT_A929_A960 = REAL_TO_INT32($POS_ACT.C*10.0)


    Bislang gibt es auch noch keine Fehler. Ich werde nochmal berichten ob das so bleibt^^


    Danke an alle für die gute Hilfe. :thumbup:

  • Tatsächlich gebe elchi2018 etwas Recht. Die meisten Suchen führen mich nicht weiter, da nur darauf verwiesen wird, dass es die Funktion ON_ERROR_PROCEED gibt, aber nicht wie ich sie ausführe.

    Es gibt übrigens auch eine Dokumentation von KUKA.

    In der "KSS_85_SI_de.pdf findet man wirklich einen super Beschrieb zu ON_ERROR_PROCEED.

    Mit Beispielen und Errorhandling. Besser kann man's nicht haben.


    Aber irgendwie habe ich das Gefühl, dass heute niemand mehr Dokus lesen will...….

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Es gibt übrigens auch eine Dokumentation von KUKA.

    In der "KSS_85_SI_de.pdf findet man wirklich einen super Beschrieb zu ON_ERROR_PROCEED.

    Mit Beispielen und Errorhandling. Besser kann man's nicht haben.


    Aber irgendwie habe ich das Gefühl, dass heute niemand mehr Dokus lesen will...….

    Ja, die Dokumentationen von KUKA sind echt super. Aber es gibt auch etliche.

    Wenn man weiß wonach man suchen muss und vllt sogar noch im Kopf hat wo man es findet ist es am besten in die Doku zu gucken.

    Aber wenn man nicht weiß, dass es den Befehl überhaupt gibt, nicht weiß was er macht und noch nie was davon gelesen hat, wie soll man dann etwas in der Doku dazu finden?


    Aber ich habe auch nur geschrieben, dass ich elchi2018 Recht gebe, damit, dass man direkt ein Beispiel oder einen Verweis mitschicken kann. Das macht es für den Fragesteller bedeutend einfacher.


    Das ändert aber nichts daran, dass ich dir für deine Hilfe dankbar bin und sie mir sehr weitergeholfen hat.

  • Aber irgendwie habe ich das Gefühl, dass heute niemand mehr Dokus lesen will...….

    Würde man, sofern man könnte ... also die Doku besitzen, finden etc.

    dass man direkt ein Beispiel oder einen Verweis mitschicken kann

    ... worauf ich hinaus wollte


    Bislang gibt es auch noch keine Fehler. Ich werde nochmal berichten ob das so bleibt^^

    .. na denn .. Gutes Gelingen ..

    Mein Name ist Hase. Ich weiß von nix.

  • Würde man, sofern man könnte ... also die Doku besitzen, finden etc.

    Wir haben schon sehr oft aufmerksam gemacht im Forum auf KUKA Website https://xpert.kuka.com/

    Da findet Ihr die Dokus. Account ist frei. Braucht zum anmelden eine "Firmen Email-Adresse".


    Auch nach 26 Jahren Roboterprogrammiererfahrung hab ich immer Dokus griffbereit zum nachschlagen.


    .. statt darauf hinzuweisen, wären direkte Links zu den Beiträgen jetzt hilfreicher, anstatt eben nur auf die Suchfunktion hinzuweisen...


    Aber ich habe auch nur geschrieben, dass ich elchi2018 Recht gebe, damit, dass man direkt ein Beispiel oder einen Verweis mitschicken kann. Das macht es für den Fragesteller bedeutend einfacher.


    Das glaube ich Euch, dass Ihr gerne Direktlinks, Beispiele oder am liebsten gleich den richtigen Code von uns hättet.

    Ihr müsst aber verstehen, dass wir die Hilfe hier im Forum so neben unserer sonst noch so Arbeit anbieten. Gratis.

    Da haben wir auch nicht immer die Zeit, Euch bis ins letzte Detail zu "Baby sitten". Ein bisschen Engagement von Eurer Seite erwarten wir da auch.


    Bislang gibt es auch noch keine Fehler. Ich werde nochmal berichten ob das so bleibt^^

    Noch kleine Anmerkung zum Code. Du machst kein Errorhandling auf ON_ERROR_PROCEED. Es kann also sein, dass, wenn Du z.B. Programm abwählst und manuell verfährst, die IST-POS, die Du rausgibst, nicht aktualisiert wird. Hoffe, Dir ist dies bewusst.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Das glaube ich Euch, dass Ihr gerne Direktlinks, Beispiele oder am liebsten gleich den richtigen Code von uns hättet.

    Ihr müsst aber verstehen, dass wir die Hilfe hier im Forum so neben unserer sonst noch so Arbeit anbieten. Gratis.

    Da haben wir auch nicht immer die Zeit, Euch bis ins letzte Detail zu "Baby sitten". Ein bisschen Engagement von Eurer Seite erwarten wir da auch

    So ist es. Und grad so aus dem Ärmel schütteln wir den Code auch nicht unbedingt. Zumindest ich muss da auch ab und zu nochmal in der Doku, oder im Forum suchen. Warum sollte man das demjenigen, der akut das Problem hat nicht zumuten können?

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