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

Ergebnis 1 bis 9 von 9

Thema: Time in Tod

  1. #1
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute!!

    Ich lese aus einem DB einen Wert im Format Time (in ms) aus, jetzt möchte ich gerne diesen Wert in einem Ausgabefeld im Format mm:ss:ms anzeigen.
    Soweit ich das gelesen habe wäre eine Möglichkeit den Datentyp in TOD umzuwandeln womit er dann richtig angezeigt wird.
    Jetzt meine Frage, gibt es eine Konvertierungsmöglichkeit der Datentypen im Wincc??

    Ich benutze Wincc Flex 2008 SP3 V14.0.0
    Zitieren Zitieren Time in Tod  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    TOD (TimeOfDay) unterscheidet sich vom Innenleben her nur in sofern von TIME dass hier die abgelaufenen Millisekunden seit 0:00 Uhr dargestellt werden. Ansonsten ist das genauso ein DINT der in Millisenkunden auflößt ...

    Gruß
    Larry

  3. #3
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    das bedeuted?? Funktioniert mein Plan so nicht?? In die Time Variable schreibt ein IEC Timer!! Nun will ich diesen auslesen und anzeigen, interresiert aber niemanden das er 16 Minuten in millisekunden lesen muss!!
    Gibts da einen Ansatz den ich verfolgen kann??

  4. #4
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Unbenannt.PNG
    Ich habs mir irgendwie so vorgestellt wobei Variable 1 Typ Time ist und Variable 2 DateTime!! Hab aber überhaupt keine Skript erfahrung, hatte nur nen Grundkurs in C# und da gibts doch schöne Unterschiede!!

  5. #5
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    • L #zeit //TIME
    • L 1000
    • /D
    • T #buffer //ignore milliseconds
    • NOP 0
    • L #buffer
    • L L#86400
    • /D
    • T #day
    • ////////////////////////////
    • L #buffer
    • L L#86400
    • MOD
    • T #buffer
    • ////////////////////////////
    • L #buffer
    • L 3600
    • /D
    • T #hour
    • ///////////////////////////////////////
    • L #buffer
    • L 3600
    • MOD
    • T #buffer
    • /////////////////////////////////
    • L #buffer
    • L 60
    • /D
    • T #min
    • L #buffer
    • L 60
    • MOD
    • T #sec


    oder kann mit jemand diese AWL Zeilen in Script taugliche Befehle übersetzen??

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    was ich damit sagen wollte ist, dass du den Inhalt einer TIME-Variablen direkt in den Inhalt einer TOD-Variablen übertragen kannst.

    Wenn du nun aber mit DATETIME arbeiten möchtest - das ist ein vollkommen anderes Format. DT ist ein Byte-String in dem die einzelnen Teile des Datums und der Uhrzeit BCD-Codiert hinterlegt sind. Sieh dir dazu bitte mal die Step7-Hilfe an. Dann sollte der Code aus deinem Beitrag #5 auch etwas verständlicher sein (wobei darin noch so einiges fehlt).

    Was soll es denn nun werden ?

    Gruß
    Larry

  7. #7
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Tja da die Zeit drängt wird es wohlfürs erste mal ne Anzeige in Millisekunden bleiben!!

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Zitat Zitat von heiling36 Beitrag anzeigen
    Ich benutze Wincc Flex 2008 SP3 V14.0.0
    Was bedeutet das V14.0.0???

    Programmierst Du eine PC-Runtime oder ein Panel? Welches?

    Du könntest in der SPS den TIME in einen String mit dem gewünschten Format umwandeln (einfach)
    Oder in 3 numerische Variablen zerlegen und im HMI in 3 Ausgabefeldern ausgeben (nicht schön wegen fehlenden führenden Nullen, man könnte aber BCD als Hex anzeigen)

    Wenn Deine Zielplattform Skripte kann, dann schau Dir mal die VBS-Funktion DatePart an. Ich kann jetzt nicht nachsehen, doch ich meine, daß VBS leider keine Millisekunden unterstützt. Dann müsstest Du halt selber in VBS einen String zusammenbauen - kombiniere mein DatePart-Beispiel mit Deiner Berechnung wie Dein AWL-Code in #5.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab jetzt linear Skaliert, somit die Anzeige in Sekunden, jeder ist zufrieden und allen passts!!

    Meinte natürlich V1.4.0.0_1.16.0.16 um genau zu sein.
    Ich programmiere ein Panel MB 277 8" Touch.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 13.07.2014, 19:32
  2. TOD (Time of day) vergleichen
    Von Nijkamp im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 24.02.2014, 23:33
  3. Time von Time substrahieren
    Von dentech im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.06.2012, 10:43
  4. Grundoperationen mit TOD und TIME
    Von vollmi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 27.01.2011, 19:13
  5. Umwandler für TIME/S5-TIME
    Von Andy_Scheck im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 19.10.2009, 22:56

Lesezeichen

Berechtigungen

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