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

Ergebnis 1 bis 10 von 10

Thema: Pointer

  1. #1
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    wenn ich in einem FC im Temp-Bereich eine Variable X anlegen vom Typ STRUCT. Und ein Element dieses STRUCT soll Variable Y vom Typ INTEGER sein.
    Wie kann ich den Pointer auf diese Variable abfragen?
    Code:
    L    P#X.Y
    funktionert nicht

    Code:
    L    P#X
    liefert mir nur die Anfangsadresse des STRUCT

    Ist das nicht in dieser Weise möglich?
    Zitieren Zitieren Pointer  

  2. #2
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Man kann mit einem POINTER nur die Anfangsadresse der TEMP-Variable vom Datentyp STRUCT bestimmen:

    Code:
          L     P##X                        // POINTER STRUCT-Variable
          LAR1
    Oder folgender Programmcode:

    Code:
          LAR1  P##X                        // POINTER STRUCT-Variable
    Um auf die einzelnen Strukturkomponenten der TEMP-Variable vom Datentyp STRUCT zuzugreifen, muss man einen Offset auf die Anfangsadresse im Adressregister AR1 addieren:

    Code:
          L     W [AR1,P#2.0]               // Strukturkomponente
    Gruß Kai

  3. #3
    Avatar von Dotzi
    Dotzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    Damit geht also das symbolische Programmieren bei STRUCTs verloren. Das ist ja wirklich schade.

    Gruß
    Geändert von Dotzi (12.04.2008 um 22:53 Uhr)

  4. #4
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nicht ganz, auf die einzelnen Strukturkomponenten kann man natürlich immer noch symbolisch zugreifen.

    Code:
      L     #X.Y                        // STRUCT-Variable Strukturkomponente
    Gruß Kai

  5. #5
    Avatar von Dotzi
    Dotzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    Damit hast du natürlich recht.

    Es ist mir eben nur nicht möglich in einem Element einer Struktur, das nicht vom Typ Bool ist, ein Bit zu beeinflussen. Wobei diese Struktur beliebig erweitert werden kann, ohne das im Code was geändert werden muss.
    Dafür muss dann das Element erst in eine Temp-Variable umkopiert werden und in dieser kann dann der Zugriff erfolgen. Anschließend muss die Variable dann wieder auf das Strukturelement übertragen werden.

    So, hoffe nun habe ich mein Anliegen klar und deutlich formuliert.

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    wenn du die Struktur änderst, ohne das dein Baustein das weiß wird es nicht funktionieren. Vor allem dann nicht, wenn die Struktur sich vergrößert ...
    Was hast du konkret vor ...?

  7. #7
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Verstehe ich nicht

    Wo ist das Problem, bei einer Integer Variablen in Deiner Struktur ein Bit zu verändern? Außerdem habe ich es so verstanden, das sich Deine Variable mit der Struktur innerhalb des FCs befindet. Warum soll ich darauf dann über Pointer zugreifen?

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    @Grubba:
    Toller Beitrag ... da möchte einer etwas wissen und du fragst : "Warum ?".
    Vielleicht hat Dotzi ein ARRAY of STRUCT (z.B.)

  9. #9
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    @Larry:

    Naja, er hat z.B. geschrieben, das er erst eine Kopie seiner Variablen anlegen, diese verändern, und dann wieder zurückkopieren würde. Da gehe ich davon aus, das er weiß wie er in der Kopie seiner Integervariablen ein Bit setzt. Und da es bei direkter Bearbeitung seiner Variablen genauso funktioniert, frage ich mich immer noch, wo das Problem liegt. Vielleicht sagt er mir es ja...

    Und mein "warum" kommt wohl daher, weil ich mir seine Vorgehensweise absolut nicht erklären kann.

    Aber vielleicht bringt Dotzi ja ein wenig Licht in die Sache, also nichts für ungut...

  10. #10
    Avatar von Dotzi
    Dotzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Grubba Beitrag anzeigen
    Verstehe ich nicht

    Wo ist das Problem, bei einer Integer Variablen in Deiner Struktur ein Bit zu verändern? Außerdem habe ich es so verstanden, das sich Deine Variable mit der Struktur innerhalb des FCs befindet. Warum soll ich darauf dann über Pointer zugreifen?

    Ich weiß, dieses Thema ruht schon etwas.
    Aber nachdem ich diese Antwort gelesen habe, frage ich mich nun.
    Wie kann ich in einem Word in einem Struct ein Bit manipulieren? Das ganze natürlich ohneauf direkte Adressen zuzugreifen.

    Gruß Dotzi

Ähnliche Themen

  1. Pointer und Co
    Von mkd im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.07.2008, 14:30
  2. SCL: Pointer
    Von dinner4one im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.07.2008, 18:07
  3. Pointer in SCL ?
    Von AndreK im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.04.2008, 21:24
  4. DB und Pointer
    Von PhilippL im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.09.2007, 07:02
  5. VKE und Pointer im FC...
    Von halorenzen im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2004, 13:16

Lesezeichen

Berechtigungen

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