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

Ergebnis 1 bis 10 von 10

Thema: Uhrzeitformat umwandeln?

  1. #1
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ist es möglich, den Datentyp "Time_of_Day" in einen anderen Datentyp zu wandeln? Ich möchte auf meiner Visu "IPS" die Uhrzeit anzeigen lassen, in dem ich den DB auslese, in dem die Uhrzeit drin steht. Meine Visu kennt aber diesen Datentyp nicht. Wie kann ich das realisieren?

    MfG
    bastler
    Zitieren Zitieren Uhrzeitformat umwandeln?  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    da gibt es mehrere Möglichkeiten :
    -Du rechnest dir deinen Time_of_Day (Millisekunden, die seit 0:00 Uhr vergangen sind) in Stunde, Minute und Sekunde um und zeigst die seperat an.
    -Du baust dir aus dem Format Date_Time einen String und zeigst den an.

    Was ist dir lieber ?

    Gruß
    LL

  3. #3
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich kann in der Visu aber nur Bytes oder Worde (ein Byte oder ein Word)aus der S7 lesen, als Statusvariable (die Variable, die z.B. aus DB3.DBB0 ließt) nimmt die Visu nur den Datentyp Integer an.

    MfG
    bastler
    Geändert von bastler (10.10.2008 um 18:41 Uhr)

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @bastler

    Du nimmst in der SPS den Time_of_Day (Format hat ja Larry schon erklärt).
    Aus diesen X Millisekunden seit 0:00 Uhr kannst du nun die Stunden, Minuten und Sekunden einzeln berechnen (du brauchst dazu Modulo, Division und Subtraktion) und in je eine Int schreiben, die du dann nebeneinander in der Visualisierung anzeigst. Probiers mal, schreib deinen Weg hier rein, bei Problemen hilft sicher jemand nach.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    623
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    Hallo Bastler,

    vielleicht solltest du deinem Namen mal alle Ehre machen und ein bisschen Basteln

    Wie bereits von Ralle und Larry Laffer erwähnt zeigt der Datentyp TOD die abgelaufenen Millisekunden seit Mitternacht an.

    Mit ein bissel Gehirnschmalz hab ich mal schnell folgenden Code ausprobiert:

    Code:
     
        
          L     #TOD_VAR                    //Stunden berechnen
          L     L#3600000
          /D    
          T     #Stunde
    
          L     #TOD_VAR                    //Rest berechnen
          L     L#3600000
          MOD   
          T     #Rest
    
          L     #Rest                       //Minuten berechnen
          L     L#60000
          /D    
          T     #Minute
    
    
          L     #Rest                       //neuen Rest berechnen
          L     L#60000
          MOD   
          T     #Rest
    
    
          L     #Rest                       //Sekunden berechnen
          L     1000
          /D    
          T     #Sekunde
    
          L     #Rest                       //Millisekunden berechnen
          L     1000
          MOD   
          T     #Millisek
    habs gerade mal simuliert, scheint so zu funktionieren.

    Mfg
    uncle_tom

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Yep und wenn du uncle_toms code noch weiter komprimieren willst (was aber wirklich nicht unbedingt nötig ist), hilft dir das hier:

    http://www.sps-forum.de/showpost.php...23&postcount=5
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #7
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo

    Danke erstmal für die Vorschläge, ich werds heute Abend mal ausprobieren und meld mich dann nochmal.
    Schönes Wochende.

    MfG
    bastler

  8. #8
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Habe das Codebeispiel von uncle_tom mal ausprobiert. Die Stundenberechnung funktioniert, aber bei den Minuten habe ich immer den Wert 0. Genauer gesagt, die Sekunden zählen bis 60 hoch, dann ändert sich der Wert bei Minuten auf 1, die Sekunden zählen wieder los bei 0 und wenn die Sekunden 5 sind, werden die Minuten 0 und die Sekunden fangen auch wieder bei 0 an, zählen dann aber wieder bis 60.

    Code:
        L     DB1.DBD    4	//Aktuelle Uhrzeit
          L     L#3600000
          /D    
          T     DB1.DBB   64	//Stunden
    
    
          L     DB1.DBD    4	//Aktuelle Uhrzeit
          L     L#3600000
          MOD   
          T     #Rest
    
          L     #Rest
          L     L#60000
          /D    
          T     DB1.DBB   66	//Minuten
    
          L     #Rest
          L     L#60000
          MOD   
          T     #Rest
    
          L     #Rest
          L     1000
          /D    
          T     DB1.DBB   68	//Sekunden
    
          L     #Rest
          L     1000
          MOD   
          T     DB1.DBB   70	//Millisekunden
    MfG
    bastler
    Geändert von bastler (11.10.2008 um 19:28 Uhr)

  9. #9
    Registriert seit
    07.06.2006
    Ort
    Bayern
    Beiträge
    623
    Danke
    27
    Erhielt 156 Danke für 139 Beiträge

    Standard

    Hallo Bastler,

    Hirn einschalten !

    Die Variable #Rest ist bei dir wahrscheinlich vom Typ INT oder WORD.

    Nachdem der Datentyp TOD aber ein Doppelwort benötigt sollte natürlich
    auch die Rechenvariable gross genug sein um die Werte aufzunehmen.

    Als probiers mal mit #Rest als DWord.

    Mfg
    uncle_tom

  10. #10
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Zu meiner Verteidigung:
    Ich muß dazu sagen, dass ich bisher mit Step 7 nur Fehlersuche in vorhanden Anlagen gemacht habe.
    Vielleicht hätte ich da auch selber drauf kommen können, aber mir fehlt halt noch etwas Erfahrung. Auf alle Fälle vielen Dank für die Hilfe.

    MfG
    bastler

Ä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. von FUB in SCL umwandeln ?
    Von feelix1 im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 20.03.2008, 10:15
  3. Umwandeln!
    Von sr-83 im Forum Simatic
    Antworten: 36
    Letzter Beitrag: 04.09.2007, 16:12
  4. Umwandeln
    Von isensa im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 24.07.2006, 00:59
  5. Hz in Sek. umwandeln
    Von MRT im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 10.09.2005, 23:48

Lesezeichen

Berechtigungen

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