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

Ergebnis 1 bis 9 von 9

Thema: Funktion immer 10 Sekunden vor Ablauf einer Zeit starten

  1. #1
    Registriert seit
    26.07.2005
    Beiträge
    454
    Danke
    22
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich möchte eine Bewegung starten, die immer 10 Sekunden vor Ablauf eines Timers beginnen soll. Gibt es also die Möglichkeit von einer eingestellten Zeit 10 Sekunden abzuziehen, so dass ich entsprechend 10 Sekunden vorher die Funktion starten kann?
    Vielen Dank, Oli
    Press "Play" on Tape
    -------------------------------
    TwinCAT
    Step7
    Barber-Colman MacoDS
    Schneider Momentum SPS
    Wonderware 8.0
    Concept 2.2 SR2
    Vipa
    Allen-Bradley
    Zitieren Zitieren Funktion immer 10 Sekunden vor Ablauf einer Zeit starten  

  2. #2
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    Zitat Zitat von olitheis Beitrag anzeigen
    Hallo,
    ich möchte eine Bewegung starten, die immer 10 Sekunden vor Ablauf eines Timers beginnen soll. Gibt es also die Möglichkeit von einer eingestellten Zeit 10 Sekunden abzuziehen, so dass ich entsprechend 10 Sekunden vorher die Funktion starten kann?
    Vielen Dank, Oli
    DUAL WORD E, A, M, D, L Rest-Zeitwert (Ganzzahlenformat)
    DEZ WORD E, A, M, D, L Rest-Zeitwert (BCD-Format)
    Nimm die Restlaufzeit des Timers (DUAL/DEZ) und vergleich diese auf <= 10s.

    Pylades

  3. #3
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard

    Nimm die Restlaufzeit des Timers (DUAL/DEZ) und vergleich diese auf <= 10s.
    Hallo,

    ganz so einfach ist das nicht. Du musst die Zeitbasis beachten.
    Je nach Gesamtlaufzeit des Timers steht im aktuellen Zeitwert des Timers ein Wert den du mit der Zeitbasis umrechnen musst.

    Auflösung-------> Bereich
    0,01 Sekunde ---> 10MS bis 9S_990MS
    0,1 Sekunde ---->100MS bis 1M_39S_900MS
    1 Sekunde ------>1S bis 16M_39S
    10 Sekunden ---->10S bis 2H_46M_30S
    Ich löse das folgender maßen:

    mein Timer läuft 2,2 s, ich möchte aber schon nach 2s eine Aktion starten.

    Also lade ich den Dualwert des Timers kopiere ihn in eine temp. Int Variable und Vergleiche den Wert mit 20 (Zeitbasis 0,01 s -> 20x 0,01s = 0,2 s)

    du solltest online mal schauen was so drin steht im aktuellen Zeitwert um sicherzugehen welche Zeitbasis verwendet wird.

    Grüße...

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Falls dir die Umrechnerei, um die du sehr warscheinlich nicht herum kommst (siehe Beitrag Simatiker), zuviel Arbeit ist, dann könntest du dich noch an den IEC-Timern (z.B. SFB4 - Einschaltverzögerung) versuchen. Bei denen gibst du die Verz.-Zeit im ms vor und erhältst über .ET-Ausgang die abgelaufene Zeit seit Start un ms zurück. Nun brauch du nur mit der Vorgabe minus Voreilen vergleichen ...

    Gruß
    LL

  5. #5
    Registriert seit
    11.12.2007
    Beiträge
    189
    Danke
    54
    Erhielt 33 Danke für 32 Beiträge

    Standard

    Ich würde es so machen

    Code:
     
          U     #start                      // Start des Timers
          L     S5T#30S                     // s5t zB. 30sec
          SE    T      0                    // Timer T0
     
          L     T      0                    // Lade T0
          T     #vergl_dual                 // Tansfer Dualwert
     
          L     #vergl_dual                 //Lade Dualwert
          L     100                         // Lade 100 dies entspricht 10sec.
          <=I                               // vergleiche auf kleiner =
          =     #ausgang                    // Ausgang wird 10sec. vor ablauf der Timers aktiv
    solange der 10 sec. Vergleich besteht ist es doch nur ne einmalige Umrechnug... und sicherlich nicht mit viel Arbeit verbunden.

    Gruß
    sven_hh

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... zu was wird denn der vorgegebene Zeitwert ?
    Zu x Einheiten bei Zeitbasis "100 ms" oder zu y Einheiten bei Zeitbasis "1 s" ?
    Wie du vielleicht weißt, liegt das in erster Linie an der Vorgabe-Zeit. Ist die Vorgabe-Zeit > 99 s, dann kannst du mit Sicherheit von der Zeit-Basis "1 s" ausgehen. Und dann gibt es ja auch noch die Zeit-Basis "10 s".

    Also ...?

  7. #7
    Registriert seit
    11.12.2007
    Beiträge
    189
    Danke
    54
    Erhielt 33 Danke für 32 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... zu was wird denn der vorgegebene Zeitwert ?
    Zu x Einheiten bei Zeitbasis "100 ms" oder zu y Einheiten bei Zeitbasis "1 s" ?
    Wie du vielleicht weißt, liegt das in erster Linie an der Vorgabe-Zeit. Ist die Vorgabe-Zeit > 99 s, dann kannst du mit Sicherheit von der Zeit-Basis "1 s" ausgehen. Und dann gibt es ja auch noch die Zeit-Basis "10 s".

    Also ...?
    Danke für den hinweis,

    da aber auf 10 sec. verglichen werden soll gehe ich auch von von einer Zeivorgabe > 10 sec. aus. Bei >99 sec. ist natürlich ein anderer Umrechnugsfaktor anzuwenden (10) aber das hat Ja Simatiker schon sehr gut aufgeschlüsselt.

    Gruß
    Sven_hh

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... es sollte 10s vor Ende gestartet werden (siehe Titel des Thread) ... deshalb mein Hinweis ...
    Geändert von Larry Laffer (12.07.2008 um 19:05 Uhr)

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    *
         U     "xPlcPulse100ms"
         FP    "xHelpFlagTimer"
         L     "iTimer"
         SPBN  nix
         +     1
         T     "iTimer"
    nix: L     "iTime"
         >=I
         SPBN  oth
         =     "xTimerQ"
         L     0
         T     "iTimer"
    oth: L     "iTime"
         +     -100
         L     "iTimer"
         >=I
         SPBN  end
         =     "xTimerQTenBefore"
    end: NOP 0
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Timer (SE) starten nicht immer
    Von Hello_SPS im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 13.11.2009, 10:09
  2. Lauer Panel + S5; Zeit in Sekunden
    Von michal im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 15.10.2009, 15:12
  3. Zeit in sekunden auslesen
    Von M4RKU5 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 12.03.2008, 17:21
  4. Timer während Ablauf wieder starten (FX2N)
    Von Blue im Forum Programmierstrategien
    Antworten: 13
    Letzter Beitrag: 30.03.2007, 11:58
  5. Antworten: 8
    Letzter Beitrag: 15.03.2007, 09:25

Lesezeichen

Berechtigungen

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