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

Ergebnis 1 bis 8 von 8

Thema: Datenpaare im Datenbaustein(en) ordnen

  1. #1
    Registriert seit
    04.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Werte Kollegen,

    folgendes Datenproblem beschäftigt mich.

    Zur Anwendung kommen zwei DB's (global), in denen jeweils 10 Daten (int) abgelegt werden. Der Speicherbereich erstreckt sich von DBW0 bis DBW18.
    Diese Daten, gehören paarweise zusammen. Zum Beispiel bildet DB1.DBW0 und DB4.DBW0 ein Wertepaar. Folgende Fragen habe ich:

    1. Kann ich diese Wertepaare in einem DB schreiben?

    2. Wie sortiere ich die Wertepaare der Größe nach (angefangen vom größten Wert, DB1.DBWX für dem Größenvergleich als erstes relevant)?

    Vielen Dank im Voraus für Eure Hilfe

    Gruß Christian
    Zitieren Zitieren Datenpaare im Datenbaustein(en) ordnen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    zu 1.) na klar z.B. schon mal mit einem Array - das ginge dann auch 2-dimensional
    zu 2.) das gängiste Sortier-Verfahren wäre da Bubblesort. Dazu würdest du auch in der Foren-Suche sicherlich was Passendes finden.

    Willst du das mit AWL schreiben - oder ist ggf. auch SCL eine Option ?
    In SCL wäre das mit ziemlich geringen Aufwand zu machen ...

    Gruß
    Larry

  3. #3
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Christian Bo. Beitrag anzeigen
    Zur Anwendung kommen zwei DB's (global), in denen jeweils 10 Daten (int) abgelegt werden. Der Speicherbereich erstreckt sich von DBW0 bis DBW18.
    Diese Daten, gehören paarweise zusammen. Zum Beispiel bildet DB1.DBW0 und DB4.DBW0 ein Wertepaar. Folgende Fragen habe ich:

    1. Kann ich diese Wertepaare in einem DB schreiben?

    2. Wie sortiere ich die Wertepaare der Größe nach (angefangen vom größten Wert, DB1.DBWX für dem Größenvergleich als erstes relevant)?
    Hallo Christian,
    zu 1. : Klar einfach reinkopieren, allerdings wird es dann mit der 2. Aufgabe schwieriger (Sortieren).
    zu 2. : Einfach oben in der Suche "Bubblesort" eingeben
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

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

    Standard

    suche nache datenbaustein sortieren führt sicher zum uiel
    http://www.sps-forum.de/search.php?searchid=5358706
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Christian Bo. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das liest sich schonmal gut, danke.

    SCL ist möglich und auch angebracht, da ich die Ebene komplett gegen "Fremdzugriff" sichern möchte. Dort sind schon verschiedene Algorithmen implementiert. Aber ehrlichgesagt würde ich Bubblesort schneller hinbekommen, da ich zeitlich gesehen nicht wirklich das SCL-Genie bin. Wie könnte die Sortierroutine in SCL aussehen?

    Gruß Christian

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    das sinnvollste in verbindung mit SCL wäre, wenn du dein Array dann auch unter SCL (vielleicht sogar in dem FB) mit verwaltest.

    Dann könnte das so aussehen :
    Code:
    repeat
    Sort_Change := false ;
     
    for i := 1 to 9 by 1 do
       if meinElement[i,1] < meinElement[i+1,1] then
          HilfsVar := meinElement[i,1] ;
          meinElement[i,1] := meinElement[i+1,1] ;
          meinElement[i+1,1] := HilfsVar ;
          HilfsVar := meinElement[i,2] ; 
          meinElement[i,2] := meinElement[i+1,2] ;
          meinElement[i+1,2] := HilfsVar ;
          Sort_Change := true ;
       end_if ;
    end_for ;
     
    until not Sort_Change ;
    end_repeat ;
    kannst du damit etwas anfangen ?

    Gruß
    Larry

  7. #7
    Christian Bo. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich versuch mich daran, melde mich morgen hinsichtlich Erfolg oder Misserfolg.

    Unter Verwaltung des Arrays verstehe ich, dass die Werte einander zu Paaren geordnet werden. Das wäre sicherlich Sinnvoll, aber soweit reicht mein Wissen in SCL nicht. Erstmal ein Schritt nach dem Anderen. Vielen Dank für Eure Hilfe, gut das es so engagierte Menschen gibt!

    Gruß Christian

  8. #8
    Christian Bo. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.08.2011
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat funktioniert, danke für Eure Hilfe. Bis demnächst und ein schönes WE wünscht

    Christian

Ähnliche Themen

  1. STRING in ARRAY Alphabetisch ordnen
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 12.09.2011, 16:45
  2. Antworten: 1
    Letzter Beitrag: 11.10.2010, 15:26
  3. Datenbaustein
    Von cpu315 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 21.02.2008, 20:56
  4. Deklarationstabelle ordnen
    Von SPS-Starter im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.09.2006, 10:59
  5. Antworten: 4
    Letzter Beitrag: 23.08.2006, 15:02

Lesezeichen

Berechtigungen

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