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

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

Thema: Uhrzeit-Werte umwandeln

  1. #1
    Registriert seit
    16.07.2006
    Beiträge
    157
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, wie kann ich bei der s7-200 CPU224 Uhrzeit-Daten bei bestimmten Ereignissen (über Eingänge verarbeitet) speichern und wieder als richtige Uhrzeit-Werte (z.B. für Stunde [VB13] den Wert 15, wenn das Ereignis um 15.xx Uhr eingetreten ist) als Variable speichern und beispielsweise im Tabellenstatus anzeigen?

    Bislang verfahre ich wie folgt:

    LD E0.0
    BTI VB13,VW2000

    wobei BTI das Byte aus VB13 in eine ganze Zahl (16Bit) wandelt.

    Da der Wert von VW2000 -wenn E0.0 um 15.XX Uhr angesteuert wird- nicht gleich 15 ist und WEIL DIE ANDEREN UMWANDLUNGSFUNKTIONEN MIR AUCH NICHT GEHOLFEN HABEN, BIN ICH ETWAS GENERVT...

    Wer kann mir bitte helfen?

    Danke
    Holger
    Zitieren Zitieren Uhrzeit-Werte umwandeln  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,

    Zitat Siemens S7200 Hilfe:

    "Die Operation Echtzeituhr lesen (TODR) liest die aktuelle Uhrzeit und das aktuelle Datum aus der Hardware-Uhr der CPU und lädt beides in einen 8-Byte-Uhrzeitpuffer mit Beginn an Adresse T.

    Format des Byte-Uhrzeitpuffers (T):
    T-Byte Beschreibung Byte-Daten
    0 Jahr (0-99) Aktuelles Jahr (BCD-Wert)
    1 Monat (1-12) Aktueller Monat (BCD-Wert)
    2 Tag (1-31) Aktueller Tag (BCD-Wert)
    3 Stunde (0-23) Aktuelle Stunde (BCD-Wert)
    4 Minute (0-59) Aktuelle Minute (BCD-Wert)
    5 Sekunde (0-59) Aktuelle Sekunde (BCD-Wert)
    6 00 Reserviert – immer auf 00 gesetzt
    7 Wochentag (1-7) Aktueller Wochentag, 1=Sonntag (BCD-Wert)"

    Also da wäre die Stunde(Byte 3) schon da, wo ist das Problem?
    Oder verstehe ich dich falsch?

    Gruss: Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Zeit S7200  

  3. #3
    Automatik-Holgi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.07.2006
    Beiträge
    157
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vermutlich verstehst du mich falsch...

    Erklär mir mal konkret, wie ich ein Ereignis zeitlich festhalte.
    Beispiel : Eingang E0.0 wird in der Stunde 15 (15.XX Uhr) aktiviert, ich will diesen Wert 15 (ich meine dann auch 15,und nix anderes!!!) in irgendeiner passenden Variable ablegen und ihn mir zum Beispiel später im Tabellenstatus anzeigen lassen. Wie muss ich das Programmieren? Ich will doch nur später sehen, wann der Eingang aktiviert wurde...


    Holger

  4. #4
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Frage

    Hi Holger,
    also der Eingang E0.0 kommt; es ist 15:33; mit der Flanke von E0.0:
    -ich lese die Systemzeit aus(siehe oben)
    -ich nehme Byte 3( Stunde,0-23, aktuelle Stunde (BCD-Wert)), wandle nach Integer(dann habe ich 15) und speichere irgendwo ab.

    Oder was möchtest du, etwas anderes?

    Gruss: Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Zeitstempel  

  5. #5
    Automatik-Holgi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.07.2006
    Beiträge
    157
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Vladi, danke für deine Geduld...
    würdest du mir das mal als AWL schreiben?

    Danke

  6. #6
    Registriert seit
    06.01.2005
    Ort
    im schönen Lipperland
    Beiträge
    4.472
    Danke
    498
    Erhielt 1.143 Danke für 736 Beiträge

    Standard

    und für mich in FUP bitte ... ( ich lach mich weg )........
    Früher gab es Peitschen .... heute Terminkalender

  7. #7
    Automatik-Holgi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.07.2006
    Beiträge
    157
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Worüber lachst du?

  8. #8
    Registriert seit
    13.12.2006
    Beiträge
    628
    Danke
    109
    Erhielt 42 Danke für 39 Beiträge

    Standard

    .... und für mich in KOP plz....

    darüber lacht der...

    ok, mit dem was man gelernt hat, kommt man meist am Baesten zurecht, aber eigentlich ist jede Programmsprache nur 'Slang', den man sich halt aneignen muss

    BTT:
    Versteh ich das Richtig:
    Irgendwann kommt ein Ereignis, auf das Du mit Verzögerung/ täglich reagieren möchtest. Diese (Uhr-) Zeit möchtest du als Datum (Einzelform von Daten, als mit ohne TTDDJJJJ..) 'fangen' und bei Bedarf wieder auswerten?

    Greetz

  9. #9
    Automatik-Holgi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.07.2006
    Beiträge
    157
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja so ungefähr.
    Ich möchte mehrere (ca.3) Stunden- und Minuten-Werte in mehreren (also,ca.6) Variablen abspeichern, jedesmal,wenn ein bestimmter Eingang aktiviert wird:

    Beispiel : Es ist 14.32Uhr, E0.0 ist für ein paar Sekunden aktiv
    Es ist 15.11Uhr, E0.0 ist für ein paar Sekunden aktiv
    Es ist 18.55Uhr, E0.0 ist für ein paar Sekunden aktiv.

    Wenn ich später irgendwann mal in den Status-Tabelle schaue, möchte ich folgendes lesen:

    Variable1 : 14
    Variable2 : 32
    Variable3 : 15
    Variable4 : 11
    Variable5 : 18
    Variable6 : 55

    VERSTEHT JEMAND,WAS ICH WILL??????

    Holger

  10. #10
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    also Holger, das nervt zwar ein wenig, aber vielleicht bist du nicht einfach
    faul, sondern kappierst was nicht. Deswegen schreibe ich dir dein AWL:

    Code:
    LD     SM0.1                       // beim SPS Start
    MOVD   &VB100, VD50                // Pointer auf Adresse VB100 in VD50 erstellen
    // ---------------------------------
    LD     E0.0                        // Eingang für den Zeitstempel
    EU                                 // mit der Flanke die Uhr lesen.. 
    TODR   VB10                        // dann haben wir in VB13:Stunde(BCD); in VB14:Minute (BCD)
    MOVD   0, AC0                      // Akku 0 löschen
    MOVD   0, AC1                      // Akku 1 löschen
    MOVB   VB13, AC0                   // Stunde in Akku 0 laden
    MOVB   VB14, AC1                   // Minute in Akku 1 laden
    BCDI   AC0                         // jetzt haben wir die Stunde als Integer da
    BCDI   AC1                         // jetzt haben wir die Minute als Integer da
    MOVB   AC0, VB20                   // dann haben wir in VW20 Stunde und Minute
    MOVB   AC1, VB21                   //..
    MOVW   VW20, *VD50                 // Stunde UND Minute in VWxxx laden, ab VW100...
    +D     2, VD50                     // Pointer zeigt auf das nächste Wort, VWxxx +2
    Ah so, in FUP und KOP ginge das auch, aber ich mache es nicht, ihr
    habt das Recht böse auf mich zu sein.. . Alles klar?

    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren S7 200 Problem  

Ähnliche Themen

  1. Umwandeln Hex in Dez mit S7-300
    Von hubert im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 29.07.2015, 16:00
  2. Antworten: 10
    Letzter Beitrag: 02.01.2008, 16:54
  3. Umwandeln!
    Von sr-83 im Forum Simatic
    Antworten: 36
    Letzter Beitrag: 04.09.2007, 16:12
  4. Hz in Sek. umwandeln
    Von MRT im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 10.09.2005, 23:48
  5. Umwandeln von S5 auf S7
    Von badipr im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.12.2004, 15:57

Lesezeichen

Berechtigungen

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