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

Ergebnis 1 bis 6 von 6

Thema: Systemuhrzeit ausgeben in ms

  1. #1
    Registriert seit
    20.04.2007
    Beiträge
    25
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    1.
    ich muss für einen Datenlogger Daten in einem Array schreiben und jeden Datensatz mit einer exakten Uhrzeit mit ms angegeben.
    Ich schreibe ca. alle 2ms einen Datensatz mit der 750-880.Laut Standard Lib wird die Zeit nur in DT#2011-11-08 12:29:00 ausgegeben.
    Kennt jemand eine Lösung?
    2.
    ich schreibe die Daten in eine CSV Datei.Jedoch kann ich nur 32765 Byte groß die Datei erstellen,da er mir das sonst anmeckert.
    Was muss ich einstellen?

    Dank im vorraus
    Zitieren Zitieren Systemuhrzeit ausgeben in ms  

  2. #2
    Registriert seit
    13.07.2008
    Beiträge
    29
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich Habe eine DCF77 Uhr an meiner SPS und nutze den DCF Programmbaustein aus der Oscar lib ( um das dcf Signal auszuwerten.)
    dieser gibt mir uA auch die zeit in ms aus.
    Es giebt die Möglichkeit den Baustein mit der normalen CPU Zeit zu füttern (falls die DCF Uhr keinen empfang hat würde darauf zurückgegriffen werden)
    daher würde ich sagen ist der Betrieb auch komplett ohne DCF Empfänger möglich.
    ...wäre jetzt die Möglichkeit die mir einfällt....

  3. #3
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Wenn du OSCAT nutzen willst, nimm den Baustein RTC_MS:
    oscat.de/files/oscat_basic_doc_332_de.pdf#page=138

  4. #4
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Bin eigentlich nur mit S7 unterwegs,aber zu
    1. Kannst du dein DT#2011-11-08 12:29:00 trennen zu einmal Date und einmal Time?
    Dann müsste in Time die ms enthalten sein.
    2. kann ich leider nicht helfen.
    Wenn ich einen meiner Finger in eines deiner Nasenlöcher stecke, haben wir beide nen Finger in der Nase

  5. #5
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Zitat Zitat von Zefix Beitrag anzeigen
    1. Kannst du dein DT#2011-11-08 12:29:00 trennen zu einmal Date und einmal Time?
    Dann müsste in Time die ms enthalten sein.
    Dies stimmt nicht ganz. Gemäss dem Buch "SPS-Programmierung mit IEC 61131-3" wird die dt mit hundertstel-Sekunden aufgelöst...
    Bei Beckhoff steht da: "Datum und Tageszeit. Die kleinste Zeiteinheit ist eine Sekunde. Der Datentyp wird intern wie DWORD behandelt.

    "

  6. #6
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Zitat Zitat von gloeru
    Dies stimmt nicht ganz. Gemäss dem Buch "SPS-Programmierung mit IEC 61131-3" wird die dt mit hundertstel-Sekunden aufgelöst...
    Stimmt immer noch nicht ganz
    DATE_AND_TIME (DT) is ja nur ein DWORD da kommen stattliche 49 Tage zusammen - bissel wenig. DT = Sekunden seit 1.1.1970 (IEC61131-3 )
    Wobei der Datentype TIME ein DWORD mit der Auflösung millisekunden bedeutet. Bzw. TOD (Time of day) die Tageszeit in Millisekunden seit 00:00:00:000 angibt. (x*86 400 000 = 00:00:00:000 Uhr)

    Zu deinem Problem, manche Zielsysteme unterstützen einen Datentype z.Bsp. Systime der die RTC in Ms ausgibt das wäre dann aber ein ULINT (LWORD - 64 bit). Müsstest du mal prüfen ob dein System dies unterstüzt. Dann wird es auch min. eine Lib geben mit der die auslesen kannst. (z.Bsp. bei CoDeSysV3 - SysTimeRtc.SysTimeRtcHighResGet) Ansonsten musst du dich mit DT begnügen, und die ms selbst dazu tun. Ich frage mich nur was du in deinen Datenlogger schreiben möchtest bzw. wie lange. Alleine der Zeitstempel (STRING mit 23 Bytes ohne ms) würde pro Sekunde (alle 2ms) schon mal 11500 Bytes fressen.
    Grüße...
    Paradox ist, wenn sich jemand im Handumdrehen den Fuß bricht.

Ähnliche Themen

  1. CPU Zeit in TOD ausgeben? name des FC´s?
    Von Jaykops im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.06.2010, 14:55
  2. Fehlernummern ausgeben
    Von smartie im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 23.03.2010, 15:17
  3. Frequenz ausgeben
    Von SaschaP im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 20.02.2009, 13:16
  4. Werte in BCD ausgeben
    Von SPS-Linksfuß im Forum Simatic
    Antworten: 40
    Letzter Beitrag: 22.08.2006, 11:04
  5. 1-10 ausgeben
    Von IchwillspsKönnerwerden im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.01.2006, 15:33

Lesezeichen

Berechtigungen

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