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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

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

  1. #1
    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 Kollegen,

    Samstag morgen und ich sitze wieder mal in der Firma. - Der einzige Trost ist das ich damit wahrscheinlich nicht alleine bin.
    Und so hoffe ich das mir vielleicht der ein oder andere von euch trotzdem helfen kann/mag.

    Ich bin gerade am grübeln wie ich meine Funktion realisieren könnte, ich habe dazu verschiedene Ansätze so richtig gefallen
    tut mir aber eigentlich noch keiner.

    Mit einem Scanner wird am Einlauf einer Maschine je Produkt ein DatamatrixCode erfasst. Dieser soll dann in ein FIFO Register
    gespeichert werden und sobald das Produkt den Auslauf ereicht wieder abgerufen werden.
    - Diese Funktion habe ich so schon mal umgesetzt und sollte dank fertigem FB eigentlich kein Problem mehr sein.

    Mein "Problem" besteht darin das der Kunde über die Visu die Möglichkeit haben will einzelne Datensätze des FIFO manuell zu
    löschen (am besten noch mit Speicherung wann welcher Eintrag gelöscht wird).

    - Wie würdet ihr diese Aufgabe lösen?

    Einer meiner Ansätze sieht vor das beim manuellen Löschen eines Datensatzes der enstprechende Speicherplatz gesperrt wird.
    Wird dann nach FIFO Reihenfolge ein gesperrter Speicherplatz abgefragt wird der Index direkt um Wert 1 erhöht und der darauf
    folgende Datensatz wird ausgegeben.
    Das würde bedeuten ich müsste doppelt so viele Speicherplätze im FIFO haben wie es Plätze auf der Fördertechnik gibt, damit
    theoretisch jeder Datensatz "gelöscht" bzw. gesperrt werden kann.

    Ich denke mit diesem Ansatz könnte man das ganze theoretisch lösen.

    Als Problem sehe ich (wie eigentlich bei jeder Lösung) die Darstellung der Speicherplätze in der Visu. Hier sollen ja alle Einträge
    in chronologischer Reihenfolge dargestellt werden.
    - Im FIFO Speicher liegen die Einträge ja zwar gründsätzlich in chronoligischer Reihenfolge, aber der erste Speicherplatz im FIFO
    ist nicht zwingend der erste Eintrag im FIFO (eigentlich ist er das nur nach dem ersten Schreibzugriff in den FIFO).

    Wie könnte man das einfach lösen? - Hat jemand von euch eine Idee?

    Zur Verfügung steht ein CPU314C-2DP und ein TP177B.

    Gruß smartie
    Zitieren Zitieren FIFO Speicher mit Löschfunktion für beliebige Einträge  

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

    Standard

    etwas ähnliches habe ich schon mal folgendermassen gelöst.
    ein db in dem die datensätze alle intereinander stehen. es gibt keine lücken.
    wird nun ein datensatz gelöscht werden alle dahinter folgenden datensätze 1 nach oben geschoben.
    der letzte wird gelöscht.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    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

    Mit dem Ansatz hatte ich auch schon gespielt. Das würde aber bedeuten das sowohl beim abrufen des aktuellen Datensatzes,
    als auch beim Löschen eines Datensatzes alle anderen Datensätze nacheinander verschoben werden müssten.

    Also würde ich dann zunächst den gelöschten oder zuletzt abgerufenen Speicherplatz mit SFC21 FILL initialisieren, dann den
    darauf folgenden Speicherplatz dorthin kopieren und dann den Ablauf nacheindander für die weiteren Speicherplätze ausführen.

    Bei, in meinem Fall 16 Plätzen mit jeweils 240 Zeichen vermute ich das die CPU ganz schön zu tun hat. - Wie siehst du das?

  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

    ja. genauso funktioniert es.
    könnte einen augenblick dauern. in dem von mir angesprochenem beispiel ist mein db 80 mal 112 byte gross. also um einiges größer als deiner.
    das läuft auf 315er cpu's zyklusprobleme hatte ich dadurch bisher nicht. wie lange es geau dauert weiss ich im mom nicht.
    einen filo der datensätze verschiebt findest du auf meiner hp.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Mache zusätzlich zum Speicher der 16 Datensätze eine Verwaltungsliste (Array) mit 16 INT (oder BYTE), wo nur der Index der belegten Datensätze drinsteht. Dann müssen beim Entfernen von Datensätzen nur 15 INT umgespeichert werden.

    Beispiel FIFO mit 3 Datensätzen in Datensatz 16, 1 und 5:
    Liste (1): 16
    Liste (2): 1
    Liste (3): 5
    Liste (4): 0

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zum Problem chronologische Anzeige auf der Visu ohne Umspeichern:
    Du könntest den FIFO auf 16 Datenbausteine aufteilen und in der Visu die Datensätze per Adress-multiplex mit gemultiplexter/dynamischer DB-Nummer anzeigen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Warum meinst Du, daß Du doppelt soviele Speicherplätze im FIFO haben mußt wie real vorhandene Plätze?
    Wie lange sollen die gelöschten Datensätze noch zum lesen verfügbar bleiben? Irgendwann müssen die aus dem System entfernt werden.

    Kannst Du sicherstellen, daß kein Produkt den Auslauf erreicht und dadurch den FIFO-Inhalt verändert, während der Kunde die Datensätze bearbeitet?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #8
    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

    Danke für die Vorschläge. Ich schau mir im Moment die Beispiele von volker an.

    Ja, durch das Programm kann ich sicherstellen das keine Datensätze in den FIFO ein- oder ausgetragen werden während
    die Daten manuell bearbeitet werden.

  9. #9
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.458
    Danke
    503
    Erhielt 217 Danke für 192 Beiträge

    Standard

    Ich würde den zu löschenden Datensatz im FIFO lassen, nur ein Bit setzen und ev. Benutzer und Zeit dazuschreiben.
    Wenn nun der gelöschte Datensatz aus dem FIFO kommt, den dann in einen anderen DB schieben, so hast du dann auch dein "Archiv".
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich würde auch eher zu etwas wie dem Vorschlag von Winman tendieren.
    Du gibst dem Datensatz entweder ein Statusbit mit. Ist das TRUE (z.B.) dann verwendest du den Datensatz - sonst nicht (sondern den nächsten danach).
    In jedem Fall mußt du ja auch wenn der Kunde den Datensatz löscht und das mit einem Zeitstempel dokumentieren möchte (oder wie auch immer) das wieder irgendwo abspeichern. Sonst macht diese Maßnahme ja eigentlich gar keinen Sinn ...
    Wie verfährst du generell mit deinen Datenblöcken ?

    Gruß
    Larry

Ä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
  •