Step 7 Position eines Stückguts

  • Ersteller Ersteller TIA123
  • Erstellt am Erstellt am
Sorry, ich habe noch nicht verstanden, was Du genau vorhast.
Ich habe gar keine Erfahrung mit TIA, aber das hat eigentlich auch nichts damit zu tun, welche Lösungswege man sich überlegt.
Hast Du Erfahrung in irgendwelchen anderen ProgrammierSprachen bzw. "-Umgebungen"?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin TIA123,

i.M. wird ja viel von einem digitalen Zwilling gesprochen. Wenn Du in Pulsen weißt, wie lang Deine Förderstrecke ist (z.B. 1000 Pulse lang), könntest Du Dir z.B. ein Array[0..999] of int deklarieren. Zum Anfang der Strecke kommt dann eine Lichtschranke. Vorher könnte es noch eine Entscheidung geben (Barcodeleser), aufgrund dessen entschieden wird, wo das Fördergut ausgeschleust werden soll.

Es kann ja sein, dass es drei Ausschleusestellen gibt. Also wird für ein Fördergut mit Ziel 1 die 1 in das Array eingetragen. Dabei werden beim Array bei jedem Puls die Daten weitergeschoben und in Array[0] solange die Entscheidungsnummer eingetragen, solange die Lichtschranke am Anfang der Strecke belegt ist. Wenn Du einen großen Wert einträgst, der sich nicht auf eine Ausschleusestelle bezieht (z.B. 99), könnte das z.B. eine Fehllesung sein oder bewusst ein Fördergut ohne Barcode oder irgendetwas anderes. Das kann dann immer in der niO-Bahn ausgeschleust werden oder einfach hinten runter fallen, weil nirgends ausgeschleust wird.

Jetzt laufen Deine Pakete virtuell auf deinem Datenbaustein lang und es ist sogar direkt zu sehen, wie viel Pulse ein Fördergut lang ist. Damit kannst Du jetzt alles machen was Du willst:
Ausschleuseklappen betätigen, Pakete löschen, die real nicht da ankommen, wo sie virtuell sein müssten (irgendwelche Lichtschranken o.ä.). Dann wird die Strecke automatisch bereinigt, wenn ein Fördergut einfach per Hand entnommen wird. usw. usw.

VG

MFreiberger
 
Hey MFreiberger,

danke dir vielmals, allerdings arbeite ich bereits 70 h an dem Projekt und ich will mein Konzept nur ungern ändern, da es auch komplett anders aussieht. Ich komm jetzt nach deinen vorherigen Tipps ganz gut zurecht. Nur weiß ich nicht wirklich wie ich die Länge eines Stückguts ermittle? Hättest da auch noch einen Tipp?

LG
 
Ich will die Länge eines Stückguts ermitteln. Bei einer negativen Flanke wird der Lichtschranken unterbrochen, während dieser Zeit soll die Streckenmessung laufen. Dann bei der nächsten positiven Flanke soll diese ermittelte Länge dem Stückgut zugewiesen bekommen.

Ja, Java, C#, JavaScript, SQL,... in der ET bin ich noch komplett neu :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur weiß ich nicht wirklich wie ich die Länge eines Stückguts ermittle?
Ich habe mir jetzt nicht alles durchgelesen, aber Zeitpunkt Flanke Positiv bis Zeitpunkt Flanke negativ ergibt die
Vorbeifahrzeit durch den Lichtschrankenstrahl. Mit Hilfe der Bandgeschwindigkeit könnte man nun die Länge ermitteln.

Zu beachten gilt natürlich, was ist wenn die Anlage gestoppt wird, während sich das Teil im LS-Strahl befindet, Rampen....
 
Nur weiß ich nicht wirklich wie ich die Länge eines Stückguts ermittle?
Die "zeitliche Länge" kannst Du doch ermitteln: Du merkst Dir die Zeit, wann die Lichtschranke unterbrochen wird und Du merkst Dir die Zeit, wann dieselbe Lichtschranke wieder freigegeben wird und berechnest die Differenz, die Du dann über die Geschwindigkeit in eine Länge umrechnest.
Dafür wäre es allerdings sinnvoll, die Lichtschranke nicht nur alle Jubel-MilliSekunden abzufragen, sondern so "zeitnah" wie möglich (z.B. zyklisch oder per Alarm, sobald sich an dem Eingang etwas tut).

