Teileverfolgung ohne Identifikationssystem

Marius_100

Member
Beiträge
6
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Guten Tag,

ich bin im Moment dabei die Teileverfolgung für eine Produktionslinie zu programmieren. In der Anlage werden Holzdielen befördert, vermessen, bearbeitet und zum Schluss einsortiert. Leider gibt es keine Möglichkeit zur eindeutigen Identifikation der Teile mittels QR-Code oder RFID.

Die Daten der einzelnen Teile müssen in der Steuerung (S7-1500) gespeichert und mitgeführt werden.
Da sich die Anordnung der Teile nicht ändert und diese nur eine Transportrichtung haben, habe ich an den Einsatz von Schieberegistern/ FIFOS gedacht. Im Forum konnte ich dazu auch schon einige hilfreiche Tipps finden.

Nun zu meinen Ansätzen und den Problemstellung:

1) Wenn sich die Teile im Durchlauf befinden, erfasse ich immer mit einer fallenden Flanke einer Lichtschranke oder eines Abstandssensors (Breite, Länge, Dicke), dass ein Teil in einen Abschnitt der Anlage eingefördert wurde. Im gleichen Zuge speichere ich die Position des Förderbandes (und ggf. einen Messwert) und schreibe diese in ein Schieberegister. Passiert das Teil eine weitere Lichtschranke oder eine Messstelle, kopiere ich die Daten aus dem letzten Element des Registers und validiere anhand der letzten Teileposition und der aktuellen Position des Förderbandes, ob Teile entnommen wurden oder nicht. Wurden Teile entnommen, lösche ich die Daten. Stimmt die Position überein, schreibe ich die Daten in ein neues Schieberegister und lösche den Eintrag anschließend aus dem vorherigen Register.
Um einen Teilestau zu erkennen, erfasse ich wie lange die Sensoren belegt sind. Über die Teilelänge und die Fördergeschwindigkeit errechne ich mir die Dauer (+Toleranz) die der Sensor belegt sein darf. Bei Überschreitung der Zeit wir die Anlage gestoppt und die Teile müssen manuell entnommen werden.

2) Nun habe ich dass Problem, dass ich eine Winkelübergabe auf dem Transportweg habe. Die Validierung anhand der Position ist hier leider nicht möglich. Ich habe in dem Fall überlegt, mit Zeitstempeln zu arbeiten. Allerdings sehe ich das problematisch, da im Falle eines Anlagenstopps die Systemzeit weitergezählt wird.

3) In einem Abschnitt befindet sich ein Scanner, der die Bretter optische Beurteilen soll. Das Problem hierbei ist, dass der Scanner mit dem Verlassen des Teil aus aus dem Scannbereich, je nach Maße und Geschwindigkeit der Teile, bis zu über eine Sekunde benötigt die Daten auszuwerten und an die Steuerung zu senden. Hier habe ich überlegt ein zweites Register anzulegen um die Messdaten des Scanners zu speichern. Passieren die Teile eine Lichtschranke, die weit genug hinter dem Scanner liegt, so nehme ich die ältesten Einträge aus dem "Messdaten-Register" und dem "Transport-Register" und kombiniere die Daten. Problematisch hierbei ist, dass ich irgendwie erkennen muss, dass ein Teil vor oder nach der Messung entnommen wurde und ggf. den Messwert zu löschen.

Leider hab ich bisher noch keine Teileverfolgung aufgezogen, außerdem hatte ich auch noch keinen Fall, wo mir die Daten mit so hoher Verzögerung zur Verfügung standen. Daher bin ich über weitere mögliche Ansätze oder Verbessrungsvorschläge sehr dankbar.
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
18.455
Punkte Reaktionen
5.490
Spätestens wenn man Daten mit den Teilen mitschieben will, braucht man ein richtig robustes Teileübergabe-Programm zwischen Transportabschnitten mit Schrittketten und Handshakes. Da kann man nicht mehr einfach von Lichtschranke zu Lichtschranke auf Stau fahren. Kannst Du Dir vorstellen, welches Datenchaos entsteht, wenn zur Unzeit eine Lichtschranke schaltet (weil vielleicht ein Vogel oder eine Person eine Lichtschranke betätigt)?

Harald
 

Heinileini

Well-known member
Beiträge
4.984
Punkte Reaktionen
1.066
Zuviel Werbung?
->Hier kostenlos registrieren
In der Anlage werden Holzdielen befördert, ...

Im gleichen Zuge speichere ich die Position des Förderbandes (und ggf. einen Messwert) und ...
Wenn Du die so abgespeicherte Position des Förderbandes von der aktuellen Position des Bandes subtrahierst, hast Dur die aktuelle Position des Teils entlang der Förderstrecke.
 

Ralle

