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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Problem mit S5Time (Bitbelegung Zeitdauer)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Aventinus Beitrag anzeigen
    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.
    Ich schätze, dass es daran liegt, dass nicht nur die Besimmung des Zeitwertes in der bedingten Bearbeitung stattfindet sondern der Aufruf des imers auch. Überspringen von Timer-Aufrufen ist immer so eine Sache

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

    Standard

    Hm gut zu wissen. Ich arbeite relativ häufig mit Sprungbefehlen und hab da bisher nicht besonders drauf geachtet. Vieleicht liegt es auch am PLC Sim? Habe den Programmcode nur simuliert und nicht auf echter Hardware ausprobiert. Hatte mal irgendwo gelesen, dass PLC Sim Zeiten wohl nicht 100% korrekt simuliert.

  3. #13
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Zitat Zitat von Technikfreak Beitrag anzeigen
    Hm gut zu wissen. Ich arbeite relativ häufig mit Sprungbefehlen und hab da bisher nicht besonders drauf geachtet. Vieleicht liegt es auch am PLC Sim? Habe den Programmcode nur simuliert und nicht auf echter Hardware ausprobiert. Hatte mal irgendwo gelesen, dass PLC Sim Zeiten wohl nicht 100% korrekt simuliert.
    Ist abhängig von deiner Version und bezog sich glaube ich nur auf die TON/TOF-Zeiten
    kind regards
    SoftMachine

  4. #14
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von Technikfreak Beitrag anzeigen
    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.
    Mir fehlt da das VKE, das den Timer starten soll... vielleicht ist das Dein Problem bei dem "2000" - Problem.
    In dem Teil ab "sek:" wird das VKE immer "1" sein.

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

    Standard

    Das VKE habe ich weggelassen. Der Timer wird über "UN E0.0" gestartet, wobei das Signal kurzzeitig 1 wird und der bedingte Sprungaufruf nur ausgeführt wird wenn kein 1 Signal innerhalb der Zeit der Integervariable ankommt.

  6. #16
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Borromeus hat recht. Hab ich übersehen...

    Du musst dann aber auch den Timer mit "UN E0.0" Starten. Momentan hängt das Starten vom Timer ausschließlich davon ab, ob deine Integervariable größer ist als 999 oder eben nicht. Da wird das letzte mal vor dem Starten des Timers das VKE verändert... so kanns nicht klappen.
    mfG Aventinus

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

    Technikfreak (01.06.2012)

  8. #17
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von Technikfreak Beitrag anzeigen
    Das VKE habe ich weggelassen. Der Timer wird über "UN E0.0" gestartet, wobei das Signal kurzzeitig 1 wird und der bedingte Sprungaufruf nur ausgeführt wird wenn kein 1 Signal innerhalb der Zeit der Integervariable ankommt.
    Ist "SPB" erfüllt springt die SPS und das VKE ist "1".
    Da nützt Dir die davorliegende Abfrage nichts.
    Ab "SPB sek:" und Sprung auf "sek:" ist das VKE "1".

    Gruß
    Karl

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

    Technikfreak (01.06.2012)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das ist richtig. Das VKE muss natürlich jeweils für jeden Fall nochmal eingefügt werden. Vielen Dank!

Ä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
  •