Kuka KRC2 / Unzulässiger Feldindex

  • Moin liebes Forum,
    vorweg: Ich bin nicht so geübt in KRL, es kann also sein, das das was ich mache völliger Blödsinn ist, bzw. das es viel einfachere Wege gibt, dies zu realisieren. Wurde mich freuen wenn ich darauf hingewiesen werde...
    Ich habe folgendes Problem:
    Ich versuche auf ein Array zuzugreifen, jedoch ist der Index für mein Array in eine Variable gespeichert.
    also ca. so:
    i=3
    Wert=Array[i]
    Leider bekomme ich den Fehler: Unzulässiger Feldindex.
    Was mache ich falsch, bzw. gibt es eine andere Alternative soetwas zu realisieren?


    LG Fredi19

    Einmal editiert, zuletzt von Sven Weyer ()

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Fredi19,
    selbst wenn Du mit KRL ungebüt bist sollte Dir klar sein das mit der "fülle" an Informationen du hier keinen findest der eine Glaskugel hat in welcher er die notwendigen Informationen findet um Dir zu helfen.
    Je mehr Informationen Du gibst desto schneller und einfacher kann Dir geholfen werden.


    Nur Mut probier es noch einmal.


    Gruß
    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • i=3
    wert=array :kopfkratz:
    Da müssten noch deutlich mehr Fehlermeldungen kommen.
    DIn Meldung mit dem Feldindex heisst, dass der Feldindex zum Zeitpunkt der Ausführung entweder < 1 oder größer als die deklarierte Arraygrösse ist.

  • Moin,


    Ich meine natürlich:
    i=3
    Wert=Array[[i]i]


    Die Variable "Wert" sollte jetzt den Wert von Array[3] haben.


    P.S. Das Array hat 20 Felder, also daran liegt es nicht.
    LG

    Einmal editiert, zuletzt von Fredi19 ()

  • hast du mal geprüft, welchen wert i hat, wenn der fehler kommt (anzeige->variable->einzeln)? ich kenne den fehler, wenn der variablen fürs array kein wert zugewiesen ist. hier evtl. auch wichtig, wo i deklariert wird.

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Hallo zusammen, ich hatte dieses Problem auch mal. Bei mir lag es an einer falschen Deklaration des Array's.


    Ich hatte das Array wie folgt in einer .dat deklariert:


    DECL INT MY_INT_ARRAY[4]


    Die Lösung war das Array wie folgt zu deklarieren:


    DECL INT MY_INT_ARRAY[4]
    MY_INT_ARRAY[1] = 0
    MY_INT_ARRAY[2] = 0
    MY_INT_ARRAY[3] = 0
    MY_INT_ARRAY[4] = 0


    Vielleicht hilft es...

    Einmal editiert, zuletzt von rob.target ()


  • Die Deklaration ist so nicht notwendig. Man muss nur zusehen, dass beim Abfragen ein Wert zugewiesen wurde.
    @Fredi19: Welchen Datentyp hat dein Array?
    Am besten (wie Hermann schon sagt) den Quellcode hier rein, sonst müssen wir erst wieder unsere Kristallkugel vom Dachboden holen und den Staub abwischen und polieren und dann das ewige Beschwörungsformelgemurmel und und und... :mrgreen:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Moin,
    hab länger nichts von mir hören lassen.
    Tatsächlich scheint es so zu sein das eine Integervariable, die als Bitwert eingelesen wird, diesen Fehler verursacht.
    Das war mir dort jedoch nicht klar, und deswegen hab ich es nicht erwähnt. Für mich is ein Integer halt ein Integer... Sieht der Robbi wohl anders.
    Mit einer "normalen" Integervariable funktioniert es.
    Trozdem danke für eure Hilfe
    LG Fredi19


  • ....
    Tatsächlich scheint es so zu sein dass eine Integervariable, die als Bitwert eingelesen wird,....


    Sag ich doch: gleich den originalen Code posten, dann hätten wir alle die kaputte Glaskugel im Schrank liegen lassen können.
    Ausserdem verstehe ich diese Aussage nicht, 'Integervariable als Bitwert einlesen' was soll das sein?

  • Genau das habe ich gemacht.
    LG



    Und beim Testen Eingänge angestellt? Weil sonst haste Wert = 0, was exakt zu Deinem Fehler führt. (unzulässiger Feldindex)


    Das Thema, wo Du meinen Post hier zitierst, hat eigentlich gar nichts mit Array und Deinem Post zu tun.
    Wenn Du den Wert übernehmen willst aus einer Signalverknüpfung, musst Du halt auf Plausibilität betreffend Arrayfelder prüfen, bevor Du aufs Array losgehst.


    Wir schreiben sehr oft Beispielcode, wie etwas prinzipiell geht. Dies sauber zu integrieren ist jedermann's eigene Sache.


    Und bitte in Zukunft immer gleich richtiger Code posten. Kann die Files / Archiv ja auch gleich anhängen.


    Gruss SJX

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

  • Moin,
    selbstverständlich waren plausible Signale auf den Eingängen, und warum hat das nichts mit meinem Post zutun? Das war der Auslöser des Problems...
    Naja is ja auch egal, das Problem ist ja jetzt aus der Welt, und gut is!


    LG Fredi19

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