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

Ergebnis 1 bis 6 von 6

Thema: Dynamische Structs? S7

  1. #1
    Registriert seit
    07.06.2011
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich benutze in meinem Gesamt-FB den Aufruf eines Auslese-FBs.
    Dieser nutzt einen SFC (51) um verschiedene Daten aus der HW-Konfiguration zu ermitteln.
    Als Rückgabewerte werden verschiedene structs (zb 2 words, dann 1 DoT, dann ein array von 5 bytes) geliefert.

    Ich möchte nun möglichst elegant die Structs vom Auslese-FB zurück zum Gesamt-FB bringen um sie dort auszuwerten.

    Dafür müsste ich nun mit case-Abfragen und Struct-Paaren arbeiten. Letzteres bedeutet code-verdoppelung und das würde ich gern verhindern.
    Ein Any-Pointer käme auch nicht in Frage das verschiedene Datentypen gebündelt und so nicht mehr zu unterscheiden wären.

    Gibt es für diese Problemstellung eine Lösung?

    (PS: Das Programm ist in SCL geschrieben)

    Bei Unklarheiten einfach Rückfragen stellen
    Zitieren Zitieren Dynamische Structs? S7  

  2. #2
    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

    Hallo,
    wenn dein "Rückgabebereich" immer gleich groß ist (also z.B. 20 Bytes) dann könntest du mit AT unterschiedliche Sichten auf den Bereich machen und ihn so jeweils anders "interpretieren". Das wäre dann keine Verdopplung der Deklarationsbereiche ...

    Gruß
    Larry

  3. #3
    voluba ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.06.2011
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    jo stimmt, leider kann es sein dass nur 5 oder auch gleich 220 bytes zurückkommen

  4. #4
    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

    ... dann deklarierst du dir den Empfangspuffer auf die maximale Größe und baust darauf unterschiedliche Sichten auf. Eine AT-Sicht kann auch kleiner sein wie der Bereich, auf den sie sieht - nur nicht größer ... aber das meckert dann schon der Compiler an.

    Gruß
    Larry

  5. #5
    voluba ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.06.2011
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wäre eine Möglichkeit DBs im Arbeitsspeicher zu erzeugen? (SFC 22)
    Dann müsste ich die entstandenen Array of Bytes mit einer AT-Sicht zu nem Struct umdeklarieren können oder?

  6. #6
    Registriert seit
    14.11.2008
    Beiträge
    66
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Soweit ich weiß, geht AT nur für VAR_TEMP und VAR-Variablen, nicht für Global-DBs oder sonstiges.

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 17.02.2012, 11:17
  2. TwinCat Datentypen -> Structs grau ???
    Von Anaconda55 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 02.10.2008, 15:12
  3. dynamische Arrays?
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 30.05.2008, 16:06
  4. Dynamische Schrittkette
    Von Pau1e im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 26.03.2008, 20:09
  5. Antworten: 1
    Letzter Beitrag: 23.06.2003, 11:45

Lesezeichen

Berechtigungen

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