Step 7 Position eines Stückguts

  • Ersteller Ersteller TIA123
  • Erstellt am Erstellt am
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem beim Weckalarm ist denke ich mal, dass du den Zeitpunkt 0 (Negative Flanke erste Lichtschranke) nicht so leicht abfangen kannst.

Denke ein Taktmerker ist hier die einfachere Lösung.

Wenn du keinen Taktmerker, sondern einen eigenen Takt verwenden willst, kannst du dir auch mal diese Bibliothek von Siemens anschauen (Signal Generator) weiss aber leider nicht ob es die auch für Classic gibt

Link
 
Zuletzt bearbeitet:
Danke Thomas für deine Hilfe. Diesen Taktmerker...wo finde ich den? Bzw. wie baue ich den genau in meine Anwendung ein?
 
In der Hardware Konfiguration deiner CPU

Taktmerker.jpg

Einfach den Haken bei Taktmerker setzen und dann bei Merkerbyte das Byte angeben wo du deine Taktmerker finden willst. Bei dem Bild wäre das dann M256.0 - M256.7
 
Tatsächlich hab ich es jetzt mit dem Taktmerker geschafft (OB cyclic interrupt). Jetzt bräuchte ich nochmal eure Hilfe: Wenn jetzt mit einer negativen Flanke das Stückgut erzeugt wird und mit einer erneuten positiven Flanke komplett auf dem Rollgang ist, wie kann ich dann die Länge von diesem ermitteln?
 
Tatsächlich hab ich es jetzt mit dem Taktmerker geschafft (OB cyclic interrupt).

OB cyclic interrupt ist ein Weckalarm und kein Taktmerker.

Jetzt bräuchte ich nochmal eure Hilfe: Wenn jetzt mit einer negativen Flanke das Stückgut erzeugt wird und mit einer erneuten positiven Flanke komplett auf dem Rollgang ist, wie kann ich dann die Länge von diesem ermitteln?

Einfach messen wie lange die Lichtschranke belegt war. Du zählst dann einfach deine Takte (z.B. INT jeden takt um 1 erhöhen) und berechnest dir daraus eine Zeitdauer. Z.B. 10 takte * 250ms = 2,5s. diese Zeit verrechnest du jetzt noch mit deiner Geschwindigkeit und fertig. 2,5s * 2m/s = 5m

Wie Thomas und Co schon schrieben klappt das allerdings nur in der Simulation so, da du ja Schlupf, Beschleunigung, verzögerung etc. hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ZeitPunkt der "Zugangs-"Flanke vom ZeitPunkt der "Abgangs-"Flanke subtrahieren, dann hast Du den zeitlichen Abstand und über die Geschwindigkeit die Länge (des Rollgangs).
Hast Du schon eingeplant, dass zwischen den LichtSchranken mehrere Gegenstände gleichzeitig unterwegs sein könnten?
 
Bin ich der einzige, der den Weckalarm hier für nicht zweckdienlich empfindet?

Beispiel: LS1 negative Flanke -> Weckalarm wird 100ms später ausgeführt -> Weg des Werkstücks für die 1. 100ms wurde nicht registriert


Jetzt bräuchte ich nochmal eure Hilfe: Wenn jetzt mit einer negativen Flanke das Stückgut erzeugt wird und mit einer erneuten positiven Flanke komplett auf dem Rollgang ist, wie kann ich dann die Länge von diesem ermitteln?

Soll jetzt die Position des Werkstücks auf dem Rollgang oder die Länge des Rollgangs ermittelt werden?:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bin ich der einzige, der den Weckalarm hier für nicht zweckdienlich empfindet?

Beispiel: LS1 negative Flanke -> Weckalarm wird 100ms später ausgeführt -> Weg des Werkstücks für die 1. 100ms wurde nicht registriert

Nein du bist da nicht der Einzige. Ich würde dafür gar keinen Takt nehmen und wie Heinileini die Zeit messen. Falls doch einen Takt, dann sehr klein und Zugriff auf Peripherieeingang um den wirklich aktuellen Wert zu haben. Das scheint hier aber einfach zu überfordern.
 
Nein du bist da nicht der Einzige. Ich würde dafür gar keinen Takt nehmen und wie Heinileini die Zeit messen. Falls doch einen Takt, dann sehr klein und Zugriff auf Peripherieeingang um den wirklich aktuellen Wert zu haben. Das scheint hier aber einfach zu überfordern.

Das mit dem Takt kommt nur daher, dass die anfängliche Fragestellung so interpretiert wurde:

LS1 Werkstück da -> fährt mit x m/s auf dem Rollgang -> LS2 Werkstück weg

Wo befindet sich das Werkstück zum Zeitpunkt t bei konstanter Geschwindigkeit

Vielleicht habe ich das aber alles einfach missverstanden.
 
