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

Ergebnis 1 bis 8 von 8

Thema: Laufzeit messen und Aufaddieren (TONR - Zeit akkumulieren für S7-300)

  1. #1
    Registriert seit
    20.01.2012
    Beiträge
    18
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe SIMATIC- Liebhaber
    Ich stecke gerade bisschen in der Klemme, da ich morgen zum Kunden muss und zuvor noch folgendes Problem lösen muss:
    Ich möchte mittels einer Zeitmessung die Einschaltzeiten eines Motors messen und aufaddieren. Bei erreichen eines Endlagenschalters soll die gemessene Zeit dann auch wieder auf null gesetzt werden.

    Ich habe dies bei der S7-1200 immer mit der zur verfügung stehenden Funktion "TONR - Zeit akkumulieren" erfüllen können.
    Ich muss diese Aufgabe jedoch nun mit einer S7-300c erfüllen. Ich war regelrecht überrascht, als ich "TONR" dort nicht finden konnte. Ich habe schon einige alternativen (z.B. mit 2x nacheinander RD-SYS-Time und ermitteln der Differenz etc. jedoch fehlt mir noch das aufaddieren) ausprobiert, bin jedoch noch nicht zu einem zufrieden stellenden Ergebnis gekommen. SCL ist leider nicht so ganz meins.

    Vielen Dank an alle, die mich bei der Lösung meines Problems unterstützen können!! (Das ist eine Bitte!)

    Beste Grüße, Sebastian!

    Software: Step7-Pro v12 SP1
    Totally Integrated Automation Portal
    STEP 7 Professional
    Version V13
    Zitieren Zitieren Laufzeit messen und Aufaddieren (TONR - Zeit akkumulieren für S7-300)  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    1. Variante

    Du hast ja sicher ein Signal, das dir anzeigt, dass der Motor eingeschaltet ist.
    Von diesem Signal bildest du dir 2 Flanken.

    Flanke 1 - steigende Flanke beim Einschalten
    Flanke 2 - fallende Flanke beim Ausschalten

    Mit der steigenden Flanke liest du die Systemzeit aus und speicherst sie, mit der fallenden Flanke liest du sie erneut aus, ziehst die 1. Zeit von der zweiten Zeit ab, addierst diese Zeit auf eine 3. Variable für die Laufzeit und löscht die 1. und 2. Zeit wieder (muß nicht sein, ist aber schöner).
    Wenn der Endschalter erreicht wird, löscht du die 3. Variable mit der Laufzeit.

    2. Variante, wenn es nicht sooooo genau sein muß

    Du nimmst einen Takt und bildest dir draus eine Flanke, z.Bsp. alle 100ms.
    Solange der Motor läuft, addierst du bei jeder Flanke eine 1 auf eine Variable (Laufzeit).
    In dieser Variable steht dann immer die Laufzeit in Vielfachen von 100ms, also bei einer 31 sind das 3,1 Sekunden.
    Bei Erreichen des Endschalters löscht du die Variable.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Krümi (10.11.2013)

  4. #3
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von Krümi Beitrag anzeigen
    Ich habe dies bei der S7-1200 immer mit der zur verfügung stehenden Funktion "TONR - Zeit akkumulieren" erfüllen können.
    Ich muss diese Aufgabe jedoch nun mit einer S7-300c erfüllen. Ich war regelrecht überrascht, als ich "TONR" dort nicht finden konnte.
    Den TONR findest du bei den S7-300 nicht unter den "Zeiten" sondern unter den "weiteren Anweisungen".
    Frag' mich aber nicht, warum das so ist.

  5. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    Krümi (10.11.2013)

  6. #4
    Registriert seit
    29.09.2008
    Beiträge
    68
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Noch ne mögliche Variante wäre OB35 Zyklen zählen!

  7. Folgender Benutzer sagt Danke zu voni_1 für den nützlichen Beitrag:

    Krümi (10.11.2013)

  8. #5
    Krümi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.01.2012
    Beiträge
    18
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Den TONR findest du bei den S7-300 nicht unter den "Zeiten" sondern unter den "weiteren Anweisungen".
    Frag' mich aber nicht, warum das so ist.
    Ich fass es nicht! - Einen Tag auf den Bildschirm glotzen völlig umsonst! Vielen, vielen Dank!!
    Totally Integrated Automation Portal
    STEP 7 Professional
    Version V13

  9. #6
    Krümi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.01.2012
    Beiträge
    18
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    1. Variante

    Du hast ja sicher ein Signal, das dir anzeigt, dass der Motor eingeschaltet ist.
    Von diesem Signal bildest du dir 2 Flanken.

    Flanke 1 - steigende Flanke beim Einschalten
    Flanke 2 - fallende Flanke beim Ausschalten

    Mit der steigenden Flanke liest du die Systemzeit aus und speicherst sie, mit der fallenden Flanke liest du sie erneut aus, ziehst die 1. Zeit von der zweiten Zeit ab, addierst diese Zeit auf eine 3. Variable für die Laufzeit und löscht die 1. und 2. Zeit wieder (muß nicht sein, ist aber schöner).
    Wenn der Endschalter erreicht wird, löscht du die 3. Variable mit der Laufzeit.
    Hallo vielen Dank für die schnelle und Ausführliche Antwort!
    Ich habe mir das nun auch gleich zusammen gebastelt. Folgende weitere Fragen tauchen dabei auf:
    - wie genau wird das mit den Speichern bzw. Löschen der einzelnen Werte in den entsprechenden Variablen zu den bestimmten Schaltpunkten realisiert?
    - beim Addieren der Zeiten stellt sich mir das Problem, dass ich mit "T-ADD" nur die Datentypen DT mit Time addieren kann und nicht Time mit Time
    - ich möchte die Zeit während der Messung hochlaufen sehen, da ich z.b. ab 10sek nach Start ein Bit setzen möchte. Ist das möglich?

    Nochmals vielen Dank für die Unterstützung!
    Sebastian
    Totally Integrated Automation Portal
    STEP 7 Professional
    Version V13

  10. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Du bildest eine Flanke und diese Flanke ist genau 1 Zyklus lang True.

    In AWL sieht das dann z.Bsp. so aus:
    (Am besten keine Tempvar nutzen, Entwerter Merket, STAT-Var in einem FB oder einen globalen DB)

    U Merker_Motor_Läuft
    FP Hilfsmerker_FP
    = Flankenmerker_FP (Dieser Merket ist genau einen Zyklus lang True)

    UN Flankenmerker_FP
    SPB WEIP

    //hier kommt der Code hinein, der genau ein Mal mit der Flanke ausgeführt werden soll

    //Zeit auslesen
    //und speichern
    ...
    T #Startzeit



    WEIP: NOP 0

    //aktuelle Zeit auslesen
    //und speichern
    T #Aktuelle_Zeit

    Du kannst die Differenz zwischen der 1. abgespeicherten Zeit (Startzeit) und der laufenden Zeit ja fortwährend bilden und anzeigen, indem die die aktuelle Zeit immer ausliest.

    L Aktuelle_Zeit
    L Startzeit
    -D
    T Laufende_Differenz

    Diese Differenz kannst du dir mal ansehen, das sind Millisekunden, also eine 1000 für eine Sekunde
    Hier kannst du mit einem Vergleicher nach 10 Sekunden (>10000) einen Merket setzen


    Dann noch bei Stop des Motors:

    U Merker_Motor_Läuft
    FN Hilfsmerker_FN
    = Flankenmerker_FN (Dieser Merket ist genau einen Zyklus lang True)

    UN Flankenmerker_FN
    SPB WEIN

    //hier kommt der Code hinein, der genau ein Mal mit der Flanke ausgeführt werden soll

    //Zeit auslesen
    //und speichern
    ...
    T #Stopzeit

    L Stopzeit
    L Startzeit
    -D
    L Merkzeit
    +D
    T Motorlaufzeit_Gesamt


    WEIN: NOP 0

    Das ganze geht sicher auch in KOP/FUP, dann kann man mit der Flanke den Enable-Eingang z.Bsp. der Move-Bausteine aktivieren, so dass genau dann die Daten entsprechend kopiert werden.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  11. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Krümi Beitrag anzeigen
    Ich fass es nicht! - Einen Tag auf den Bildschirm glotzen völlig umsonst!
    Stimmt. Denn 'ne Suche nach TONR im Forum hätte auch geholfen:
    TIA Portal V11 SP2 / FC80 - TONR




    Da ist sogar noch 'ne Begründung von HelleBarde dabei.

Ähnliche Themen

  1. Zeit Messen?!
    Von MikeJ im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 02.12.2010, 20:00
  2. 1ms Zeit messen?
    Von DennisBerger im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 17.05.2010, 12:42
  3. Antworten: 4
    Letzter Beitrag: 18.10.2009, 17:41
  4. PN Geräte initialisieren und Zeit messen
    Von M4RKU5 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 09.07.2008, 16:57
  5. Zeit messen und durch 2 teilen mit S5
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.05.2004, 19:38

Stichworte

Lesezeichen

Berechtigungen

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