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

Ergebnis 1 bis 6 von 6

Thema: Annäherung an besten Startzeitpunkt einer Achse

  1. #1
    Registriert seit
    10.04.2008
    Beiträge
    38
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Reden


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Hat jemand eine Idee wie man eine Regelung zum starten eines Frequenzumrichters baut, wenn ich diesen ca. 100ms vor dem erreichen des Endpunkts eines Servomotors los laufen lassen möchte!

    Also nochmal genauer:

    Ich habe eine Servo Achse, die eine Bestimmte Position anfährt!
    Da nun ein Frequenzumrichter einen Motor antreiben soll, der genau dann wenn der Servo in Position ist schon 1/4 seines weges Weges gefahren sein soll, bräuchte ich eine Routine, die den Startzeitpunkt des Frequenzumrichters immer mehr an den ideal Punkt annähert. Er sollte aber nicht zu früh starten! Ist so was möglich?

    Kann ich vielleicht beim ersten durchlauf den FU starten wenn die Servoachse in Position ist, damit ich weiß wielange es dauert und mich dann immer mehr näher um Zeit zusparen?

    Ich hoffe ihr versteht mein Anliegen!
    Viele Grüße Vogei!
    Zitieren Zitieren Annäherung an besten Startzeitpunkt einer Achse  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hmmm,

    Frequenzumrichter einen Motor antreiben soll, der genau dann wenn der Servo in Position ist schon 1/4 seines weges Weges gefahren sein soll,
    Den Startpunkt des FU-Motors durch die Position der Servoachse ansteuern.

    Servo start |---------------------|(FU-Start)-------|PosErreicht

  3. #3
    Registriert seit
    12.08.2010
    Beiträge
    236
    Danke
    57
    Erhielt 118 Danke für 57 Beiträge

    Reden

    Zitat Zitat von Vogei Beitrag anzeigen
    Hallo!

    Hat jemand eine Idee wie man eine Regelung zum starten eines Frequenzumrichters baut, wenn ich diesen ca. 100ms vor dem erreichen des Endpunkts eines Servomotors los laufen lassen möchte!

    Also nochmal genauer:

    Ich habe eine Servo Achse, die eine Bestimmte Position anfährt!
    Da nun ein Frequenzumrichter einen Motor antreiben soll, der genau dann wenn der Servo in Position ist schon 1/4 seines weges Weges gefahren sein soll, bräuchte ich eine Routine, die den Startzeitpunkt des Frequenzumrichters immer mehr an den ideal Punkt annähert. Er sollte aber nicht zu früh starten! Ist so was möglich?

    Kann ich vielleicht beim ersten durchlauf den FU starten wenn die Servoachse in Position ist, damit ich weiß wielange es dauert und mich dann immer mehr näher um Zeit zusparen?

    Ich hoffe ihr versteht mein Anliegen!
    Viele Grüße Vogei!

    Hallo Vogei,
    bei deiner Anwendung macht weder die Einschaltverzögerung (TON), noch die Ausschaltverzögerung (TOF) Sinn.


    Erkundige dich, ob deine Steuerung neben einer Fließpunktaritmetik auch über einen Fluxkompensator verfügt. Dann kannst du mit dem voreilenden Timer (TBEF) den FU genau um die gewünschte Zeit starten, bevor das Ereignis eintritt. Von Fall zu Fall ist das sehr elegant.

    Code:
     VAR
         T_before: TBEF;        (* dem Ereignis vorauseilender Timer *)
         FU_Start: BOOL;
         AXIS_Arrived: BOOL;
     END_VAR
      
    T_before(IN:=AXIS_Arrived , PT:=t#100ms , Q=> , ET=> );
      
     IF T_before.Q THEN
         FU_Start := TRUE;
     END_IF
    Aber Achtung
    Man muss Rückkopplungen sicher vermeiden, sonst kann es zu Singularitätsverletzungen kommen. Die Hersteller übernehmen üblicherweise keine Garantie für daraus resultierende Folgeschäden. Das ist auch der Grund, warum der Timer in der Standard.lib nicht aufgeführt wird...

    LG Cassandra
    Geändert von Cassandra (14.02.2011 um 22:41 Uhr) Grund: Fehler im Programm behoben...

  4. Folgende 2 Benutzer sagen Danke zu Cassandra für den nützlichen Beitrag:

    Dotzi (18.02.2011),Matze001 (16.02.2011)

  5. #4
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.458
    Danke
    503
    Erhielt 217 Danke für 192 Beiträge

    Standard

    Dann must du den Zeitpunkt 100ms vor dem Endpunkt erst mal bestimmen (weg, . . .) und dann startest du einfach deinen FU.

    Ausrechnen des gesamten Weges, . . .

    Du musst mal dein Problem / Anlage genauer beschreiben, sonst wird dir keiner helfen können.

    Ansonsten bin ich voll bei Cassandra bau dir nen Flux Kompensator als SW nach
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

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

    Standard

    Aus den bekannten Werten von Geschwindigkeit, Verzögerung und Endposition sollte es doch möglich sein die exakte Position die der Servo 100ms vor dem Endpunkt hat zu berechnen.

    MfG
    and we all support the team (S.King - Die Arena)

  7. #6
    Registriert seit
    17.08.2010
    Ort
    Blaichach
    Beiträge
    84
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Cassandra Beitrag anzeigen

    Hallo Vogei,
    bei deiner Anwendung macht weder die Einschaltverzögerung (TON), noch die Ausschaltverzögerung (TOF) Sinn.


    Erkundige dich, ob deine Steuerung neben einer Fließpunktaritmetik auch über einen Fluxkompensator verfügt. Dann kannst du mit dem voreilenden Timer (TBEF) den FU genau um die gewünschte Zeit starten, bevor das Ereignis eintritt. Von Fall zu Fall ist das sehr elegant.

    Code:
     VAR
         T_before: TBEF;        (* dem Ereignis vorauseilender Timer *)
         FU_Start: BOOL;
         AXIS_Arrived: BOOL;
     END_VAR
      
    T_before(IN:=AXIS_Arrived , PT:=t#100ms , Q=> , ET=> );
      
     IF T_before.Q THEN
         FU_Start := TRUE;
     END_IF
    Aber Achtung
    Man muss Rückkopplungen sicher vermeiden, sonst kann es zu Singularitätsverletzungen kommen. Die Hersteller übernehmen üblicherweise keine Garantie für daraus resultierende Folgeschäden. Das ist auch der Grund, warum der Timer in der Standard.lib nicht aufgeführt wird...

    LG Cassandra


    Ich habe das über den "Nostradamus-Algorhytmus" gelöst und mal als voreilenden Not-Aus benutzt... *g*


    lg Bernd
    Real programmers don’t comment their code. It was hard to write, it should be hard to understand.

Ähnliche Themen

  1. BoschRexroth Regler als SPS-Achse fahren, nicht als NC-Achse.
    Von Tuxi im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 23.10.2009, 14:13
  2. Wie am besten vorgehen??
    Von MoodyMammoth im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 27.04.2007, 08:47
  3. Wie simuliert man am besten?
    Von Tigerkroete im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 16.08.2006, 13:50
  4. steuerung einer x- und y-achse
    Von volker im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 16.11.2005, 19:28
  5. Regeln bei Annäherung an eine Frau :-)
    Von Onkel Dagobert im Forum Stammtisch
    Antworten: 6
    Letzter Beitrag: 30.08.2004, 12:55

Lesezeichen

Berechtigungen

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