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

Ergebnis 1 bis 7 von 7

Thema: FB mit Array versorgen

  1. #1
    Registriert seit
    16.12.2004
    Ort
    Winterthur, Schweiz
    Beiträge
    157
    Danke
    21
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen.
    Ich probiere gerade ein FB mit einem Arry zu versorgen.

    Der FB ist in SCL Programmiert und hat ein Array von 0..10 of Struct mit 2 Int werten.

    Nun der DB ist ebenso aufgebaut.

    nun die Frage wie versorge ich den FB?



    Call FB900,db900
    iIndex: =MW10
    iSortieraten:=???
    oZahl1:= logisch
    oZahl2:= Logisch


    Adresse Name Typ Anfangswert Kommentar
    0.0 STRUCT
    +0.0 zahlen ARRAY[0..10]
    *0.0 STRUCT
    +0.0 Zahl1 INT 0
    +2.0 Zahl2 INT 0
    =4.0 END_STRUCT
    =44.0 END_STRUCT


    grüsse Thomas
    Zitieren Zitieren FB mit Array versorgen  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    DbName.ArrayName

    Das ist dann quasi ein Pointer mit absoluten Adressen geht es nicht.
    If you open your Mind too much, your Brain will fall out.

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

    thomasgull (13.09.2009)

  4. #3
    thomasgull ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2004
    Ort
    Winterthur, Schweiz
    Beiträge
    157
    Danke
    21
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Irgendwie mache ich was Falsch

    das Array ist jedoch eine Struct und er meldet
    Zahlen ist kein Symbol von DB oder Zahl1 ist kein Symbol von DB

    thomas

  5. #4
    Registriert seit
    27.03.2007
    Beiträge
    59
    Danke
    28
    Erhielt 34 Danke für 28 Beiträge

    Standard

    Hallo Thomas,

    wenn du den Code postest, der nicht funktioniert, dann kann man dir eher weiterhelfen.
    Sonst kann man nur raten.

    Wenn der DB im Offline-Bausteinordner vorhanden ist und Schnittstelle und DB-Array gleich deklariert wurden, dann funktioniert Zotos Vorschlag auch.

    Code:
    Call FB900,db900
    iIndex: =MW10
    iSortieraten:="DeineDB".zahlen    // nicht "DeinDB".zahlen[0] => eckige Klammer weglassen
    oZahl1:= logisch
    oZahl2:= Logisch
    Gruß puzzlefreak

  6. Folgender Benutzer sagt Danke zu puzzlefreak für den nützlichen Beitrag:

    thomasgull (13.09.2009)

  7. #5
    thomasgull ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2004
    Ort
    Winterthur, Schweiz
    Beiträge
    157
    Danke
    21
    Erhielt 3 Danke für 2 Beiträge

    Standard

    das ist der SCL
    Code:

    FUNCTION_BLOCK FB900

    DB Struktur


    DB Zahlen

    Adresse Name Typ Anfangswert Kommentar
    0.0 STRUCT
    +0.0 zahlen ARRAY[0..10]
    *0.0 STRUCT
    +0.0 Zahl1 INT 0
    +2.0 Zahl2 INT 0
    =4.0 END_STRUCT
    =44.0 END_STRUCT





    VAR_TEMP
    tIndex:INT;
    END_VAR

    VAR
    sZahl1:INT;
    sZahl2:INT;
    END_VAR

    VAR_INPUT
    iIndex:INT;

    iSortierdaten:ARRAY [0..10]OF STRUCT
    Zahl1:INT;
    Zahl2:INT;
    END_STRUCT;
    END_VAR

    VAR_OUTPUT
    oZahl1:INT;
    oZahl2:INT;
    END_VAR



    tIndex:=iIndex;

    sZahl1:=iSortierdaten[tIndex].Zahl1;// Auf eine Struktur in einem DB kann direkt zugegriffen werden.
    sZahl2:=iSortierdaten[tindex].Zahl2;

    oZahl1:=sZahl1;
    oZahl2:=sZahl2;



    END_FUNCTION_BLOCK

    ist das gerüst für einen Test.

    "heute ist wohl nicht mein Tag"

  8. #6
    thomasgull ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.12.2004
    Ort
    Winterthur, Schweiz
    Beiträge
    157
    Danke
    21
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Ok jetz gehts , Projekt zu und nochmal auf.

    Danke allen.

    Gehe wohl lieber Eis essen.

    sorry für die Unruhe

  9. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bei großen Arrays ist es vom Speicherplatz her gesehen besser, diesen Parameter im Bereich "IN_OUT" anzulegen, da dann nur ein Zeiger auf das erste Arrayelement und keine Kopie des gesamten Array übergeben wird.

    Nachteil ist aber dass das Array nicht mehr read-only ist.

  10. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    thomasgull (13.09.2009)

Ähnliche Themen

  1. SCL-FB mit Array versorgen
    Von thomasgull im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 04.08.2010, 07:38
  2. MPI-Adapter mit 24V am OP versorgen ?
    Von GobotheHero im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.05.2008, 09:57
  3. 12V Leuchten versorgen
    Von netx1 im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 03.02.2008, 12:25
  4. BLK_MOV mit Pointer versorgen
    Von CrazyCat im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 01.06.2006, 08:02
  5. Alarm8P mit externem Zeitstempel versorgen
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 26.04.2004, 21:23

Lesezeichen

Berechtigungen

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