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

Ergebnis 1 bis 2 von 2

Thema: Adressen in DB's zuweisen(SCL)

  1. #1
    Registriert seit
    10.02.2007
    Beiträge
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin zusammen!
    Ich habe zwei Datenbausteine und möchte dem zweiten DB 101 in den einzelnen Feldern eine Adresse des ersten Datenbausteins ablegen.

    Z.B Aus dem DB 100 soll die Adresse des Knoten_C im ersten Feld vom DB 101 Knoten_A stehen und im zweiten Feld die Adresse von DB 100 Knoten_A.
    Wie schreibe ich die Zuweisung für die einzelnen Felder(Array) im DB 101?
    Geht das überhaupt?

    Erster Datenbaustein:

    DATA_BLOCK DB100
    STRUCT
    Knoten_A: DWORD; //DB100 0.0
    Knoten_B: DWORD; //DB100 4.0
    Knoten_C: DWORD;
    Knoten_D: DWORD;
    Knoten_E: DWORD;
    Knoten_F: DWORD;
    Knoten_G: DWORD;
    Knoten_H: DWORD;
    Knoten_I: DWORD;
    Knoten_J: DWORD;
    END_STRUCT

    Zweiter Datenbaustein:

    DATA_BLOCK DB101
    STRUCT
    Knoten_A: ARRAY[1..3] OF DWORD;
    Knoten_B: ARRAY[1..2] OF DWORD;
    Knoten_C: ARRAY[1..2] OF DWORD;
    Knoten_D: ARRAY[1..3] OF DWORD;
    Knoten_E: ARRAY[1..3] OF DWORD;
    Knoten_F: ARRAY[1..1] OF DWORD;
    Knoten_G: ARRAY[1..1] OF DWORD;
    Knoten_H: ARRAY[1..1] OF DWORD;
    Knoten_I: ARRAY[1..1] OF DWORD;
    Knoten_J: ARRAY[1..1] OF DWORD;
    END_STRUCT

    Danke für Eure HILFE
    Zitieren Zitieren Adressen in DB's zuweisen(SCL)  

  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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich mache auch so etwas ähnliches. Dabei arbeite ich mit einem ANY-Pointer. Das geht so :

    Zunächst legst du im TEMP-Bereich eine Struct an :
    xAny : STRUCT
    ID_Code : byte ;
    DataTyp : byte ;
    Anzahl : word ;
    DB_Nr : word ;
    SpeicherPtr : dowrd ;
    END_SRUCT ;
    hAny AT xAny : any ;

    Nun kannst du dir den Pointer einer beliegen SCL-Variablen holen mit :
    Var_Offset := DWORD_to_INT (xAny.SpeicherPtr and dw#16#00FF_FFFF) / 8 ;

    Diese Variable kannst du in den anderen DB hereinschreiben und direkt als Offset wieder aufgreifen.
    Das geht z.B. so :
    DB100.DW[Offset + Verschiebung] := 12345 ;

    ... oder so ...

    Ich hoffe, das hilft dir weiter ...

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 02.09.2011, 11:43
  2. Antworten: 24
    Letzter Beitrag: 24.06.2010, 07:48
  3. Einem FB ein DB zuweisen?
    Von DN8 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.03.2007, 21:20
  4. EA Feld Wert zuweisen
    Von tarzanhb im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.10.2006, 10:02
  5. Ausgänge zuweisen
    Von smartie im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 16.09.2006, 08:17

Lesezeichen

Berechtigungen

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