Semmy hat geschrieben: ↑26.05.2020, 14:33
Ich möchte aber wieder die Betriebsstunden z.B. 2.50 in 2.30 angezeigt bekommen in eine Variable. wie müsste hier der Eintrag sein?
Dann subtrahiere doch 0.2.
Sorry, aber mit den Brocken kann man nichts anfangen. Ich weiß ja noch nicht mal, was Du gemacht hast. Das Script rechnet mit seinen eigenen Systemvariablen. Daher kann man diese nicht umformatieren. Oder man müsste das Script selber umbauen. Alternativ musst Du den umformatierten Wert in eine separate Systemvariable schreiben. Dazu musst du eben aus der Variablen die Sekunden, Minuten und Stunden errechnen und dann einen String aus den Ergebnissen zusammenbauen. Mit einer einfachen Wandlung .ToTime() geht es eben nicht, weil die Zeitbasis der 01.01.1970
01:00:00 Uhr ist. Es kommt also als formatierte Uhrzeit immer eine Stunde zu viel raus.
Ich habe jetzt mal was für's Wrapperdevice zusammengetippt. Ist nicht schön, sollte aber funktionieren. Ich lese den Datenpunkt ein (summe), danach extrahiere ich die Minuten und Sekunden (minsec) und errechne anschließend noch die Anzahl der vollen Stunden (stunden). Danach baue ich aus beiden Ergebnissen einen String (dauer) zusammen, den man dann in eine Systemvariable schreiben kann. Ich weiß, nicht sehr kreativ, aber vielleicht hat ja jemand eine schönere Idee.
Code: Alles auswählen
real summe = (dom.GetObject("CUxD.CUX9001002:1.TIME_ON_SUM").Value());
time minsec = (summe*60).ToTime().Format("%M:%S");
string stunden = (summe/60).ToInteger();
string dauer = stunden #":"# minsec.ToString();
Gruß Xel66