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

Ergebnis 1 bis 4 von 4

Thema: Feldgrenzen (Diese..undDiese) als Wert in SCL ermitteln

  1. #1
    Registriert seit
    14.07.2008
    Ort
    Bielefeld
    Beiträge
    12
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich möchte die Feldgrenzen eines Array in SCL ermitteln um hier gezielt löschen zu können. Die Übergabeparameter meines FB sind leider fix, sodass ich intern die Struktur erkennen muss.
    Beispiel:

    Code:
    TYPE 
         XYXY : STRUCT
         XXXX : DatX;   
         YYYY : ARRAY [2000..2100] OF DatX; (*Dies ist Variabel !!!*) 
       END_STRUCT
    END_TYPE
    
    DATA_BLOCK TESTDB
       STRUCT
          DATA : XYXY;
       END_STRUCT
    BEGIN
    END_DATA_BLOCK
    Die DB-Nummer, DB-Länge etc. habe ich schon mittels Hilfspointer ermittelt.
    siehe hier:
    Code:
          
    TempPtr := TESTDB.YYYY; (* Hilfsvariable auf Hilfs-Any-Pointer kopieren um so den aktuellen DB herauszubekommen *)
    (* Info zum Any-Ptr *)
    DUMMY_IDCode_DataTyp  := InternAny1.IDCode_DataTyp;
    DUMMY_Anzahl          := InternAny1.Anzahl;
    DUMMY_DB_Nr           := InternAny1.DB_Nr;
    DUMMY_Speicherbereich := InternAny1.Speicherbereich;
    DUMMY_Start_DW        := InternAny1.Start_DW;
    
    DUMMY := TEST_DB(DB_NUMBER := InternAny1.DB_Nr, DB_LENGTH := LEN_in_Word, WRITE_PROT := Done); (* Länge des DB ermitteln *)
    Mit LEN_in_Word kann ich jetzt mühsam berechnen wo das zu bearbeitende Feldelement(das bekomme ich übergeben) liegt. Geht zwar auch, aber ist doch nicht elegant, oder??
    Ausserdem könnte ich schon vorher auf Gültigkeit des übergebenen Feldelementes checken!

    Ich hoffe auf die Experten hier im Forum Danke schonmal...
    Zitieren Zitieren Feldgrenzen (Diese..undDiese) als Wert in SCL ermitteln  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    aus sich heraus kann SCL nur sinnvoll mit Elementen arbeiten, die es kennt (beim compilieren ist die Struktur bekannt).
    Zu deinem Problem fällt mir nur ein :
    Das externe ARRAY mittels ANY-Pointer übergeben. Auf diese Weise kannst du dann die Größe und den Datentyp übergeben ...

    Gruß
    LL

  3. #3
    IchBinsNur ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2008
    Ort
    Bielefeld
    Beiträge
    12
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Jaja LL,

    das mit dem "erst beim compilieren ist die Struktur bekannt" ist schon klar,
    aber ich hatte halt die Hoffnung, zumindest die "2000" aus meinem Beispiel
    irgendwo mit Programmmitteln einsehen zu können.
    Leider sind die Parameter bereits fix. Der FB ist nur ein Update mit flexiblerer
    Funktion, die dem Kunden leichtfertig versprochen wurde (nicht von mir
    sondern von jemandem der sich nicht damit auskennt...

    Schade, aber Danke für das schnelle Statement

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... wie wäre es denn mit einer Art Header zu deinem Daten-Baustein ?
    Ich stelle es mir in etwa so vor, dass du ein "paar" Informationen zum Aufbau deiner Datenstruktur (die immer gleich schiffriert sind / sein müssen) vor deinem Daten-Array ablegst und via des ANY-Pointers mit liesst und dann dieses erst auswertest und dann "sinnvoll" auf die Daten zugreifst ...

    Vielleicht ein Ansatz ...

Ähnliche Themen

  1. REAL-Wert in Word-Wert konvertieren
    Von Mohrchen im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.07.2011, 13:02
  2. Wie krieg ich diese Verzweigung weg?
    Von DjTommyB im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 30.03.2010, 15:43
  3. Wo findet man diese sch**** Registerkarte???
    Von Grimsey im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.07.2008, 08:11
  4. Antworten: 6
    Letzter Beitrag: 19.04.2007, 00:24
  5. S7 313C welcher FB für diese Regelung ?
    Von kirk42 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 20.04.2006, 11:17

Lesezeichen

Berechtigungen

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