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

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

Thema: Systemzeit S7

  1. #1
    Registriert seit
    09.08.2004
    Ort
    Münsterland
    Beiträge
    232
    Danke
    21
    Erhielt 13 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Tach,

    kennt einer ne Möglichkeit die Systemzeit einer S7 hochzusetzen ... bis kurz vorm Überlauf ... möchte das gerne Testen und nicht 20 Tage warten

    gruß stricky

    P.S. vielleicht im PLCSIM ... das würde schon reichen
    Zitieren Zitieren Systemzeit S7  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    sfc0..........
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    09.08.2004
    Ort
    Münsterland
    Beiträge
    232
    Danke
    21
    Erhielt 13 Danke für 10 Beiträge

    Standard

    jein,

    man kann doch mit der SFC64 die Zeit seit CPU-Run auslesen ... der überlauf kommt dann irgendwann bei 21 tagen und ein paar kaputten ....

  4. #4
    Registriert seit
    13.02.2004
    Beiträge
    206
    Danke
    46
    Erhielt 17 Danke für 17 Beiträge

    Standard

    Laut Step7 Hilfe wird der Wert der Systemzeit nur mit den Betriebszuständen beeinflusst.

    Ich denke da hilft nur warten und hoffen dass niemand die Steuerung ausschaltet.

    Guenni

  5. #5
    Registriert seit
    09.08.2004
    Ort
    Münsterland
    Beiträge
    232
    Danke
    21
    Erhielt 13 Danke für 10 Beiträge

    Standard

    @guenni ... hab ich mir auch gedacht, aber alle 21 tage warten

    Ich denke das geht ( was ich programmiert habe ), falls nicht hab ich dann ein problem ....

    So keiner eine Idee ?

  6. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    da hatte ich dich falsch verstanden. ich dachte du wolltest die uhrzeit stellen. wie man die von dir gemeinte systemzeit beeinflussen könnte weiss ich nicht.

    aber wo liegt der sinn? vielleicht kann man das ja auch anders lösen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #7
    Registriert seit
    09.08.2004
    Ort
    Münsterland
    Beiträge
    232
    Danke
    21
    Erhielt 13 Danke für 10 Beiträge

    Standard

    @volker,

    halt nur um zu testen ob das funktioniert was ich gemacht habe ... fahre morgen nach ungarn ... bin denke ich in 14tagen da durch und kann es somit leider nicht sehen ob mein "taktgeber / zeitnehmer" dann noch genau geht ....
    oder hängen bleibt


    gruß stricky

  8. #8
    Registriert seit
    06.10.2003
    Beiträge
    3.411
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Hallo stricky,

    warum postest du nicht einfach den code? Sicherlich sind wir beide nicht die einzigen, die die Systemzeit zur Zeitsteuerung nutzen.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  9. #9
    Registriert seit
    09.08.2004
    Ort
    Münsterland
    Beiträge
    232
    Danke
    21
    Erhielt 13 Danke für 10 Beiträge

    Standard

    nix leichter als das ....
    Code:
    FUNCTION_BLOCK FB20  // Bewegung erkennen
    
    VAR_INPUT
     Position:INT; // Daten 
    END_VAR
    
    VAR_OUTPUT
     Vor:BOOL; // Antrieb fährt vor
     Rueck:BOOL; // Antrieb fährt zurück
     Speed:REAL; // Geschwindigkeit in mm/s
    END_VAR
    
    VAR
     Sys_Time_akt:TIME; // Systemzeit
     Sys_Time_old:TIME; // Systemzeit
     Cycletime:TIME;
     Cycletime2:TIME;
     Daten:ARRAY [1..11] OF INT;
     Mittel:DINT;
    END_VAR
    
    VAR_TEMP
     i:INT;
     bie:BOOL;
    END_VAR
    
    LABEL
    
    END_LABEL
    
    BEGIN
     
      Sys_Time_akt:=sfc64();
         
      IF Sys_Time_akt < T#100ms AND Sys_Time_old > t#2147483000ms THEN
       Sys_time_Old:= Sys_time_Old - T#2147483647ms;
      END_IF;       
          
      Cycletime:= Sys_time_Akt - Sys_time_Old; // Zeit seit letztem negativen Flankenwechsel vom Signal
      Sys_time_Old:=Sys_time_Akt;
      
      Cycletime2:=Cycletime2 + Cycletime;
    
    // Takt 100ms - Werte ins Array schreiben
      IF Cycletime2 >= t#100ms THEN
        
        IF Cycletime2 >= T#200ms THEN
          Cycletime2:=t#100ms;
        END_IF;
    
        Cycletime2:=Cycletime2 - T#100ms;
      
      // Daten wegspeichern
        FOR i:= 9 TO 1 BY - 1 DO
           Daten[i+1]:=daten[i];
        END_FOR;
    
        Daten[1]:=position - daten[11];
        daten[11]:=position;
        
        Mittel:=0;  
        FOR i:= 1 TO 10 DO
          Mittel:=Mittel + INT_TO_DINT(daten[i]);
        END_FOR;
    
        IF mittel = 0 THEN
          Speed:=0.0;
        ELSE
          Speed:=( Speed + DINT_TO_REAL(Mittel) ) / 2.0 ;   
        END_IF;    
      END_IF;
    
    // Motion detection - vor/zurück  
      IF speed > 0.0 THEN
          vor:=true;
          rueck:=false;
          Bie:=true;
      ELSIF speed < 0.0 THEN
          vor:=false;
          rueck:=true;
          Bie:=true;
      ELSe 
          vor:=false;
          rueck:=false;
          Bie:=false;
      END_IF;
     
      OK:=bie;
       
    END_FUNCTION_BLOCK

    ist ne Bewegungserkennung einer Presse und Geschwindigkeitsanzeige ...

    Gruß stricky

  10. #10
    Registriert seit
    06.10.2003
    Beiträge
    3.411
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo stricky,

    Code:
     
      IF Sys_Time_akt < T#100ms AND Sys_Time_old > t#2147483000ms THEN
    Diesen Vergleich verstehe ich (noch) nicht so ganz.
    Jedenfalls erscheint es mir etwas unlogisch.


    Bevor ich mich jetzt bei der Umsetzung nach SCL vertue, poste ich erst mal meine Variante in AWL.
    Code:
     
    //*** Zeit zählen
          L     "SYS_TIME"
          L     #TIMETICK_ALT
          -D    
          SPPZ  M001                        // Korrektur bei Überlauf
          L     L#2147483647                // der Systemzeit
          +D    
    M001: L     #TIMER_SE_SA
          +D    
          T     #TIMER_SE_SA
     
    //*** Zeit nachführen
          L     "SYS_TIME"
          T     #TIMETICK_ALT
    "SYS_TIME" ist die aktuelle Systemzeit. Ist die Differenz zur "alten" Systemzeit negativ, wird dies durch Addition des Maximalwertes korrigiert. Das ist eigentlich alles, was man beachten muss. Ich hoffe, du kommst damit klar?


    In SCL und mit deinen Variablen könnte es in etwa so aussehen.
    Code:
      
      Sys_Time_akt:=sfc64();
      Cycletime:= Sys_time_Akt - Sys_time_Old; // Zeit seit letztem negativen Flankenwechsel vom Signal
      IF Cycletime < T#0ms THEN
         Cycletime := Cycletime + T#2147483647ms;
      END_IF;     
      Sys_time_Old:=Sys_time_Akt;
      Cycletime2:=Cycletime2 + Cycletime;

    Bei älteren CPUs gab es angeblich mal einen Fehler in der Systemzeit. Du hast aber sicherlich eine neue CPU?


    Gruß, Onkel
    Geändert von Onkel Dagobert (26.04.2006 um 20:33 Uhr)
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Systemzeit auslesen
    Von Steff3de im Forum CODESYS und IEC61131
    Antworten: 32
    Letzter Beitrag: 03.10.2012, 21:42
  2. Systemzeit in der RT ändern
    Von hoT im Forum HMI
    Antworten: 2
    Letzter Beitrag: 09.02.2011, 07:34
  3. TON und Systemzeit
    Von Bambam im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 04.08.2010, 18:53
  4. systemzeit auf op7
    Von linuxluder im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.11.2007, 17:39
  5. Systemzeit SPS
    Von Larry Laffer im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 03.06.2007, 11:35

Lesezeichen

Berechtigungen

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