Bau dir einen Weggeber auf den Antrieb. Im einfachsten Fall eine Messfahne die die impulse zählt - je nach Auflösung (eventuell hast du ja schon mechanisch irgendwas passendes am Förderer)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bau dir einen Weggeber auf den Antrieb. Im einfachsten Fall eine Messfahne die die impulse zählt - je nach Auflösung (eventuell hast du ja schon mechanisch irgendwas passendes am Förderer)

So machen wir es seit Jahrzehnten bei unseren Palettieranlagen. Mit einem induktivem Sensor direkt an das Zahnrad des Bandmotors, dann positive und negative Flanke
auswerten. Günstiger, robuster und einfacher geht es fast nicht ( außer mit Lichtschranke und rumrechnen, die Genauigkeit mal dahingestellt )
 
Moin,

Bau dir einen Weggeber auf den Antrieb. Im einfachsten Fall eine Messfahne die die impulse zählt - je nach Auflösung (eventuell hast du ja schon mechanisch irgendwas passendes am Förderer)

...hatte ich das nicht schon vorgeschlagen :confused:
Damit ist die Verfahrgeschwindigkeit und/oder Rampenzeiten egal.


VG

MFreiberger
 
Moin,



...hatte ich das nicht schon vorgeschlagen :confused:
Damit ist die Verfahrgeschwindigkeit und/oder Rampenzeiten egal.


VG

MFreiberger

Hattest du, aber wer wird denn den Schlupf zwischen Werkstück und Förderband vergessen? Bei zu kurzen Rampenzeiten rutscht das doch. ;)

Spaß beiseite... Da es hier ja eh nur um eine Simulation (ich denke mal zu Lehrzwecken) geht, würde ich das ganze einfach stupide rechnen. Wenn es aber um die Simulation einer echten Anlage geht ist die Ausgangssituation mit 2 Lichtschranken wie schon oft erwähnt sehr realitätsfremd.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es aber um die Simulation einer echten Anlage geht ist die Ausgangssituation mit 2 Lichtschranken wie schon oft erwähnt sehr realitätsfremd.
Und die Unterdrückung des Kritriums, ob gleichzeitig mehrere Teile zwischen beiden LichtSchranken unterwegs sind, halte ich für noch realitätsfremder.
Sollte es tatsächlich so sein, dass nie mehr als 1 Teil zwischen den beiden LS lustwandelt, so dürften die Faktoren GeschwindigkeitsÄnderung und Schlupf ziemlich belanglos sein.
Die Entscheidung pro Wegmessung (z.B. mit Michaels ZahnZähler) und contra Zeitmessung, muss eigentlich nicht lange diskutiert werden - der Aufwand für die Wegmessung dürfte sich im Rahmen halten und gleichzeitig jede Menge Aufwand ersparen, der für das Beobachten und HerausRechnen der Geschwindigkeit/Drehzahl erforderlich wäre.
Der Lösungsweg, beim Auftreten des einen Signals einen Wert festzuhalten und beim Auftreten des anderen Signals ebenfalls einen Wert festzuhalten und dann Schlüsse aus der Differenz der beiden zu ziehen, ist doch wohl unabhängig davon, ob es sich nun um ZeitWerte oder PositionsWerte handelt.

PS:
Bei beiden, Zeitwerten und PositionsWerten, wird man wohl ziemlich schnell an den Punkt kommen, sich Gedanken über einen ZählerÜberlauf zu machen und man kommt hoffentlich auch darauf, dass ein ZählerÜberlauf kein SchreckGespenst, sondern etwas leicht beherrschbares ist.
 
Zuletzt bearbeitet:
Danke für die vielen Antworten! Ich werde es dennoch mit einem Weckalarm machen, da alles andere für mich viel zu komplex wäre. So nebenbei: Es gibt mehr als 5 LS, die später auch die beobachten, ob das Stückgut synchron damit ist. Auch können mehrere Stückgute auf dem Rollgang liegen. Hier wird später noch auf Kollision geprüft werden. Nun eine andere Frage zu der Länge des Stückguts.

Ich hätte jetzt vorgehabt eine negative Flanke abzuprüfen = Stückgut trifft auf Rollgang. Nun soll in dieser Zeit mit Hilfe des Weckalarms der Weg integiert werden. Sobald eine positive Flanke wieder vorherscht (Stückgut ist komplett eingetroffen) Soll dann der Weg aus dem Integrator gelesen und mit der Zeit berechnet werden. Bei einer negativen Flanke setze ich eine Variable auf 1, mit der ich den (selbst gebauten) Integrator enable. Bei einer positiven Flanke will ich diese Variable wieder rücksetzten. Aber das funktioniert nicht?

// Sprich: Die eine Flanke enable es, die nächste soll es wieder rücksetzten.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben