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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Millisekunden ind Stunden/Minuten umrechnen

  1. #11
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.358
    Danke
    456
    Erhielt 695 Danke für 520 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Hoffentlich mischst du keine brisanten Dinge zusammen.


    Ne Jungs, Modulo is für fortgeschrittene.
    Fangen wir erst mal mit Grundschulmathe an...
    Subtraktion, Multiplikation, Division
    Code:
    //---------------------------------------------------------------- Stunden
          L     L#120612341                 //Eingangswert
          L     L#3600000
          /D    
          T     #Stunden                    //Stunden
    
          L     #Stunden                    //Divisionsrest bilden
          L     L#3600000
          *D    
          T     #Hilfwert
    
          L     L#120612341                 //Divisionsrest bilden
          L     #Hilfwert
          -D    
          T     #DivRest                    //Rest (alles was nicht Stunden sind)
    
    //---------------------------------------------------------------- Minuten
          L     #DivRest                    //Rest (alles was nicht Stunden sind)
          L     L#60000
          /D    
          T     #Minuten                    //Minuten  
    
          L     #Minuten                    //Divisionsrest bilden
          L     L#60000
          *D    
          T     #Hilfwert                   //Divisionsrest bilden
    
          L     #DivRest                    //Rest (alles was nicht Stunden/Minuten sind)
          L     #Hilfwert
          -D    
          T     #DivRest
    
    
    //---------------------------------------------------------------- Sekunden
          L     #DivRest                    //Rest (alles was nicht Stunden/Minuten sind)
          L     L#1000
          /D    
          T     #Sekunden                   //Sekunden
    
          L     #Sekunden                   //Divisionsrest bilden
          L     L#1000
          *D    
          T     #Hilfwert
    
          L     #DivRest                    //Divisionsrest bilden
          L     #Hilfwert
          -D    
          T     #DivRest                    //Rest (alles was nicht Stunden/Minuten/Sekunden sind)
    
    //---------------------------------------------------------------- Millisekunden
          L     #DivRest                    //Rest (alles was nicht Stunden/Minuten/Sekunden sind)
          T     #Millisekunden              //Milisekunden
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  2. #12
    Registriert seit
    18.04.2010
    Beiträge
    31
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also Leute, außer dem Ralle versteh mich glaub ich keiner, Millisekunden in sekunden , Minuten , stunden , Tage umrechnen schaff ich gerade noch, mit und ohne Papier, Taschenrechner, SPS etc, nur bei den
    Lichtjahren happert es noch, und bei meinem ursprünglichen Problem: wie mache ich aus z.b. 1,7 h ein z.b. Merkerdoppelwort wo 1 ( also 1 Std) und ein anderes MD wo 42 ( also die Minuten) oder anders
    ausgedrück die Zahl hinter dem Komma drin steht.

    das mit dem mod vom Ralle kapier ich noch nicht, da MOD lt. AWL Doku den Rest einer Divison hergibt, und nicht eine Differenz, und noch viel blöder
    wenn icht

    L

  3. #13
    Registriert seit
    18.04.2010
    Beiträge
    31
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also Leute, außer dem Ralle versteh mich glaub ich keiner, Millisekunden in sekunden , Minuten , stunden , Tage umrechnen schaff ich gerade noch, mit und ohne Papier, Taschenrechner, SPS etc, nur bei den
    Lichtjahren happert es noch, und bei meinem ursprünglichen Problem: wie mache ich aus z.b. 1,7 h ein z.b. Merkerdoppelwort wo 1 ( also 1 Std) und ein anderes MD wo 42 ( also die Minuten) oder anders
    ausgedrück die Zahl hinter dem Komma drin steht.

    das mit dem mod vom Ralle kapier ich noch nicht, da MOD lt. AWL Doku den Rest einer Divison hergibt, und nicht eine Differenz, und noch viel blöder
    wenn ich wie von Ralle vorgeschlagen folgendes mache:

    L 10000
    L 60
    T MD 100
    mod
    T MD 110

    dann steht im MD 110 nur 0 (null), obwohl da irgendwas drin stehn sollte

  4. #14
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.358
    Danke
    456
    Erhielt 695 Danke für 520 Beiträge

    Standard

    Zitat Zitat von dizzi33 Beitrag anzeigen
    und bei meinem ursprünglichen Problem: wie mache ich aus z.b. 1,7 h ein z.b. Merkerdoppelwort wo 1 ( also 1 Std) und ein anderes MD wo 42 ( also die Minuten) oder anders
    ausgedrück die Zahl hinter dem Komma drin steht.
    smiley_emoticons_doh.gif Aus deiner windigen Beschreibung kann wohl nur Ralle was rauslesen...
    Code:
          L     1.700000e+000               //Real 1.7
          TRUNC                             //Ganzzahl 1
          DTR                               //Real 1.0
          T     #Stunden
    
          L     1.700000e+000
          L     #Stunden
          -R    
          L     6.000000e+001
          *R    
          T     #Minuten                              //Real 42.0
    Das ist wahrscheinlich das was du suchst.

    MOD kann bei deinem Beispiel (1.7 Gleitpunkt) nicht funktionieren da MOD für Ganzzahlen und nicht für Gleitpunktzahlen ist! Mit MOD würde es so funktionieren....
    Code:
          L     1.700000e+000
          L     6.000000e+001               //in Sekunden  (102)
          *R                                //Runden durch abschneiden
          TRUNC                             //Ganzzahl
          T     #HilfswertDINT              //Sekunden als Ganzzahl (102)
          L     #HilfswertDINT
          L     L#60
          /D    
          T     #Stunden                    //Stunden als Ganzzahl
          L     #HilfswertDINT
          L     L#60
          MOD   
          T     #Minuten                    //Divisionsrest (42) entspricht Minuten als Ganzzahl
    Alle Beispiele von vorhin funktionieren übrigens wenn man sie mit einem Eingangswert in ms als Ganzzahl (Datentyp: DINT, TIME) füttert.
    Geändert von RONIN (04.12.2014 um 18:22 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  5. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    dizzi33 (05.12.2014)

  6. #15
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    smiley_emoticons_doh.gif Aus deiner windigen Beschreibung kann wohl nur Ralle was rauslesen...
    Die ist jetzt erst windig geworden.
    Er wollte lt. seinem 2. Post schon Millisekunden vorgeben:
    Zitat Zitat von dizzi33 Beitrag anzeigen
    ein Baustein in den ich millisek übergebe, und der mir dann einerseits ganze Stunden und restliche Minuten ausspuckt z.b. 12.060.000 ms rein , als 3 Std und 21 min raus,



    Zitat Zitat von dizzi33 Beitrag anzeigen
    also Leute, außer dem Ralle versteh mich glaub ich keiner,
    Millisekunden in sekunden , Minuten , stunden , Tage umrechnen schaff ich gerade noch, mit und ohne Papier, Taschenrechner, SPS etc
    Offensichtlich nicht, sonst würdest Du verstehen, dass die 3 Posts ab Ralle seinem alle genau das machen. Und zwar Millisekunden in Sekunden, Minuten und Stunden zerlegen.
    Wenn Du das sogar im Kopf kannst, zähl' Dir doch die einzelnen Schritte auf und mach es so in der SPS. Kopfrechnen stellt in der Regel immer den einfachsten Weg einer Rechnung dar.



    Zitat Zitat von dizzi33 Beitrag anzeigen
    nur bei den Lichtjahren happert es noch
    Wird auch schwierig, LJ sind ein Weg!



    Zitat Zitat von dizzi33 Beitrag anzeigen
    das mit dem mod vom Ralle kapier ich noch nicht, da MOD lt. AWL Doku den Rest einer Divison hergibt, und nicht eine Differenz,
    Wozu die Differenz?
    Wenn Du 62 Sekunden im Kopf in Minuten umrechnest, sind das 1 Minute und 2 Sekunden. Richtig?
    Und wenn Du jetzt die 62 durch 60 teilst, erhältst Du 1 Rest 2. Und genau diese 2 gibt Dir MOD aus! Den Rest einer ganzzahligen Division.
    Und wenn Du anschließend die normale Division 62/60 ausführst, wirst Du feststellen, dass die SPS den Wert automatisch rundet, da es ja eine Ganzzahl ist. Du erhälst also nicht 1,0333 sondern genau 1.
    Somit hast Du Deine 1 Minute und 2 Sekunden.

    PS: Hast du einen größeren Minutenwert als 59 machst Du das Gleiche wieder. Die Minuten in den Rest (= Minuten innerhalb einer Stunde) und den ganzen Teil (= Stunden) mit einer Division durch 60 zerlegen.
    Und genau das machen die Programme.


    Zitat Zitat von dizzi33 Beitrag anzeigen
    wenn ich wie von Ralle vorgeschlagen folgendes mache:

    L 10000
    L 60
    T MD 100
    mod
    T MD 110

    dann steht im MD 110 nur 0 (null), obwohl da irgendwas drin stehn sollte
    Läuft die CPU? Oder wird das MD110 noch irgendwo anders beschrieben. Da müsste eigentlich 40 in MD110 stehen
    Geändert von hucki (04.12.2014 um 18:30 Uhr)

  7. #16
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.358
    Danke
    456
    Erhielt 695 Danke für 520 Beiträge

    Standard

    Hat auch ewig gedauert bis ichs kapiert habe...
    Dizzi probiert unsere Beispiele mit Gleitpunktzahlen.
    Dizzi hat also zusätzlich noch ein Zahlen-Formats-Problem.

    Hier steht was er mit den 1,7 meint...

    Er nimmt seinen Millisekunden-wert (anscheinend Gleitpunkt) und dividiert ihn durch 3600 000.0 und bekommt z.B.: 1.Z Stunden (Gleitpunkt) raus.
    Jetzt wollte er an die 0.7 hinterm Komma ran um diese dann mit 60.0 zu multiplizieren für die Minuten. Anscheinend reichen Stunden und Minuten.

    Mit dieser Gleitpunktzahl werden unserer Beispiele nicht hinhauen (außer dieses)
    Die Beispiele von vorhin funktionieren wenn man sie mit einem Eingangswert in ms als Ganzzahl (Datentyp: DINT, TIME) füttert.
    Geändert von RONIN (04.12.2014 um 18:26 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. #17
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Er nimmt seinen Millisekunden-wert (anscheinend Gleitpunkt) und dividiert ihn durch 3600 000.0 und bekommt z.B.: 1.Z Stunden (Gleitpunkt) raus.
    Jetzt wollte er an die 0.7 hinterm Komma ran um diese dann mit 60.0 zu multiplizieren für die Minuten. Anscheinend reichen Stunden und Minuten.
    Das erhält er durch die Skalierung am HMI. Logisch, wenn er da die ms mit 3.600.000 skaliert. Als Ausgangspunkt hat er aber trotzdem ms.
    Und wir werden ihm ja nun wirklich nicht raten, das Pferd von hinten aufzuzäumen, oder?

  9. #18
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.358
    Danke
    456
    Erhielt 695 Danke für 520 Beiträge

    Standard

    Ja, mehr werden wir erst erfahren wenn Dizzi uns erleuchtet welches Einheit (ms?) und Datenformat (Real, Dint, Time, Gurke, Salami, etc.) sein Wert hat...
    Dann können wir ihm sagen welcher geposteten Codepassagen die richtige ist.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  10. #19
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von dizzi33 Beitrag anzeigen
    also Leute, außer dem Ralle versteh mich glaub ich keiner, Millisekunden in sekunden , Minuten , stunden , Tage umrechnen schaff ich gerade noch, mit und ohne Papier, Taschenrechner, SPS etc, nur bei den
    Lichtjahren happert es noch, und bei meinem ursprünglichen Problem: wie mache ich aus z.b. 1,7 h ein z.b. Merkerdoppelwort wo 1 ( also 1 Std) und ein anderes MD wo 42 ( also die Minuten) oder anders
    ausgedrück die Zahl hinter dem Komma drin steht.

    das mit dem mod vom Ralle kapier ich noch nicht, da MOD lt. AWL Doku den Rest einer Divison hergibt, und nicht eine Differenz, und noch viel blöder
    wenn ich wie von Ralle vorgeschlagen folgendes mache:

    L 10000
    L 60
    T MD 100
    mod
    T MD 110

    dann steht im MD 110 nur 0 (null), obwohl da irgendwas drin stehn sollte
    Keine Ahnung, was du noch so mit dem MD110 machst.
    Wozu schreibst du die 60 denn eigentlich in MW100?

    Mein Code ist getestet, der funktioniert mit ms auf jeden Fall.
    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

  11. #20
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.205
    Danke
    926
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Was hast Du eigentlich für ein Panel? Womit programmierst Du das?
    Wie soll die Zeitanzeige am Panel aussehen?

    Wenn es nicht stört, daß auch die Sekunden mit angezeigt werden, dann bräuchtest Du garnichts umrechnen, sondern einfach Deine ms-Time in eine TIME_OF_DAY-Variable kopieren und auf dem Panel als Uhrzeit anzeigen: "1:23:45"


    Noch eine weitere Kanone-auf-Spatzen-aber-fertig-Möglichkeit:
    In der Standard Bibliothek "IEC Function Blocks" gibt es den FC3 D_TOD_DT, dem übergibst Du ein beliebiges Datum und Deinen TIME, dann liefert der Dir als Ergebnis einen DATE_AND_TIME, darin fein säuberlich getrennt im 4. Byte die Stunden und im 5. Byte die Minuten - allerdings im BCD-Format. Die könntest Du im Panel Hexadezimal anzeigen oder noch von BCD zu INT wandeln. Hexadezimale Anzeige hätte den Vorteil, das man Minuten immer zweistellig ggf. mit 0 davor anzeigen könnte.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Step 7 TOD umwaneln in Minuten und Stunden
    Von S7_1500 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.10.2017, 09:45
  2. Zeit in Format REAL in Minuten und Stunden aufsplitten
    Von ThomasKl im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 24.08.2014, 15:38
  3. TIA Minuten in Stunden umwandeln
    Von kuti im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.10.2013, 21:52
  4. SCL TIME in minuten umrechnen
    Von michdan im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 30.06.2008, 23:02
  5. Antworten: 4
    Letzter Beitrag: 07.04.2006, 14:52

Lesezeichen

Berechtigungen

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