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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Zuweisung von Adressen

  1. #11
    buenne ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.02.2007
    Beiträge
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja so ähnlich kann man das sehen.

    Wie kann ich eine Adresse eines DB (DB100) fest
    einem anderen DB101 (Array,Feld xy) zuordnen?

    Ich brauche das um die Information eines Knoten
    eines Graphen den oder die Vorgänger/Nachfolger
    in einem Array abzulegen.
    Der Graph hat mehere Knoten, die untereinander verbunden sind.
    Mit einem Algorithmus(Tiefensuche) will ich den Graphen durchlaufen
    um einen bestimmten Knoten zu finden.
    In einem DB100 habe ich alle meine Knoten ablegt. Jeder Knoten hat Bitinformationen in DWORD.
    In einem zweiten DB101 habe ich mehrer Arrays abgelegt. Jedes Array
    spiegelt einen Knoten aus dem DB100 wieder, dh in jedem dieser Arrays stehen die Adressen für Vorgänger/Nachfolger.

    Danke

  2. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    kannst du das mal mit ein paar reellen werten hier posten was in welchem db steht bzw stehen sollte.
    muss nicht der syntax entsprechen. ich kann mir irgendwie kein richtiges bild von der sache machen.

    kurz vor ostern bin ich immer so schwer von begriff.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

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

    buenne (05.04.2007)

  4. #13
    buenne ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.02.2007
    Beiträge
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    DB100: Bitweise Informationen über den Knoten
    DB101: Informationen über den Vorgänger/Nachfolger in den Arrays, also Verweis auf die Adressen von DB100 in den einzelnen Feldern.


    DATA_BLOCK KNOTEN
    //
    // Im DB100 werden alle Knotenpunkte mit seinen Informationen
    // (32 Bit) in einem Array abgelegt.
    //
    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
    BEGIN
    END_DATABLOCK



    DATA_BLOCK ADJAZEN
    //
    // Im DB 101(Adjazen) stehen in mehreren Arrays die Verbindungsinformationen zum Vorgänger
    // und zum Nachfolger in Form von Adressen
    //
    STRUCT
    Knoten_A: ARRAY[1..3] OF DWORD; //Im Feld 1 soll z.B. ein Verweis
    Knoten_B: ARRAY[1..2] OF DWORD; //(Adresse) von z.B. Knoten_A
    Knoten_C: ARRAY[1..2] OF DWORD; //aus DB100
    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
    BEGIN
    END_DATABLOCK

  5. #14
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von buenne Beitrag anzeigen
    Ja so ähnlich kann man das sehen.

    Der Graph hat mehere Knoten, die untereinander verbunden sind.
    Mit einem Algorithmus(Tiefensuche) will ich den Graphen durchlaufen
    um einen bestimmten Knoten zu finden.
    Um welche Art von Graphen handelt es sich, kann da jeder Knoten mit jedem und allen verbunden werden, oder liegt ein Baum vor?

    Warum bildest du nicht die Knoten + Adresse in einem Typ ab und steckst es dann immer zusammen in einen DB?

    Welche Anwendung steckt da eigentlich dahinter?

  6. #15
    buenne ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.02.2007
    Beiträge
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Graph und Baumstruktur sind
    fast das gleiche.

    Hier ist es einegntlich ganz gut beschrieben.
    http://kik.informatik.fh-dortmund.de...efensuche.html

    Warum bildest du nicht die Knoten + Adresse in einem Typ ab und steckst es dann immer zusammen in einen DB?
    Wie meinst du das? Evt. Beispiel

    Danke für dei Interesse!

  7. #16
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von buenne Beitrag anzeigen
    Graph und Baumstruktur sind
    fast das gleiche.
    Bevor den Unterschied nicht genau kennst, solltest du dir ums Programmieren noch keinen Kopf machen.



    Zitat Zitat von buenne Beitrag anzeigen
    Wie meinst du das? Evt. Beispiel
    Du weisst aber schon, wie man einen Typ anlegt?
    Und die Struktur der verketteten List? Schonmal was davon gehört? Oder gelesen?

    hth

  8. #17
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    also irgendwie checke ich das nicht so ganz.

    ok.im db100 stehen die infos über den knoten selbst.

    annahme
    dbd0-----dbd4----dbd12
    knotA-----knotB-----knotD

    im db101 stehen folgende infos im array.
    Knoten_B[1] = vorgängerknoten (hier soll jetzt die adresse db100.dbd0 stehen ?)
    Knoten_B[2] = dieser knoten (hier dbd4)
    Knoten_B[3] = folgeknoten (hier dbd12)

    stimmt das so?

    und wieso ist das array für konten f..j nur 1 lang?
    die solltest du alle auf die gleiche länge setzen damit du überhaupt brauchbar indirekt arbeiten kannst.

    so im programm willst du nun die daten
    die adressen im array im db101 kannst du nun auf zwei arten ablegen.
    1. dezimal
    wenn so dan musst du dir den pointer im prog immer wieder neu bauen
    2. als pointer

    z.b.
    Code:
    //zuweisung der adressen
          L     0 //adresse dezimal
          SLD   3
          T     DB101.DBD    12 //knoten_b[1] zeigt nun auf dbd0 (knoten_a)
     
          L     4 //adresse dezimal
          SLD   3
          T     DB101.DBD    16 //knoten_b[2] zeigt nun auf dbd4 (knoten_b)
     
          L     12 //adresse dezimal
          SLD   3
          T     DB101.DBD    20//knoten_b[3] zeigt nun auf dbd12 (knoten_d)
    Code:
          AUF   DB    101
          L     DBD 12
          t     #vorknoten
          L     DBD 16
          t     #istknoten
          L     DBD 20
          t     #nachknoten
     
          AUF   DB    100
          L     DBD [#vorknoten] 
          L     DBD [#istknoten] //lädt also db100.dbd4
          L     DBD [#nachknoten]
    und..... treffer ???
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  9. #18
    buenne ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.02.2007
    Beiträge
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    JOOOOO!! So war das gemeint.

    im db101 stehen folgende infos im array.
    Knoten_B[1] = vorgängerknoten (hier soll jetzt die adresse db100.dbd0 stehen ?)
    Knoten_B[2] = dieser knoten (hier dbd4)
    Knoten_B[3] = folgeknoten (hier dbd12)

    und wieso ist das array für konten f..j nur 1 lang?
    die solltest du alle auf die gleiche länge setzen damit du überhaupt brauchbar indirekt arbeiten kannst.
    Dieser Knoten hat halt nur einen Vorgänger/Nachfolger im Graphen/Baum.

    Den Code den du geschrieben hast verstehe ich auch soweit.

    Meine Frage: Kann ich eine Adresse aus DB100 fest/direkt in ein Feld
    eines Arrays des DB101 schreiben.(Ohne Pointer!!)

    Wenn das nicht geht, dann geht es halt nicht. Würde mir die Sache in SCL deutlich vereinfachen.

    Danke Volker!!

  10. #19
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    der pointer ist doch die adresse.
    wenn sich die adressen nie andern, kannst du auch den festen wert dort reinschreiben
    DW#16#00000060 //ist der pointer auf dbd12

    oder dezimal
    Code:
          L     12 //adresse dezimal
          T     DB101.DBD    20//knoten_b[3] zeigt nun auf dbd12 (knoten_d)
    ------------------------------------------
          L     db100.DBD 12
          sld 3
          t     #nachknoten
     
          AUF   DB    100
          L     DBD [#nachknoten]
    das halte ich aber für noch umständlicher

    Danke Volker!!
    Bitte benutzen im Beitrag diesen Button
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  11. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    buenne (06.04.2007)

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 02.09.2011, 11:43
  2. bedingte Zuweisung im FUP?
    Von McNugget im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 26.11.2009, 11:16
  3. Ungültige Zuweisung, SCL
    Von petzi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.05.2009, 13:55
  4. Zuweisung
    Von snowbda im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 03.12.2008, 15:11
  5. Zuweisung von Hardware Eingängen
    Von chivas im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.10.2004, 16:35

Lesezeichen

Berechtigungen

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