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

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

Thema: Datenwort als TW Wert im Timer

  1. #1
    Registriert seit
    04.01.2010
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    wir haben hier ein MP277 Touch zur Verfügung und da wird eine Zeit für einen Testzyklus angegeben.
    Diese Zeit wird in Stunden/Minuten/Sekunden unterteilt.
    Alle 3 Angaben sind im WinCC Projekt INT.

    Mit einer Berechnung in unserer S7 wird die Gesamtzeit in Sekunden ausgewertet und in ein Datenwort weggeschrieben.
    Dieses Datenwort ist eine S5Time.
    Desweiteren wird diese Zeit durch 20 geteilt.
    Rufe ich jetzt dieses Datenwort an einen Timer TW auf dann stimmt dieser Wert nicht.

    L DB300.DBW82
    L 20
    / I
    T DB300.DBW84

    U "Stufe1"
    L DB300.DBW84
    SV T1
    U M1.1
    R T1
    NOP 0
    NOP 0
    NOP 0

    Kann mir jemand sagen wo mein Denkfehler ist?!?!?!

    Gruß Daniel
    Zitieren Zitieren Datenwort als TW Wert im Timer  

  2. #2
    Registriert seit
    02.04.2012
    Beiträge
    23
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Daniel

    Was kommt denn im DB300.DBW82 an bzw. was soll ankommen??? Liegen die Werte weit auseinander?
    Meine Idee wäre das ein Wort eventuell zu klein sein könnte..

  3. #3
    dada1983 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.01.2010
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn ich 1 Stunde im Panel eingebe dann steht im Datenwort DW300.DBW82 eine 3600 was auch richtig ist.
    Im Datenwort DB300.DBW84 steht dann die 3600/20 also 180
    Diese 180 liegt auch an dem Timer an allerdings läuft diese bei Freigabe nicht ab.

    Gruß

  4. #4
    Registriert seit
    02.04.2012
    Beiträge
    23
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    naja da diese Zeit "1 Stunde" konstant ist aktualisiert die CPU den Wert von DB300.DBW82 bzw. .DBW84.
    Das heißt meiner Meinung nach, dass nach jedem Zyklus die 180 Sekunden immer wieder in deinen Timer reingeschrieben werden. SO mit kann die Zeit nicht ablaufen

  5. #5
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Das S5T-Format entspricht im Prinzip weitestgehend dem BCD-Format, allerdings bildet hier das High-Nibble im Low-Byte statt des Vorzeichens den Zeitfaktor.
    Wenn Du /I machst, dann werden die AKKUs als Integer interpretiert und entsprechend geteilt, das kann natürlich nicht funktionieren, wenn man versucht, das mit einer BCD oder einer S5T zu machen.
    Gruß
    Michael

  6. #6
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard

    Die S5TIME unterliegt einem festem Aufbau und ist 16 Bit groß.
    Der eigentliche Zahlenwert ist eine BCD und umfasst 12 der 16 Bit (Bit 0 bis 11)und kann den Wert von 000-999 annehmen. Der eigentliche Zeitwert wird dann über den Faktor Zeitbasis errechnet. Zahlenwert x Zeitbais = Zeitwert. Die Zeitbasis wird durch die Bits 12 und 13 festgelegt, die Bits 14 und 15 sind irrelevant.

    Aufbau im Word (Beispiel):


    Bit Nr. 15 14 13 12 ! 11 10 09 08 ! 07 06 05 04 ! 03 02 01 00
    x x 1 0 ! 1 0 0 1 ! 0 0 1 0 ! 1 0 0 0

    Zeitbasis = 1s , Zahlenwert 928 = 928s = 15min 28s

    Auf Grund dieses Aufbaus kannst Du den Inhalt des Worts nicht einfach durch 20 teilen. Schau mal inder Hilfe unter S5Time nach.
    Geändert von 190B (03.04.2012 um 14:17 Uhr) Grund: Formatierung
    Gruß
    190B

  7. #7
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Tipp: Gib mal in der STEP7 Hilfe "Format des Datentyps S5TIME (Zeitdauer)" ein und schau Dir den Aufbau des Formats an
    Gruß
    Michael

  8. #8
    Registriert seit
    20.02.2008
    Beiträge
    332
    Danke
    16
    Erhielt 40 Danke für 37 Beiträge

    Standard

    Die Siemens Timer verlangen den Zeitwert im S5Time Format. Das ist nicht einfach ein Sekunden oder ähnliches Format.
    S5Time ist ein Word - soweit richtig. Die ersten 4 Bit representieren den Zeitintervall und die letzten 12 Bit sind 3 Zahlen im BCD-Code, die den Zeitwert bilden.

    Ich habe mal kurz Google bemüht. Das hier könnte was für euch sein:
    http://www.automation.siemens.com/WW/forum/guests/PostShow.aspx?PostID=72881&language=en




    Ich sehe schon andere waren hier schneller, aber der Link ist bestimmt was für euch.

  9. #9
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von dada1983 Beitrag anzeigen
    Mit einer Berechnung in unserer S7 wird die Gesamtzeit in Sekunden ausgewertet und in ein Datenwort weggeschrieben.
    Dieses Datenwort ist eine S5Time.
    Desweiteren wird diese Zeit durch 20 geteilt.
    Rufe ich jetzt dieses Datenwort an einen Timer TW auf dann stimmt dieser Wert nicht.

    L DB300.DBW82
    L 20
    / I
    T DB300.DBW84
    Hallo Daniel,
    so sollte es funktionieren:
    Code:
       L DB300.DBW82
       L 20
       / I
       ITB
       L  2#10 0000 0000 0000
       OW
       T DB300.DBW84
    Aber beachte die von User "190B" schon erwähnte Grenze von 999.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  10. #10
    Registriert seit
    20.02.2008
    Beiträge
    332
    Danke
    16
    Erhielt 40 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und wenn Du im Beispiel von Paule nach dem ITB

    Code:
    L W#16#FFF
    UW
    noch mit einfügst, kann zumindest bei einer Fehleingabe (>999 als Ergebniss der Berechnung) nicht mehr viel passieren.

    @Paule, ich will kein Besserwisser sein, aber irgendwie fehlten noch die zwei Zeilen

    Grüße

Ähnliche Themen

  1. Vier Siebensegmentanzeigen als Timer
    Von TSF im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 06.06.2011, 16:37
  2. Timer als Lokalevariable
    Von Schüler10 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 11.11.2010, 23:36
  3. FB mit Timer als Multiinstanz
    Von jackjones im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 08.12.2009, 08:53
  4. Antworten: 6
    Letzter Beitrag: 06.07.2008, 13:59
  5. mit vke wert in timer schreiben !?
    Von tinnitus im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 14.12.2005, 19:27

Lesezeichen

Berechtigungen

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