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

Ergebnis 1 bis 6 von 6

Thema: Timerproblem!

  1. #1
    Merker0.0 Gast

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin Jungs, ich habe ein Problem!

    Und zwar möchte ich einen Timer T1 zweimal benutzen.Einen FB, den ich mit einem Eingangsparameter(E1) deklariert habe rufe ích im OB1 zweimal auf, und zwar mit unterschiedlichen Eingängen an den Parametern. Im FB benutze ich den Timer T1. Am Anfang des FB lade ich den Zeitwert für den Timer und am Ende des FB schreibe ich diese zurück. Die Zeitwerte werden in DB's gespeichert(natürlich in unterschiedlichen Wörtern für beide Timer). Der Zeitwert in DB41(aktuelle Zeiten) wird von einem selbstprogrammierten Timer runtergezählt.
    Das ganze funktioniert aber nur, wenn nur einer der Timer läuft. Läuft der Erste und der zweite wird angeschaltet gehen beide Timer auf 0 und es ist "Ende im Gelände".
    Hoffentlich kann mir jemand helfen(bin total verzweifelt)!?


    FB1(wird 2mal aufgerufen, aber versch.DBW's)
    Code:
     
          UN    E      1.0                  // Simuliert Erstanlauf
          SPB   ende
     
          AUF   DB    40                    // Laden des Startwertes des Timers
          L     50
          T     DBW    0
     
             BE    
    ende: NOP   0
     
     
          U     #E1
          FP    #pos_Fla                    // Flankenabfrage Eingangsparameter
          U     #pos_Fla
          SPBN  sta1
     
          AUF   DB    40                    // Laden des Startwertes des Timers
          L     DBW    0
          ITB                               // Umwandeln Integer zu BCD
          SPA   tim1
     
    sta1: U     #E1
            AUF   DB    41                    // Laden des aktuellen Zeitwertes
            L     DBW    0
            ITB
     
    tim1: OW    W#16#1000                   // Zeitbasis 100ms addieren
            SE    T      1
     
     
    AUF   DB    41
          LC    T      1                    // Zurückschreiben der aktuellen Zeitwerte
          BTI   
          T     DBW    0
    Zitieren Zitieren Timerproblem!  

  2. #2
    thomas Gast

    Standard

    hi,
    also du kannst das mit einem Timer machen, wenn sicher gestellt ist,
    das der Baustein nicht zweimal gleichzeitig aufgerufen wird.
    Wird der Baustein 2 mal aufgerufen mußt du verschiedene Timer nutzen, du kannst ja auch die Timer als Übergabeparameter nutzen.

    gruß Thomas

  3. #3
    Registriert seit
    25.07.2006
    Beiträge
    12
    Danke
    0
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Hallo,

    Du musst zwei Timer benutzen ( für jeden Aufruf des FB's einen )

    Die SPS braucht für jeden Zyklus eine gewisse Zeit.
    Auch wenn gerade nicht der genannte FB bearbeitet wird, läuft der Timer.
    Wenn Du den Timer mehrfach zuweist und startest usw. kann das nicht funktionieren.


    mfG

    Christof

  4. #4
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Code:
    U     #E1
          FP    #pos_Fla                    // Flankenabfrage Eingangsparameter
          U     #pos_Fla
          SPBN  sta1
    Funktioniert der bedingte Sprung so wie du dir das vorstellst?

    #pos_Fla ist ein Hilfsmerker dafür das die pos Flanke überhaupt funktioniert. Der ist eigentlich immer solange auf 1 gesetzt solange #E1 vorhanden ist.
    Entweder das "U #pos_Fla" entfernen oder eine andere Variable verwenden.

    Lg Godi

  5. #5
    Registriert seit
    14.06.2005
    Beiträge
    76
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Bei dem alem Z80 gab es auch solche Zeitbausteine, die nannten
    sich Z80 CTC. So ähnlich ist das auch in der S5/S7. Am besten Du schreibst Dir einen "Timer" selber in dem Du über über die Taktmerker ein Datenwort hoch/runter zählst und somit einen Timer simulierst.

  6. #6
    Registriert seit
    26.02.2006
    Beiträge
    30
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Merker 0.0,

    schau dir mal die TON/TOFF Bausteine an. Die kannst du in einem FB als Stat-Variable deklarieren und sie exakt wie einen SE/SA Timer verwenden. Bei jedem FB Aufruf hast Du dann einen anderen Instanz-DB und somit auch neue Timer die garantiert noch nicht im Programm verwendet hast. Dann brauchst Du nicht mehr die Timerwerte umkopieren....


    MfG SPS_Fuzzy

Ähnliche Themen

  1. Timerproblem in SCL
    Von schnecke im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 15.09.2010, 14:10
  2. Timerproblem
    Von Tobias2k9 im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 14.01.2009, 13:29
  3. Parallel laufende Programme - Timerproblem?
    Von ogstyle im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 27.06.2007, 13:45
  4. Timerproblem im FB
    Von samson im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.09.2005, 13:20

Lesezeichen

Berechtigungen

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