# Egalisierung programmieren....



## Tmbiz (20 Februar 2019)

Guten Tag zusammen, 
ich muss ein Konzept erstellen wie man das Verpacken von Naturgewachsenen Produkten erreichen kann. 

Dazu muss ich erst mal herausfinden, wie man am besten die Egalisierung erreichen kann. Also welches Programmtechnisch der beste Weg für "unseren" Fall ist. Die Maschine soll immer die richtigen Gewichte von einem Band stossen und eine Mensch legt die Produkte dann in eine Kiste. 

Vielen Danke für eure hilfe.

****************Hier eine Update zu dem Projekt:**********************
 Der Kunde hat nun erklärt, wie er sich das vorstellt. Über ein Förderband kommen Gemüseeinheiten mit einer Gewichtsverteilung von z.B. 150 bis 250g. Die Steuerung kennt über eine Waage alle Gewichte der Einheiten, welche auf das Band gelegt werden. An dem Band stehen 8 Gemüse Kisten welche mit einer bestimmten Anzahl von Gemüseeinheiten gefüllt werden sollen. Es gibt so zu sagen an jeder Gemüse Kiste eine Weiche welche das Gemüse vom Band in die Kiste schupsen kann. Gemüseeinheiten welchen ich einsortiert werden können, fallen einfach am Ende des Bandes in eine Zwischenposition.

Klassisches Egalisieren ist nicht möglich, da ich die Gemüseeinheiten nicht mehr aus der Kiste nehmen kann. Daher sollt eine Logisch geschickte Auswahl getroffen werden. 

Meine erste Idee war, einfach die erste Kiste Füllen bis nur noch eine Einheit fehlt. Allerdings kann es dann so sein, dass hier keine mehr passt, da sie entweder sehr gross oder klein sein muss. 

