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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: S7: SCL: TIME_TO_TOD() funktioniert nicht?

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Automatinator Beitrag anzeigen
    Ja Bravo Siemens... wieso machen die Überhaupt ein Datenkonverter den man nicht brauchen kann? -.-
    Der Datentyp TOD = TIME_OF_DAY ist nunmal so definiert, daß er keine Werte >= 24h darstellen kann (weil es die Uhrzeit eines Tages ist und es keine Uhrzeit >= 24:00 Uhr gibt). Deshalb darf eine TOD-Variable auch keine Werte enthalten, die >= 24h wären und der Konverter TIME_TO_TOD schreibt solche unzulässigen Werte nicht in die Zielvariable.

    Wenn man aus einer beliebigen TIME mit Werten bis T#24D_20H... eine TOD extrahieren will, dann kann man das explizit so tun:
    Code:
    #tod_Var := TIME_TO_TOD(#time_Var MOD 86400000);
    
    //oder übersichtlich:
    #tod_Var := TIME_TO_TOD(#time_Var MOD (DINT#24*60*60*1000));
    
    //vielleicht akzeptiert das TIA-SCL es sogar schon so?:
    #tod_Var := #time_Var MOD 86400000;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #12
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    101
    Danke
    13
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Der Datentyp TOD = TIME_OF_DAY ist nunmal so definiert, daß er keine Werte >= 24h darstellen kann (weil es die Uhrzeit eines Tages ist und es keine Uhrzeit >= 24:00 Uhr gibt). Deshalb darf eine TOD-Variable auch keine Werte enthalten, die >= 24h wären und der Konverter TIME_TO_TOD schreibt solche unzulässigen Werte nicht in die Zielvariable.
    Dann bist du nachlässiger mit Siemens als ich haha. Weil ich will von einer Datum/Zeit die Tageszeit wissen TIME_TO_TOD()... macht also nicht viel Sinn was du sagst, ausser Datentypumwandlungen bei Grössenkonflikte wären nicht möglich. Aber wenn ein DINT von 0 auf 16#10001 geht, dann bleibt der INT bei einem DINT_TO_INT() ja auch net 0, sondern wird 1...

  3. #13
    Registriert seit
    06.10.2003
    Beiträge
    3.406
    Danke
    448
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    .. TOD heisst ja auch, das Datum egal, Uhrzeit relevant ..
    Zitat Zitat von Automatinator Beitrag anzeigen
    .. ich will von einer Datum/Zeit die Tageszeit ..
    Kann es sein dass du geringfügige Probleme mit den Datenformaten DT und TOD hast?
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  4. #14
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    Dann bist du nachlässiger mit Siemens als ich haha. Weil ich will von einer Datum/Zeit die Tageszeit wissen TIME_TO_TOD()... macht also nicht viel Sinn was du sagst, ausser Datentypumwandlungen bei Grössenkonflikte wären nicht möglich. Aber wenn ein DINT von 0 auf 16#10001 geht, dann bleibt der INT bei einem DINT_TO_INT() ja auch net 0, sondern wird 1...
    Ich bin mir ziemlich sicher, dass Time_To_TOD in TIA nicht als Konvertierung von Basisdatentypen deklariert ist sondern irgendeinen spezial FB oder SFB aufruft um das zu händeln. Und ganz bestimmt ist das in der Hilfe auch so beschrieben. Ansonsten bräuchte man ja überhaupt keine Time_To_TOD weils im hintergrund ja zwei 32bit Integerwerte welche Millisekunden darstellen sind.

    mfG René

  5. #15
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    101
    Danke
    13
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Onkel Dagobert Beitrag anzeigen
    Kann es sein dass du geringfügige Probleme mit den Datenformaten DT und TOD hast?
    In wie fern? Hab ich was verpasst?

  6. #16
    Registriert seit
    06.10.2003
    Beiträge
    3.406
    Danke
    448
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    In wie fern? Hab ich was verpasst?
    Es hat den Anschein dass du ein Verständnisproblem mit den verschiedenen Datentypen hast. Sieh dir doch bitte in der Onlinehilfe die Definitionen und Wertebereiche zu "TIME", "TIME OF DAY" und "DATE AND TIME" an. In den o.g. Zitaten bringst du das "DATUM" in Zusammenhang mit "TIME" und "TIME OF DAY". Beide Datentypen haben nichts mit dem "DATUM" zu tun. Beide sind lediglich 32Bit-Werte, welche eine Dezimalzahl in [ms] darstellen, wobei "TIME OF DAY" zwischen T#0MS und T#23H59M59S999MS begrenzt ist.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  7. #17
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    101
    Danke
    13
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Onkel Dagobert Beitrag anzeigen
    Es hat den Anschein dass du ein Verständnisproblem mit den verschiedenen Datentypen hast. Sieh dir doch bitte in der Onlinehilfe die Definitionen und Wertebereiche zu "TIME", "TIME OF DAY" und "DATE AND TIME" an. In den o.g. Zitaten bringst du das "DATUM" in Zusammenhang mit "TIME" und "TIME OF DAY". Beide Datentypen haben nichts mit dem "DATUM" zu tun. Beide sind lediglich 32Bit-Werte, welche eine Dezimalzahl in [ms] darstellen, wobei "TIME OF DAY" zwischen T#0MS und T#23H59M59S999MS begrenzt ist.
    Achso ja sorry mit Datum meine Ich Tage haha, hab mich da im Wort vertan haha

Ähnliche Themen

  1. SCL: Stringvergleich funktioniert nicht
    Von Scanda im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 07.08.2011, 11:12
  2. Timer in SCL funktioniert nicht
    Von karlm44 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.05.2010, 22:47
  3. SCL Installation funktioniert nicht
    Von ToBo im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 06.08.2009, 13:15
  4. MID-FC in SCL funktioniert nicht
    Von nobby_nobbs im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.03.2009, 02:14
  5. Funktionsaufruf funktioniert nicht - SCL
    Von amateur im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.10.2007, 13:49

Stichworte

Lesezeichen

Berechtigungen

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