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

Ergebnis 1 bis 3 von 3

Thema: SCL - Größe und Position einer Struktur ermitteln

  1. #1
    Registriert seit
    28.04.2005
    Beiträge
    85
    Danke
    11
    Erhielt 8 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    ich versuche gerade (vergeblich) eine Funktion in SCL zu schreiben welche mir die Position und die Größe einer als ANY-Pointer anparametrierten Structur ausgibt.
    Die Idee ist iStruktur:ANY; als VAR_INPUT einzulesen, diese evtl. (mit dem "AT"-Befehl) in TEMP zu verfrachten und da auseinander zu nehmen.
    Allerdings stelle ich fest dass "AT"-Befehl nur in TEMP-Variablenbereich mit ANY-Pointer verträglich ist.
    Ein FB will ich dafür nicht verwenden(dass es mit einem DB einfach geht ist mir klar).
    In AWL weiss ich ebenfalls wie es ginge. Ich suche also eine lösung in SCL.

    Kennt einer vielleicht eine (elegante) Möglichket diese Aufgabe in SCL in einem FC zu lösen?

    Hier mein bisheriger Versuch:
    Code:
    FUNCTION FC_STRUCT_INFO : VOID
    VAR_INPUT
      iStruktur:ANY; // Auszuwertende Struktur
      ANYPointer AT iStruktur : STRUCT  
        Kennung       : BYTE;  
        Typ           : BYTE;  
        Anzahl        : INT;  
        Baustein      : WORD;  
        Adresse       : DWORD;  
      END_STRUCT;    
    END_VAR
    VAR_OUTPUT
      oADR_Begin:INT; // Anfangsadresse
      oLaenge:INT; // Länge der Struktur in BYTE
    END_VAR
    BEGIN
    // **********************************************************
    ;
    
    // **********************************************************
    END_FUNCTION
    Geändert von ANo (05.02.2012 um 17:41 Uhr)
    Zitieren Zitieren SCL - Größe und Position einer Struktur ermitteln  

  2. #2
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Hallo,

    deklarier es als VAR_INPUT_OUTPUT und dann schieb es einfach per Zuweisung ins TMP.

    etwa so:

    TMP_STRUCT:= IO_STRUCT;

    am Ende natürlich umgekehrt

    Grüße

    Marcel

    P.S: Du hast aber nicht unbegrenzt Lokalspeicher... aber da meckert die SPS schon früh genug.

  3. Folgender Benutzer sagt Danke zu Matze001 für den nützlichen Beitrag:

    ANo (05.02.2012)

  4. #3
    ANo ist offline Benutzer
    Themenstarter
    Registriert seit
    28.04.2005
    Beiträge
    85
    Danke
    11
    Erhielt 8 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat geklappt!
    Danke!

Ähnliche Themen

  1. Benötigte MMC-Größe ermitteln
    Von element. im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.08.2009, 14:38
  2. Länge einer Struktur im DB ermitteln
    Von Knut333 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.01.2009, 18:04
  3. DB-Länge und Größe in SCL
    Von Pikador im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 09.03.2008, 15:31
  4. [Frage] - Mit LibNoDave DB Größe ermitteln?
    Von marcengbarth im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 31.08.2007, 13:52
  5. Antworten: 10
    Letzter Beitrag: 05.07.2007, 20:26

Lesezeichen

Berechtigungen

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