Supermoderator
Teammitglied
Beiträge
14.921
Punkte Reaktionen
3.681
Wenn das Band einen Positionswert ausgibt, dann würde ich auch wie @Heinileini schon schrieb die Teileinfo mit dieser Position verknüpfen. Dort kann dann auch eine Teile-ID genutzt werden, über die man die Scannerdaten (Bei Start des Scanners Teile-ID speichern) dann, wenn sie zur Verfügung stehen, zur richtigen Teileinfo hinzufügen kann. Werden Teile entnommen, merkt man das, weil an der betreffenden Position des Bandes (Fenster) eine LS kein Teil sieht. Zusammenschieben von Teilen ist immer schlecht, das müßte man wirklich detektieren und die Teile dann entnehmen. Oder man gestaltet das Band so, dass ein Zusammenschieben nicht möglich ist, aber das Band wird bei dir sicher schon vorhanden sein oder es geht mech. nicht.
 

Heinileini

Well-known member
Beiträge
4.984
Punkte Reaktionen
1.066
Zusammenschieben von Teilen ist immer schlecht, das müßte man wirklich detektieren und die Teile dann entnehmen. Oder man gestaltet das Band so, dass ein Zusammenschieben nicht möglich ist, aber das Band wird bei dir sicher schon vorhanden sein oder es geht mech. nicht.
Die Hoffnung, dass es kein Zusammenschieben gibt, hatte ich, weil Marius100 schrieb:
Da sich die Anordnung der Teile nicht ändert und diese nur eine Transportrichtung haben, ...
Die relative Lage der Teile zueinander muss natürlich erhalten bleiben (bzw. ein Verschieben müsste noch nachträglich verhindert werden), damit die Positionen in den "Hochrechnungen" der Daten nachvollziehbar sind.
 
OP
M

Marius_100

Member
Beiträge
6
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Spätestens wenn man Daten mit den Teilen mitschieben will, braucht man ein richtig robustes Teileübergabe-Programm zwischen Transportabschnitten mit Schrittketten und Handshakes.
Wie könnte so ein Handshake/ eine robuste Teileübergabe denn Aussehen?
Aktuell lege ich für jeden Transportabschnitt eine Schrittkette an sowie einen Datenbaustein in welchem ich die Registerinhalte speichere.
In jeder Schrittkette lese ich das älteste Datenfach aus dem vorherigen DB und validiere die Daten. Erst dann speichere ich die Daten in den neuen DB und lösche das Datenfach des vorherigen DBs.

Wenn das Band einen Positionswert ausgibt, dann würde ich auch wie @Heinileini schon schrieb die Teileinfo mit dieser Position verknüpfen. Dort kann dann auch eine Teile-ID genutzt werden, über die man die Scannerdaten (Bei Start des Scanners Teile-ID speichern) dann, wenn sie zur Verfügung stehen, zur richtigen Teileinfo hinzufügen kann.
Aktuell sehen die Datenfächer meiner Register/ Arrays so aus, dass ich für jedes Teil die aktuelle Auftragsnummer, eine Teile-ID, die Position + Geometrische und optische speichere. Also die Teileinfos und die Position werden immer zusammen gespeichert.
Die Teile-ID für die Scanner-Daten zu speichern ist eine gute Idee. Dann würde ich zyklisch abfragen ob das Teil gescannt würde und das Datenfach mit der entsprechenden ID suchen. So könnte ich dann auch das zusammenschieben von Daten vermeiden.
Zusammenschieben von Teilen ist immer schlecht, das müsste man wirklich detektieren und die Teile dann entnehmen. Oder man gestaltet das Band so, dass ein Zusammenschieben nicht möglich ist, aber das Band wird bei dir sicher schon vorhanden sein oder es geht mech. nicht.
Das Band ist schon vorhanden. Ein Umgestaltung ist leider nicht mehr möglich. Theoretisch können sich die Teile beispielsweise im Fall eines Bandstopps verschieben. In dem Fall sehe ich auch keine Möglichkeit außer den Abschnitt wieder freizufahren und die Teile zu entnehmen.
 

Heinileini

Well-known member
Beiträge
4.984
Punkte Reaktionen
1.066
Theoretisch können sich die Teile beispielsweise im Fall eines Bandstopps verschieben. In dem Fall sehe ich auch keine Möglichkeit außer den Abschnitt wieder freizufahren und die Teile zu entnehmen.
Wodurch würden sich die Teile verschieben? Durch ihre MassenTrägheit, wenn sie beim Abbremsen ins Rutschen kommen?
Oder durch nachfolgende Teile, wenn diese nicht auch gestoppt werden?
 
OP
M

Marius_100

Member
Beiträge
6
Punkte Reaktionen
1
Wodurch würden sich die Teile verschieben? Durch ihre MassenTrägheit, wenn sie beim Abbremsen ins Rutschen kommen?
Oder durch nachfolgende Teile, wenn diese nicht auch gestoppt werden?
Vorwiegend durch die Massenträgheit bei einem plötzlichen Stopp oder durch einen Stau. Möchte ich den Transport kontrolliert anhalten würde ich erst alle Transporte sanft abbremsen oder warten bis die restlichen Teile ausgeschleust wurden.
 
Oben