Submit wird beendet Fehler 1422

  • Hallo,


    ich habe KUKA KR 5 arc mit der Steuerung KRC 2.Ich möchte im Submit interpreter die Position des Roboters rechnen und folgends in SPS schicken.Erst benützte ich POS_ACT aber ab und zu schmiert Submit ab.Ich habe hier gelesen, dass das selbe mit forward transformation möglich ist zu machen. Jetzt aber bekomme ich eine Fehler -- AKT_POZ_X variable not valid----Fehler Nr. 1422 - und ich habe keine Ahnung warum.Hat jemand einige Idee wo das Problem sein könnte oder eine andere Lösung?


    Danke, Leo


    Hier ist Programm das ich benütze im Submit :


    INT ERR_STATUS=1
    E6POS AKT_POZ


    if($AXIS_ACT==#INITIALIZED) THAN
    AKT_POZ=FORWARD($AXIS_ACT,ERR_STATUS)
    POZ.X=AKT_POZ_X
    POZ.Y=AKT_POZ_Y
    POZ.Z=AKT_POZ_Z
    POZ.A=AKT_POZ_A
    POZ.B=AKT_POZ_B
    POZ.C=AKT_POZ_C
    ENDIF



    Variablen AKT_POZ_X .... AKT_POZ_C sind in config.dat als Signalen definiert.

  • Schritt für Schritt zum Roboterprofi!
  • Sorry ich habe die Variablen gewechselt :wallbash:


    die richtige Version die ich habe, ist diese :


    INT ERR_STATUS=1
    E6POS AKT_POZ


    if($AXIS_ACT==#INITIALIZED) THAN
    AKT_POZ=FORWARD($AXIS_ACT,ERR_STATUS)
    POZ.X=AKT_POZ.X
    POZ.Y=AKT_POZ.Y
    POZ.Z=AKT_POZ.Z
    POZ.A=AKT_POZ.A
    POZ.B=AKT_POZ.B
    POZ.C=AKT_POZ.C
    ENDIF



    Variablen POZ.X .... POZ.C sind in config.dat als Signalen definiert.

  • In diesem Fall, welcher Wert steht den in ERR_STATUS nach dem Aufruf von Forward():


    -1: Nicht alle Roboter-Achswinkel bzw. benötigte Zusatzachswinkel
    sind definiert.
    -2: ERR_STATUS besitzt noch keinen gültigen Wert.
    -3: $BASE (Vorlaufvariable) ungültig.
    -4: $TOOL (Vorlaufvariable) ungültig.


    0: Kein Fehler, d.h. Berechnung war erfolgreich.
    1: SW-Endschalter bei vorgegebenen Achswinkeln verletzt. (Nur
    möglich, wenn ERR_STATUS beim Aufruf Bit 0 = 0 besaß.)
    2: Fehler bei der math. Trafo-Funktion


    oder wie lautet die Deklaration POZ in der $config.dat. Signale sind ja Integer und keine E6POS ???


    Gruß
    Fubini

    Einmal editiert, zuletzt von fubini ()

  • POZ.X....POZ.C sind die Ausgänge aus Robot in SPS, also


    SIGNAL POZ.X $OUT[100] to $OUT[131] usw.


    Wert von ERR_STATUS kenne ich leider nicht weil ich nicht jetzt in der Firma bin aber am Freitag werde ich kluger sein.

  • Na da würde ich es doch so schreiben:


    if($AXIS_ACT==#INITIALIZED) THEN
    AKT_POZ=FORWARD($AXIS_ACT,ERR_STATUS)
    if err_status==0 then
    POZ.X=AKT_POZ.X
    POZ.Y=AKT_POZ.Y
    POZ.Z=AKT_POZ.Z
    POZ.A=AKT_POZ.A
    POZ.B=AKT_POZ.B
    POZ.C=AKT_POZ.C
    endif
    ENDIF


    Vermutlich das selbe Problem, wie mit $pos_act, auch in der Funktion FORWARD wird
    das aktuelle Tool und Base verwendet. Die sind bei abgewähltem/gerade frisch angewähltem
    Programm ungültig, daher ist dann auch keine Berechnung möglich.

  • Ich wuerde es so machen:


    DECL POS AKT_POZ



    ON_ERROR_PROCEED
    AKT_POZ=$POS_ACT
    IF $ERR.NUMBER == 0 THEN
    POZ.X=AKT_POZ.X
    POZ.Y=AKT_POZ.Y
    POZ.Z=AKT_POZ.Z
    POZ.A=AKT_POZ.A
    POZ.B=AKT_POZ.B
    POZ.C=AKT_POZ.C
    ELSE
    ;Wert fuer Tool ungueltig, wenn kein Tool
    POZ.X=123456
    POZ.Y=123456
    POZ.Z=123456
    POZ.A=123456
    POZ.B=123456
    POZ.C=123456
    ERR_CLEAR($ERR)
    ENDIF


    Problem ist ja, wenn kein Tool aktiv ist.
    Dann stürzt Dir Submit ab.
    Da sende ich einfach Phantasiewert.


    Gruss SJX

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

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