Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: Array Offset

  1. #1
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich bitte um einen kurzen Tipp, wie ich ein Array wie folgt anlegen kann (Twincat):


    xyz: Array[Arraystart..Arraystart+AnzahlElemente]

    Arraystart und AnzahlElemente möchte ich als Konstante ablegen.

    Ich erhalte dabei immer einen Fehler (falscher Initialwert).

    Für Eure Hilfe schonmal
    ! 1000 THANX !
    Geändert von forellengarten (04.04.2011 um 20:57 Uhr)
    Zitieren Zitieren Array Offset  

  2. #2
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    So direkt geht das nicht, die Grenzen müssen Zahlen sein, und als Konstanten deklariert sein.

    Code:
        xyz: ARRAY[Arraystart..AnzahlElemente] OF BYTE;
    Du kannst die Anz. Elemente während der Laufzeit nicht verändern, somit musst du halt selber rechnen...

  3. #3
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Rechnereien in der Arraydefinition gehen nicht.
    Das braucht leider zwei Konstanten

    VAR
    iArray: ARRAY [iStart..iEnde] OF INT;
    END_VAR
    VAR CONSTANT
    iStart: INT := 1;
    iEnde: INT := 999;
    END_VAR
    Grüße Frank

  4. #4
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von gloeru Beitrag anzeigen
    So direkt geht das nicht, die Grenzen müssen Zahlen sein, und als Konstanten deklariert sein.

    Code:
        xyz: ARRAY[Arraystart..AnzahlElemente] OF BYTE;
    Du kannst die Anz. Elemente während der Laufzeit nicht verändern, somit musst du halt selber rechnen...

    nein, nein, es soll nicht während der Laufzeit geändert werden. Das ganze soll nur in der Variablendeklaration so stehen, damit das Array angepaßt wird, wenn die Konstante "AnzahlElemente" verändert wird (wäre bei Hardware-Änderung der Fall).

  5. #5
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    auch in der Definition von CONSTANT kannst du nicht rechnen

    Konstanten werden mit dem Schlüsselwort CONSTANT gekennzeichnet. Sie
    können lokal oder global deklariert werden.
    Syntax:
    VAR CONSTANT bzw. VAR_GLOBAL CONSTANT
    <Bezeichner>:<Typ> := <Initialisierung>;
    END_VAR
    Beispiel:
    VAR CONSTANT
    con1:INT:=12; (* 1. Konstante*)
    END_VAR
    Geändert von IBFS (04.04.2011 um 21:19 Uhr)
    Grüße Frank

  6. #6
    Avatar von forellengarten
    forellengarten ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2009
    Ort
    Süddeutschland
    Beiträge
    173
    Danke
    37
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    auch in der Definition von CONSTANT kannst du nicht rechnen
    ja, genau. Leider geht das auch nicht.

  7. #7
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Genau, DU musst beim Deklarieren rechnen, das war auch das was eigentlich gemeint hatte...
    (Aber da nur ganze, natürliche Zahlen verwendet werden dürfen, sollte das nicht das Problem sein )

  8. Folgender Benutzer sagt Danke zu gloeru für den nützlichen Beitrag:

    forellengarten (05.04.2011)

Ähnliche Themen

  1. Indradrive CS Kommutierungs-Offset
    Von Scorch89 im Forum Antriebstechnik
    Antworten: 1
    Letzter Beitrag: 10.06.2011, 16:53
  2. Offset auf S7-Zeit für WinCCflexible (MP377)????
    Von Inbetriebnehmer im Forum HMI
    Antworten: 3
    Letzter Beitrag: 02.02.2011, 19:26
  3. Pointer offset von Aussen vorgeben
    Von Pascher im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.05.2009, 17:07
  4. Pointer und Offset
    Von SPSTorsten im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 14.01.2009, 21:42
  5. DB-Nummer und Offset aus Symbol auslesen
    Von nobby_nobbs im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.08.2008, 15:41

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •