FIFO für Staustrecke

element.

Level-2
Beiträge
403
Reaktionspunkte
24
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich beherrsche in Step7 und Wincc flexible nur die Grundlagen. Ich suche Tips für Literatur oder Applikationsbeispiele für ein FIFO in folgendem Einsatz:

Für ein kommendes Projekt sollen Messwerte einzelnen Werkstücken zugeordnet werden können.

Die Werkstücke werden in zwei parallelen Stationen gemessen (mit PC)und nach Abschluss auf ein gemeinsames Ausgabeband gesetzt. Dieses Band geht in eine Pufferstrecke, wo 100 Teile aufgestaut werden. Am Ende der Strecke sollen einer Person beim Abnehmen die Messwerte zum jeweiligen Werkstück angezeigt werden (Bildschirm vom Mess-PC).

Nun soll die SPS für die Werkstücke in den Prüfstationen eine fortlaufende Nummer vergeben. Der jeweilige Messrechner schickt der SPS ein "Messung fertig", worauf diese ihm die vergebene Werkstücknummer mitteilt. Das soll wahrscheinlich über Profibus geschehen und die Nummer in einem DB stehen.

Am Ende der Strecke (Person) schickt die SPS dem Rechner wieder die Nummer, worauf dieser die Ergebnisse anzeigt. Wenn die Person quittiert, dass sie das Teil abgenommen hat, wird die Nummer aus dem FIFO entfernt.

Ich habe lang mit Chef, Kunden und Konstrukteuren diskutiert dass ich Werkstückträger mit RFID will, leider aus Platz- und Kostengründen abgelehnt. Wo ist der kotzende Smilie?

Danke für jegliche Tips.
 
Zuletzt bearbeitet:
Wo ist der kotzende Smilie?
hier : :sb5:

Aber zum Thema :
Ich kann deine Bedenken wegen nicht RFID verstehen - vielleicht bekommst du das ja noch, wenn du aufgrund von manuellen Zugriffen oft genug Kuddelmuddel hattest.
Auf der anderen Seite ist die Aufgabe aber auch nicht so komplex.
Wie wäre es mit SCL um das Ganze auch noch schön realisieren zu können ?
Hast du den Beitrag zu dem Thema in der FAQ schon gelesen ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry,

Die Strecke ist abgeschottet und es kann niemand zugreifen, Angst habe ich eher vor unsauberen Signalen der Lichttaster oder irgendwelchen anderen Verzählern.

Ich denke nicht, dass ich Zeit und Möglichkeit habe, mich in SCL einzuarbeiten. Ich will es ehrlich gesagt auch gar nicht. Die FIFO FAQ hab ich mir schon mal angesehen, ist aber Chinesisch für mich.

Das Problem ist, dass ich hier alles machen muss - Maschinenschaltplan, Schaltschrank, Automatisierungskonzept, Sicherheit, SPS-Programmierung, aushilfsweise Platinenlayouts. Ich würde gerne nur eins davon machen und richtig tief einsteigen, aber im Moment kann ich überall nur an der Oberfläche kratzen :-|

Meine spontane Idee wäre:
Vorwärtszähler nehmen, nach beendeter Messung den Zählstand in einen DB schreiben, wo der PC ihn lesen kann, und ins FIFO schreiben. Dann Zählstand +1. (Was passiert, wenn der Z an der Obergrenze ist, muss ich ihn manuell nullen?)

Sagen wir, es kommen 5 Werkstücke auf diese Weise in die Staustrecke. Dann kommt das Erste am Streckenende an und ich rufe den untersten/ obersten? wert im FIFO ab. Muss ich dazu noch Mitzählen, wieviele Stücke ich auf die Strecke schicke, damit ich die entsprechende Zeile im FIFO holen kann?

Nach Entnahme des Werkstücks die Zeile mit Index löschen und evtl den Pufferstand -1.


Kann ich auch ohne SCL und Pointer eine FIFO-Tabelle betreiben?
Kennst Du noch ein Pointer-Tutorial, dass etwas weiter unten anfängt als das FIFO LIFO hier im Forum?

Vielen Dank.
 
Zuletzt bearbeitet:
Mache doch ein Ringregister, mit ein vielfaches deiner zu erwartenen
Werkstücke. Dann machst du ein Zeiger für das einlesen und ein Zeiger
für das auslesen. Hat einer der Zeiger das Ende des Register's erreicht
fängt er wieder bei Null an.
 
:rolleyes: ... das mit SCL hatte ich aus guten Grund vorgeschlagen.
Das von dir gewünschte FIFO wäre damit eine relativ einfache Geschichte.
Mit Zählern o.ä. wird das gar nichts.
Meine Vorgehensweise wäre hier grundsätzlich :
- neues Teil kommt auf Band
+- dann FIFO aufschieben und WT-Nummer und Teile-Daten im Daten-Array auf dem Platz 1 eintragen.

- Teil wird entnommen :
+- Daten des an weitesten hinten stehenden WT's einlesen, ausgeben und im ARRAY löschen.

usw.
Es gibt dafür aber sicherlich mehrere Herangehensweisen - siehe z.B. auch bei Helmut. Aber "einfach so" ist nichts davon gemacht.

Sag, was du willst und wie du es willst ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine schwierige Entscheidung. Von SCL weiß ich halt gar nichts, und wie gesagt macht SPS nur 10% meiner Jahresarbeit aus. Ansonsten würde ich das gerne lernen...
Muss das Ringregister von Helmut auch in SCL gebaut werden?

Teiledaten muss ich keine speichern, die hält der PC. Ich brauch nur eine Werkstücknummer.
 
Zuletzt bearbeitet:
Wie es der Teufel will, bin ich für die kommenden 4 Wochen wieder für ein dringendes Elektronikprojekt eingeteilt worden, das heißt, ich hole den Thread danach nochmal hoch.... :???:

Für Lesetips und Beispiele nach wie vor offen. Am liebsten wäre mir nach meinem Gefühl der Weg Ringregister in AWL mit zwei Zeigern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ringpuffer ist ganz bestimmt eine gute Lösung für dein Problem, aber warum soll der ein Vielfaches an Elementen haben wie max. Anzahl Werkstücke? Ein Element mehr reicht doch völlig aus?

Das selbe erreichst du auch wenn du ein Array nimmst und die neuen Werkstücke laufend am Ende einfügst, die austretenden Werkstücke zu unterst aus dem Array nehmen und das ganze Gelumpe nachschieben:
Code:
//Neues Teil einfügen
IF fAddPiece THEN
    tMyArray[nMyCnt] := nActualValue;
    nMyCnt := nMyCnt + 1;  //Inc Counter
END_IF;

//altes Teil entfernen
IF fGetPiece THEN
    nRet := tMyArray[0];
    FOR i = 1 to nMyCnt BY 1 DO
        tMyArray[i-1] = tMyArray[i];
    END_FOR;

    tMyArray[i] :=0; 
    nMyCnt := nMyCnt - 1;  //Dec Counter
END_IF;

Ist halt auch SCL, das System sollte aber hoffentlich verständlich sein
 
Grundsätzlich verstehe ich solchen Code ungefähr, wenn ich ihn sehe, aber ich kann halt nichts selbst bauen. z.B. wie wie zähle ich fAddPiece hoch? Welche Bausteine muss ich anlegen?

Bevor Ihr euch Mühe gebt: Das Fifo ist höchstwahrscheinlich erfolgreich auf die Programmierer des Messsystems abgewälzt - die machen den ganzen Tag nur das und haben sich bereiterklärt, es bei sich zu führen. Kommuniziert wird nur über Hardwarebits beim Verlassen der Messung und Ankommen am Endplatz.

Vielen Dank trotzdem für die Tips! Vielleicht wird's ja in Zukunft doch noch was mit einem SCL-Projekt.
 
Zurück
Oben