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?
Ganz lieben Dank.
Kukki