Moin,
ich habe eine handvoll Bauteile, für die ich die Lastdaten ermittelt habe. Sie stehen in einem Array:
! Loaddata of the part (weight, COG, ...).
PERS loaddata lWeight{16} :=
[
[1.7, [-1183.9, -49.7, 322.2], [1, 0, 0, 0], 0, 0, 0],
[1.7, [-1183.9, -49.7, 322.2], [1, 0, 0, 0], 0, 0, 0],
[2.5, [-1261.6, -90.8, 225.6], [1, 0, 0, 0], 0, 0, 0],
...
];
Wenn ich die Lastdaten mit GripLoad lWeight{nCHousTyp} zuweisen will, bekomme ich die Fehlermeldung 41422 angezeigt:
41422: Referenzfehler
Der Verweis in Argument Load ist keine vollständige persistente Variable.
...
Datensatzkomponente oder Datenfeldelemente nicht in Argument Load verwendbar. Nur vollständige persitente Variablen sind für Tool, WObj oder Load in einer Bewegungsinstruktion möglich.
Das verstehe ich nicht so ganz. Was ist denn eine "vollständig" persistente? Ein PERS Array offensichtlich nicht.
Ich hab versucht den Roboter auszutricksen:
PERS loaddata lWeight_1 := [1.7, [-1183.9, -49.7, 322.2], [1, 0, 0, 0], 0, 0, 0];
PERS loaddata lWeight_2 := [1.7, [-1183.9, -49.7, 322.2], [1, 0, 0, 0], 0, 0, 0];
PERS loaddata lWeight_3 := [2.5, [-1261.6, -90.8, 225.6], [1, 0, 0, 0], 0, 0, 0];
...
%"GripLoad lWeight_"+ValToStr(nCHousTyp)%;
Das hat leider nicht geklappt. Da poppte folgende Meldung auf:
40226: Ungültiger Name
Prozedurname GripLoad lWeight_3 ist kein RAPID-Bezeichner, reservierte Wörter ausgeschlossen.
...
Prozedurname muss ein zulässiger RAPID-Bezeichner sein, der nicht identisch mit reservierten Wörtern der RAPID-Sprache sein darf. Namen ändern.
GripLoad ist aber eine PROC.
Gibt es eine einfache Möglichkeit, oder muss ich jetzt tatsächlich ein riesiges TEST aufmachen:
Vielen Dank für alle sachdienlichen Hinweise.
Gruß
Jörn