Time in Tod

heiling36

Level-2
Beiträge
56
Reaktionspunkte
0
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
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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??
 
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!!
 
  • 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??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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
 
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.
 
Zurück
Oben