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

Ergebnis 1 bis 7 von 7

Thema: S7 als Datenbank/Vergleicher Sinnvoll? (20.000 Daten)

  1. #1
    Registriert seit
    25.11.2014
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich stehe vor der Aufgabe mit einer S7-1500 eine Art Datenbank für Seriennummern zu erstellen...

    Es sollen Seriennummern von gefertigten Teilen gescannt, gespeichert und verglichen werden. (bis 20.000 Strings)

    Ist eine Seriennummer bei einem der letzten 20.000 Teilen bereits verwendet worden, so soll es eine Fehlermeldung geben.


    Meine bedenken sind eben, das die Zykluszeit für einen Vergleich von 20.000 Strings (ca 42 Zeichen) in einem DB unglaublich lang werden könnte.

    Gibt es solche Lösungen SPS basiert, oder sollte ich da die Finger weg lassen?

    MfG Hexic
    Zitieren Zitieren S7 als Datenbank/Vergleicher Sinnvoll? (20.000 Daten)  

  2. #2
    Registriert seit
    22.02.2015
    Ort
    Ravensburg
    Beiträge
    42
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    ich würde mal ein Testprojekt anlegen um zu sehen wie sich die Zykluszeit verhaltet.


    Beispiel Code für eine Suchfunktion in AWL
    http://www.sps-forum.de/simatic/3568...tml#post259607

  3. #3
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Du musst die Daten nur Sortiert ablegen. Danach kannst du mit einem Quick-Search in max ~12 Iterationen alle 20000 durchsuchen.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Das Problem wird sein, in der SPS die Liste jedes mal neu zu sortieren wenn eine neue Seriennummer gescannt wird.

    Darum würde ich mir zusätzlich eine Indexliste anlegen, dann entfällt das zeitraubende umkopieren der Strings.

    Beispiel:
    Stringliste
    [1] Dieses
    [2] soll
    [3] ein
    [4] Test
    [5] sein

    Indexliste alphabetisch sortiert
    [1] 1
    [2] 3
    [3] 5
    [4] 2
    [5] 4

    Wenn eine neue Seriennummer hinzukommt, wird diese an die Stringliste hinten angehängt und nur die Indexliste neu sortiert/erstellt. Bedeutet bei 20.000 Einträgen aber auch die entsprechende Anzahl an Kopiervorgängen, aber da es nur Integerzahlen sind geht das relativ schnell. Womöglich noch in einem Zyklus.

    Normalerweise würde man sowas eher mit verketteten Listen oder Hashtabellen lösen, aber die S7-1500 hat sehr eingeschränkte Möglichkeiten was Datenstrukturen betrifft. Eigentlich gibt es dort nur das Array.

  5. #5
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Guter Plan, das mit den Indexen macht Sinn.
    Dann die Strings in einem Ringpuffer handeln und die Aufgabe wäre gelöst

  6. #6
    Registriert seit
    20.02.2014
    Beiträge
    75
    Danke
    13
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Vielleicht würde es auch Sinn machen, dass du einen DB mit den 20000 Strings machst und dann noch einmal 36 DB's ( 26 Buchstaben +0-10 Ziffern) und in diese DB's legst du je nach anfangszeichen die Nummern der Arrayindexe ab, die des Anfangszeichen haben.

    Beim einlesen eines neuen Strings schaust du dir dann nur das erste Zeichen an. Gehst zu dem entsprechenden DB und durchsuchst deinen großen DB mit den gespeicherten Indexi aus dem entsprechenden DB.

    Ich hoffe, dass es verständlich ist. Falls nicht einfach noch einmal melden.

    Gruß
    Andreas

  7. #7
    hexic ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.11.2014
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen dank erstmal für die Vorschläge, werde das mal durchtesten.

Ähnliche Themen

  1. PLC-Daten weiterverarbeitene in Datenbank
    Von itsam77 im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 24.03.2013, 13:00
  2. SPS Daten in Datenbank schreiben
    Von alexa3 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 14.11.2010, 00:16
  3. 350.000.000.000
    Von RobiHerb im Forum Stammtisch
    Antworten: 5
    Letzter Beitrag: 17.05.2009, 17:30
  4. SPS-daten in datenbank ablegen
    Von Ray-Banton im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 16.11.2008, 21:03
  5. Kommunikation: Daten an Datenbank senden
    Von reiki im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.09.2006, 10:35

Lesezeichen

Berechtigungen

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