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

Ergebnis 1 bis 1 von 1

Thema: Wie kann ich Zeitwerte für Timer variabel eingeben?

  1. #1
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Beitrag von Ralle:

    s5t setzt sich aus 4 Werten zusammen

    Das ganze steht in einen Wort

    Bin : xxxx 3333 2222 1111

    xxxx = Faktor 0 = 10 ms 1 = 100 ms 2 = 1s 3 = 10s

    3333 3 Stelle vom BCD Code ( 0 - 9 )
    2222 2 Stelle vom BCD Code ( 0 - 9 )
    1111 1 Stelle vom BCD Code ( 0 - 9 )

    das heist wenn du

    Bin 0010 0000 0011 0111

    x = 2
    3 = 0
    2 = 3
    1 = 7

    würde das bedeuten Zahlen wert 37 * Faktor von 1 sek = 37 sekunden

    Bsp. 1:
    L EW 0
    L KH 0FFF <- vierte Tetrade ausblenden
    UW
    L KH 2000 <- Ziffer 2 speichern (2 = Sekunden)
    OW
    T MW10

    Bsp. 2:
    L 120
    ITB
    L W#16#2000
    OW
    T MW10

    0000hex wären 10ms
    1000hex wären 100ms
    2000hex wären 1s
    3000hex wären 10s

    Hier noch ein Baustein von unserem User OHGN:
    Code:
    FUNCTION FC 201 : VOID
    TITLE =INT_to_S5 Time
    //Einheit = 1->ms
    //Einheit = 2->sek
    //Einheit = 3->min
    AUTHOR : Ne
    FAMILY : WinCC
    NAME : Int_S5T
    VERSION : 0.1
     
    VAR_INPUT
      Einheit : BYTE ; //1=ms 2=s 3=min
    END_VAR
    VAR_OUTPUT
      S5_Time : S5TIME ; 
    END_VAR
    VAR_IN_OUT
      IN : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =In- Wert muß im positiven Bereich liegen
    //ist dies nicht der Fall, wandle in Pos. Zahl
          L     #IN; 
          L     0; 
          <I    ; 
          SPBN  noer; 
          TAK   ; 
          NEGI  ; 
          T     #IN; 
          BEA   ; 
    NETWORK
    TITLE =Umrechnung wählen 
    //Soll der Integerwert Millisekunden, Sekunden oder Minuten entsprechen?
    noer: L     #Einheit; 
          L     B#16#1; 
          ==I   ; 
          SPB   ms; //springe zur Wandlung in ms
          TAK   ; 
          L     B#16#2; 
          ==I   ; 
          SPB   sek; //springe zur Wandlung in Sekunden
          TAK   ; 
          L     B#16#3; 
          ==I   ; 
          SPB   min; //springe zur Wandlung in Minuten
          SPA   sek; //bei allen anderen Eingaben in Sekunden wandeln
     
    NETWORK
    TITLE =IN- Wert in Millisekunden
    ms:   L     #IN; 
          L     9990; 
          >I    ; 
          SPB   ms1; 
          TAK   ; 
          L     10; 
          /I    ; 
          ITB   ; 
          T     #S5_Time; //Zeitbasis 10 ms
          BEA   ; 
    ms1:  L     #IN; 
          L     100; 
          /I    ; 
          ITB   ; 
          OW    W#16#1000; //Zeitbasis 100ms
          T     #S5_Time; 
          BEA   ; 
    NETWORK
    TITLE =In- Wert in Sekunden
    sek:  L     #IN; 
          L     999; 
          >I    ; 
          SPB   sek1; 
          TAK   ; 
          ITB   ; 
          OW    W#16#2000; 
          T     #S5_Time; //Zeitbasis 1s
          BEA   ; 
    sek1: L     #IN; 
          L     9990; 
          >I    ; 
          SPB   err1; 
          TAK   ; 
          L     10; 
          /I    ; 
          ITB   ; 
          OW    W#16#3000; 
          T     #S5_Time; //Zeitbasis 10s
          BEA   ; 
     
    NETWORK
    TITLE =In- Wert in Minuten
    min:  L     #IN; 
          L     166; 
          >I    ; 
          SPB   err2; 
          TAK   ; 
          L     6; 
          *I    ; 
          ITB   ; 
          OW    W#16#3000; 
          T     #S5_Time; //Zeitbasis 10s
          BEA   ; 
    NETWORK
    TITLE =Eingabewerte zu groß
    err1: L     9990; //größtmöglicher Eingabewert
          T     #IN; //für S5_Time in sek
          BEA   ; 
    err2: L     166; //größtmöglicher Eingabewert
          T     #IN; //für S5_Time in min
     
    END_FUNCTION
    Geändert von Ralle (19.05.2009 um 11:27 Uhr) Grund: Ergänzung
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.
    Zitieren Zitieren Wie kann ich Zeitwerte für Timer variabel eingeben?  

  2. Folgende 18 Benutzer sagen Danke zu plc_tippser für den nützlichen Beitrag:

    AirKlaus (03.05.2009),BiBi (19.05.2015),Claas78 (24.04.2017),Dantical (31.07.2012),Freddy (06.10.2010),gochtel (16.03.2012),gordon (05.06.2014),level21 (14.04.2010),LOBBE1 (10.03.2017),Ph3niX (28.09.2017),PLRK (02.05.2016),S-Victor (03.05.2013),Senator42 (29.06.2010),SIGGI (22.02.2009),SPS_S5_S7 (21.09.2009),TimoK (24.04.2009),Waelder (10.01.2011)

Ähnliche Themen

  1. Zeitwerte speichern mit Software MXpro und Galileo für Visu
    Von Mechatronicracer im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 10.06.2010, 10:28
  2. Timer Aufruf T374, wie kann das sein?
    Von El Cattivo im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.09.2009, 12:26
  3. Step 5 Timer variabel (Integer)
    Von urlicht im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.11.2007, 16:01
  4. Umwandlung Zeitwerte in Integer
    Von Pinguino im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.07.2007, 22:22
  5. DB`s und Zeitwerte remanent ? (S5)
    Von Industrieservic im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.04.2007, 23:56

Lesezeichen

Berechtigungen

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