Meine nächste Idee war, die erste Gemüseeinheit für die erste Kiste wird zufällig gewählt. Diese ist z.B. 10g über Durchschnittsgewicht welche alle Teile in der Kiste haben sollen. (sagen wir mal im Schnitt sollen alle Teile 200g wiegen. Dann würde die Steuerung erst die Gemüse Kiste 2 bis 8 füllen und solange warten bis eine Gemüseeinheit mit -10g unter dem Durchschnittsgewicht zur Verfügung steht. 

Wenn man davon ausgehet, dass sich die Gemüseeinheiten nach der Gausskurve verteilen, müssten für jeden Plus Wert auch ein gleicher Minuswert nach einer Angemessenen Zeit erscheinen. 

Die Auswahl der nächsten Gemüsekomponente wäre dann so, dass möglichst das Durchschnittsgewicht gehalten werden soll. Eine Überdosierung wäre in einem gewissen Mass akzeptabel.

Die Maschine würde dann einer gewissen Logik folgen und die Einstellung der Grenzen würde entscheiden, wie viel "Auswurf" (Gemüseeinheiten welchen nicht einsortiert wurden) es gibt.


----------



## Mecha2312 (20 Februar 2019)

Du willst, dass wir deine komplette Arbeit tun?
Und gibst noch nicht mal Details preis?

Und schreibst nur leere Worthülsen?

Beantrage doch bei der EU, dass Deine Produkte stärker genormt werden, dann brauchst Du nicht zu sortieren.


----------



## DeltaMikeAir (20 Februar 2019)

> Die Maschine soll immer die richtigen Gewichte von einem Band stossen und eine Mensch legt die Produkte dann in eine Kiste.


Im Prinzip macht so etwas eine horizontale Mehrkopfwaage. Also nicht die, wo das Produkt nach unten fällt sondern über schwingende Rinnen oder Transportbänder
horizontal auf Waagbleche transportiert werden und dann das ideale Gewicht entsprechend ermittelt wird.


----------



## Plan_B (20 Februar 2019)

Die FPVO gibt doch Einzelabweichungen und Batchtoleranzen vor. Wie Du das ausprogrammierst ist ein wenig Knoff-Hoff.
Wägetechnikhersteller haben bei z.B. Durchlaufkontrollwagen dafür eigene Strategien entwickelt.
Bei Mehrkopfwaagen ist es praktisch Teil des Systemkonzepts aus den befüllten Wägeköpfen die Kombination zu wählen, welche dem Zielgewicht innerhalb programmierbarer Toleranzen am nächsten kommt.


----------



## DeltaMikeAir (20 Februar 2019)

Hier mal ein recht theoretisches Bild:
https://upload.wikimedia.org/wikipedia/commons/9/95/TSDW_Halbautomatische_Mehrkopfwaagen.jpg


----------



## Tmbiz (20 Februar 2019)

DeltaMikeAir schrieb:


> Im Prinzip macht so etwas eine horizontale Mehrkopfwaage. Also nicht die, wo das Produkt nach unten fällt sondern über schwingende Rinnen
> horizontal auf Waagbleche transportiert werden und dann das ideale Gewicht entsprechend ermittelt wird.




Zitat:
Die FPVO gibt doch Einzelabweichungen und Batchtoleranzen vor. Wie Du das ausprogrammierst ist ein wenig Knoff-Hoff.
Wägetechnikhersteller haben bei z.B. Durchlaufkontrollwagen dafür eigene Strategien entwickelt.
Bei Mehrkopfwaagen ist es praktisch Teil des Systemkonzepts aus den  befüllten Wägeköpfen die Kombination zu wählen, welche dem Zielgewicht  innerhalb programmierbarer Toleranzen am nächsten kommt.         



Ja sowas wäre das. Hat jemand einen Tip, nach welcher Logik, man die Auswahl machen könnte? Mir ist nicht ganz klar, wie man hier geschickt Logisch das Vergleichen und summieren der einzelnen Gewicht errechen kann.


----------



## DeltaMikeAir (20 Februar 2019)

> Mir ist nicht ganz klar, wie man hier geschickt Logisch das Vergleichen und summieren der einzelnen Gewicht errechen kann.


Das ist so eine Sache für sich. Ich habe mal einen Baustein einer 16Kopf Mehrkopfwaage gesehen. Im Prinzip wird da alles mit allem addiert ( dies in allen möglichen Varianten )
geschaut in welcher Konstellation man am nähesten im am Wunschgewicht + innerhalb der Toleranz ist und bei Bedarf muss Material nachgeliefert werden.
Auch hier muss entschieden werden, Grob oder Feinnachdosierung mehrerer oder evtl. nur noch einzelner Zuführungen.


----------



## Tmbiz (20 Februar 2019)

DeltaMikeAir schrieb:


> Das ist so eine Sache für sich. Ich habe mal einen Baustein einer 16Kopf Mehrkopfwaage gesehen. Im Prinzip wird da alles mit allem addiert ( dies in allen möglichen Varianten )
> geschaut in welcher Konstellation man am nähesten im am Wunschgewicht + innerhalb der Toleranz ist und bei Bedarf muss Material nachgeliefert werden.
> Auch hier muss entschieden werden, Grob oder Feinnachdosierung mehrerer oder evtl. nur noch einzelner Zuführungen.



Ah ok. Die herausforderung ist, dass eine Gewicht von 2 kg erreicht werden soll und das kann je nach Produkt aus 4 Produkt erreicht werden oder bei anderen Produkten aus 10 oder z.B. aus 12 Teilen. 

Aber allen in allem, muss immer alles mit allem addiert werden und hat eine Kombination das erreicht, dann wird diese Kombination auch ausgewählt.... 

Ich frage mich wie hier die Logik wohl am besten ist

Alos t=Teil

t1+t2 = Sollgewicht inkl Tolleranz erreicht? Ja->Auswerfen/ Nein -> nächste Reihe
t1+t2+t3 = Sollgewicht inkl Tolleranz erreicht? Ja->Auswerfen/ Nein -> nächste Reihe
.
.
.
.
t1+t2+t3+t4+t5+t6+t7+t8+t9+t10 = Sollgewicht inkl Tolleranz erreicht? Ja->Auswerfen/ Nein -> nächste Reihe
t2+t3= Sollgewicht inkl Tolleranz erreicht? Ja->Auswerfen/ Nein -> nächste Reihe
t2+t3+t4 = Sollgewicht inkl Tolleranz erreicht? Ja->Auswerfen/ Nein -> nächste Reihe
USW.

Entwender man hat einen langen Quelltext, in dem jede Möglich Kombination abgerfagt wird oder es gibt hier einen kluge ander Lösung.


----------



## Larry Laffer (20 Februar 2019)

Die Frage, die sich für mich hier stellt ist :
- kennst du das Gewicht der nächsten Teile ?
- was ist, wenn du überdosiert hast ?  Das müßte ja die Konsequenz des von dir im Beitrag #8 skizzierten Ablaufs werden ...

Gruß
Larry


----------



## Plan_B (20 Februar 2019)

Für den Algo ist auch entscheidend das Stückgewicht. Hier ergibt sich bei der Nachdosierung die Gefahr das keine Abwurfkombination zu einem Gewicht innerhalb der Toleranzgrenzen führt. Als erstes ist dafür also eine fehlabwurfstrategie zu entwickeln. Als zweites sind Maßnahmen zu treffen um die Wahrscheinlichkeit zu reduzieren.

Bei Mehrkopfwaagen empfiehlt sich eine Einstellung das kontinuierlich das Zielgewicht mit 40..60% der Wägeschalen erreicht wird. Damit ist in der einzelnen Wagschale ein Gewicht deutlich unter dem Nenngewicht. Bei einer Nachdosierung reduziert sich zwar die Zahl der verfügbaren Kombinationen, jedoch kann theoretisch in kleinen Schritten mehrfach nachdosiert werden.

Die Dosierung/Nachdosierung findet dabei üblicherweise zeitgesteuert mit einer programmierbaren Rüttelrinnenamplitude statt. Große Stückgewichte --> kurze Zeit.
Viele Wägeköpfe--> hohe Gesamtdurchsatzrate bei kleinen Einzeldosierungen und vielen möglichen Kombinationen.

Wir dosieren Einzelgewichte von 25g zu einem Gesamtgewicht von 400g. Passt meistens gut. Fehlabwürfe sind eher selten.


----------



## DeltaMikeAir (20 Februar 2019)

Hallo Andy_,

so kenne ich das auch. Bei den Maschinen, an welchen ich auch schon mal dran war, finden Fehlabwürfe auch sehr selten statt ( z.B. meißt bei TK Waren, wenn mehrere
Brötchen zusammen vereist sind ) Die werden dann abgeworfen, das Transportband darunter führt die Ware dann nicht zur Schlauchbeutelvorrichtung sondern die Drehrichtung
dieses Bandes änder sich und die Ware wird in den Dosiervorgang rückgeführt.


----------



## Tmbiz (20 Februar 2019)

Ok. Ich habe der Thema gerade mal hier besprochen. Wir haben nun mal zwei Konzepte, wie man von der Konstellation der Maschine erst mal arbeien könnte. 

Danke für eure Hilfe.


----------



## Heinileini (26 Februar 2019)

Habe da mal was in Excel gebastelt, um mit "Egalisierung" spielen zu können.
Die abei-igen pdf-Dateien sind KEINE pdf-Dateien! Nach dem Download müssen die Endungen ".pdf" gelöscht werden.




Anhang anzeigen Egal-is-ierung.xlsm.pdf


Anhang anzeigen Egal-is-ierung.cls.pdf


Anhang anzeigen Egal-is-ierung.bas.pdf


Gruss, Heinileini

PS:
Die bas-Datei und die cls-Datei lassen sich aus der xlsm-Datei exportieren und enthalten das VBA-Programm.


----------



## Tmbiz (27 Februar 2019)

Verstehe ich das richtig, dass du die einzel Gewichte in "Gruppen" einteilst?


----------



## Heinileini (27 Februar 2019)

Tmbiz schrieb:


> Verstehe ich das richtig, dass du die einzel Gewichte in "Gruppen" einteilst?


Jain. 
Das Programm betrachtet nur die Abweichungen der Teile von ihrem SollGewicht, das für alle Teile gleich ist, und setzt voraus, dass genügend viele Teile mit positiver Abweichung vorhanden sind und genügend viele mit negativer. 
Die Eingabe "Toleranz" beeinflusst dahingehend den ZufallsZahlenGenerator und hat ansonsten keine Wirkung.
Die Eingabe "AnzAuswahl" gibt vor, wieviele Teile zur Verfügung stehen (sie ist willkürlich auf 30 begrenzt)
Die Eingabe "AnzSelektion" gibt vor, aus wie vielen Teilen die "Gruppe" - also das Ergebnis - bestehen soll.
Wenn ich also möchte, dass 10 Teile selektiert werden sollen, z.B. zu je "ca." 100 g, wird das Programm versuchen, die 10 Teile so auszuwählen, dass diese 10 zusammen möglichst genau 1 kg wiegen. 
Meine Strategie ist dabei:
- die Liste der Abweichungen zu sortieren.
- in der sortierten Liste die Stelle zu finden, wo die positiven Abweichungen aufhören und die negativen anfangen (wird gelb angezeigt).
- von dieser "Stelle" aus die nächsten 5 Teile oberhalb und unterhalb in der Spalte 0 von "Vorauswahl" als "Gruppe 0" festzulegen.
- in der Spalte -1 Anfang und Ende der "Gruppe -1" um 1 nach oben verschieben, in Spalte -2 die "Gruppe -2" um 2 nach oben verschieben.
  In den Spalten +1 und + 2 sinngemäss um 1 bzw. 2 Positionen nach unten. Die SummenAbweichung wird in einer der gelben Zeilen für die 5 Gruppen angezeigt.
  Wird in keiner der 5 Spalten ein Ergebnis gefunden, weil nicht genügend viele positive oder negative Abweichungen zur Auswahl stehen, so wird die Suche "ergebnislos" abgebrochen.
  Die Spalten mit Ergebnis werden verglichen: es wird die Spalte gewählt, deren SummenAbweichung betragsmässig am kleinsten ist.
- Diese Selektion wird noch variiert, indem jeweils "probeweise" 1 selektiertes Teil gegen ein nicht selektiertes getauscht wird, wobei nach der kleinstmöglichen SummenAbweichung
  gesucht wird. Ausgegeben werden nur die Versuche, die eine weitere Verbesserung bringen.

Edit:
Aufgrund der Sortierung . . .
- wird, abhängig davon, ob der Startwert der SummenAbweichung in der Vorauswahl positiv oder negativ ist, entweder nur oberhalb der "gelben Linie" oder nur unterhalb getauscht.
- wird die TauschAktion abgekürzt, sobald ein Tausch ein schlechteres Ergebnis liefert.

Mittlerweile habe ich eingebaut, dass man für das Ergebnis eine Untergrenze und eine Obergrenze vorgeben kann. Die Untergrenze muss <=0 sein und die Obergrenze >=0, d.h.
es ist nicht möglich, Unter- und Obergrenze so zu wählen, dass beide positiv sind oder beide negativ. Melde mich noch mal zu dieser Erweiterung . . .

Gruss, Heinileini


----------



## Heinileini (27 Februar 2019)

Moin Timbiz,
voilà:


Beispiel 1: Grenzen werden in der Vorauswahl noch nicht eingehalten.



Beispiel 2: Grenzen werden auch in der Vorauswahl schon eingehalten.

Anhang anzeigen Egal-is-ierung-2.xlsm.pdf


Anhang anzeigen Egal-is-ierung-2.cls.pdf


Gruss, Heinileini


----------



## Heinileini (6 März 2019)

Habe kürzlich das 


Tmbiz schrieb:


> . . . Update zu dem Projekt . . .


in #1 entdeckt und das Thema nochmal aufgegriffen.
Anbei eine entsprechende "Excel-Visualisierung".
Anhang anzeigen 8Kisten.xlsm.pdf

	

		
			
		

		
	
 (nach dem download ".pdf" entfernen)

Gruss, Heinileini


----------

