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

Ergebnis 1 bis 10 von 10

Thema: TON pausieren

  1. #1
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute ich brauche dringend eure Hilfe!

    Ich möchte einen Funktionblock in SCL erstellen, der den TON um einen Boolschen Eingang erweitert und zwar so dass man diesen pausieren kann. D.h. wenn der neue Eingang true ist müsste der FB die Restzeit vom TON abspeichern und das Zählen somit pausieren. Wenn das Resetsignal (oder besser Pausesignal) "false" ist, soll der TON mit der Restzeit weiterzählen.

    Vielleicht hat das schon einer?

    Danke
    Zitieren Zitieren TON pausieren  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Warum verwendest Du nicht TONR?

  3. #3
    SanjaDO ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn dann müsste ich den TONR_X nehmen weil ich eine 314CPU nutze. Ich werde aus der Beschreibung für den TONR_X nicht schlau. Da gibt es ja nur ein Reset, so wie ich das verstehe wird PT wieder auf den alten Wert gesetzt oder?

  4. #4
    SanjaDO ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hier ist mein erster Versuch dazu:

    Code:
    FUNCTION_BLOCK "TON_pausiert"
    { S7_Optimized_Access := 'FALSE' }
    VERSION : 0.1
       VAR_INPUT 
          IN : Bool;
          PT : Time;
          pause : Bool;
       END_VAR
    
       VAR_OUTPUT 
          Q : Bool;
          ET : Time;
       END_VAR
    
       VAR 
          mein_TON {OriginalPartName := 'TON'; VersionGUID := 'b966b86b-3345-49ba-8b4b-c930e1b67fde'} : TON;
          PT_new : Time;
       END_VAR
    
    
    BEGIN
        
        
        
        IF NOT #pause THEN
          IF #PT_new = 0 THEN
            #mein_TON.PT:=#PT;
          ELSE
            #mein_TON.PT:=#PT_new;
          END_IF;
          #mein_TON.IN:=#IN;
          #mein_TON.PT:=#PT;
          #PT_new:=#mein_TON.PT-#mein_TON.ET;
        ELSE
          #mein_TON.IN:=0;
          #mein_TON.PT:=#PT_new;
        END_IF;
        
        #ET:=#mein_TON.ET;
        
    END_FUNCTION_BLOCK
    Der TON zählt aber nicht....

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von SanjaDO Beitrag anzeigen
    Wenn dann müsste ich den TONR_X nehmen weil ich eine 314CPU nutze.
    Dann ja, kommt aber auf's Gleiche raus:
    Code:
    TONR_X (TMR_EN:= #Start AND NOT #Halt, RESET:= NOT #Start,
                PV:= #Zeitvorgabe, DELTA_T:= #OB1_PREV_CYCLE,
                Q=> #Ausgang, ET:= #Andauer );
    Den #OB1_PREV_CYCLE gibt's als INT bei den Temps des OB1.

  6. #6
    SanjaDO ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Funktioniert irgendwie nicht. Warum hat denn der TONR_X keine Instanz?

  7. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Ist 'n FC.

    ET ist zwingend erforderlich und muss statisch sein, da darin die Zeit akkumuliert wird. Könnt's daran liegen?
    Und zwingend zyklisch aufrufen, wenn der Timer läuft, da er immer die Zykluszeit DELTA_T zur letzten Laufzeit ET hinzu addiert und in dieser speichert.

  8. #8
    SanjaDO ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Jau das war der Fehler! Das ist genau das was ich gesucht habe! YEA!

    Danke! Danke! Danke! Danke hucki!!!!!

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von SanjaDO Beitrag anzeigen
    Jau das war der Fehler!
    Was genau? ET nicht als statisch (bzw. bei Verwendung in FCs als INOUT) deklariert?



    Zitat Zitat von SanjaDO Beitrag anzeigen
    Danke! Danke! Danke! Danke hucki!!!!!
    Gern geschehen.

  10. #10
    SanjaDO ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2013
    Ort
    Castrop-Rauxel
    Beiträge
    177
    Danke
    36
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja ET habe ich in TEMP deklariert...

Ähnliche Themen

  1. TON ET Parameter speichern / verwenden für weiteren TON
    Von Breakstuff im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 13.10.2013, 14:12
  2. Step 7 Probleme mit TON in FB (TON als Multiinstanz, der FB selbst nicht!)
    Von Jochen Kühner im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.06.2013, 18:29
  3. Antworten: 14
    Letzter Beitrag: 28.01.2013, 18:13
  4. Siemens LOGO! 0BA6 Ausschaltverzörgerung pausieren
    Von bauersteuerungstechnik im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 24.01.2009, 14:45
  5. TON/TOF Timer pausieren ?
    Von Waelder im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.06.2007, 17:41

Lesezeichen

Berechtigungen

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