Koordinaten in .dat speichern

  • Hallo zusammen,


    ich bin neu auf dem Gebiet und finde keine Lösung zu meinem Problem.
    Wie der Betrett schon verrät, möchte ich nach jeder angefahrenen Position die Koordinaten UND Achswinkel in der .dat speichern. Diese wurden zuvor mit Null beschrieben und werden durch das Hauptprogramm dann überschrieben.


    Ich habe mir folgenden Code überlegt


    src:


    DEF test( )


    EXT BAS (BAS_COMMAND :IN,REAL :IN )

    INT I


    BAS (#INITMOV,0 )




    ;******SETTINGS FOR PTP MOTION***********************

    ;******SETTINGS FOR LIN AND ARC MOTION***************
    ;FOLD
    ;SET LIN AND ARC MOTION VARIABLES
    $VEL.CP=0.05
    $VEL.ORI1=200
    $VEL.ORI2=200
    $ACC.ORI1=100
    $ACC.ORI2=100
    ;ENDFOLD (SET LIN AND ARC MOTION VARIABLES)
    ;******SETTINGS FOR POSITIONING CRITERIA*************



    $BASE={X 1807.27,Y 23.12,Z 1331.36,A 0.22,B -0.19,C -179.03}
    $TOOL={X 365.515,Y 7.88,Z 171.02,A 0.0000,B -90.0000,C -178.915}
    HALT
    $ADVANCE = 5


    PTP {A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0,E1 0,E2 0,E3 0,E4 0,E5 0,E6 0}


    Achswinkel_1[1]=$AXIS_ACT.A1
    Achswinkel_1[2]=$AXIS_ACT.A2
    Achswinkel_1[3]=$AXIS_ACT.A3
    Achswinkel_1[4]=$AXIS_ACT.A4
    Achswinkel_1[5]=$AXIS_ACT.A5
    Achswinkel_1[6]=$AXIS_ACT.A6


    Position_1[1]=$POS_ACT.X
    Position_1[2]=$POS_ACT.Y
    Position_1[3]=$POS_ACT.Z
    Position_1[4]=$POS_ACT.A
    Position_1[5]=$POS_ACT.B
    Position_1[6]=$POS_ACT.C



    END



    .dat:



    DEFDAT test PUBLIC


    DECL GLOBAL REAL Achswinkel_1[6]
    DECL GLOBAL REAL Position_1[6]


    Achswinkel_1[1]=0
    Achswinkel_1[2]=0
    Achswinkel_1[3]=0
    Achswinkel_1[4]=0
    Achswinkel_1[5]=0
    Achswinkel_1[6]=0


    Position_1[1]=0
    Position_1[2]=0
    Position_1[3]=0
    Position_1[4]=0
    Position_1[5]=0
    Position_1[6]=0


    ENDDAT



    Ironischerweise möchte der Roboter immer nur eins von beidem (Position oder Achswinkel). Hab das per Ausklammern mal probiert. An den Befehlen kann es also nicht liegen (ich weiß, dass es theoretisch auch mit $pos_act bzw $axis_act gehen würde, bzw. Frames, E6POS usw -> gleiches ergebnis).
    Als Fehler meldet er mir: "angegebener Feldname hier nicht zulässig (Position_[1]=.... bis Position_1[6].


    Kann mir das jemand erklären? :huh:


    Ganz lieben Dank.


    Kukki

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


    bitte immer direkt nach der Deklaration die Initialisierungen:


    DECL GLOBAL REAL Achswinkel_1[6]
    Achswinkel_1[1]=0
    Achswinkel_1[2]=0
    Achswinkel_1[3]=0
    Achswinkel_1[4]=0
    Achswinkel_1[5]=0
    Achswinkel_1[6]=0


    DECL GLOBAL REAL Position_1[6]
    Position_1[1]=0
    Position_1[2]=0
    Position_1[3]=0
    Position_1[4]=0
    Position_1[5]=0
    Position_1[6]=0


    dann sollte es gehen.


    Fubini

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