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

Ergebnis 1 bis 10 von 10

Thema: datum und uhrzeit in S7. woher nehmen?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo.

    bei unserem projekt soll eine abwassermengenerfassung realisiert werden.
    diese erfassung soll einmal am ende jedes monats zurückgesetzt und der wert in ein register geschoben werden wo er ende des darauf folgenden monats wieder überschrieben wird.

    das problem dabei ist folgendes:
    wo bekommt die steuerung die aktuelle uhrzeit und das datum her?
    es gibt ja eine menge bausteine die die datum und uhrzeitfunktionen bearbeiten.
    leider finde ich in deren hilfe keine angabe darüber, woher die steuereung die daten für datum und uhrzeit bekommt.

    gruß
    knollmeister
    Zitieren Zitieren datum und uhrzeit in S7. woher nehmen?  

  2. #2
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    Du willst also die S7 zur Monatsschaltuhr degradieren , hatten wir schon mal http://www.sps-forum.de/phpBB2/viewt...hlight=uhrzeit

    oder nimm einfach eine externen Monatswecker und schalte den über einen Eingang, dann brauchst Du dich nicht mit Sommer und Winterzeit und Gangungenauikeit rum ärgern.
    mfg

    dietmar

    Nichts ist so beständig wie ein Provisorium.

  3. #3
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 24 Danke für 21 Beiträge

    Standard

    Einfachste Quelle für Datum und Zeit ist OB1 selbst. Ab Local Byte 12 (in den TEMPs) ist es in Date_And_Time format gespeichert.

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

    Nuan (12.05.2013)

  5. #4
    Boris Gast

    Standard

    moin.

    verstehe ich das richtig?
    im ob1 steht ab byte 12 immer die aktuelle uhrzeit und das datum?
    gut zu wissen.

    gruß boris

  6. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.527 Danke für 1.286 Beiträge

    Standard

    Hauptbausteine sind:

    SFC0, SFC1 Schreiben/Lesen der Echtzeituhr
    SFC Schlagmichtot + zig weitere FC's zu Sommer/Winterzeitumschaltung.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #6
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 24 Danke für 21 Beiträge

    Standard

    Zitat Zitat von Boris
    moin.

    verstehe ich das richtig?
    im ob1 steht ab byte 12 immer die aktuelle uhrzeit und das datum?
    gut zu wissen.

    gruß boris
    Ja, es stimmt. Es gibt ein hartneckiges Gerücht, dass die Zeit die da gespeichert ist, die des Erstanlaufs von OB1 ist. Dass dies nicht der Fall ist, kann man leicht beweisen indem man die Bytes in einigen Merker Byes schreibt und dies dann in einem VAT beobachtet.

    Natürlich, wegen der Zykluszeit ist diese Zeit dicht ganz so genau wie die von SFC1, aber für die meisten Zwecke reicht es allemal - und spart viel Arbeit.

  8. #7
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 24 Danke für 21 Beiträge

    Standard

    Ich habe folgende PN von Franz gekriegt:

    Hallo,
    ich habe deinen Beitrag gelesen. Aber wie kann ich die Zeit weiterverarbeiten?
    Ich will die Zeit des OB1 in dienen DB ablegen.

    MFG Franz
    Das ist ganz einfach, einfach die zwei DWORDs aus dem LD Bereich laden und in Dein DB transferieren, z.B., in OB1:

    L LD12
    T DB10.DBD0
    L LD16
    T Db10.DBD4

    Nun hast Du Deine Daten in DB10

    Byte 0 = Jahr (z.B. 05)
    Byte 1 = Monat (z.B. 08 )
    Byte 2 = Tag (z.B. 26)
    Byte 3 = Stunde
    Byte 4 = Minute
    Byte 5 = Sekunde
    Byte 6 = Die beiden höchstwertigen Ziffern von ms
    Byte 7 - 4 MSB = niederwertigen Ziffern von ms
    Byte 7 - 4 LSB = Wochentag - 1 = Sonntag, 2 = Montag ...

    Könnte kaum einfacher sein, oder?
    Doch, ein Tick einfacher könnte es sein - Achtung!

    1) die Werte sind BCD codiert, Du musst sie mit BTI in INT umwandeln bevor Du damit arbeiten kannst.

    2) die ms sind wegen der Zyklus Zeit mit Vorsicht zu geniessen es sei denn Du liest die Daten ganz am Anfang von OB1 und bearbeitest sie gleich.

  9. #8
    Registriert seit
    01.08.2005
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    ich habe diesen aufruf geschrieben.

    VAR_TEMP
    CPU_Time : DATE_AND_TIME ;
    error : INT ;
    END_VAR

    NETWORK

    CALL SFC 1
    RET_VAL := #error,
    CDT := #CPU_Time
    Ich will jetzt die #CPU_Time in einen DB zu transverieren.Habe also diese zeilen noch geschrieben.
    L CPU_Time
    T DB10.DBW 4
    Das ging nicht.
    Danke
    Zitieren Zitieren S7 Zeit mit SCF1  

  10. #9
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 24 Danke für 21 Beiträge

    Standard

    Du kannst zusammengesetzte Datentypen nicht mit dem Lade Befehl bearbeiten der kann nur bis zu 4 Bytes handhaben (Grösse der AKKUs). Deswegen kannst Du nur auf Einzelteilen von solchen Strukturen zugreifen.

    Deswegen habe ich oben 2x DWORDs geladen, kopiere das, dann guckst Du die einzelnen Bytes in einem VAT an. Denk daran, dass diese Code nur in OB1 funktioniert aber auf die Daten in DB10 (oder wo auch immer) kannst Du von überall zugreifen.

    Deine SFC1 Daten dürften auch vorhanden sein, Du muss nur gucken wo die 8 Bytes liegen und dann mit z.B. (Wenn CPU_Time an Adresse 8 anfängt)

    L LD8
    T DB10.DBD4
    L LD12
    T Db10.DBD8

  11. #10
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Franz
    Hallo,
    ich habe diesen aufruf geschrieben.

    VAR_TEMP
    CPU_Time : DATE_AND_TIME ;
    error : INT ;
    END_VAR

    NETWORK

    CALL SFC 1
    RET_VAL := #error,
    CDT := #CPU_Time
    Ich will jetzt die #CPU_Time in einen DB zu transverieren.Habe also diese zeilen noch geschrieben.

    L CPU_Time
    T DB10.DBW 4
    Das ging nicht.
    Danke

    Får so eine Function kannst du den SFC20 benutzen.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.
    Zitieren Zitieren Re: S7 Zeit mit SCF1  

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 01.06.2011, 12:49
  2. Datum und Uhrzeit zerlegen
    Von Lord Cartman im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 31.08.2010, 15:31
  3. Datum und Uhrzeit
    Von HDF im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.12.2009, 09:08
  4. Datum Uhrzeit
    Von Andy_speedy im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 10.06.2008, 12:37
  5. Uhrzeit und Datum
    Von Gosi01 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.10.2007, 11:26

Lesezeichen

Berechtigungen

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