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

Ergebnis 1 bis 2 von 2

Thema: Variablen "indirekt" ansprechen

  1. #1
    Registriert seit
    16.03.2004
    Beiträge
    173
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich habe folgende Variablen definiert:
    Code:
    S010_MP_KALIB_001	:ARRAY[1..35] OF REAL; (* Arraygrösse in vb.NET fest hinterlegt *)
    S010_MP_KALIB_002	:ARRAY[1..35] OF REAL;
    S010_MP_KALIB_003	:ARRAY[1..35] OF REAL;
    S010_MP_KALIB_004	:ARRAY[1..35] OF REAL;
    S010_MP_KALIB_005	:ARRAY[1..35] OF REAL;
    S010_MP_KALIB_006	:ARRAY[1..35] OF REAL;
    S010_MP_KALIB_007	:ARRAY[1..35] OF REAL;
    Ich weiss, ein 2-Dimensionales Array wäre schönder aber die .NET-Anwendung die diese Daten abgreift kommt damit nicht klar.

    Ist es möglich diesen Variablennamen automatisiert anzusprechen in einer Schleife?
    Ich möchte die 7 Variablen in einer Schleife durchlaufen. Kann ich die Variablennamen hinten (001-007) durch einen Schleifenzähler ersetzen?

    Danke
    Thomas
    greetings from upper austria

    ... merlin ...
    Zitieren Zitieren Variablen "indirekt" ansprechen  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist zwar eine etwas ungewohnte Syntax, aber folgendes sollte möglich sein:

    Ein Array mit Zeigern auf das Array anlegen:
    Code:
    S010_MP_KALIB : ARRAY[1..7] OF POINTER TO ARRAY[1..35] OF REAL;
    Dann die Zeiger auf das jeweilige Array setzen:
    Code:
    S010_MP_KALIB[1] := ADR(S010_MP_KALIB_001);
    S010_MP_KALIB[2] := ADR(S010_MP_KALIB_002);
    S010_MP_KALIB[3] := ADR(S010_MP_KALIB_003);
    S010_MP_KALIB[4] := ADR(S010_MP_KALIB_004);
    S010_MP_KALIB[5] := ADR(S010_MP_KALIB_005);
    S010_MP_KALIB[6] := ADR(S010_MP_KALIB_006);
    S010_MP_KALIB[7] := ADR(S010_MP_KALIB_007);
    Dann sollte man mit folgender Syntax auf die Elemente zugreifen können
    Code:
    (* schreibt auf S010_MP_KALIB_001[5] *)
    S010_MP_KALIB[1]^[5] := 47.11;
    
    (* schreibt auf S010_MP_KALIB_006[15] *)
    S010_MP_KALIB[6]^[15] := 42.0;

Ähnliche Themen

  1. Was versteht man unter einer "statischen Variablen"?
    Von unbekanntster im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 26.04.2016, 22:26
  2. Variablen eines Datenblocks mit Merkern "verknüpfen"?
    Von FrankTheTank im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.10.2011, 15:45
  3. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  4. Bool-Variablen "Sx.x" aus S7-200 auf MP277 darstellen
    Von ChristianVogel im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.11.2010, 18:08
  5. allgem. C Script Frage mit "define" deklarierten Variablen
    Von dellamorte-dellamore im Forum HMI
    Antworten: 9
    Letzter Beitrag: 13.02.2006, 11:46

Lesezeichen

Berechtigungen

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