FIFO oder doch nicht?!

bapfy

Level-1
Beiträge
62
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe folgende Aufgabe. Aus einer Maschine kommen Teile (IO oder NIO) und laufen dann auf einem Band bis zu einem Punkt (erkenne ich durch einen Sensor) und müssen im NIO Fall dann ausgeworfen werden.
Es können jedoch bis zu 10 Teile (je nach Typ usw.) unterwegs sein.

Wahrscheinlich hab ich einfach nen Knoten im Hirn.. Ich hatte mir überlegt, dass sowas wie ein FIFO hier nicht schlecht wär.

Den hab ich versucht mit dem FC84/85 zu besteln nur krieg ichs nicht hin.
Meine Idee war, bei NIO eine 1 und bei IO eine Null zu schicken, die ich dann bei Sensor =1 wieder auslese.

Hat jemand von euch ein Beispiel dafür, ich weiß nicht wo mein Problem liegt.

DANKE!!!
 
Ich kann dir das mal vom Prinzip her beschreiben.

1. Du hast 2 Eingänge am FC
1.1 Dateieintrag bei Ablegen eines neuen Teiles auf das Band
1.2 Schieben des Ganzen um 1 nach vorn bei Entnahme eines Teiles am Ende des Bandes

2. Du hast einen DB, der enthält z.Bsp. 20 Einträge (DWord, je nachden, wieviele Daten zu einem Datensatz gehören) An erster Stelle ein INT für einen Zeiger auf den aktuellen letzten Datensatz.

Wenn ein neues Teil eingelegt wird, steht der Zeiger auf 0, wird um 1 erhöht und das Teil wird also auf Datensatz 1 abgelegt, Gleiches beim nächsten Teil usw. Wichtig, du hast mehr Datensätze als Teile auf das Band passen, dann kannst du "hinten" nicht aus dem DB hinauslaufen und mußt nur eine einfache Überwachung mit Fehlerausgabe machen, zur Sicherheit. Wenn am Ende des Bandes ein Teil entnommen wird, werden alle Datensätze um eins nach vorne geschoben (Schleife), der erste Datensatz, der entnommene wird dabei gelöscht, der Datensatzzeiger wird um 1 erniedrigt. Achtung, ist der Datensatzzeiger 0, darf kein Teil mehr auf dem Band liegen, sonst ist irgendetwas falsch gelaufen.

PS: Hatten wir so etwas nicht schon im Forum?

Ich hab so etwas für 20 Datensätze mit je 50 Byte, bei Interessen kann ich dir das ja schicken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie wäre es denn so :
Irgend etwas legt ja wohl das Teil auf das Band. Passiert das, so schiebst du dein FiFo um eins nach vorn und trägst die Daten des aktuellen Teils an Platz 1 des FiFo's ein.
Kommt ein Teil am Sensor an, so suchst du den im FiFo am weitesten hinten stehenden Eintrag, nimmst dessen Daten (also die Bewertung), handelst entsprechend und löscht den Eintrag aus dem Speicher.

Dazu gibt es keinen vorgefertigten Baustein. Du mußt dir da schon selbst etwas erstellen - vielleicht so, wie von mir beschrieben.

Gruß
LL
 
Ich verwende bei einem FIFO 2 Zeiger.
Einer zeigt auf die Stelle zum Eintragen
und der andere auf die Stelle zum Auslesen.
Dadurch spare ich mir das hin und her schieben oder suchen der Einträge.
Ansonsten so wie ihr schreibt.
 
...
Ich hatte mir überlegt, dass sowas wie ein FIFO hier nicht schlecht wär.

Den hab ich versucht mit dem FC84/85 zu besteln nur krieg ichs nicht hin.
Meine Idee war, bei NIO eine 1 und bei IO eine Null zu schicken, die ich dann bei Sensor =1 wieder auslese.

Hat jemand von euch ein Beispiel dafür, ich weiß nicht wo mein Problem liegt.
...
Ich würd auch den FiFo nehmen.

Die Tabelle (DB1) mußt Du erst mal per Hand deklarieren:


Dann beim Schreiben (auf's Band legen) und Lesen (Sensor=1) darauf achten, daß du nur die positive Flanke des Signals erfaßt.
Schreiben mußt du immer ein ganzes Word.
Und sicherhaltshalber was zum Rücksetzen (Anzahl der Einträge=0) basteln.
Achja: und natürlich dafür sorgen, daß nicht mehr Teile kommen, als in die Tabelle passen, sonst geht die Info (ob IO oder NIO) verloren.
Also vlt. lieber die Tabelle etwas größer machen.

Z.B. in KOP:
 
Zuletzt bearbeitet:
Und immer darauf hoffen dass keiner ein Teil dazwischen runternimmt oder ein Sensor mal prellt. Ersteres kann man vielleicht noch mit "Sicherheitsauswurf" nach dem Start der Maschine abfangen, natürlich nur wenn bei laufender Maschine keiner was runternehmen kann weil eine Schutztür davor sitzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und immer darauf hoffen dass keiner ein Teil dazwischen runternimmt oder ein Sensor mal prellt. Ersteres kann man vielleicht noch mit "Sicherheitsauswurf" nach dem Start der Maschine abfangen, natürlich nur wenn bei laufender Maschine keiner was runternehmen kann weil eine Schutztür davor sitzt.

OT dazu:
War kürzlich bei einer Präsentation vom Fraunhofer Institut in Bremen.
Die haben ein Verfahren entwickelt, RFID-Chips in Druckgußteile direkt mit einzugießen.
Darauf kann man dann alle solche Infos per Funk übertragen und natürlich auch wieder auslesen.
Dann ist egal, ob irgendwer am Band das Hütchenspiel oder sonstwas macht, die Daten passen immer zum Teil.:D
 
So, habs jetzt im groben hingekommen. DANKE an alle!!!
Habs jetzt so gelöst, dass ich bei NIO eine 0, und bei IO eine 1 schick. (0 kann immer stehen, deshalb NIO).

Reinlangen kann niemand in die Maschine, jedoch an den Sensor am Auswurf (also der zum Auslesen). Das kann ich aber mit dem Kunden klarmachen, dass das auch abgeschrankt wird, denk ich.

Ich teste jetzt noch etwas, und hab dann bestimmt noch ganz viele Fragen! Danke!!!!!!


:)
 
Hallo,
warum einen FIFO. Ich würde einen Zähler nehmen. Beim verlassen der einen Maschine hoch zählen und beim eintritt in die andere Maschine wieder Rückwärts zählen. Erreicht der Zähler einen Grenzwert(z.B. 10) Maschine 1 Stoppen.
Gruß
Joe
 
@JoeJo:
Es kommen aber beide Sorten Teile auf das Band und nicht in einer vorher bestimmten Reihenfolge ... :cool:

@Bapfi:
Lass dich nicht verunsichern - der Vorschlag ist (gelinde gesagt) Quatsch ... :rolleyes:

Gruß
LL
 
Zurück
Oben