Betriebsstundenzähler

Begonnen von Boeby, 20. Januar 2009, 15:59:19

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Boeby

Guten Tag liebes Forum,

hab da mal so ein kleines Problem:

Ich würde gern einen Betriebsstundenzähler realisieren und in einer Visu den aktuellen Stand anzeigen.
Ich habe bisher nen "ontime" verwendet... so weit so gut.
Da dieser ja nur die Sekunden hochzählt, hab ich noch nen "second_to_time" dahinter gesetzt, um zumindest nen einigermaßen lesbares
Ergebnis auf der Visu zu bekommen.
Meine eigentliche Frage besteht jetzt darin, wie ich es hinbekomme, mir auch die Stunden anzeigen zu lassen...also fortlaufend???
Und dementsprechend die Minuten dann zurück zu setzen???

Hab schon das ganze Forum durchforstet ( hoff ich ) leider jedoch nichts passendes gefunden!
Vlt. kann mir ja Jemand nen guten Tipp geben oder hat noch was im Archiv liegen???

Vielen Dank schonmal!!!!

gravieren

Hi

Hierzu benötigst du  "geteilt","ganzzahlig" und die "Modula" funktion.



Vieleicht hilft diese kurze Info, ansonsten hier nochmal schreiben.


Also
1. Anzahl der minuten ausrechnen. --> Variable "Gesamtminuten"
2. "Gesamtminuten" geteilt durch 60  --> Variable "Stunden"
3. Nachkommaanteil von Stunden "wegschneiden"
4. Anzahl der "Stunden"  * 60 rechnen.
5. Restminuten berechen  -->  "Gesamtminuten" - ( Zahl aus 4. )

Somit hast du Stunden und Minuten.



Ich hoffe, ich habe das einigermassen richtig erklärt.


peewit

für so einem zweck passt der Baustein DT_TO_STRF perfekt !
das ausgabe-format kannst du beliebig zusammenstellen

Siehe Beispiel-Grafik (Anhang)


[gelöscht durch Administrator]

Boeby

Vielen Dank zunächst euch Beiden!!!

Ich habe jetzt zunächst mal den zweiten Vorschlag ausprobiert...
Leider habe ich dann das Problem, dass mir "DT_TO_STRF" irgendwie kein Ergebnis liefert.
Habe deshalb mal noch ne Variable "Test" angelegt und geschaut, ob überhaupt ein IN-Wert anliegt.
Dies ist ja offensichtlich der Fall (s. Anhang). Habe auch schon in der Doku nachgeschaut... kann mir aber irgendwie
nicht erklären weshalb ich kein Ergebnis bekomme...Oder liegt das daran, dass ich es nur in der Simulation versucht habe?

Werde mich jetzt mal an den ersten Vorschlag machen, ist vlt etwas komplizierter, aber das soll einen ja nicht abhalten.
Muss dann ja nur noch die einzelnen Variablen zusammenfügen, aber da wird sich sicher was finden...Muss dazu sagen, dass ich absoluter Oscat-Newbie
bin.
Werd mich dann nochmal melden!

MfG

[gelöscht durch Administrator]

peewit

das beispiel funktioniert auch in der simulation

dein problem ist beim DT_TO_STRF das der Formatierungsstring "FMT" bei dir nicht in ordnung ist.

du hast bei FMT '#n:#r:#t' angegeben, diese parameter gibt es aber nicht !

bitte alles so wie in Doku anwenden

FMT '#N:#R:#T'   <--- das funktioniert dann auch ...


Boeby

#5
Ups....

Zunächst vielen Dank für die prompte Antwort.

Ok, jetzt sieht das schon ganz anders aus!!!
Wie gesagt: Oscat-Newbie...sonst interessiert Groß- Kleinschreibung ja nicht...
Jetzt bleibt ja nur noch das Prob, dass nach 24 Std. wieder bei 0 angefangen wird.
Kann mir zwar mit '#G Tagen #...' ja auch die Tage anzeigen lassen, jedoch führt das nun wieder dazu, dass
der Zähler mit "1 Tag 00:00:00" anfängt. Wäre für nen Betriebsstundenzähler ja schöner, wenn er einfach nur die
Stunden hochlaufen lässt. Wegen Wartungsintervalle o.ä. Naja, werd ich nochmal schauen müssen, wie ich das realisiere.
Evtl. über Vergleicher oder so...


Vielen Dank auch nochmal an gravieren!!!

vicky

Hallo,
Vielleicht sollte man grundsätzlich darüber nachdenken den Betriebsstundenzähler-Baustein "ontime" auf Stunden umzustellen.
Denn:
1. Sagt ja der Name schon, dass es sich hierbei um einen Stundenzähler handelt.
2. Zählt in der Regel ein Hardware-Betriebsstundenzähler, an Anlagen in der Industrie und sonstwo, auch Stunden.
3. Wäre ein direkter Vergleich mit Herstellerangaben möglich, z.B. Haltbarkeit von Leuchtmitteln.
4. Was sagt einem der Wert "2109231" Sekunden?
    => Mir erst mal nichts. Da muß schon noch mal Adam Riese drüberschauen.
5. REAL-Format würde sich anbieten "100,5" => 100 Std. 30 Min.

Das soll nun nur so mal als ne Art Brain-Schdorming dienen.

Diese Denkweise kann man eigentlich global auf die OSCAT anwenden.

Alla gud

hugo

ursprünglich hatten wir das auch so, aber real hat sich wegen der weiterverarbeitung nicht bewährt,
sekunden haben wir deshalb gewählt weil 2^32 sekunden (soviel kann der ausgang darstellen)  1,2 millionen stunden sind und das ergibt 136 jahre
stunden kann man daraus doch extrem einfach machen indem man durch 3600 teilt.
dann kannst du dir sogar aussuchen ob das ergebnis integer, uint, dint oder udint ist auch real kannst du erzeugen
auf diese weise ist der betriebsstundenzähler am universellsten.


shooter

found simple one
line 1 is two times a TON timer of 0.5 seconds to make seconds.
line 2 r_trig from above blinker. then sel 0 1 then add to a sectime variable
line 3 is divide by 3600 hourtime is going to 1 after 1 hour
make the sectime retain so it will stay inside the system.

this solution is without any external library.

Pusher

Hallo zusammen !

Kann mir jemand sagen warum mein OnTime so schnell zählt ? Bei Ca. 1 sec. zählt der Baustein ca. 2. oder noch n bischen schneller ! ???

währe dankbar für Hilfe. Habe ich es so wie oben gemacht das Beispiel von peewit .

hugo

kann es sein das an deiner variable (die wo die zeit gezählt wird)
2 verscheidene ontime hängen, dann würde jeder die variable um eine sekunde erhöhen was zu deinem effekt führen kann

hast du eventuell 2 ontime in deinem projekt und beide auf dieselbe var geschaltet?

vicky

Nee,
das Phenomän kommt dann vor, wenn der Baustein als RETAIN oder PERSISTENT deklariert wird.
So war's zumindest bei mir.
Warum, daß wissen die Götter

hugo

dann gibt es nur eine erklärung, da hat noch jemand anders auf die var geschrieben.