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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: Fifo Bit

  1. #21
    Jordy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2007
    Beiträge
    123
    Danke
    17
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von derwestermann Beitrag anzeigen
    Mein Bauch sagt: Nö, keine Lust.

    Vielen Dank für deine Beiträge!


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

    Standard

    @Jordy:
    meine Meinung zu deinem Thema hatte ich ja in Beitrag #7 schon dargestellt.

    @alle Anderen:
    Ich hatte mal ein Programm gesehen (leider nicht selbst erstellt), da konnte der Maschinenführer über die Reihenfolge der Handbetriebs-Tasten auf dem Bediengerät das Ablauf-Programm der Maschine selbst festlegen. Ich könnte mir vorstellen, dass Jordy mit seinem "FIFO" etwas ganz ähnliches bezweckt. Falls nicht ... es ist nicht immer alles sinnlos, dessen Sinn man nicht sofort versteht ...

    Gruß
    LL

  3. #23
    Jordy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2007
    Beiträge
    123
    Danke
    17
    Erhielt 9 Danke für 9 Beiträge

    Standard

    @Larry:
    Ja, dank dir. War ja auch ne Antwort genau wie ich sie hören wollte, bzw. das ich weiß, es geht besser, oder halt nicht wie ichs gemacht hab! Danke.

    Hätte mich halt nur interessiert, wie es mit dem SFB32 gehen soll. Kenne den SFB garnicht...

    Zu dem Sinn meines "FIFOS": (Warum nicht "FIFO"? Ist doch quasi die gleiche funktion)

    Als Beispiel, es gibt 10 Behälter in denen Granulat oder sonstiges drinnen ist. Alle Behälter haben einen Min-Sensor.
    Es gibt jedoch nur EINEN Saugförderer womit diese Befüllt werden.

    Also, um zu verhindern, das einige paar mal befüllt werden, weil sie am Anfang vom Programm stehen, andere nie befüllt werden, dachte ich mir wäre so ein Fifo Speicher das richtige.
    "Wer zuerst kommt, mahlt zuerst!"

  4. #24
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard

    der FIFO speicher ist auch der richtige weg.

    Zitat Zitat von funkdoc Beitrag anzeigen
    du kannst auch direkt die INT im speicher rotieren/abarbeiten lassen wobei dir ein wert "n" im integerformat aussagt welche anforderung sich in der warteschleife befindet.

    ums bildlich zu umschreiben

    Code:
    bearbeitete Anforderung
    37 Anforderung 0
    9   Anforderung 1
    13 Anforderung 2
    29 Anforderung 3
    3   Anforderung 4
    33 Anforderung 5
    eingegangene Anforderung
    
    dazu legt man in einem DB 6 integerwerte (oder auch Doppelinteger, real oder was auch immer) an. Anforderung null wird ausgelesen, zugewiesen und bearbeitet. wenn dieser vorgang fertig ist schiebst du mit BLKMOV Anforderung 1-5 in den bereich 0-4 und setzt Anforderung 5 auf null. kommt eine neue anforderung schreibt sie sich in die anforderung 5 im DB.
    du kannst auch gleich eine anforderung überspringen wenn sie den wert 0 enthält. diesen fifo kannst du dir ohne weiteres auch mit FUP bauen.
    wichtig ist nur der einsatz eines pointers für den verschiebe-bereich im DB.

    aber es kann auch sein dass ich immer noch nicht verstandenhabe was du da vorhast.

    grüsse
    grüsse

  5. #25
    Registriert seit
    03.04.2008
    Beiträge
    6.205
    Danke
    237
    Erhielt 817 Danke für 691 Beiträge

    Standard

    Eine kleine Anmerkung von mir zu dem Problem.

    Zitat Zitat von funkdoc Beitrag anzeigen
    der FIFO speicher ist auch der richtige weg.
    Dem stimme ich zu.



    Zitat Zitat von funkdoc Beitrag anzeigen
    ums bildlich zu umschreiben

    Code:
    bearbeitete Anforderung
    37 Anforderung 0
    9   Anforderung 1
    13 Anforderung 2
    29 Anforderung 3
    3   Anforderung 4
    33 Anforderung 5
    eingegangene Anforderung
    
    dazu legt man in einem DB 6 integerwerte (oder auch Doppelinteger, real oder was auch immer) an. Anforderung null wird ausgelesen, zugewiesen und bearbeitet. wenn dieser vorgang fertig ist schiebst du mit BLKMOV Anforderung 1-5 in den bereich 0-4 und setzt Anforderung 5 auf null. kommt eine neue anforderung schreibt sie sich in die anforderung 5 im DB.
    Auch bis hierher gehe ich konform.
    Doch das System bekommt dann Probleme wenn der Bereich nur die Anzahl der Anforderungen = Anzahl der Silo +1 (Zeiger) halten kann.
    Wenn die Anforderungen schneller kommen als die Silos befüllt werden können., wird ein zusätzlicher Speicherbereich benötigt.
    Daher muss der Speicher mit den Datenworten für die Anforderungen doppelt so gross wie Anzahl der Silos sein.

    Zur Erklärung:
    Silo 1 wurde befüllt und aus dem fifo gestrichen, nextes Silo ist Silo 5, nach dem Befüllen wird aus dem Silo 1 wieder entnommen. Silo 1 wird leer und es sind noch nicht alle befüllt, dann kommt dieses Silo wieder in Warteschlange. Dies kann bei jedem Silo passieren, ausser bei dem das gerade befüllt wird.
    Der Speicher für die Anzahl der Anforderungen muss min Anzahl der Silo x2 -1 gross sein.
    Das muss dabei beachtet werden, sonst geht der Zeiger für die neunen Anforderungen ins leere und das kommt nicht so ganz gut


    bike

  6. #26
    Registriert seit
    03.05.2006
    Beiträge
    491
    Danke
    43
    Erhielt 45 Danke für 42 Beiträge

    Standard

    das ist mir schon klar...
    anforderung 0-5 war nur als beispiel gedacht... wiegross der fifo stapel dann wirklich sein muss, muss man dem prozess entnehmen.

    so betrachtet: soll es wirklich eine warteschleife sein die nach oben hin offen ist, ist der fifo der falsche weg, da er nur x elemente in seinem stapel aufnehmen kann. ist die abarbeitungszeit wesentlich grösser als die zeitspanne zwischen den eingehenden anforderungen wirst du auf kurz oder lang sowieso probleme bekommen. selbst bei offenen speicherstrukturen kann es sein dass nach tagen/wochen oder monaten der speicher schon so gross ist, dass er einen pufferoverflow erzeugt und irgendwann die cpu steht.

    man müsste also bei meinem beispiel die eintragende anforderung so programmieren:
    trag dich in anforderung 5 ein, wenn anforderung 5 auch auf null ist. wenn nicht starte eine beliebige zeit, nachdem das eintragen wieder versucht wird.

    so kann man verhindern dass sich die anfoerderungen gegenseitig im DB auf anforderung 5 überschreiben solange anforderung 0 noch nicht abgearbeitet wurde.

    im prinzip gilt hier:
    abarbeitungszeit sollte immer kleiner sein als die durchschnittliche zeitspanne zwischen den eingehenden anforderungen.
    ansonsten wäre hier ein fifo die falsche wahl.

    grüsse
    Geändert von funkdoc (28.06.2008 um 21:23 Uhr)

  7. #27
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Doch das System bekommt dann Probleme wenn der Bereich nur die Anzahl der Anforderungen = Anzahl der Silo +1 (Zeiger) halten kann.
    Wenn die Anforderungen schneller kommen als die Silos befüllt werden können., wird ein zusätzlicher Speicherbereich benötigt.
    Daher muss der Speicher mit den Datenworten für die Anforderungen doppelt so gross wie Anzahl der Silos sein.

    Zur Erklärung:
    Silo 1 wurde befüllt und aus dem fifo gestrichen, nextes Silo ist Silo 5, nach dem Befüllen wird aus dem Silo 1 wieder entnommen. Silo 1 wird leer und es sind noch nicht alle befüllt, dann kommt dieses Silo wieder in Warteschlange. Dies kann bei jedem Silo passieren, ausser bei dem das gerade befüllt wird.
    Der Speicher für die Anzahl der Anforderungen muss min Anzahl der Silo x2 -1 gross sein.
    Das muss dabei beachtet werden, sonst geht der Zeiger für die neunen Anforderungen ins leere und das kommt nicht so ganz gut


    bike
    Das erklärst du bitte nochmal, weil, ich bin zu dämlich das zu verstehen !

    Kein Silo soll zur gleichen Zeit 2 Mal in der Liste stehen, das brächte ja überhaupt nichts, also warum 2x+1???
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    MW (28.06.2008)

  9. #28
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    kinners, also für mich ist die nummer schon lange abgehakt - ich frag mich grad: was habt ihr vor? ..wenn ihr schon anfangt so kompliziert zu denken, dann vergesst doch bitte nicht prioritäten einzupflegen .... also weiterhin viel spaß mit einem thema, das schon lange über seine eigentlichen grenzen hinaus schießt
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #29
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Das erklärst du bitte nochmal, weil, ich bin zu dämlich das zu verstehen !

    Kein Silo soll zur gleichen Zeit 2 Mal in der Liste stehen, das brächte ja überhaupt nichts, also warum 2x+1???


    Würd mich auch mal interessieren

Ähnliche Themen

  1. FIFO mit S7 ????
    Von moclam im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 24.10.2013, 10:43
  2. FIFO für Staustrecke
    Von element. im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 20.04.2010, 09:22
  3. Fifo S7
    Von stevexxx im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 18.03.2008, 14:45
  4. Scl-fifo
    Von johnij im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.11.2007, 08:16
  5. Fifo
    Von sweber im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.06.2007, 15:06

Lesezeichen

Berechtigungen

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