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

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

Thema: FIFO Speicher mit Löschfunktion für beliebige Einträge

  1. #11
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen zusammen,

    vielen Dank erst mal für die Vorschläge. Über das Wochenende (also gestern ) habe ich mir jetzt folgenden Ablauf überlegt:

    Davon ausgehend das der FIFO bei Beginn leer ist und mein Schreibe-Zeiger auf dem ersten Datensatz steht, wird der erste
    Eintrag dorthin gespeichert. Daraufhin wird der Zeiger um 1 Datensatz (300 Byte) erhöht. Damit ist der nächste Datensatz zum
    Speichern angewählt.
    - Soweit nichts neues.

    Sobald ein Datensatz abgefragt wird, wird der erste Eintrag aus dem FIFO ausgegeben. Anschließend kopiere ich alle darauf
    folgenden Datensätze mit BLKMOV in ein temporäres ARRAY, lösche das eigentliche FIFO ab und kopiere danach das Array
    wieder zurück, aber um 300 Byte (1 Datensatz) nach oben verschoben wieder zurück. Danach wird der Schreibe-Zeiger wieder
    um einen Datensatz nach oben korrigiert.

    Dadurch ist sichergestellt das die Reihenfolge und Adresse der Datensätze immer gleich ist. - Also Datensatz 1 - Adresse 0,
    Datensatz 2 - Adresse 300 un so fort. Somit sollte die Visualisierung der Datensätze kein Problem darstellen.

    Soll ein Datensatz gelöscht werden, dann wende ich den Vorschlag von winmann an und kennzeichne diesen Datensatz (mit
    neuem Zeitstempel) als gelöscht. Sobald er am Ausgang ankommt kopiere ich Ihn in ein Archiv und rufe direkt im Anschluss
    den nächsten folgenden Datensatz ab.

    Soweit zur Theorie. - Was haltet ihr davon?

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.780
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Das kannst du sicherlich so machen ...
    Ich hatte allerdings eingangs angenommen, dass du mit 2 verschiedenen Zeigern arbeiten willst - einen, der angibt an welchem Index deines Array's der nächste Datensatz zu schreiben ist, und einer, der angibt an welchem Index deines Array's der nächste Datensatz zu lesen ist. Das würde Umkopieren sparen (und bedeutet somit weniger Arbeit für die SPS).
    Aber ob nun so oder so - entscheidend ist halt, erkennen zu können, dass ein Datensatz noch relevant ist oder nicht ...

    Gruß
    Larry

  3. #13
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Das ist schon klar, das das der SPS und mir Arbeit sparen würde wenn ich mit zwei Zeigern arbeite.
    Aber dann habe ich noch immer keine Lösung wie ich die Datensätze in chronologischer Reihenfolge
    am Bediengerät visualisiere.

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.780
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da hast du dann natürlich Recht ...

Ähnliche Themen

  1. Step 7 FIFO DB mit mehreren Werten für eine Zeile verwalten
    Von Goeky im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.05.2014, 17:50
  2. FiFo für 1200 ?!
    Von DJMetro im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.09.2012, 15:19
  3. Antworten: 25
    Letzter Beitrag: 02.10.2010, 15:05
  4. FIFO-Schieberegister mit Concept für Modicon Quantum
    Von Trajan im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 14.04.2009, 13:54
  5. FIFO Speicher ?????
    Von Anonymous im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 31.08.2004, 21:02

Lesezeichen

Berechtigungen

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