Zeit messen und durch 2 teilen mit S5

A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallöchen!

Ich habe folgende Aufgabe:
Ich muss kontinuierlich ein Band zwischen 2 Endpunkten halten. Dazu sind über einer Kante des Bandes zwei Initiatoren befestigt, von denen der Äußere dann nicht, der Innere dann immer betätigt ist, wenn sich die Kante des Bandes zwischen den beiden Initiatoren befindet. Nun verläuft dieses Band aber stetig entweder in die eine (rechte) oder andere (linke) Richtung. Verschieben kann ich das Band letztlich mit 2 Ausgängen nach links und rechts. Der Abstand der beiden Initiatoren ist allerdings variabel, und wird auch oft verstellt.
Die Lösung habe ich mir folgendermaßen vorgestellt: Bei jedem Start der Maschiene wird eine Referenzfahrt durchgeführt. Das Band wird also von jeder Position aus in eine Bestimmte gefahren, zum Beispiel von innen kommend, bis der äußere Initiator betätigt wird. Dann wird das Band nach innen (also rechts) verfahren, bis der rechte, innere Initiator frei wird. Die Zeit die dafür benötigt wird, wird gemessen.
Wird dann im Betrieb einer der Initiatoren erreicht, also der äußere betätigt oder der Innere frei, muss das Band dann um die habe gemessene Zeit in die entsprechende Richtung gefahren werden, und steht dann in der Mitte.
Das Programm für die Referenzfahrt habe ich mit einer Schrittkette realisiert. Das funktioniert auch.
Mein Problem ist aber: Wie messe ich während der letzten Fahrt vom äußeren zum inneren Initiator die Zeit, teile sie dann durch 2?
Wenn zum Beispiel irgendwann beide Initiatoren betätigt sind, und ich das Band Richtung inneren Initiator fahre, wie kriege ich das hin, daß erst wenn der äußere dann nicht mehr betätigt ist, ich dann verzögert um die halbe Zeit die Fahrt nach rechts abschalte?

Ich hoffe ihr könnt mir helfen! :eek:)

Mfg,
Stefan
 

Markus

Administrator
Teammitglied
Beiträge
5.580
Punkte Reaktionen
1.660
bastel dir aus einer se-zeit die sich selber äbfrägt einen taktgeber - zb 1s (je nach genauikeit/länge des bandes)

zähle mit diesem takt einen integer (MW) hoch

so kannst du ermitteln wieviele takte lang dein gefahrener weg ist.

diesen integer durch zwei teilen (bei s5 rechts schieben)

und das ergebniss zukünftig als sollwert benutzen
 

sps-concept

Well-known member
Beiträge
2.240
Punkte Reaktionen
251
Zuviel Werbung?
->Hier kostenlos registrieren
Zeit

na hallo,

du nimmst nen SE-Timer und startest ne Zeit mit grosszügig bemessenen Zeitbasis die du nie überschreiten würdest. Wenn das Ziel erreicht ist, erreichest du die verstrichene Zeit aus der Zeitbasis und dem aktuellen Wert. Die teilst du dann durch 2 (nicht einfach teilen, sonder KT-Format beachten!) und schreibst es auf ein MW. Dieses MW kannst du dann zum Starten der Zeit verwenden. Kann sein dass die Beschreibung bissel verwirrt. Aber so würde ichs sinngemäss machen.

MfG
André Räppel
 
OP
A

Anonymous

Guest
Nur wie soll das gehen, das mit dem durch 2 Teilen? Einmal nach rechts schieben? Eigendlich kann die S5 ja nur + und -.
Wenn ich einen Zeitwert mit "L T1 _ T MW1" in einem Merkerwort speichere, wie kann ich es dann (Anstatt z.B. "L KT 50.0") als Zeitwet für einen SE - Timer benutzen?

Eine Version habe ich ausgearbeitet:
Ich erstelle mir 2 Taktmerker, dessen eine frequenz doppelt so hoch ist wie die andere.
Während ich den Weg abfahre, zähle ich einen Zähler mit der niderigen frequenz hoch. Den Wert des Zählers transferiere ich in einem Merkerwort.
Wenn dann später eine der Endpositionen erreicht ist (z.B. innen) setze ich einen zweiten Zähler auf diesem in dem Merkerwort stehenden Betrag. Er wird komtinuierlich durch den Taktmerker mit der hohen Frequenz runter gezählt. Da der Binäre Ausgang immer dann 1 ist, wenn der Zählwert >0 ist, ist der Ausgang solange 1, wie der Zähler runterzählt. Das geht mit der hohen Frequenz natürlich doppelt so schnell. An dem Ausgang des Zählers ist dann einfach der Ausgang, der das Band in die entsprechende Richtung fährt.
Das funktioniert rein theoretisch einwandfrei, hat aber 2 Haken:
1. durch das recht kleine Zeitfenster müssen die Taktmerker eine recht hohe Frequenz haben, was widerum zur Folge hat, das der ein oder andere Impuls durch die Zykluszeit verschluckt wird, oder es ungenau wird, je nach dem, wie man die Taktmerker generiert.
2. Wenn das Band gerade einen Rechtsschub erhält, während man es nach links bewegen will, kann folgendes passieren: Der Äussere Initiator ist bedämft, der befehl das Band nach Links zu bewegen kommt, die "nachlaufzeit" läuft ab, und dannach bedämft das Band aber immer noch, oder schon wieder den äußeren Initiator. In diesem Fall wurde der Zähler nicht erneut gesetzt und runterzählen, da er eine positive Flanke benötigt. Es würde also rein gar nichts mehr passieren. und das ist schlecht!
Hat vieleicht einer eine Idee dazu?
Gibt es keine einfachere Lösung mit der s5?

Stefan
PS: Vielen Dank schon mal für die Antworten! :eek:))
 

KaffeeSaufenderKamin

Well-known member
Beiträge
143
Punkte Reaktionen
3
Ganz einfach :

Zeit über Parameter setzten

L MW32 Zeitwert BCD codiert inclusive Zeitbasis
SE T99

Durch zwei teilen :

L MW32
SRW 1
T MW34


Zu deiner Frage :

Nimm doch einen Lasertaster der die Strecke bis zum Band misst und die Strecke als Analogwert zur Verfügung stellt.
 

andre

Well-known member
Beiträge
268
Punkte Reaktionen
37
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,
verstehe ich das richtig das Du ein Band immer etwa in der Mitte auf den Antriebswalzen ausrichten willst?
Wenn ja, warum machst Du es so kompliziert? Wir haben bei uns etliche Bänder mit einer solchen Funktion. Links und rechts an der Bandkante tastet ein Sensor das Band ab und regelt den Bandlauf.
Aber vielleicht habe ich Dich ja auch nur falsch verstanden?
 
Oben