GripLoad, Fehlermeldung 41442

  • Moin,


    ich habe eine handvoll Bauteile, für die ich die Lastdaten ermittelt habe. Sie stehen in einem Array:


    Code
    ! 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. :denk:


    Ich hab versucht den Roboter auszutricksen:


    Code
    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:


    Code
    TEST nCHousTyp
            CASE 1:
              GripLoad lWeight_1;
            CASE 2:
              GripLoad lWeight_2;
            ...
          ENDTEST


    Vielen Dank für alle sachdienlichen Hinweise. :)


    Gruß
    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

  • ANZEIGE

  • Steht so im Handbuch


    Moin Michael,


    steht auch in der Fehlermeldung drin (Siehe oben). Nach ein bissl rumprobieren hat sich das (bereits mehrfach bewährte) Umladen des Wertes als Lösung gefunden:


    Code
    PERS loaddata lWeight{16} := [ [], [], ...];
      PERS loaddata lWeightCurrentPart := [...];
    
      ...
    
      lWeightCurrentPart := lWeight{nCHousTyp};
      GripLoad lWeightCurrentPart;


    Nicht schön, funktioniert aber. ;)


    Gruß
    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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