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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Genauer Zeittakt

  1. #1
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich benötige einen genauen Taktgeber (Sekunden-Takt) um Laufzeiten von bestimmten Aktionen zu bestimmen. Leider sind die Standardmöglichkeiten der S7-300/400 CPU's da "etwas Ungenau"
    Mit dem Sekunden-Takt zähle ich einfach einen INT-Wert hoch, bei Messzyklen um die 15 Minuten habe ich aber zum Teil erhebliche Abweichungen.
    Anfangs habe ich mir aus dem Taktmerker (Mxxx.5) einen Flankenmerker gebildet der mir dann den Wert hochzählt. Später bin ich zu den Normalen Timern übergegangen, Vorteil: ich kann durch verändern der Zeitkonstante den Takt selber bestimmen. Für Sekundentakt: S5T#1s, was aber abhängig von der Zykluszeit auch zu zum teil erhebliche Abweichungen führt, durch Anpassen der Zeitkonstante (z.B. S5T#970ms) kann ich das Verhalten dann entsprechend anpassen.
    Ich muss dann aber bei jeder neuen Anlage den Taktgeber jedesmal neu ausstoppen und entsprechend einstellen
    Es muss doch eine Möglichkeit geben einen Sekundengenauen Takt zu erzeugen der Unabhängig von der Zykluszeit arbeitet und auch den Vergleich mit einer Stoppuhr standhält (Abweichung bei 15 Min. max. 100ms)

    Gruß ukofumo
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.
    Zitieren Zitieren Genauer Zeittakt  

  2. #2
    Registriert seit
    09.11.2006
    Beiträge
    693
    Danke
    36
    Erhielt 31 Danke für 29 Beiträge

    Standard

    Probiers mal mit dem OB35.

    Das Aufrufintervall kanst du einstellen und dieser baustein würde dann jede Sekunde durchlaufen. Und das Passt auch. So mache ich mir meine "Zeiterfassung" wenn ich Belegtzeiten etc.. auswerten muss.
    Zeige nie deine Verblüffung, wenn dir etwas auf Anhieb gelingt.

    Praxis: Es funktioniert aber keiner weiß warum!

  3. #3
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Diese vorgehendweise ist zyklusabhängig, der mögchliche Fehler von z.B. einem Zyklus kann sich dann jede Sekunde aufaddieren, bei 15m hast du ja 900* mit einem Fehler in der zeit gerechnet.

    Ich würde wenn es genau sein soll ganz anders rangehen.

    Wenn Du nur die Laufzeiten von Aktionen messen willst, schreib dir eine Baustein dazu.
    Bei start wird die aktuelle Systemzeit mittels SFC64 gelesen, bei Stop die Diffferenz ermiitelt und ausgegeben. Dann hast du nur in zwei Zyklen den Fehler,je nachdem wann Start oder Stop ausgewertet wird.
    Aber Achtung im baustein must du auf den Überlauf am Timer achten.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.802
    Danke
    144
    Erhielt 1.712 Danke für 1.242 Beiträge

    Standard

    Leider lässt sich Siemens in den Beschreibungen zur Genauigkeit des SFC64 nicht aus. Ich würde aber mal davon ausgehen, dass die Funktion die Genauigkeit der Systemuhr einer S7 hat.
    Der Systemuhr S7-300 weist das Datenblatt eine Abweichung pro Tag < 10s aus.
    Das würde für das 15 Minuten Intervall bedeuten, dass die Uhr in diesem Intervall systembedingt eine Abweichung von max. 104 ms haben kann (10s / 1440 = 6,9ms pro Minute). Im Normalfall wird die Uhr genauer sein, aber zur Auslegung muss man immer vom schlechtesten Wert ausgehen.

    Also kann man es drehen und wenden wie man will, ohne Zusatzmaßnahmen (DCF77, NTP, etc.) bekommt man es nicht genauer hin.

  5. #5
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.545
    Danke
    1.154
    Erhielt 1.254 Danke für 983 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Also kann man es drehen und wenden wie man will, ohne Zusatzmaßnahmen (DCF77, NTP, etc.) bekommt man es nicht genauer hin.
    Doch kann man:
    Du ermittelst die Abweichung der Systemuhr über einen längeren Zeitraum (1 Monat).
    Daraus kannst du dir dann einen Korrekturfaktor berechnen.
    Damit kannst du deine Messergebnisse bewerten.

    Gruß
    Dieter

  6. #6
    Registriert seit
    19.04.2009
    Beiträge
    302
    Danke
    31
    Erhielt 40 Danke für 32 Beiträge

    Standard

    Es gibt noch eine möglichkeit.

    Mach einen Startmerker ab wann gemessen wird. Dann zähl die letzte zykluszeit in dein DINT und am ende stoppst du dann die merker wieder dann hast du die zeit wie lange dein teil bearbeitet wurde.

  7. #7
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Die Lösungen scheinen ihn nicht zu interessieren.

    Das mit der Zykluszeit hört sich zwar gut an, bringt aber Fehlerquellen, da die Zykluszeit einen Fehler von +-1ms haben kann (Auflösung) .
    Bei schätzen wir 20ms Zykluszeit währen das im extremfall 45s.
    Die wenigsten Fehlerzeiten hätte man in ohne Zusatzkosten Kombination aus meiner Lösung und der von Blockmove.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  8. #8
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Moin zusammen

    Ich hab mir nun mal über alle gemachten Möglichkeiten Gedanken gemacht, Die Möglichkeit die Systemzeit bei Start und Ende der Messung auszuwerten scheidet m.E. aus, der Bediener möchte gerne die "laufende Uhr" wärend des Prozesses sehen. Imoment erscheint mir der OB35 noch am sinnvollsten, allerdings benötigen wir den auch für div. anderen Funktionen (PID / Siwarex etc.) und leider nicht immer mit einem Zeittakt der ganzzahlig in einer Sekunde aufgeht.
    Noch was zur Basis: Aktuell habe ich das Problem bei einer 314 CPU die inzwischen Programmtechnisch ziemlich bis zum Anschlag ausgereizt, Arbeitsspeicher ca.85%; Zykluszeit Mittelwert um die 15-20ms, kann jedoch bis auf 70-80ms hochschnellen. (ein Austausch der CPU scheidet wg. Kostengründe aus! zusätzliche Hardware auch).
    Mit einer Abweichung von 104ms wie sie Thomas_v2.1 angedeutet hat kann ich durchaus leben. Wichtig wäre das wenn eine Stoppuhr z.B. 14min 38sec anzeigt, meine gemessene Zeit auch 14min 38sec anzeigt und das ganze sollte möglichst "universell" anwendbar sein, egal welche CPU ich mit welcher Zykluszeit betreibe, so das ich mir nich immer wieder bei jedem neuen Projekt gedanken zur "Genauigkeit" machen muss...
    Eigendlich würde ich den OB35 da schon als ausreichend Ideal empfinden, Leider haben wir aber auch Anwendungen wo der Weckalarm z.B mit 150ms getaktet wird. Dummerweise haben die "kleineren" CPU's oft nur einen Weckalarm zur Verfügung.
    Ich bin inzwischen auf die OSCAD.lib gestoßen die mehrere Taktgeber (z.B. CLK_PRG) zur Verfügung stellt, ich finde da aber keinen genaueren Hinweiß wo und wie bei diesen Bausteinen der Zeittakt abgeleitet wird, und kann somit auch nicht auf die Genauigkeit schließen.

    Gruß ukofumo
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  9. #9
    Registriert seit
    03.11.2006
    Ort
    Niedersachsen
    Beiträge
    1.126
    Danke
    170
    Erhielt 303 Danke für 259 Beiträge

    Standard

    Das Aufrufintervall des OB35 ist doch egal.
    Du addierst im OB35 deine Zeit entsprechen des Aufrufintervalls auf.
    Bei 150ms also immer 150 dazu addieren.
    Zur Anzeige musst du das nur noch in Minuten und Sekunden umrechnen...fertich!
    Gruß
    crash

    Ich bin nicht bekloppt,
    ich bin verhaltensoriginell!

  10. Folgender Benutzer sagt Danke zu crash für den nützlichen Beitrag:

    ukofumo (16.12.2009)

  11. #10
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aaahrrg....

    Manchmal sieht man den Wald vor lauter Bäumen nicht

    Gruß Uwe
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

Ähnliche Themen

  1. S5 95U ob13 als genauer Takt für Zähler
    Von automatnix im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 15.08.2011, 20:14

Lesezeichen

Berechtigungen

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