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

Ergebnis 1 bis 7 von 7

Thema: Format DATE in real oder INt wandeln

  1. #1
    Registriert seit
    02.09.2008
    Beiträge
    61
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich habe ein riesen Problem ich lese die CPU Zeit aus und zerlege dies dann mit den S7 Bausteinen in Uhrzeit und in das Datum.
    Speicher mir dann das Datum im Format D#2011-5-10 ab mit hilfe einen Fifospeichers so erfasse ich Füllstände am Tag.

    Jetzt kommt mein Problem ich möchte dieses Datum (D#2011-5-10)mit den gehörigen Füllständen in WinCC anzeigen.
    Die Füllstände sind kein Problem das sind ja schon INT.

    Wie kann ich denn das Format Date in INT oder Real wandeln das WinCC mir diese anzeigt.
    Oder gibt es einen Trick das WinCC das So kann??

    Danke schon mal für eure mithielfe.
    (PS. hab hier schon ein SCl Programm dafür getestet.Dieses ist aber immer 1nen Tag zurück und ab 2012 einen Tag vor)
    Zitieren Zitieren Format DATE in real oder INt wandeln  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    WinCC (ohne flex) kennt von Haus aus die Datentypen DATE oder auch DATE_AND_TIME nicht. Diese müsstest du z.B. als Strukturvariable anlegen, was dementsprechend viele Tags verbraucht.

    Für DATE_AND_TIME gibt es hier ein Beispiel:
    http://support.automation.siemens.co...ew/de/35947176

    Aber wenn du einen fortlaufenden Fifo mit festem Zeitraster hast wird doch eigentlich kein Zeitstempel benötigt, denn die Zeiten ergeben sich aus der Position im Fifo.

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    jensel (10.05.2011)

  4. #3
    jensel ist offline Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    61
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Aha dies ist sehr hielreich wollte aber die Zeit nicht mit hoch nehmen sondern nur das datum und cih weiß nicht wie ich diese auslesen kann den die anzeige ist ja tage seit 1.1.1990

  5. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Dann lass es doch beim Typ "DATE". In WinCC legst du die Variable dann vom Typ Integer an, und musst diese dann mit einem kleinen C oder VB-Skript mit den entsprechenden Zeitfunktionen in einen in WinCC darstellbaren Typ oder String zurückrechnen. Ist zwar blöd, aber bei WinCC geht das nicht anders.

    Einen direkten Weg gibt es von WinCC aus für diesen Typ nicht. Du müsstest die Daten schon entsprechend hochbringen, z.B. das Datum als drei einzelne Integer-Variablen (Jahr, Monat, Tag).

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    jensel (10.05.2011)

  7. #5
    jensel ist offline Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    61
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    aha ja das mit den Script ist noch so einfach hab das lange lange schon nicht mehr gemacht.Hast du reinzufällig ein script was das kann.
    Oder eine idee wie man date teilt steh tzrzeit nur noch auf den schlauch

  8. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Mit einer C-Funktion könnte man das so machen:
    Code:
    char *GetS7DateString(int S7DATE )
    {
        /* Wandelt den S7 Datentyp DATE in einen String vom Aufbau DD.MM.YYYY
         * Der Datentyp DATE gibt die Anzahl an Tagen seit dem 1.1.1990 an.
         */
    
        char *Datum;
        struct tm *mt;
        time_t t;
    
        Datum = SysMalloc(12);
        
        t = 631152000L; /* Unixzeit: 1.1.1990 00:00:00 */
        t += S7DATE * (24*60*60);
        mt = gmtime(&t);
        sprintf(Datum, "%02d.%02d.%04d", mt->tm_mday, mt->tm_mon + 1, mt->tm_year + 1900); 
    
        return Datum;
    }

  9. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    jensel (10.05.2011)

  10. #7
    jensel ist offline Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    61
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    gut werde das mal testen morgen oder ich mache es einfach speichre nicht nur das datum sondern auch die zeit ab also in format Time_and_date und mach das dann so wie du es vorhin gepostet hast mit der Siemens anleitung mal sehen wie ich das löse

Ähnliche Themen

  1. DaveGetBlockInfo, format von modification date ??
    Von Ruud im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 20.04.2015, 09:34
  2. Format Date zerlegen
    Von online im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 05.11.2010, 13:08
  3. S7 Format DATE
    Von fmbux im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.10.2009, 19:53
  4. S7 Format Date in WINCC
    Von JoeJo im Forum HMI
    Antworten: 0
    Letzter Beitrag: 12.02.2007, 15:05
  5. Format Date richtig setzen
    Von Ello im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 26.09.2006, 08:56

Lesezeichen

Berechtigungen

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