Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 4 von 12 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 117

Thema: Programmierwettbewerb, 5. Aufgabe - Inkrementalgeber Korrektur

  1. #31
    Registriert seit
    19.01.2010
    Ort
    Graz / Austria
    Beiträge
    100
    Danke
    6
    Erhielt 10 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du meinst im Nomalbetrieb, rückwärts über den Punkt des induktiven Gebers, wo dann auch der korrigierte Wert auf 0 stehen sollte?
    Ja durch den Bediener bei einer Blockade, dann gibt es einen negativen Überlauf und er fängt wieder bei 65535 rückwärts runter zu zählen an.

    Michi

  2. #32
    Registriert seit
    19.01.2010
    Ort
    Graz / Austria
    Beiträge
    100
    Danke
    6
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Das Teil kann sich im Prinzip beliebig hin und her drehen, auch über die 0 Position hinweg. Im Normalbetrieb zwar immer vorwärts, aber auch rückwärts bei einer Blockade.
    Wichtig ist nur, dass immer wieder die selbe Stelle von der Achsumdrehung nach dem Getriebe vom Inkrementalgeber erkannt wird da hier irgend etwas passieren muss. Diese Stelle verschiebt sich aber durch die Ungenauigkeit immer weiter, je länger die Maschine läuft und je mehr Umdrehungen gemacht werden und soll durch den Baustein korrigiert werden.

    Michi

  3. #33
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Das er dann beim Überlauf anfängt, weiß ich ja. Nur wenn immer draufgerechnet wird und die Achse läuft Rückwärts, dann wird das, was vorher draufgrechnet wurde, wieder abgezogen und wenn er dann die Ref. erreicht sind die beide Werte gleich und danach rechnet er weiter runter alle x Einheiten.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  4. #34
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    Zitat Zitat von RobiHerb Beitrag anzeigen
    Ich hatte mal vor einigen Jahren ein vergleichbares Problem, in meinem Falle gab es keine Lösung (zumindest nicht für mich).

    Mechanik: eine Feuerwehr Drehleiter oder Rettungsbühne, die im Einsatz beliebig oft den Oberwagen (Tuntable) drehen darf. Am Ende eines Einsatzes soll die Leiter vollautomatisch wieder eingefahren und auf die Halterung gesetzt werden.

    Problem war, die Anzahl der Zähne auf den Getriebezahnrädern waren jeweils Primzahlen. Wir haben das Getriebe auf gerade Quotienten umbauen müssen.

    Also ich habe kapituliert.
    Die Krux an der Sache ist das der Zugewinn an Korrektur ins Unendliche geht.
    Mathematisch ist es eine Sägezahnfunktion mit stetig steigender Amplitude.
    Eine Lösung kann es nur geben, wenn die Korrektur endlich bleibt.
    and we all support the team (S.King - Die Arena)

  5. #35
    Registriert seit
    19.01.2010
    Ort
    Graz / Austria
    Beiträge
    100
    Danke
    6
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Zitat Zitat von Mobi Beitrag anzeigen
    Nur wenn immer draufgerechnet wird und die Achse läuft Rückwärts, dann wird das, was vorher draufgrechnet wurde, wieder abgezogen und wenn er dann die Ref. erreicht sind die beide Werte gleich und danach rechnet er weiter runter alle x Einheiten.
    Genau so ist es.

    So sieht das vorher genannte Beispiel dann aus, wenn er rückwärts über den ursprünglich referenzierten 0 Punkt hinaus läuft:
    Geber Wert Korrigierter Wert
    65436 65435
    0 0
    100 101

  6. #36
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    Hallo,
    ich denke die Tabelle hat ein klitze-kleines Problem.
    Beim Nachrechnen ergibt sich in der vorletzten Zeile dass der korrigierte Wert eigentlich noch 704 sein sollte. Ich habe für den Zweck der Kontrolle den Überlauf eliminiert und mit den tatsächlichen Werten gerechnet....


    0 0
    10 10
    100 101
    150 151
    200 202
    250 252
    300 303 303
    ... ...
    64800 65448 65448
    64850 65498 65498,5
    64900 13 13
    64950 63 63,5
    65000 114 114
    ... ...
    65500 619 619
    65536 655 655,36
    65585 705 704,85
    65636 756 756,36
    bg
    bb

  7. #37
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    Hallo,
    anbei als PDF mein Lösungsvorschlag.

    (Automation Basic, B&R AS3.90)

    bg
    bb
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Eine Lösung....  

  8. #38
    Registriert seit
    19.01.2010
    Ort
    Graz / Austria
    Beiträge
    100
    Danke
    6
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Zitat Zitat von bits'bytes Beitrag anzeigen
    ich denke die Tabelle hat ein klitze-kleines Problem.
    Beim Nachrechnen ergibt sich in der vorletzten Zeile dass der korrigierte Wert eigentlich noch 704 sein sollte. Ich habe für den Zweck der Kontrolle den Überlauf eliminiert und mit den tatsächlichen Werten gerechnet....
    Ich glaube du hast hier die 0 bei der Überlauf Eliminierung nicht richtig berücksichtigt. Es sollte in deiner Tabelle 65586 anstatt 65585 stehen, dann stimmt es auch wieder.

    65535 65535
    0 65536
    50 65586 (=65536+50)

    Michi

    PS:
    Dein Programm werde ich dann gleich einmal austesten, könntest du hier die Source Dateien (*.vb, *.fun, *.var ist ausreichend) noch in einem ZIP File hochladen, dann brauche ich die Variablen Deklarationen nicht abzutippen. Oder sonst als Text einfügen, das wäre auch schon hilfreich.

  9. Folgender Benutzer sagt Danke zu MichaelUray für den nützlichen Beitrag:

    bits'bytes (04.12.2013)

  10. #39
    Registriert seit
    19.01.2010
    Ort
    Graz / Austria
    Beiträge
    100
    Danke
    6
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Zitat Zitat von MichaelUray Beitrag anzeigen
    Dein Programm werde ich dann gleich einmal austesten, könntest du hier die Source Dateien (*.vb, *.fun, *.var ist ausreichend) noch in einem ZIP File hochladen, dann brauche ich die Variablen Deklarationen nicht abzutippen. Oder sonst als Text einfügen, das wäre auch schon hilfreich.
    Hat sich erledigt mit dem Hochladen, ich war zu ungeduldig und habe es dann doch gleich selbst abgetippt .

    Also grundsätzlich rechnet dein Baustein richtig, auch bei Rückwärtsbetrieb.
    Allerdings hat er ein Problem damit, wenn sich der Encoder zu schnell bewegt, da dein korrigierter Wert immer viele Zyklen braucht, bis er nachgezogen ist. Wenn er dann zu schnell fortschreitet und nicht mehr auf das Nachziehen gewartet wird, dann kommt er aus dem Tritt und zeigt einen falschen Wert an.
    Siehe auch folgendes Video (der untere Baustein ist von dir):

    Aber ich denke du bist schon mal auf dem richtigen Weg!

    PS:
    Einen ">" "<" Vergleich in deinem Progamm habe ich noch auf "=>" "<=" geändert, siehe Screenshot.
    Angehängte Grafiken Angehängte Grafiken

  11. #40
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, schlafen wir jetzt schon .

    Zitat Zitat von MichaelUray Beitrag anzeigen
    Hat sich erledigt mit dem Hochladen, ich war zu ungeduldig und habe es dann doch gleich selbst abgetippt .
    Ja, wollte ich gerade machen ...

    Zitat Zitat von MichaelUray Beitrag anzeigen
    ...
    Allerdings hat er ein Problem damit, wenn sich der Encoder zu schnell bewegt, da dein korrigierter Wert immer viele Zyklen braucht, bis er nachgezogen ist. Wenn er dann zu schnell fortschreitet und nicht mehr auf das Nachziehen gewartet wird, dann kommt er aus dem Tritt und zeigt einen falschen Wert an.
    Siehe auch folgendes Video (der untere Baustein ist von dir):
    Aber ich denke du bist schon mal auf dem richtigen Weg!

    PS:
    Einen ">" "<" Vergleich in deinem Progamm habe ich noch auf "=>" "<=" geändert, siehe Screenshot.
    Ah ja, also der Fall dass der Encoder-Fortschritt > Korrektur-Abstand ist ? Das habe ich nicht wirklich berücksichtigt da ich nicht annahm dass dieser Fall eintreten könnte. Werde das noch mal ansehen.

    Danke fürs korrigieren !

    bg
    bb

Ähnliche Themen

  1. Programmierwettbewerb, 4. Aufgabe
    Von Onkel Dagobert im Forum Stammtisch
    Antworten: 6
    Letzter Beitrag: 15.12.2011, 18:57
  2. Programmierwettbewerb, 3. Aufgabe
    Von Chräshe im Forum Stammtisch
    Antworten: 7
    Letzter Beitrag: 05.12.2011, 20:43
  3. Programmierwettbewerb, 2. Aufgabe
    Von LargoD im Forum Stammtisch
    Antworten: 14
    Letzter Beitrag: 02.08.2011, 22:27
  4. Bitte um korrektur
    Von Arnold999 im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 15.06.2010, 21:21
  5. Mechanische Korrektur
    Von PG710 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.11.2008, 15:26

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •