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

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

Thema: Problem mit S5Time (Bitbelegung Zeitdauer)

  1. #1
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle SPSler.

    Ich habe ein Verständnisproblem mit der Verwendung der Bits einer S5Time Variable.
    Die Beschreibung hier im Forum über den Aufbau, Zeitbasis usw. habe ich mir durchgelesen, aber ich komme leider nicht weiter.

    Code:
    L     INTEGERVARIABLE //Diese Variable enthält die Zeit als Int 123 = 12,3 sekunden
    ITB   //Wandlung BCD
    UW    W#16#FFF // Begrenzung auf 3 Stellen
    OW    W#16#1000 // Zeitbasis = 0,1 sekunden
    SE    "Timer 1"
    U     "Timer 1"
    SPB   mach                        // wenn Einschaltverzögerung abgelaufen => Sprungaufruf zu mach
    Dieser Teil funktioniert wunderbar. steht 222 in der Int Variable wird nach 22,2 sek genau das gemacht was ich will.

    Nun zu meinem Problem. Wenn ich eine Zahl habe die größer als 999 ist, funktioniert dieser Teil nicht mehr. Ich kann also nur Zeiten von 0,1s (1) bis 99,9s (999) vorgeben.

    Wie kann ich Zeiten >99,9 verwenden?


    Ich dachte an einen Vergleich und eine Änderung der Zeitbasis z.B.:

    Code:
    L Integervariable
    L 999
    >I
    SPB sek // falls >999 
    
    L     INTEGERVARIABLE //Diese Variable enthält die Zeit als Int 123 = 12,3 sekunden
    ITB   //Wandlung BCD
    UW    W#16#FFF // Begrenzung auf 3 Stellen
    OW    W#16#1000 // Zeitbasis = 0,1 sekunden
    SE    "Timer 1"
    U     "Timer 1"
    SPB   mach                
    
    spa end
    
    sek: NOP 0 // Zeit > 99,9 sek
    L     INTEGERVARIABLE //Diese Variable enthält die Zeit zb 1200 soll 120 sekunden sein
    L 10 // eine stelle weniger
    /I
     ITB   //Wandlung BCD
     UW    W#16#FFF // Begrenzung auf 3 Stellen
     OW    W#16#2000 // Zeitbasis = 1,0 sekunden
     SE    "Timer 1"
     U     "Timer 1"
     SPB   mach    // wenn Einschaltverzögerung abgelaufen => Sprungaufruf zu mach
    Hier würde also bei einer Zahl > 999 die Zeitbasis geändert.
    leider funktioniert nur der obere Teil der Einschaltverzögerung. Mit der Zeitbasis W#16#2000 stimmen die Zeiten nicht mehr.

    Gibt es eine andere Möglichkeit die Zeitdauer von 0.1 Sekunde bis zu 99.9 Minuten variabel als Einschaltverzögerung zu programmieren?
    An der Integervariable kann ich nichts ändern. Also 999 muss 99,9 sekundensein, 1234 muss 123,4 Sekunden sein, wobei die Nachkommastelle bei vierstelligen Zahlen wegfallen darf.


    Vielen Dank schon Mal für jede Hilfe.
    Zitieren Zitieren Problem mit S5Time (Bitbelegung Zeitdauer)  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

  3. #3
    Registriert seit
    19.07.2010
    Beiträge
    1.288
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Nimm doch aus der Standard-Bibliothek unter den IEC-Funktionen den FC40 -> Time zu S5Time

    dann musst du nur vor dem Aufruf deine Integervariable mit 100 multiplizieren damit du aus 0,1s Millisekunden erhältst

    Fertig ist der Lack
    mfG Aventinus

  4. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    Technikfreak (25.05.2012)

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

    Standard

    ohne erst mal auf die programmierung einzugehen.
    wo kommt denn die sollzeit her? eingabepanel oder so?
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #5
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Die Sollzeit bekomme ich als festen Integerwert von der GUI über TCP/IP. Mit der Zeitbasis muss ich leben. Also 1000 = 100 sekunden. Bisher funktionierte alles weil nur Zeiten im Bereich bis 99,9 sekunden gefordert waren, und ich mit ITB ja bis 999 wandeln kann. Leider sind nun auch längere Zeiten erforderlich. Ich werde mal den FC40 ausprobieren ob ich damit besser zurechtkomme.


    Trotzdem verstehe ich eins nicht:

    L 100
    ITB //Wandlung BCD
    UW W#16#FFF // Begrenzung auf 3 Stellen
    OW W#16#1000 // Zeitbasis = 0,1 sekunden

    funktioniert (sind 10 sekunden)

    L 100
    ITB //Wandlung BCD
    UW W#16#FFF // Begrenzung auf 3 Stellen
    OW W#16#2000 // Zeitbasis = 1 sekunden

    sind keine 100 sekunden. Warum?


    @Verpolt: Die Hilfe habe ich schon vorher gelesen. Aber ich verstehe nicht warum es bei mir mit Zeitbasis 1 sekunden nicht funktioniert

  7. #6
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Zitat Zitat von Technikfreak Beitrag anzeigen
    L 100
    ITB //Wandlung BCD
    UW W#16#FFF // Begrenzung auf 3 Stellen
    OW W#16#2000 // Zeitbasis = 1 sekunden

    sind keine 100 sekunden. Warum?
    Sondern wieviele ? 99,9 Sek. ?

  8. #7
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Du kannst auch die IEC-Timer mit "TIME"-Wert nehmen.

    Hast Du nen TIME-Wert ist ein DINT-Wert in ms. Du brauchst also nur Deinen Zahlenwert mit z.B. 1000 multiplizieren um eine Auflösung von 1s zu bekommen.

    SFB4 - TON
    SFB5 - TOFF
    ...
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  9. Folgender Benutzer sagt Danke zu MCerv für den nützlichen Beitrag:

    Technikfreak (25.05.2012)

  10. #8
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Lupo Beitrag anzeigen
    Sondern wieviele ? 99,9 Sek. ?
    undefiniert. mal wenige sekunden, mal gar keine reaktion.

  11. #9
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Habe jetzt den FC40 aus der Standardbibliothek verwendet und es funktioniert!
    Vielen Dank für die Hilfe und besonders an Aventinus für die Lösung!

  12. #10
    Registriert seit
    19.07.2010
    Beiträge
    1.288
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Gern geschehen. Und wenn ich mal Zeit hab - also die nächsten Tage - schaue ich mir an warum dein Vorschlag nicht funktioniert hat. Auf den ersten Blick konnte ich keinen Fehler erkennen.
    mfG Aventinus

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 24.11.2011, 12:40
  2. Zeitdauer SPS abschalten
    Von Pinguino im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 04.10.2008, 08:09
  3. Antworten: 5
    Letzter Beitrag: 20.09.2008, 11:44
  4. Antworten: 7
    Letzter Beitrag: 16.04.2008, 07:54
  5. Antworten: 5
    Letzter Beitrag: 28.02.2005, 20:30

Lesezeichen

Berechtigungen

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