@Michael:
>> Was nicht mit der ZeitMessung geht, das geht mit dem Zahn der Zeit (=WegMessung à la Michael) << (Frei nach Michael);)

PS:
Nicht alles, was positiv klingt, ist auch wirklich positiv. Z.B. HIV-positiv. Was bedeutet HIV? Habe ich vergessen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin DeltaMikeAir,

Wenn die Lichtschranke unterbrochen wird, ist es wohl eher eine positive Flanke, wenn Sie wieder frei wird eine negative Flanke

Die Lichtschranke führt doch immer High-Signal, wenn sie nicht unterbrochen ist, d.h. auf den Spiegel "guckt". Also kann man eine negative Flanke abfragen, wenn sie unterbrochen wird.

VG

MFreiberger
 
Die Lichtschranke führt doch immer High-Signal, wenn sie nicht unterbrochen ist, d.h. auf den Spiegel "guckt".

Warum? Das kommt wohl darauf an, wie die Lichtschranke angeschlossen wurde ( weißer oder schwarzer Draht des LS-Kabel )
bzw. was für ein LS-Typ.

Die Lichtschranke führt doch immer High-Signal, wenn sie nicht unterbrochen ist
Wir verdrahten so, dass ein HIGH Signal da ist, wenn die LS belegt ist.


Oder habe ich hier was überlesen?
 
Ich versteh da grade nur Bahnhof aber zu Aufklärung: Die LS sind immer 1, bei Unterbrechung 0.

Das mit der Zeit ... enable ich da einfach den Baustein "Uhrzeit lesen" wenn ein High Pegel vorherrscht? Und das ist ja das ganze Datum, wie extrahiere ich das, um nur die s bzw. ms auszulesen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mach mal eine Skizze vom Konzept. Ich denke mit einem Weggeber hast du gewonnen. Sobald ein Teil Drauf kommt merkst du dir den Weggeber Stand und zählst die aktuelle Position dazu. Kannst du in der Visu sogar animieren. Das machst du in einem Array für jedes Teil (FiFo Prinzip)
 
Das mit der Zeit ... enable ich da einfach den Baustein "Uhrzeit lesen" wenn ein High Pegel vorherrscht? Und das ist ja das ganze Datum, wie extrahiere ich das, um nur die s bzw. ms auszulesen?
AnfangsWert auslesen, wenn LS von 1 auf 0 wechselt (negative Flanke) und EndWert auslesen, Wenn LS von 0 auf 1 wechselt (positive Flanke).
Ich würde da rein gar nichts extrahieren, wenn es auf die Differenz der beiden Werte ankommt. Es gibt doch sicherlich eine Möglichkeit, die Differenz zu bilden?

Das machst du in einem Array für jedes Teil (FiFo Prinzip)
FiFo-Prinzip! Genau! Damit machen wir den Schritt, auch mehrere Teile zwischen erster und letzter LS verarbeiten zu können!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
"denkt" die Steuerung der Platz wäre frei und will etwas dahin fördern

Ja, wie man es nimmt, oder die Steuerung denkt Teil ist auf Position. Bei Endschaltern usw. wird alles drahtbruchsicher verdrahtet.
 
Zuletzt bearbeitet:
Dann muß man eben einen Plausibilitätscheck machen - flanke darf nur kommen/gehen wenn Antrieb sich dreht zum Beispiel
 
Danke für die Antworten. Ich habe meine bisher gefragten Probleme nun gelöst. Nun die nächste Sache: Ich will die verschiedenen Stückgutteile visualisieren. Es drehen sich die Rollen, die entsprechend die Farbe ändern, sobald eine Rolle sich dreht. Nun will ich, dass sich darauf ein Rechteck (das das Stückgut zeigen soll) sich ebenfalls bewegt. Ich habe das mit der horizontalen Bewegung gesehen, aber ich kann hier keine Variable nehmen, die Real ist (Position vorne oder hinten). Wie gehe ich hier am besten vor?
 
Zurück
Oben